わんくま同盟 Blog's

わんくま同盟

メニュー

わんくま同盟

  勉強会情報

  メンバリスト

掲示板

ブログ

リンク

統計

わんくま同盟メンバ

わんくま同盟わんくま同盟

わんくま同盟メンバの最新の記事

[GlobalSummit2019]米国に旅行にいくなら、Amazon Lockerを活用しよう

Amazon.comで買い物したものを日本に送ってくれたりしますが、まだまだ(特に電池が入っているものなど)すべてがという訳にはいきません。

米国に旅行に行く機会があったとしても、送付先にホテルを指定してうまく受け取れるか、そもそも滞在期間中に届くようにするにはどうしたらいいのかなどの不確定要素が付きまといます。


そんなとき、オースティンに出張に行ったときに街中で見かけたのがAmazon Lockerです。

Amazon.comのサイトを見てみると

  • 配達及び返品に使える
  • 利用時間帯も長く
  • 追加料金なし

というAmazon公式ロッカーのようです。

image


ためしにMicrosoft MVP Global Summitで宿泊する近くをさがしてみるといくつかあるようです。

image

郵便番号にホテルの98004という郵便番号を入力して検索すると、

image

ベルビュースクエアの東南ブロックにいくつかありますね。高速の近くは not public lockerなので住民専用とかでしょうか。

希望するロッカーの場所の[Select]ボタンをクリックすれば送付先リストに、そこのAmazon Lockerが指定できるようになります。

日曜日も受け取れる「Amazon Locker ? Bery!」か「Amazon Locker ? Frannie」が良さそうですね。

ここで注意することは、Amazon.comでの配達は基本的にbusiness dayつまりは平日のみとなっています。

ですので、日曜日に現地着だから日曜日に受け取ろうと思うと金曜日着になるように早め早めに行動するのがいいでしょう。

もしくは、Amazon Primeのお試しに入って、月曜日の朝の9時までに申し込みをしてSame Dayかone business dayで配達してもらうのもいいかもですね。


それでは実際にAmazon Lockerから品物を受け取りましょう。

Amazon.comで購入してAmazon Lockerに荷物がはいると取り出しようのパスコードが書かれたメールが来ます。

画像に含まれている可能性があるもの:テキスト

宿泊場所からはだいたい10分くらい歩いたところにAmazon Lockerはありました。

空港に戻るときに乗るバスターミナルのちょっと先ですね。

画像に含まれている可能性があるもの:空、夜、木、屋外

expediaビルの地下駐車場に設置されていまいた。

写真の説明はありません。

写真の説明はありません。

ロッカーの液晶画面のところでメールに書かれたコードを入力するとロッカーのドアが開きます。

画像に含まれている可能性があるもの:テキスト

無事、ゲットできました。簡単ですね。

写真の説明はありません。

今回購入したのはWear OS by Googleな腕時計です。

写真の説明はありません。

技適も通ってますし、日本語化もされているので良い感じです。

写真の説明はありません。

posted @ 2019/03/19 10:09 by 初音 玲

3/30 は平成最後のわんくま同盟勉強会です!

申込ページ:わんくま同盟 東京勉強会 #116

平成最後の開催は、えムナウさんの還暦祝いです。おまけで若者VS2019もいろいろ。

内容はこんな感じ

  • 10:40 ~ 11:00 開場・受付開始
  • 11:00 ~ 11:10 わんくまについて
  • 11:10 ~ 12:00 「Visual Studio 2019」 by 中博俊 Lv.1くまー
  • 12:00 ~ 13:00 おひるごはん
  • 13:00 ~ 13:30 ライトニングトーク
  • 13:40 ~ 14:30 「.NET Core 3.0 非同期ストリーム」 by 赤坂玲音さん Lv.2くまー
  • 14:40 ~ 15:30 「Microsoft Cognitive Service を楽しもう!」 by ジニアス平井さん Lv.2くまー
  • 15:40 ~ 16:30 「C# の歴史」 by えムナウ Lv.2くまー
  • 17:00 ~ 懇親会

今回も盛りだくさんでお届けです。

まだまだ絶賛募集中!お申し込みはお早めに!

posted @ 2019/03/13 12:58 by とっちゃん

HoloLens 2がきた!

HoloLens 2きましたね。

すっきりしたデザインに快適さ3倍。視野角2倍。

A man wearing a HoloLens 2 has the visor flipped up

しかもフリップアップできる!

後頭部にあるのが処理部分ですかね?

指のトレースでピアノ弾いたりできる。

Windows Helloがあるのでかぶるだけでログインできる!

アイトラッキングできるので、目線でブラウザースクロール!

すさまじい未来きた!

しかも!日本も発売先に最初からはいってますよ!
https://blogs.microsoft.com/blog/2019/02/24/microsoft-at-mwc-barcelona-introducing-microsoft-hololens-2/

--
HoloLens 2 will be initially available in the United States, Japan, China, Germany, Canada, United Kingdom, Ireland, France, Australia and New Zealand. Customers can preorder HoloLens 2 starting today at https://www.microsoft.com/en-us/hololens/buy.

--

HoloLens 2 コマーシャル版が$3500。HoloLens 1 コマーシャル版が$5000なのでちょっと安くなりました。

プレオーダーページがまだ日本対応してないですが、日本語ページを用意中だそうです。

posted @ 2019/02/25 3:29 by 初音 玲

Azure Kinect DK

ついにAzure Kinectが!

https://azure.microsoft.com/ja-jp/services/kinect-dk/

プレオーダーもはじまってますね!


複数台連携がAzure Kinect側でできるみたいなので連携したときにアプリからどう見えるか知りたい。

posted @ 2019/02/25 3:13 by 初音 玲

3Qさんフィリピンの大学で話してきた

「フィリピン大学でスピーチすることに。次はあなただ!」

posted @ 2019/02/23 14:37 by まーる

You&Iさんの「UnityMLAgents」

You&Iさんの「Unity ML Agents」話

posted @ 2019/02/23 14:34 by まーる

わんくま名古屋47始まってるー

今日は少々遅刻して参加

posted @ 2019/02/23 14:32 by まーる

[勉強会] 今年最初のわんくま同盟勉強会が開催です。

今年は東京から。1/19 に わんくま同盟 東京勉強会 #115 が開催されます。

場所はいつものお菜家さん。

  • 10:40 ~ 11:00 開場・受付開始
  • 11:00 ~ 11:10 わんくまについて
  • 11:10 ~ 12:00 「若手、育ててますか? 」 by XENO Lv.1くまー
  • 12:00 ~ 13:00 おひるごはん
  • 13:00 ~ 13:30 ライトニングトーク
    • 募集中
    • 募集中
  • 13:40 ~ 14:30 「CView にも UIElementを!」 by とっちゃん Lv.3くまー
  • 14:40 ~ 15:20 「Azure Sphereをはじめてみよう」 by 木澤朋和さん Lv.1くまー
  • 15:30 ~ 16:20 「(仮)ASP.NET Core MVC Web Apps on Microsoft Azure のリアーキテクチャの試行について(BI機能追加、AI 機能追加、 Microservices 化の方針と実装等)」 by 鈴木章太郎さん Lv.3くまー
  • 17:00 ~ 懇親会

こんな感じ。

2018年はわんくま東京ではしゃべってないので、久しぶりの登壇です。おいらは相変わらずで、レガシーなネタをしゃべりますよ。

まだまだ、お席に余裕があります。申込はこちらから

懇親会はいつもと変わりませんが新年会です。ということでお待ちしております。

posted @ 2019/01/15 15:24 by とっちゃん

ブログ書けるかな?

RDPだと、日本語キーボードが知らない子になってしまうので、久しぶりにちょっとお試し。

ちゃんと行けるかなぁ?

posted @ 2019/01/15 14:43 by とっちゃん

Windows OSとか Active Directoryのセキュリティーグループに所属するかを確認したい!

ここ最近、UiPathでイロイロ遊んでます。そこでUiPath (ja) Advent Calendar 2018に参加してみました。第二弾!

結論!

セキュリティー担保したいなら、Orchestrator買え。以上。


はじめに

UiPathを軽くみんなでお安く使用しようとすると、Node-Lockedライセンスという共有端末をみんなで使うライセンス形態があります。しかし!、この場合、どのユーザーでログインしても、端末に入っているすべてのロボットが見えてしまいます。つまり申請系と承認系のロボットが起動できてしまうという、監査人大喜びのツッコミどころができてしまいます。

そこで、ユーザーがActive DirectoryなりWindows OSのセキュリティーグループに所属しているかを確認するプログラムを作ってみます。

Active Directoryでは、グループの中にグループを突っ込めたりするので、単にグループのメンバーの一覧取得だと、ガッつり再帰かけないといけないので面倒すぎます。この時IADsGroupクラスのIsMember を使うのがいつものパターンです。

ではやってみる。

image

↑OrchestratorなしのNode Lockedライセンスだと、すべてのロボットがどのユーザーにログインしても見えて実行が可能

Orchestratorなしで頑張ってみる

まずは、参照の追加。DirectoryEntryは System.DirectoryServicesの参照を追加して…あれ?IADsGroupはCOMだけどどうやって参照するんだ?

image

XAMLで追加するのはあくまでclr-namespaceなので、きっぱりあきらめる。
ここで登場するのは、「カスタムアクティビティ

自分でもサクっとアクティビティを作れてしまうのがUiPathのいいところ。だって、まんまWFなんだもの。

■作業

1、プログラムを作成

2、パッケージを作成

3、UiPathに読込

4、使ってみる


1、プログラムを作成

新しい.クラスライブラリ(NET Framework)のプロジェクトを作って次の4つを参照追加

.NET
・System.Activities
・System.ComponentModel.Composition
・System.DirectoryServices
COM

・Active DS Type Library

(コードは最後に入れてます)


2、パッケージを作成

詳しい作成方法は、「カスタムアクティビティ」をごらんあれ

image

3、UiPathに読込

「パッケージを管理」から設定を押して、作成したパッケージの場所を追加してください。詳しくは(以下略
Activitiesペインに表示されるようになります

imageimageimage


4、使ってみる

ローカルコンピューターのAdministratorsグループにいるかを確認

TargetGroup:”Administrators”
TargetService:System.Environment.MachineName

image

image

成功!!!

こんなもん作ってメンテナンスするくらいなら、Orchestrator買いましょう^^;

以下、コード

Imports System.Activities
Imports System.ComponentModel
Imports System.DirectoryServices
Imports ActiveDs

Public Class IsGroupMember
     Inherits CodeActivity

    <Description("Domain | Domain\ComputerName | ComputerName")>
     <Category("Input")>
     <RequiredArgument>
     Public Property TargetService As InArgument(Of String)

    <Description("対象のグループ名")>
     <Category("Input")>
     <RequiredArgument>
     Public Property TargetGroupName As InArgument(Of String)

    <Description("結果")>
     <Category("Output")>
     <RequiredArgument>
     Public Property Result As OutArgument(Of Boolean)
     Protected Overrides Sub Execute(context As CodeActivityContext)
         Dim comInfo As DirectoryEntry = New DirectoryEntry("WinNT://" + TargetService.Get(context))
         Dim theGroup As DirectoryEntry = comInfo.Children.Find(TargetGroupName.Get(context), "group")
         Dim localgroup As IADsGroup = CType(theGroup.NativeObject, IADsGroup)
         Dim currentUser As String = "WinNT://" + System.Environment.UserDomainName + "/" + System.Environment.UserName

        Result.Set(context, localgroup.IsMember(currentUser))
     End Sub
End Class

posted @ 2018/12/19 21:00 by ちゅき

はるにゃん「Python事始め、初心者向け」

Python入門というよりもPythonを使ったプログラミング入門っぽい

posted @ 2018/12/15 15:48 by まーる

なかさん「wordで作る仕様書入門」

見出しはゴシック、本文は明朝なのだそうだ。
今度やってみようっと。

posted @ 2018/12/15 15:24 by まーる

わんくま名古屋N46はじまたー

しまった最初のYou&Iさんのネタを書き忘れた。
「機械学習環境にハマってみよう」
なんか仕事でいろいろできていいなぁ。

posted @ 2018/12/15 13:54 by まーる

UiPathで"LINQ to DataSet”を使いたい!

ここ最近、UiPathでイロイロ遊んでます。そこでUiPath (ja) Advent Calendar 2018に参加してみました。

UiPathって、.NET使いなら見た瞬間あれもこれもしたくさせたくなるRPA製品だったりします。
かなり良くできていて、そのままでも十分使えるのですが、少しでも.NETを使ったことのある方ですと、.NETのアセンブリを使って、もっといろんなことがしたくなるはずです。勉強用や個人用だとタダで使えたりしますので皆さんもぜひ遊んでみてください。(詳しくはちゃんとライセンス条項読んだって下さい、責任なんて取れませんw)

本題

さて、皆さんDataTableの扱いどうされていますか?
現在は Entity Framework に押されて微妙な立場ですが、DataSet ではインメモリ DB を目指してたのでは?と思えるほどがっつりイロイロできます。UiPathは、ExcelのシートやCSVをDataTableに取り込めるのでDataTableをゴニョゴニョできるとすごく便利です。

そんな私に DataTable を SQL 文ライクでゴニョゴニョできる「LINQ for DataSet」はすごく便利です。
UiPathでは、データテーブル関連の部品が増えてきていますが、やっぱりLINQ使えると開発効率が全く違います。

ということで、LINQ for DataSetを使って遊んでみましょう

UiPathでLINQ to DataSetを使ってみる

1.準備

LINQ to DataSetで必要な.NETのアセンブリは次の二つです。

  • System.Data
  • System.Data.DataSetExtensions

早速使ってみましょう・・・ 無いorz

まぁ、アセンブリ参照の追加はいつものことなので、さっそく追加・・・ GUIが無いorz


■LINQ to DataSetを使うための準備

「UiPath.Web.Activities」をパッケージから追加する。そうすると、上記アセンブリが参照されて LINQ to DataSet が使えるようになります。

■開発者、というか保守まで考えてる人向け

欲しいアセンブリだけ入れれば良い。パッケージ追加は邪道!という個別参照追加命!な方へ

● UiPath で参照を手動追加、または参照しているアセンブリを確認する方法(実は一番ブログに残しておきたかったの、これかもしれない^^;)
1)追加したいワークフローの XMAL ファイルを、テキストエディタで開く
2)アセンブリ一覧を確認。必要なアセンブリがなければ追加する。
   <TextExpression.ReferencesForImplementation>
     <sco:Collection x:TypeArguments="AssemblyReference">
       <AssemblyReference>System.Activities</AssemblyReference>
       (中略)
       <AssemblyReference>System.Data.DataSetExtensions</AssemblyReference>
3)保存
※いうまでもなく、アセンブリが足りないというエラーが出たときは、XAMLファイル開いてアセンブリを確認するよりも前にパッケージの有無やバージョンを確認しましょう


2. LINQ to DataSetの使い方

山ほど出てくるからググレ!(あ、終わった・・・)

せっかくなので、ちゃんとUiPathで動くか確認してみましょう。
以下、サンプルデータはこの投稿の最後にあるものをUTF-8形式のCSVで保存して使ってます

1) いわゆるWHERE句で検索

では、データから私「ちゅき」の行を取得してみましょう。

○代入(Assign)アクティビティ
左辺 (DataRow型):dr
右辺:From row In dt Where row("名前").ToString = "ちゅき"

はい、ビックリマーク来た

image_thumb1

下表では「ちゅき」は一意ですが、実際はいくつ返されるかわかりません。
そのため、受ける変数はコレクションである必要があります。

結果が一つしかないことが分かっている場合は上側、複数ある時は下側のように書きましょう

○代入(Assign)アクティビティ
左辺 (DataRow型):dr
右辺:(From row In dt Where row("名前").ToString = "ちゅき" ).FirstOrdefault()

○代入(Assign)アクティビティ
左辺 (System.DataEnumerableRowCollection<DataRow>型):dr
右辺:From row In dt Where row("名前").ToString = "ちゅき"


2) WHERE句で遊んでみる

当たり前ですが、こういう書き方もできたりします。ただ、いきなりString型にできず、いったんObject型になります。このあたり、褒貶毀誉があるLINQ to DataSetのバカかアホかと怒られる理由だったりします。

○代入(Assign)アクティビティ
左辺 (System.DataEnumerableRowCollection<Object>型):names
右辺:From row In dt Where row("住所").ToString.SubString(0,3) = "福岡県" Select row("名前")

取り出した namesはこんな感じで使えるので、イメージ通りだと思います。

image_thumb

取り出したデータを Count メソッドで数えればデータ個数なんかもすぐにとってこれます。


3)ほかにもいっぱいSQL文っぽいやつ

使える句はこんな感じです。ただ、思いっきりデータを展開して結合したりするので、あんまりえげつないことをするとメモリがパンクするかも・・・。まぁ、オンメモリDBがメモリイーターなのはご存知の通りですね^^;

クエリ一覧

Aggregate 句
Distinct 句
Equals 句
From 句
Group By 句
Group Join 句
Join 句
Let 句
Order By 句
Select 句
Skip 句
Skip While 句
Take 句
Take While 句
WHERE 句


最後に

LINQ使えるようになると、DataTableに限らず、VBでイロイロ記述できるようになるので是非のぞいてみてください。
UiPath開発者の必須項目になるかも・・・。


表.各地の勉強会でなんかあったらお世話になるところ

-- list.csv---
名前,郵便番号,住所,電話番号
中,100-8929,東京都千代田区霞が関2丁目1番1号,03-3581-4321
とっちゃん,231-0002,横浜市中区海岸通2丁目4番,045-211-1212
ちゅき,540-8540,大阪市中央区大手前三丁目1番11号,06-6943-1234
You & I,460-8502,名古屋市中区三の丸2-1-1,052-953-9110
むたぐち,650-0011,神戸市中央区下山手通5丁目4番1号,078-341-7441
ゆーち,812-8576,福岡県福岡市博多区東公園7-7,092-641-4141
どらん,803-0811,福岡県北九州市小倉北区大門1丁目6?19,093-583-1110

posted @ 2018/12/13 22:00 by ちゅき

[Azure]2018/09/25のAzureの注目アップデート

AzureのUpdateがすごい量でてきました。

ぱっと見て、自分が注目している部分のアップデートをピックアップしてみました。


BLOB使いやすくて好きなのです。で、高スループットのものがでてきましたね。

BLOBいいけど速度どうなの?という方にも安心ですね。

https://azure.microsoft.com/ja-jp/blog/introducing-azure-premium-blob-storage-limited-public-preview/?irgwc=1&OCID=AID681541_aff_7593_1243925&tduid=(ir_d29e067eNbedaf2b2710a463509a078b8)(7593)(1243925)(TnL5HPStwNw-gt.c5nteSLzUDkvPulOjyA)()&irclickid=d29e067eNbedaf2b2710a463509a078b8


そして、Azure Signal R ServiceがGA(generally available)です。東日本リージョンでも使えるようになりました。

SignalR使ているところは、裏側をこれに置き換える検討しないとなー。

https://azure.microsoft.com/en-us/blog/azure-signalr-service-now-generally-available/?irgwc=1&OCID=AID681541_aff_7593_1243925&tduid=(ir_d29e067eNbedaf2b2710a463509a078b8)(7593)(1243925)(TnL5HPStwNw-LGYhziMgBF0y9tTqG7eUpQ)()&irclickid=d29e067eNbedaf2b2710a463509a078b8

Quick Startを後で見てみましょう。

https://github.com/aspnet/AzureSignalR-samples


クラウド使っているときのDDoS対策は?なんて聞かれることもありますよね?

Azure DDos Protectionを使って攻撃緩和レポートなどがみれるようになるようです。

https://azure.microsoft.com/en-us/blog/ddos-protection-attack-analytics-rapid-response/?irgwc=1&OCID=AID681541_aff_7593_1243925&tduid=(ir_d29e067eNbedaf2b2710a463509a078b8)(7593)(1243925)(TnL5HPStwNw-qsBdAjswrbw0UR2YfoNHfw)()&irclickid=d29e067eNbedaf2b2710a463509a078b8

ついでに、Azure FirewallもGAですね。


そして、Cognitive ServiceのSpeech Serviceがグローバル提供(特定のデータセンター選ばなくてよい)になって、サポート言語も17言語(と地域)が増えて30言語になりましたね。

https://azure.microsoft.com/en-us/blog/global-scale-ai-with-azure-cognitive-services/?irgwc=1&OCID=AID681541_aff_7593_1243925&tduid=(ir_d29e067eNbedaf2b2710a463509a078b8)(7593)(1243925)(TnL5HPStwNw-4vE0gsjztG1AzuVHLNuw_Q)()&irclickid=d29e067eNbedaf2b2710a463509a078b8


Ignite合わせで色々出てきましたね。

来年はIgniteもいきたいですね。

posted @ 2018/09/25 7:01 by 初音 玲

[生存確認] 生きていますし、また転職しました

そうまたなんだ。また転職しちゃったんだ。といっても、前回の転職からは数年は経っています。

やっとこさ年収は 800 万になった。BizREACH を使っても恥ずかしくない年収になったはず!!

転職のいいところは、入社した後に定期昇給でしか増えていなかった給与がリセット評価されるところですね。定期昇給でケチられたbゴホッゴホ!まーあれですよ、成長した部分の再評価ですね!

実際わたしの給与は転職の時くらいしか大きく変わってません。私が技術系コミュニティで暴れていた頃 ~ 26 歳くらいまでは、残業なし月給 26 万 (年齢万円) もありませんでした。その時は転職しただけで月給 33 万になりました。大してやることは変わっていないのにです。むしろ転職して下っ端になったので仕事は楽になっていたと思う(笑)。

『転職すると一旦給与が下がるものです』などと言っていた転職エージェントさんもいましたが、あくまでもそれは一般論です。前職でやっていたことを考慮してもらえばそんなことはないのです。考慮してくれない会社は入社後も考慮なんてするはずがないのでお断り。ただし最初は様子見したいという企業さんもいるので、よくある「三ヶ月の試用期間」をお互いのために利用すればいい。「試用期間終了後も条件は変わらない」というのを企業側が安心できる形にすればいいと思うのですよ。

まあえらそーに言っていますが、これは過去の出来事を今ふりかえっての分析です。当時は上記のようなことを狙ってやっていたわけではなくて『あれ?転職って結構おいしいじゃん』くらいにしか認識していませんでした。転職した企業で成長したと思われるタイミングで転職を繰り返すきっかけにはなりましたが。その後転職は 4 回していますが、常に年収が増えています。その結果が現在の月給 60 万ベース (年収 800 万) です。もちろんここまで来ると管理職の経験は必須ですが (ただし私みたいな低学歴 + 中途だと管理職のレールからは外れている企業が大半なのでおのずと零細企業での経験になります)。

なんだこの程度かよって思う人もいるかもですが、私は超低学歴ですから、見えない壁 (学歴) がある日本において「自分の頑張りが反映できた」だけでも幸せなんだと思うようにしています。もっと上を目指せば大台突破できそうですが、これ以上となると同じ業界だと「コンサルタント」か「使用者側」しかないんですよね (BizREACH でのオファーを見る限り)。そんなのやれている自分が想像つかない... ですが、まだまだ頑張ろうと思っています。最近ホント頭まわらないくらいの年齢は感じるし... 今後 40 代になっても現役でエンジニアというのは、私には無理な気がするし(笑)

日本だと転職って使用者も雇用者もマイナスイメージを持っていること多いですけど、前向きな転職はいいと思いますよ。私はおすすめです!

posted @ 2018/08/06 2:23 by じゃんぬ

[HoloLens]HoloLensでピン止めされたときにもアプリ名を表示する

HoloLensアプリでタイル表示にしたときにアプリ名が表示されないということでお悩みの貴兄に。

image

きちんと設定すればタイル表示の時にもアプリ名は表示できます。


UnityでHoloLensアプリを作成する場合、最終的にはUnityからUWPプロジェクトを生成して、そのUWPプロジェクトをビルドして実行モジュールを作成します。

このUWPプロジェクトのPackage.appxmanifestで、短い名前の表示で「普通サイズのタイル」にチェックをいれておきます。

image

たったこれだけでこの問題は解決です。


ファイルの内容的にはDefaultTileのShowNameOnTilesのところの記述になります。

image

posted @ 2018/07/06 22:54 by 初音 玲

Microsoft MVP for Windows Developmentを再受賞しました。

2008年の初受賞から11年目10回連続での受賞となります。

途中、審査時期の変更により有効期間が2年近い時期がありましたので、受賞回数と年数に差異がありますが、仕事内容や生活パターンが変わって、アウトプットも「雑誌/書籍執筆」→「blog/サンプルコード公開/アプリ公開」→「Blog/Web記事執筆」→「blog/コミュニティ活動」と変化してきましたが、その都度、周りの方に助けられながら活動してこれた成果だと思います。

特に今回は自分の満足が行く濃度のアウトプットができていなかった時期とかなさっていたため、再受賞は厳しいかもと内心思っておりましたので、再受賞できてよかったと思うと同時に、Microsoft MVPとしての期待値に答えられるように一層精進していこう思いを新たにしております。

今後とも、本ブログを始めとしたさまざまな活動へのご協力をよろしくお願いいたします・

posted @ 2018/07/02 11:04 by 初音 玲

[hardware]MAVIC AIRにも使えるDJI SDKを入手しよう

DJIのドローンでSDKといえば、build 2018で発表されたWindows 10 drone SDKに注目しています。

しかしながら、こちらは2018年秋くらいのリリースということで、9月のMicrosoft Igniteあたりにならないと詳細は出てこないかもしれないですね。

Windows 10 drone SDKがくればWindows 10デバイスで動作する制御アプリも組みやすくなるので、例えば、HoloLensであったり、Windows MRであったり、での活用もしやすくなるので、本当に待ち遠しいですね。

とはいえ、秋まで何もしないのももったいないですから既存のSDKで何か作っていきたいと思います。

SDK利用時のシステム構成

.

作成したアプリはSDKを経由してDJIのリモートコントローラーと接続し、その先のドローンをコントロールすることになります。MAVIC AIRの場合は、SDKから直接ドローンにもWi-FiやBluetooth経由で接続可能です。

App Keyの生成

SDKを使うときにApp Keyeの指定が必要ですが、こちらは、DJIのサイトに登録が必要です。

https://developer.dji.com/mobile-sdk/

登録時の個人認証にはクレジットカードまたはスマホへのSMSへの認証コード送信のどちらかが利用可能です(一時期動いていない時期もありましたが、2018/6/22現在は動作しています)。

登録が完了したらUser Centerにて自分のアプリケーションを登録してコードを取得します。

SDKの入手

現在のSDKはいろいろな種類がでていますが、MAVIC AIRで使うのであればMobile SDKに注目です。

https://github.com/dji-sdk/Mobile-SDK-Android

https://github.com/dji-sdk/Mobile-SDK-iOS

SDK自体はどこにあるかといえば、Mobile-SDK-Android-master\Sample Code\gradle\wrapper\gradle-wrapper.jarがSDKになります。

Xamarin.AndroidでSDKを利用する

jarファイルをXamarinから呼び出すためには、バインディングライブラリを作成してjarファイルをまるっとXamarinのクラスライブラリでラッピングしてあげる必要があります。

image

jarファイルの追加

プロジェクトが生成できたら、Jarsフォルダを右クリックして[追加]-[既存の項目]メニューを選択します。

image

ダイアログが開いたらgradle-wrapper.jarを指定して、Jarsフォルダにgradle-wrapper.jarを追加します。

jarファイルのプロパティ指定

image

jarファイルに対するビルドアクションとして「EmbeddedJar」をしてしてdllにjarファイルを埋め込むようにします。

バインディングライブラリのビルドエラー対策

この状態でバインディングライブラリをビルドしてあげてエラーなくビルドできれば、バインディングライブラリのdllが完成します。

しかしながら、ここでエラーが出ないもののほうが少なく、gradle-wrapper.jarも当然のようにビルドエラーが発生します。

ビルドエラーは3件、すべてCS0535「〇〇はインターフェイスメンバー△△△を実装しません」です。

image

解決方法はいくつかありますが、今回出ているエラーは、「AbstractCommandLineConverter」、「AbstractCommandLineConverterInvoke」、「DownLoad」なので、主要な部分ではなさそうで使わないでもアプリ作れそうですから、とりあえずはなかったことにしてしまって、後日、必要だったらまた考えることにしたいと思います。

そのためには、Metadata.xmlに次の定義を入れておきます。

<remove-node path="/api/package[@name='org.gradle.wrapper']/class[@name='Download']" />
<remove-node path="/api/package[@name='org.gradle.cli']/class[@name='AbstractCommandLineConverter']" />


次回に続きます。

posted @ 2018/06/23 1:43 by 初音 玲

[hardware]MAVIC AIRのコントロールアプリについて

自動代替テキスト��り��ん。

MAVIC AIRの大きさですがA4サイズのノートPCと比較するとこんな感じです。

プロペラのアーム部分が畳めるので格納時はほぼ本体と同じくらいのサイズになります。


DJI GO 4

MAVIC AIRのコントロール用アプリはDJI GO 4になります。App StoreとGoogle Playから入手可能です。

DJI GO 4

DJI GO 4

  • DJI
  • 写真/ビデオ
  • 無料

play.google.com


MAVIC AIR付属のコントローラと接続して使うこともできますし、スマホ単体でも使えます。

スマホ単体で使った場合の画面はこんな感じです。

画����れ��る�能性��るも�:画�

MAVIC AIRの場合、前方や下方だけではなく後方にも衝突回避センサーがついています。

上記の画面では、前方50cmと後方1mに障害物があると表示されています。

posted @ 2018/06/21 0:06 by 初音 玲

[hardware]MAVIC AIR

DJIのドローンは、業務用シリーズがPHANTOM 4、一般向けなシリーズがMAVICとブランドが分かれています。一般向けにはもっと小型のSPARKもありますが、本格的に使うならばMAVICを選択したいものです。

www.dji.com


現在、MAVICには、「PRO」と「AIR」に2つのタイプがあります。名前からするとPROの方が上位機種のように思えますが、2018年1月に発売されたばかりのAIRはPROに勝るとも劣らない機体であるといわれています。

スペック比較

それでは基本的なスペックで両者を比べてみましょう。

項目 MAVIC PRO MAVIC AIR
価格 129,800円 104,000円
重量 743g 430g
最大飛行時間 27分 21分
最大速度 65km/h (Sモード)
36km/h (Pモード)
68.4km/h (Sモード)
28.8km/h (Pモード)
最大伝送距離モバイルデバイス:80m
送信機:4000m~7000m
モバイルデバイス:80m
送信機:500m~4000m
カメラ 3軸ジンバル付き
1200万画素 1/2.3インチCMOS
3軸ジンバル付き
1200万画素 1/2.3インチCMOS
最大動画解像度 4K 30fps 4K 30fps
ビデオビットレート 60Mbps 100Mbps
動画伝送方式 OcuSync 拡張Wi-Fi
動画遅延 160~170ms 170~240ms
SDK あり あり


両社の大きな違いは、最大伝送距離と動画遅延になります。MAVIC PROはドローンを視界にとらえて操縦するだけではなくドローンが見えないくらいの距離であっても映像を見ながら操縦することを想定したスペックになっています。一方のMAVIC AIRはそこの部分は少しライトな仕上がりになっていますが、全体的な基本性能はMAVIC PROと同等といえるでしょう。

つまり、ドローンを視界にとらえられる範囲で楽しむならば、AIRというのは最善の選択になるかもしれません。

SDK

開発者ならば自分で飛ばすだけではなくプログラムにより操作してみたいと思うと思います。

https://developer.dji.com/mobile-sdk/

PROもAIRもSDKが用意されています。

SDKでできる機能としては

  • 上昇下降
  • 各種センサーデータの取得
  • 障害回避
  • カメラとジンバルのコントロール
  • ライブビデオストリーミング
  • 画像ストレージのアクセス
  • ウェイポイント、ホットポイント、フォローミー機能
  • バッテリーとリモートコントローラーのステータス表示と制御


SDKにはiOS用とAndroid用があるので、次回は、ダウンロードしたSDKをXamarinから使う方法を紹介したいと思います。

posted @ 2018/06/20 1:41 by 初音 玲

[Xamarin]Xamarinの共有プロジェクトでXamarin.Forms 3.0を使う

Xamarin.Formsも3.0となり、魅力的な機能がさらに追加されました。

主な新規のは次のようなものがあります。

  • FlexLayout
  • ResourceDictionary
  • 右から左(アラビア語など)のサポート
  • CSS StyleSheet
  • Visual State Manger

Microsoft XAMLではおなじみの「ResourceDictionary」や「Visual State Manager」のサポートもうれしいですが、「FlexLayout」と「CSS StyleSheet」のサポートも魅力的ですね。

例えば、FlexLayoutはコンテンツを折り返しならが横方向に並べてくれるレイアウトで、Gridのようにあらかじめ縦横のマス数を指定しなくてもいいので、可変数のコンテンツを効率よく表示するのに適しています。従来であれば、ListViewのように横幅が一定の1列リストなどしか方法がありませんでしたが、タイル状に表示することが可能になりました。

Xamarin.Forms Layout Types


新規プロジェクトでのXamarin.Forms 3.0の指定

Visual Studio 2017 (15.7.2)で新規に作成したプロジェクトでXamarin.Forms 3.0を使う方法を紹介します。Xamarin.AndroidとXamarin.iOSに共通のロジックは.NET Standard 2.0でDLL化して共有するのではなく、共有プロジェクトでソースコードレベルで共有するスタイルにします。

image

そのためには、CrossPlatform - Xamarin.Formsテンプレートを選択して、空のアプリで「共有プロジェクト」を選択します。

image


この方法で作成したプロジェクトでは、Xamarin.Formsは最初から3.0が設定されています。Xamarin.Formsもnugetパッケージとして提供されていますから、ソリューションエクスプローラーでAndroidのプロジェクトの[参照]フォルダを右クリックして[Nugetパッケージの管理]メニューを選択して、使用されているnugetパッケージのバージョン確認してみましょう。

image

Xamarin.Forms 3.0のnugetパッケージの最新化

テンプレートのXamarin.Forms 3.0は3.0.0.482510ですので、その後に新しいものがでている場合があります。今回も、2018/06/05に3.0.0.530893がでているので、必要に応じてnugetパッケージん更新をしましょう。更新していいかどうかの判断基準は一概にはありませんが、リリースノートなどで判断するのがいいでしょう。

https://developer.xamarin.com/releases/xamarin-forms/xamarin-forms-3.0/3.0.0/


Xamarin.Androidのサポートライブラリの最新化

Xamarin.Androidの場合、さらにXamarin.Android.* (サポートライブラリ)のnugetパッケージのバージョンをどうするかも考える必要があります。

テンプレートで指定されてるサポートライブラリのバージョンは、25.4.0.1となっており、この時の依存関係にあるMonoAndroidバージョンはv7.0となっております。

2018/6/6現在に対応している最新MonoAndroidバージョンはv8.1ですので、最新のものを使うなら、サポートライブラリを最新のv27.0.2にします。


サポートライブラリとAndroid SDKのバージョンの関連

サポートライブラリのバージョンを更新してMonoAndroidのバージョンが変更されたときは、該当するAndroid SDKがイントールされている必要があります。

たとえば、サポートライブラリをv27.0.2にしたいのであれば、事前にAndroid SDK ManagerでSDK 8.1がインストールされていることを確認してください。

image

該当するSDKバージョンがないとnugetでサポートライブラリのバージョンを更新するときにエラーとなります。

image

ターゲットフレームワークの関連

Android SDK v8.1がインストール出来たらプロジェクトのターゲットフレームワークもAndroid 8.1にします。

image

こちらターゲットAndroidバージョンとは別となります。もし(そんなタイミングはすくないでしょうけれど)、ターゲットを最新OSにするのを待ちたいときは、ターゲットAndroidバージョンを明示的に指定することも可能です。

image

2つ指定するのが面倒であれば、SDKのバージョン=ターゲットAndroidバージョンにする「SDKバージョンを使用したコンパイルの使用」という指定もあります。

image


Xamarin.Formsで画面を定義してみよう

それでは試しにFlexLayoutを使った画面を定義してみましょう。

画面定義は、AndoridとiOSで共通化できるところは共有プロジェクト側に記載します。

image

>|html| ||<



Modelなどのロジック部分も完成して実行すればタイル状に画像が表示されるアプリの完成となります。

image

posted @ 2018/06/07 6:48 by 初音 玲

[HoloLens]HoloLensにWindows 10 April 2018 Updateがきました

RS4ことWindows 10 April 2018 UpdateがHoloLensにもやってきました。

HoloLensへの適用は、April 2018 Update済のWindows 10 PCにHoloLensを接続し、Windows Device Recovery Toolを起動して行います。

image


HoloLensのアイコンは正しいけれど「電話」という表示は気にしないでおきましょう。そのうち「デバイス」とかに日本語訳も治らないかな。

image

この画面の見方は、HoloLensのOSバージョンが10.0.17123.1004 (RS4 Preview)で、配布サーバー上のバージョンは10.0.17134.80 (RS4)ということで、更新できるということになります。


あとは、画面の指示に従ってサクッとインストールすれば完了です。

posted @ 2018/05/29 1:16 by 初音 玲

[NUI]Cognitive Service - Speech Service Previewが登場しました

build 2018の初日である2018/5/7にSpeech ServiceがCognitive Serviceに追加されました。

https://azure.microsoft.com/ja-jp/services/cognitive-services/speech-services/


あれ?音声認識ってもともとあったよね?とお気づきの方もいるとは思いますが、従来のものは、Bing Speech APIやCustom Speech Serviceですね。

Bing Speech API:20言語に対応した音声認識

https://azure.microsoft.com/ja-jp/services/cognitive-services/speech/

Custom Speech Service:音響モデルや言語モデル、ノイズ除去などに対応した音声認識

https://azure.microsoft.com/ja-jp/services/cognitive-servic


新しいSpeech Serviceは、Bing Speech、Custom Speech Service、Translator Speech APIを統合したものです。

  1. 一つのキーで
  2. シンプルな価格で
  3. カスタマイズ可能で

というのが特徴です。

従来、「音声認識」についてはCustom Speech Serviceがありましたが、Speech Serviceでは「音声合成」や「翻訳」もカスタマイズ可能になりました。


いま、比較表をつくっているのですが、buildの資料だと音声認識が28言語ってかいてあるんですが、その一覧がのっている資料がなくてちょっと困っているので、ここにあるよ!って情報をお待ちしております。

posted @ 2018/05/10 9:31 by 初音 玲

[HoloLens]HoloLens開発のためのUnityおよびMRTKのバージョン(2019/05/09現在)

UnityとMRTKのバージョンはどれをつかえばいいのかわからなくなる時があるのでメモ。


UnityはUnty 2018もでていますが、2018/04/30に提供が開始されたUnity 2017.4.2f2。

https://unity3d.com/jp/unity/whatsnew/unity-2017.4.2


MRTK (Mixed Reality Toolkit for Unity)は、2017.2.1.4 Patch Release。

https://github.com/Microsoft/MixedRealityToolkit-Unity/releases/tag/2017.2.1.4

posted @ 2018/05/09 2:50 by 初音 玲

[Azure]Azure PowerShellの具体例(例4:Cognitive Serviceの追加)

前準備

http://hatsune.hatenablog.jp/entry/2018/04/11/010156

Azureへのログイン

PowerShellを起動して次のコマンドを入力するとAzureへのログインダイアログが表示されます。

Login-AzureRmAccount

image27_thumb

ここでIDとパスワードを入力してサインインに成功すると対象となるサブスクリプションに接続します。

しかし、複数のサブスクリプションに紐づいている場合は、目的のサブスクリプションにつながらない場合もあります。

その場合は、Get-AzureRmSubscriptionでサブスクリプションIDを調べて、Select-AzureRmSubscriptionを使ってサブスクリプションを指定します。

Select-AzureRmSubscription -SubscriptionId 'xxxx-xxxx-xxxxx-xxxx'

例4:Cognitive Serviceの追加

Azure PowerShellを使って具体的にTranslator Text APIを新規追加する方法を順番にみていきましょう。

(1)リソースグループを新規作成する(既存のものを使うときには省略)
New-AzureRmResourceGroup ?Name myResoureceGroup ?Location ‘Japan West’

image16_thumb5

これでmyResourceGroupという名前で西日本にリソースグループが作成できます。

(2)Translater Text APIを有効化する
New-AzureRmCognitiveServicesAccount ?Name Test_Translator -ResourceGroupName myResoureceGroup -Type TextTranslation -SkuName F0 -Location 'global'

image

これでTest_Translatorという名前で、Translator Text APIが無料プランで有効化できます。

Congnitive Serviceは、以前はどこのリージョンを使うかを指定していましたが、現在は、特定のリージョンへの依存関係のないサービスです。そのため、Locationパラメータの指定は必要ですが指定値は常にglobalになります。

(3)APIキー値を取得する
Get-AzureRmCognitiveServicesAccountKey -ResourceGroupName myResoureceGroup -Name 'Test_Translator'

image

これで取得したどちらかのキー値を使えば、Translator Text APIを使うことができます。持ち主などの認証はありませんので、非常に重要な値といえます。

(4)APIキー値を再作成する

キー値を変更したいようなときは、キー値の再作成を行います。

New-AzureRmCognitiveServicesAccountKey -ResourceGroupName myResoureceGroup -Name 'Test_Translator' -KeyName Key1

image

これでKey1の値だけ再作成を行いました。キー値は2つあり利用はどちらでも同じです。Key1は自分用、Key2は一時的な貸出用などにしておくと、貸し出しが終わったらKey2を再作成するという運用ですみます。

(5)利用できる料金プランを取得する
(Get-AzureRmCognitiveServicesAccountSkus -ResourceGroupName myResoureceGroup -Name 'Test_Translator'
 | Select-Object -expandproperty Value).Sku

image

無料プランのF0、有料プランのS1~S4があることが分かりました。

(6)料金プランを変更する

Set-AzureRmCognitiveServicesAccount -ResourceGroupName myResoureceGroup -Name 'Test_Translator' -SkuName S1

image

これで料金プランだけS1に変更できました。もちろん、キー値など他の要素は変わりません。


指定できるCognitiveServiceについて

New-AzureRmCognitiveServicesAccountのTypeパラメータに指定できるCognitive Serviceの指定値は次のようになっています。

音声認識エンジンの音響モデルをカスタマイズして、アプリケーションの対象となる環境やユーザーに、より適切に合わせることができます(*一部リージョンのみ提供)
1 Bing.Autosuggest.v7 アプリにインテリジェントな自動提案機能を追加
2 Bing.CustomSearch 簡単に使用できる、広告なしの商用グレード検索ツールで、お好みの検索結果を得ることができます
3 Bing.Search.v7

Bing Search API (Web、Image、Video、News) と Entity Search

4 Bing.Speech 音声をテキストへ、またそのテキストを再び音声に変換し、ユーザーの意図を理解
5 Bing.SpellCheck.v7 アプリでのスペル ミスを検出して修正
6 ComputerVision 画像から意思決定に役立つ情報を抽出 (*一部リージョンのみ提供)
7 ContentModerator 画像、テキスト、ビデオを自動モデレート (*一部リージョンのみ提供)
8-Custom Decision Service (プレビュー)に対応した指定はありません。
9CustomSpeech
10 CustomVision.Prediction 画像分析、タグ付け、著名人の認識、テキスト抽出、およびスマート サムネイル生成などの機能があります。
11 CustomVision.Training 画像分析、タグ付け、著名人の認識、テキスト抽出、およびスマート サムネイル生成などの機能があります(southcentralusのみ)
12Emotion

プレビュー。一般提供はFaceAPIへ統合。

感情認識を使用してユーザー エクスペリエンスをパーソナライズ

13Face写真に含まれる顔の検出、識別、分析、グループ化、タグ付け (*一部リージョンのみ提供)
14LUISユーザーが入力したコマンドをアプリケーションが理解できるようにします (*一部リージョンのみ提供)
15QnAMaker*別の仕組みになったため?指定不可
16SpeakerRecognition音声を使用して個々の話者を識別および認証 (*一部リージョンのみ提供)
17SpeechTranslationリアルタイムの音声翻訳を簡単に実行
18TextAnalytics未加工テキストの高度な自然言語処理に対応しています。感情分析、キー フレーズ抽出、言語検出の 3 つの主な機能があります。 (*一部リージョンのみ提供)
19TextTranslation機械翻訳を簡単に実行
20WebLM*Web Language Model APIはCognitive ServiceからAzure Machine Learning Studioに変更になったため指定不可

残念ながら、この一覧を取得するコマンドはないのですが、Cognitive Serviceは今後も増えていく予感がしますし、Emotion APIがFace APIへ統合されるたように統廃合もあるでしょうから、指定できるTypeの一覧などがあると指定値に悩まなくてよい(まあ、ドキュメントサイトみましょうってことなのでしょうけれど)ですね。

現時点で指定できるAccountTypeでCognitive Serviceを有効にしていくと次のような感じで作成できます。

image

以上、コマンドラインによるCognitive Serviceの追加でした。各ユーザがもっているサブスクリプションに同じ定義で追加したいときとかも便利ですね。

posted @ 2018/04/22 22:33 by 初音 玲

[Azure]Azure PowerShellの具体例(例3:ストレージの追加)

前準備

http://hatsune.hatenablog.jp/entry/2018/04/11/010156

Azureへのログイン

PowerShellを起動して次のコマンドを入力するとAzureへのログインダイアログが表示されます。

Login-AzureRmAccount

image27_thumb

ここでIDとパスワードを入力してサインインに成功すると対象となるサブスクリプションに接続します。

しかし、複数のサブスクリプションに紐づいている場合は、目的のサブスクリプションにつながらない場合もあります。

その場合は、Get-AzureRmSubscriptionでサブスクリプションIDを調べて、Select-AzureRmSubscriptionを使ってサブスクリプションを指定します。

Select-AzureRmSubscription -SubscriptionId 'xxxx-xxxx-xxxxx-xxxx'

例3:ストレージの追加

Azure PowerShellを使って具体的にBLOBを新規追加する方法を順番にみていきましょう。

(1)リソースグループを新規作成する(既存のものを使うときには省略)
New-AzureRmResourceGroup ?Name myResoureceGroup ?Location ‘Japan West’

image16_thumb

これでmyResourceGroupという名前で西日本にリソースグループが作成できます。

(2)ストレージアカウントの作成
New-AzureRmStorageAccount ?StorageAccountName 'mystorage0409' ?Location 'Japan West' ?ResourceGroup myResoureceGroup ?SkuName 'Standard_LRS' ?Kind storage

image

西日本に'Standard_LRS'=ローカル冗長ストレージでストレージアカウント「mystorage0409」を作成しました。

SkuNameにはレプリケーションを指定するので、その他にも次のような指定が可能です。

SkuName レプリケーション
Standard_LRS ローカル冗長ストレージ
Standard_ZRS ゾーン冗長ストレージ
Standard_GRS 地理冗長ストレージ
Standard_RAGRS 読み取りアクセス地理冗長ストレージ
Premium_LRS Premium(SSD)ローカル冗長ストレージ

通常はローカル冗長、スピードが必要ならPremiumローカル冗長、データセンタのゾーン全体が死んでもデータの持続性を担保したいならゾーン冗長、データセンター丸ごと死んでもということであれば地理冗長を選択しましょう。

詳細は下記のドキュメントを参照してください。

https://docs.microsoft.com/ja-jp/azure/storage/common/storage-redundancy

もし、ストレージに対してhttpsでのアクセスのみを許可したいときは「-EnableHttpsTrafficOnly $True」を付与しましょう。


作成したストレージアカウントをAzure Portalで確認してみましょう。

image

(3)BLOBコンテナの作成

ストレージアカウントができているので、次にやる作業はBLOBサービスにBLOBコンテナを作成することです。

New-AzureRm・・・のようなリソースマネージャー関連コマンドではなくなってしまいますが、次のようなコマンドでBLOBコンテナが作成できます。

$storageAccount = Get-AzureRmStorageAccount ?Name 'mystorage0409' ?ResourceGroupName myResoureceGroup
$ctx = $storageAccount.Context
New-AzureStorageContainer ?Name 'myblob' ?Context $ctx ?Permission blob

image

これで、パブリックアクセスレベルが「BLOB専用の匿名読み取りアクセス」のmyblobというBLOBコンテナが作成できました。

(4)BLOBファイルのアップロード

BLOBコンテナができたので、ローカルPCにあるファイルをアップロードしてみましょう。

$storageAccount = Get-AzureRmStorageAccount ?Name 'mystorage0409' ?ResourceGroupName myResoureceGroup
$ctx = $storageAccount.Context
Set-AzureStorageBlobContent ?Container myblob ?Blob 'Icon09.png' ?Context $ctx ?File 'C:\Users\hatsune\Pictures\icon09.png'

image

これでローカルPCのファイルがAzure上のBLOBコンテナに入りました。

(5)BLOBコンテナの内容一覧

BLOBコンテナにあるBLOBファイルの一覧を表示してみましょう。

$storageAccount = Get-AzureRmStorageAccount ?Name 'mystorage0409' ?ResourceGroupName myResoureceGroup
$ctx = $storageAccount.Context
Get-AzureStorageBlob -Container "myblob" -Context $ctx

image

パブリックアクセスレベルが「BLOB専用の匿名読み取りアクセス」となっているので、BLOBファイルへのURLを公開すれば誰でもが参照のみ可能となります。

(6)アクセスキーの取得

参照は誰でもができますが、一部の人には更新もできるようにしたい場合があります。

しかしAzureサブスクリプションに対するアクセス権を渡してしまうのは大げさです。

そのような場合は、ストレージアカウント名とキーを渡してあげて、Azure Storage Explorerなどを使ってもらうといいでしょう。

詳細は:http://hatsune.hatenablog.jp/entry/2018/03/08/065243


Get-AzureRmStorageAccountKey -Name mystorage0409 -ResourceGroupName myResoureceGroup

image

mystorage0409という名前と、key2の値を更新者に渡してあげるといいでしょう。

注意(2018/04/15現在)

今回、ストレージアカウントのアカウントの種類としてstorageを指定したがblobstorageを指定したいときは注意が必要だ。

1つもストレージアカウントがない状態でblobstorageを作成するとBLOBコンテナが作成できないストレージアカウントができてしまう。

1つでも作成した後であれば正常に動作する。

New-AzureRmStorageAccount -StorageAccountName 'mystorage0409' -Location 'Japan West' -ResourceGroup myResoureceGroup -SkuName 'Standard_LRS' ?Kind storage
New-AzureRmStorageAccount -StorageAccountName 'mystorage0410' -Location 'Japan West' -ResourceGroup myResoureceGroup -SkuName 'Standard_LRS' -Kind BlobStorage -AccessTier Hot

Azure Portalで作成したときは大丈夫なので、Azure PowerShellに何らかの問題があるのかもしれないが注意した方がいいでしょう。





posted @ 2018/04/15 21:02 by 初音 玲

[Azure]Azure PowerShellの具体例(例2:接続先サブスクリプションの変更)

前準備

http://hatsune.hatenablog.jp/entry/2018/04/11/010156

Azureへのログイン

PowerShellを起動して次のコマンドを入力するとAzureへのログインダイアログが表示されます。

Login-AzureRmAccount

image27_thumb_thumb

ここでIDとパスワードを入力してサインインに成功すると対象となるサブスクリプションに接続します。

しかし、複数のサブスクリプションに紐づいている場合は、目的のサブスクリプションにつながらない場合もあります。

その場合は、サブスクリプションを指定してログインしてもいいのですが、Login-AzureRmAccountでのサブスクリプション指定には、そもそもとしてサブスクリプションIDが必要です。サブスクリプションIDを調べるのにブラウザでAzure Portalにログインするのも本末転倒な気がします。

そこで便利なのが、Get-AzureRmSubscriptionです。

Get-AzureRmSubscription

image_thumb1

これでサブスクリプションIDが分かったので、使いたいサブスクリプションを指定します。指定は、サブスクリプションIDでもサブスクリプション名でもいいのですが、サブスクリプションID指定をよく使います。

Select-AzureRmSubscription -SubscriptionId 'xxxx-xxxx-xxxxx-xxxx'

Select-AzureSubscriptionがいわゆるclassicと呼ばれているもので、Select-AzureRmSubscriptionがAzureリソースマネージャーによる指定となります。

注意点

Select-AzureRmSubscriptionはあくまでもAzureリソースマネージャーによるサブスクリプションの変更です。

この方法で接続およびサブスクリプション指定した場合は、以降のコマンドもhogehoge-AzureRmHogehogeのように「Azure」でなく「AzureRm」系のコマンドを使う必要があります。

posted @ 2018/04/15 16:26 by 初音 玲

[Azure]Azure PowerShellの具体例(例1:WebAppsの追加)

前準備

http://hatsune.hatenablog.jp/entry/2018/04/11/010156


Azureへのログイン

PowerShellを起動して次のコマンドを入力するとAzureへのログインダイアログが表示されます。

Login-AzureRmAccount

image27

ここでIDとパスワードを入力してサインインに成功すると対象となるサブスクリプションに接続する。

もし、複数のサブスクリプションがある場合は、サブスクリプションを指定して実行するといいでしょう。

Login-AzureRmAccount ?subscription xxxxxx-xxx-xxx-xxx-xxxx
image10


例1:WebAppsの追加

それではAzure PowerShellを使って具体的にWebAppsを新規追加する方法を順番にみていきましょう。

(1)リソースグループを新規作成する(既存のものを使うときには省略)
New-AzureRmResourceGroup ?Name myResoureceGroup ?Location ‘Japan West’

image16

これでmyResourceGroupという名前で西日本にリソースグループが作成できます。

(2)フリープランでApp Serviceプランを作成
New-AzureRmAppServicePlan -Name ’mywebapp0409' ?Location ‘Japan West’ -ResourceGroupName myResoureceGroup -Tier Free

image21

App Service プラン名が「mywebapp0409」のApp Serviceプランを西日本に作成しました。

(3)Webアプリを作成
New-AzureRmWebApp -Name ’mywebapp0409' ?Location ‘Japan West’ -AppServicePlan ’mywebapp0409’ -ResourceGroupName myResoureceGroup

App Webアプリ名が「mywebapp0409.azurewebsites.net」のWebアプリを西日本に作成しました。

(4)発行プロファイルの取得
Get-AzureRmWebAppPublishingProfile -Name ’mywebapp0409' -ResourceGroupName myResoureceGroup ?outputfile “outputfile”

image29

これでoutputfileという名前で発行プロファイルが保存できます。

image34

(5)Webソケットの有効化
Set-AzureRmWebApp ?Name 'mywebapp0409' -ResourceGroupName myResoureceGroup ?WebSocketsEnabled true

これでWebソケットが使えるようになります。

(6)アプリケーション設定
$AppSettings = @{"ClientId"="id";"Password"="pass"}
Set-AzureRmWebApp ?Name 'mywebapp0409' -ResourceGroupName myResoureceGroup ?AppSettings $AppSettings 

image

アプリケーション設定にClientIdとPasswordを設定しました。アプリケーション設定を定義することでWeb.Configに設定した設定値を書き換えることができます。

さいごに

あとはWebアプリをデプロイすればOKです。

Azureでは、デプロイオプションとしてWeb Appsへのデプロイ元が選択できます。VSTS、onedrive、ローカルGitリポジトリ、GitHub、Bitbucker、DropBoxなどから選択できます。もちろん自社内のGitを指定することも可能です。

これにはローカルgitやgithubと組み合わせてとかもできます。

Visual Studioからデプロイしてもいいでしょう。

このあたりは機会があれば、別の機会にご紹介したいと思います。

posted @ 2018/04/14 2:01 by 初音 玲

[Azure]Azure PowerShellを使ってみよう

Azure Cognitive Serviceを使ったクライアントアプリを作成するときに、Azure側でサービスを有効化しようとするとAzure PortalからGUIで操作が必要です。

知っている人ならば簡単でしょうけれど、知らない人に操作を伝えようとすると画面のハードコピーを取得して、それをペタペタと貼り付けて「手順書」なるものを作らなければならない場合があります。

しかし、クラウドですからちょっとしたタイミングでAzure Portalが改善され見た目が変わったときに、元の手順書から類推できる人ならばいいのですが、ちょっとでも違っているだけで「画面が違う」というクレームを人がいたりするわけです。

Azure Cloud Shell

Azure PortalにもAzure Cloud Shellというコマンドラインでの操作方法があります。

ポータルの起動

このツールのいいところは特に何かインストールしなくても使える点です。

しかし、Azure Cloud Shellを使うにはMicrosoft Azure Files ストレージを使用するためのセットアップと低額ですが維持費用が掛かる点を嫌がるケースもあります。

そのようなときはクライアントにAzure PowerShellをインストールするのがよいでしょう。

Azure PowerShell

Azure PowerShell を PowerShell ギャラリーからインストールできます。

しかし実際にやってみたらちょっと面倒だったので、Web Platform Installerを使った方がいいでしょう。

http://aka.ms/webpi-azps

image

image

Azureへのログイン

PowerShellを起動して次のコマンドを入力するとAzureへのログインダイアログが表示されます。

Login-AzureRmAccount

image

ここでIDとパスワードを入力してサインインに成功すると対象となるサブスクリプションに接続する。

もし、複数のサブスクリプションがある場合は、サブスクリプションを指定して実行するといいでしょう。

Login-AzureRmAccount ?subscription xxxxxx-xxx-xxx-xxx-xxxx
image

posted @ 2018/04/11 1:01 by 初音 玲

Microsoft Visual Basic 6.0 環境構築 2018年版

今更感ありますが、20年前の製品がまだ使えるっつうのもすごいものだなぁ。 最新は2004年のVB6SP6・・・14年もの・・・

posted @ 2018/04/07 13:33 by まーる

わんくま名古屋N44はじまたー

いつものごとく、わんくま名古屋の時だけ更新になっていますが・・・

セッションは以下3つ、LTはだれが何をやるでしょうかたのしみですねぇ。

  • 「業務システム開発モダナイゼーションガイド」 by You&Iさん
  • 「Microsoft Visual Basic 6.0 環境構築」 by You&Iさん
  • 「ASP.NETでする多言語対応」 by 中博俊

posted @ 2018/04/07 13:06 by まーる

[Windows 10]Windows 10 Ver 1803 (Build 17133.1)

Windows 10 Insider Preview Fast RingにBuild 17133.1がきました。

デスクトップ右下のPreview表示がなくなりましたので、これがRS4の正式版かな?

posted @ 2018/03/31 13:42 by 初音 玲

[Azure]別アカウントのAzure BLOBにアクセスする

自分のAzureサブスクリプションにあるAzure Storageにアクセスするには、Azure PortalやAzure Storage Explorerなど様々な方法がありますが、コンテナにたどり着くルートは次の3つの方法があります。

  1. IDとパスワードとサブスクリプションを指定して、ストレージアカウント名→BLOB→コンテナ
  2. 接続文字列を指定→BLOB→コンテナ
  3. ストレージアカウント名とアクセスキーを指定→BLOB→コンテナ


この中で1の方法はBLOB以外の資源へのアクセス権も得てしまうので自分以外の人には使わせることができないルートになります。

一方、2や3の方法であれば、例えば、データファイルを入れてほしいときなどに「接続文字列」や「ストレージアカウント名とキー」をお知らせして、Azure Storage Explorerからファイルをアップロードしてもらうと手軽です。

複数のお客様とのやりとりも

  1. お客様ごとにストレージアカウントを作成
  2. 接続文字列をお客様にお知らせ(お客様ごとに異なる値になる)
  3. お客様はAzure Storage Explorerを使ってファイルエクスプローラ感覚で指定の場所にファイルを配置

で済んでしまいます。


実際の手順は以下のようになります。

(1)

image

[ストレージアカウント]-[BLOB]-[コンテナ]にあるファイルを確認します。


(2)

image

該当ストレージアカウントの接続文字列を取得します。


(3)

Azure Storage Explorerを起動してAzureとの接続には「Use a connection string a shared access signature URI」を選択します。これで接続文字列指定の接続が可能になります。

image


(4)

image

接続文字列を貼り付けます。


(5)

image

Azure Portalにあったファイルが確認できます。

ここでAzure Storage Explorerをつかってファイルを1個追加してみましょう。

image

image


(6)

ちゃんとAzure側に入ったか確認しましょう。

image

きちんとはいりましたね!

posted @ 2018/03/08 6:52 by 初音 玲

新年のご挨拶

あけましておめでとうございます。

昨年は音声認識と翻訳というCognitiveな領域、そしてxR(AR/VR/MR)をメインにお仕事をさせていただきました。

本年も引き続き突き進んでいきます。

コミュニティー活動についてもHoloMagiciansを始めとして様々なコミュニティーのお手伝いをしていきたいと思いますので、お気軽にお声がけください。

posted @ 2018/01/02 8:33 by 初音 玲