わんくま同盟 Blog's

わんくま同盟

メニュー

わんくま同盟

  勉強会情報

  メンバリスト

掲示板

ブログ

リンク

統計

わんくま同盟メンバ

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

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

静岡Developers勉強会の「UnityとBlenderハンズオン第4章」の資料公開

2015/05/23(土) 13:00~17:00に、静岡Developers勉強会 UnityとBlenderハンズオンが行われる島田市地域交流センター歩歩路(ぽぽろ) 第4会議室には7名が集まりました。

今回のUnityはシューティングゲームで、Unity公式のチュートリアルです。
Unity公式のチュートリアルなんですが、古いバージョンのままなのでプロジェクトをダウンロードしてもエラーとなってしまいます。今回の資料作成はチュートリアルのチュートリアルで差分だけ作れば楽出来ると思ってたんですが、結局12章までマメに作成してしまい、膨大な為かなり心が折れつつもなんとか完成させました。
今回はUnityだけで12章まであるので、4時間だと1章平均20分でやればこなせるだろうと、その為、今回はBlenderは間に合わないとして次回に持ち越すことにしました。

いざセッションをやってみると、思い通りに動かないなどでつまずいてしまうところがあるわけです。その場合、まわりでフォローしながら解決したりしていきます。
それでも自分としては最後まで終わらせようとペース配分を考えながら進めていきました。しかし、終了30分前で11章の前半まではやれたものの、残り30分で全て終わらせるのは無理だと判断しました。 次回の6月はミニゲーム発表会として、これまで学んだことを実践して作成してもらう予定でいたのですが、皆と相談して次回はシューティングゲームの10章、11章、12章とBlenderの続きをやることにして、ミニゲーム発表会は7月に延期しました。

今回のセッションの反省点として、時間内で終わらせようとペースを早めた結果、理解する前にマウスの操作しているのに忙しいとのことだったので、毎月継続してやるわけだし次からは無理に時間内で終わらせようとしないで、余裕をもたせるようにしようと思いました。

UnityとBlenderハンズオン第4章 from yaju88

posted @ 2015/05/25 2:46 by やじゅ

[Hardware]飛ぶのがダメなら潜ればいいじゃない

空飛ぶドローン界隈が騒がしい日本ですが、まあ墜落という危険性を考えるとアンコントロールになっても滑空したりそもそも素材や質量がもっと軽くないとToyとしては危険なのかもしれませんね。やはりラジコン飛行機と同じように飛行場でのフライトがいいのかもしれません。

じゃあということではありませんが、空撮がダメなら水中撮影なんてのはどうでしょうか。
今回ご紹介するのはCES2015で登場し間もなく発売が開始されるTTR-SB SEAWOLFです。

SEAWOLF | TTRobotix

http://ttrobotix.com/img/SF_pdp.png

どうやら台湾にいくと実機が見れるらしいですよ。

水中でどうやって電波通すんだろうと思ったら、水面に小型ボート(たぶん、写真の右下の赤いの)を浮かべておき、そこから10mのケーブルをこの水中ドローンまで接続しておくようです。

小型ボートとの間は、2.4GHzモデル、5.8GHzモデル、もしくはケーブル接続モデルがあるようです。

2.4GHzモデルはスマホでコントロール、5.8GHzモデルなら8インチのリアルタイム映像付きコントローラになっています。ケーブル接続モデルなんて滋養があるのかなと思ったら30mケーブル付きで5.8GHzモデルと同じようにリアルタイム映像みれるので有線気にならないならこっちの方が安定してレスポンスもいいのかも。
さらにGoPro積んで水中撮影もいけるようですよ。

2.4GHzのスマホアプリは、Android版がありますね。でも、なんでGoogle Playじゃなくてapk直接配布なのはなんでだろう。

とにかく手軽に水中の状態が確認できるし3km/h=0.83m/sということで1秒間に80cmも進める高速性も魅力的です。

かなりサイズ大き目だし重量も8kgくらいあるみたいで、まだ価格とか掲載されていないようですが手ごろな価格帯で手に入るといいですね。

posted @ 2015/05/23 18:43 by 初音 玲

[Netduino]Netduino連載の6回目が公開されました。

www.buildinsider.net

I2C接続機器を複数台使うときに方法について解説しました。

以外にあるようでない複数台利用時のI2Cライブラリの使い方の情報になります。

buildinsiderの記事ページで「いいね!」とか「ツイート」して頂けると嬉しいです。

posted @ 2015/05/22 22:29 by 初音 玲

[AED]「Meets IT and AED 2015 札幌」を振り返って

kokucheese.com

2015/05/16(土)に、CLR/HさんやWindows女子部さんと一緒に開催した「Meets IT and AED」の振り返りエントリになります。

togetter

togetter.com

当日は、キーノート→CPR実習→グループディスカッション→AED実習→LT大会→ハンズオン→技術セッションという流れで進行しました。

首謀者3人で何度も長さや順番を試行錯誤しただけあって、この流れすごく良かったと思います。

それでは順番に振り返ってみます。

1)キーノート

Meets IT and AED キーノート 20150516 from Akira Hatsune

www.slideshare.net

  • キーノートでは主に次の点をお話してAEDを取り巻く現状を共有できることを心がけました。
  • 一般の人がAED使えるようになってから10年
  • 国内40万台以上、一般の人が使えるのも20万台以上、だけど単品管理できてないので約数しか分からない。
  • どこにあるかの届出も必須じゃない

また、AEDオープンデータプラットフォームについても現況を報告。

  • AEDの使用率は881/23797=3.7%。でもこれは目撃者があるときの使用率。心停止者全体からみたら881/73023=1.2%。
  • AEDオープンデータプラットフォームは、網羅率15.6%、市町村区カバー率26%
  • 最新状況で、310~2000/時間くらいの利用率。リソース負荷は5~10%。
  • ほぼ課金なしで運用している。実際、82円/日くらいの課金→無償利用枠で課金なし。

参加者にIT関係者/開発者が多かったからか、DBの論理破壊や物理破壊からバックアップ使ってリカバリーする試験もしているというところで一番反応あったのが印象的でした。

2)CPR実習

https://pbs.twimg.com/media/CFGEi67VIAAwNX9.jpg

さて本日のメインとも言えるCPR実習です。

CPR実習、つまり、胸骨圧迫を含んだ心肺蘇生法(CardioPulmonary Resuscitation)実習ですね。

リトルアン使って、実際に1分間に100回のPushを行う。これ実際に体験してみるとすごく体力使うし、普段、どうすれば力を伝えることができるのかとか運動してないとうまくできないんです。

両手を合わせて肩と腕で▽を作って真上から押す!

この体験があるからこそ、CPRの局面でITがどういう力添えができるのか見えてきた参加者も多かったと思います。

私も何か月かぶりにやってみましたが、体が覚えていてくれたので指導員の方に褒められましたw

3)グループディスカッション

「CPRやAEDのUX」「使用率はどうすれば上がる?」といった点についてのグループディスカッションを行いました。

通常、日本でのグループディスカッションって意見があまりでなかったり、取り組む人とそこにいるだけの人っぽくなってしまうこともありがちなのですが、今回は皆さんすごく意見がでていてグループ発表も面白かったです。

グループ発表

  • AEDを知ってもらうためには、萌えキャラ展開がいいんじゃないか。
  • 消火器と同じように練習つまないと→消防訓練のときに必ずAEDの練習も入れる
  • UXとしての萌えキャラ。CPRがんばっていると応援してくれる
  • AEDが探せる&AEDが使えるの2つが揃って初めて人が助けられる
  • なぜ使用率が低いか(使い方を知らない、AEDを使うかどうかの判断ができない、使ってはいけないという雰囲気がある、場所が分からない)
  • コンビニに設置する
  • AEDの使い方を学ぶために、館で次々に人が心配停止してAEDで助けていくゲーム
  • ingressと絡めてAEDの存在チェックができたらいいじゃないか?
  • そもそも「緊急時以外使用禁止」って表示はどうなの?
  • 製造番号とかそういったものが外から見えないとか変だよね
  • Beacon使って位置をスマホに知らせてそこからAEDオープンデータにPINGしたら?

グループ発表に対して、コンビニ設置は場所がすぐに思い浮かぶし、コンビニの設置戦略とAEDの設置目標(300mごとに)は近いものがあり取り組みをしている自治体もあることをフィードバックしました。

4)AED実習

www.youtube.com

AED実習では、胸骨圧迫の交代とかも含めて実際に実習用AEDを使って実施。

大人用パッドだけだったときに子供にはどう使うかとかも含めて実践的な内容で体験して頂きました。

迷ったらAEDをつけてAEDに聞く!だからAEDを素早く現場に運ぶ

という意識が芽生えてくれたのではないでしょうか。

5)LT

https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-xat1/v/t1.0-9/p180x540/11107743_10204201568826996_6632961118272615229_n.jpg?oh=567efd872c568e4626c142df87f58939&oe=55C36D92&__gda__=1439499411_7ba070bfaad4b97026ee42a3f9ead6fe

おやつ食べながらLT。実際はこの写真のいちご大福は午前中に食べてしまったので、また別のおやつを食べました(次の準備で写真撮ってなかったですw)

6)ハンズオン

github.com

Meets IT and AED ハンズオン 20150516 from Akira Hatsune

www.slideshare.net

AEDオープンデータAPIをJavaScriptから使うハンズオンを開催しました。

まずは全県の公共機関と民間を網羅している千葉県さんを表示。もう千葉県の形にAEDが広がっているのに驚嘆しちゃいますね。

続いて北海道。まだまだデータ投入が少なくぽつーんと。

目指せ千葉県ですね。

7)技術セッション

Meets IT and AED AED検索を実現している技術 20150516 from Akira Hatsune

www.slideshare.net

最後は、AED検索のクラウド側とデバイス側についてのセッションを実施しました。

クラウド側であるAEDオープンデータプラットフォームはRESTfulを実現しているが更新系はまだ未公開、でも更新系のアプリ作ってくれる人には公開するよというお話をさせていただきました。

クライアント側は、まだストアにあげていないXamarin.Androidを使ったAndroid版AED検索も実際に体験してもらいました。

Windows版は、Windows 10とWindows 10 MobileでWindows8版のUniversal Windows Appを体験して頂き、ちょっと未来の操作感を感じて頂けたのではないかと思います。

10年かけて年間881人の命を救えるようにまでなったAED。今後、CPRをより多くの人が実践するようになったり、AED使用率をさらに上がるためにIT技術者や開発者ができる事は多いのではないかと考える種を蒔けたのではないかと思います。

そして、今回参加した方は、目の前で人が倒れたときに一次救護者になったり積極的に協力したりできるようになったんじゃないかと感じました。

posted @ 2015/05/21 16:29 by 初音 玲

[Hardware]PLENがおうちにやってきた

plen.jp

Kickstaterで事前予約が完売!という大人気のPLEN 2。この秋の登場が待ち遠しいですね。

そんなPLENのアプリをつくのに必要だったので、PLEN 2の1つ前、つまり現行モデルのPLEN試作版をお借りしました。

ありがとうございます。

お借りしたのは組み立てキットになっているので、後日、記録を取りながら組み立てます。

P5190513

さて、注目のPLENのメインボードですがこんな感じです。

P5190514

Arudiino UnoやNetduino Plus 2を半分にしたくらいの大きさです。

このボード時代はArduino互換とのことですので、いろいろ楽しみです。

posted @ 2015/05/19 22:43 by 初音 玲

[Netduino]Netduino連載の5回目が公開されました。

www.buildinsider.net

I2C使った出力になります。このLCDの情報をなかなか読み解けずに。。。分かってしまったら楽でした(笑)

posted @ 2015/05/15 17:34 by 初音 玲

[Hardware]Olympus AIRでの今日の1枚

P5150486

posted @ 2015/05/15 17:27 by 初音 玲

[Hardware]Olympus AIRにいろいろレンズつけてみた

量販店さんの店頭で(店員さんにちゃんと言ってから)試してみました。

被写体がその場にあったカメラレンズであることはご了承くださいw

 

P5150500

OLYMPUS 単焦点レンズ M.ZUIKO DIGITAL ED 75mm F1.8 ブラック

 

P5150501

OLYMPUS 単焦点レンズ M.ZUIKO DIGITAL 45mm F1.8 シルバー

 

P5150499

OLYMPUS M.ZUIKO DIGITAL 25mm F1.8 ブラック マイクロフォーサーズ用 単焦点レンズ

 

あとはズーム系しかなかったので。

フォーサイスのレンズがつくマウントあったからそれでフォーサイスのマクロレンズも試してみたらよかったのかな。

posted @ 2015/05/15 17:09 by 初音 玲

[Hardware]VR旅プロジェクト(仮称どこでもxxx)

360度動画のリアルタイム映像配信は大変そうだけれど
ロボットにOvrvisionをつけて遠隔操作可能にしておき、それをリアルタイム配信&Oculus Rift DK2で視聴。
Oculus側のヘッドトラッキングをロボット側に伝えてOvrvisionの方向を変えてあげる。
移動も筋電とかで移動制御する。

これで外出が困難な病気の人とかに外の世界を自由に歩き回るソリューションを提供できそうな。

OPCbrickEV3でカメラつんだEV3をリモートコントロールしてプレビュー見れるようにとかやったので、基本的にはその延長。
EV3の操作もKinebrickEV3でKinect使って上半身の動きだけでコントロールできるようにしてあったし。
Ovrvision手に入れるかな。

http://ovrvision.com/

って、こうやってデバイス貧乏を拗らせるwww

posted @ 2015/05/14 11:51 by 初音 玲

[Windows10]Windows 10の7つのエディションまとめ

Windows 8.1 SKU Windows 10 SKU
Windows 8.1 Enterprise Windows 10 Enterprise
Windows 8.1 Pro Windwos 10 Pro
Windows 8.1 Windows 10 Home
Windows 8.1 for Education Windows 10 Education

Windows Phone 8.1

Windows 8.1 RT

Windows 10 Mobile / Windows 10 Mobile Enterprise
Windows Embedded 8.1 Industry/Pro (Windows 10 Enterprise for industry device)
Windows Embedded Handheld (Windows 10 Mobile Enterprise for industry devices)
Windows on Devices Windows 10 IoT Core

posted @ 2015/05/14 11:08 by 初音 玲

[Hardware]Duet DisplayでWindowsのサブディスプレイとしてiOS端末を使おう

Duet DisplayはiOSデバイスとWindowsマシンをLightningケーブルで接続して、WindowsのサブディスプレイとしてiOS端末を使うアプリです。

アプリはiOS側とWindows側があり、iOS側のアプリはiTunesから$9.99=1200円でダウンロードし、Windows側は無料でダウンロードできます。

 

image

Windows側のインストールが完了してリブートしたあとに、Duet Displayを起動したiOSデバイスをLightningケーブルで接続すればiOSデバイスをディスプレイとして認識してくれます。

image

 

実用性を抜きにすれば出力先はiPod TouchでもOKです。

WP_20150513_003

 

もちろんアプリも表示できますし、タッチ操作できます。

WP_20150513_004

posted @ 2015/05/13 22:23 by 初音 玲

[Netduino]Netduino連載の4回目が公開されました。

www.buildinsider.net

?

第4回目はI2C入力について取り上げました。

Arduinoに比べてNetduinoでは情報が少ないI2Cについて汎用クラスの作成も含めて紹介しています。
BuildInsiderの掲載ページでの「いいね!」「ツイート」「はてブ」もよろしくお願いします。

posted @ 2015/05/12 13:11 by 初音 玲

[AED]Meets IT and AEDが日本心臓学会の心臓関連イベントに掲載されました。

今週土曜日のイベントが日本心臓学会の心臓関連イベントに掲載されました。
http://www.jhf.or.jp/heart_news/2015/003868/

当日のタイムテーブルは次のようになっています。

当日は可能な限りWindows 10 Techical Previewを使ってお話させていただきます(AED検索はWindows 10でもWindows 10 for Phoneでも動作検証済)。

10:00-10:15 開場・受付 ?
10:15-10:30 キーノート 本日の主旨、AED利用率、AED設置状況、AEDオープンデータプラットフォームの状況を踏まえ、開発者が今後AEDやCPRに関するアプリを作る際に、今回の取り組みがどう活かせるのかの未来をお話します。
10:30-11:45

CPR+AED体験

(第一部)

3人チームで、発見からAED利用までの流れを模擬体験します(役割交代で3回実施)。
11:45-12:45 昼食
12:45-13:15 グループでアイデアディスカッション
13:15-13:45 アイデア発表
14:00-15:00

CPR+AED体験

(第二部)

3人チームで、発見からAED利用までの流れを模擬体験します(役割交代で3回実施)。
15:00-15:30

"おやつタイムLT大会"

CLR/H

15:30-16:00 AEDオープンデータAPIハンズオン AEDオープンデータプラットフォームのデータを使って地図に表示してみよう。
16:10-16:40

AED検索を実現している技術

AED検索を実現している、AEDオープンデータプラットフォーム(Azure)、Windowsストアアプリ(C#)、Androidアプリ(Xamarin)などを実現している技術を解説します。
16:40-17:00 撤収
17:30-19:30 懇親会

まだまだ参加枠には余裕がありますのでぜひご参加ください。

http://kokucheese.com/event/index/284223/

posted @ 2015/05/12 12:24 by 初音 玲

[Hardware]Olympus AIRでの今日の1枚

P5090460

posted @ 2015/05/09 19:04 by 初音 玲

なぜ「小数点」を「少数点」と間違えるのか

仕事で仕様書を見ると「少数点」という誤字をたまに見かけることがある。またネットで小数点について検索すると技術系ブログでも誤字をよく見かける。まだ文章中に「小数」と「少数」が混在しているならいいが、タイトルとして「少数点」と書かれていると萎える。

今回、このテーマで書く上で改めて「少数点 javascript|Perl|C#|PHP|Ruby|VB|Excel」のキーワードの完全一致で検索したり、「少数点 仕様書」のキーワードの完全一致で検索してみた。
ちょっと驚いたのが、公的機関である県や市役所等の資料で「少数点以下」等の誤字が出てくることであり、特に電力関連に多くみられる。市役所の方だって人間であるから間違えることはあるだろうが、一般的には教養がある方々のはずなので恥ずかしいと思う。

しかし、なぜ「小数点」を「少数点」と間違えるのだろう。「小数」と「少数」の意味を理解していないのか。
小数は「小数点以下の小さい数」の意味しかないが、少数は「少ない数」で反対語として「多数」があり、少数意見や少数精鋭など一般的によく使用する言葉である。
そうすると、「小数」と「少数」の誤字ならIMEの変換ミスが考えられるが、「小数点」と「少数点」と点まで入るならば、通常のIMEなら「小数点」のみが表示されるはずであり、わざわざ「少数」に修正はしないだろう。
市役所等の資料などから推測されるなら、昔に間違えて作成された資料を日付など少しの変更のみで使いまわして気付いていないケースであろう。

日本語の誤用については、「確信犯」や「役不足」など意味の誤用が広まり過ぎていて、今では正しく使う人の方が少ないケースはある。また「危機一発」→「危機一髪」、「週間誌」→「週刊誌」が正しいが、意味ではなく漢字で誤用されて広まっているケースはそんなに無いと思われる。
例えば「保証」と「保障」は使い分けが難しく意味を知っても間違えてしまう場合があるが、「小数点」は小学4年生の算数から習っているわけで、馴染みがあるはずであり、プログラムを学んで技術系ブログまで書いている人が誤用をして公開している。

そこには一体何があるのか、闇のが残る・・・。

posted @ 2015/05/09 4:03 by やじゅ

ドメイン追加後のFSMOの設定

ドメインが複数になったので FSMO(操作マスター)を設定します。

FSMO は次の 5 つがあります。

  • スキーマ マスター
  • ドメイン名前付けマスター
  • RID マスター
  • PDC エミュレーター
  • インフラストラクチャ マスター

スキーマ マスターとドメイン名前付けマスターはフォレスト単位なので フォレスト内のドメインコントローラーの 1 台がこの役割を担います。既定ではルートドメインの 1 台目のドメインコントローラーです。

RID マスター、PDC エミュレーター、インフラストラクチャ マスターはドメイン単位なので ドメイン内のドメインコントローラーの 1 台がこの役割を担います。既定ではドメインの 1 台目のドメインコントローラーです。

 

今回はルートドメイン(proceed.pbyk.com)のインフラストラクチャ マスターを nxmeps から vpdc1 に変更します。

というのも nxmeps は GC(グローバルカタログ)なので インフラストラクチャ マスターを他のドメインコントローラーにする必要があるからです。(情報が変更されたことを検知しなくなる => 複製しなくなる)

 

vpdc1 上で管理ツール「Active Directory ユーザーとコンピューター」を起動し、左のペインからドメインを右クリックして「操作マスター」を選択

※すべての図はクリックすると新しいウィンドウで拡大図が表示されます。

01Tool

 

「インフラストラクチャ」タブを開いて「変更」をクリック

02Infra3

 

確認ダイアログが表示されるので「はい」をクリック

02Infra4

 

結果ダイアログが表示されるので「OK」をクリック

02Infra5

 

変更されました。

02Infra6

 

サンプルアプリでルートドメインの情報を表示してみました。

03SampleApp

 

 

Active Directory 関連 Blog

http://www.pbyk.com/blog/bloglist.html

posted @ 2015/05/08 23:55 by mitchin(mitchin@wankuma.com)

ドメイン追加後のサイトの設定

新しいドメインツリーとしてドメインを追加したので 追加したドメインのドメインコントローラーが追加したサイトに配置されました。

※すべての図はクリックすると新しいウィンドウで拡大図が表示されます。

01-01Site

 

複製するための接続については KCC(知識整合性チェッカー)が自動生成してくれるので、ブリッジヘッドの設定だけします。

今回は NXMEPS と SAIAM にサイト間複製をしてもらいたいのでこれらをブリッジヘッドサーバーにします。

「NXMEPS」を右クリックして「プロパティ」を選択、「サイト間のデータ転送に利用できるトランスポート」から「IP」を選択して「追加」をクリックし、「OK」をクリック

02-01nxmeps1 02-01nxmeps2

SAIAM も同様に設定します。

02-02saiam1 02-02saiam2

 

自動生成された接続を見てみます。各サーバーの NTDS Settings を表示します。

02-01nxmepsNTDS 02-01vpdc1NTDS 02-02saiamNTDS

 

サイト間複製する方の NXMEPS の接続のプロパティはこんな感じです。

トランスポートは上で設定した「IP」になってます。

02-01nxmepsNTDSCon2

スケジュールは サイトの複製間隔である 180分になってます。

02-01nxmepsNTDSCon2Schedule

 

接続については変更することもできますし手動で作成することもできます。

 

 

Active Directory 関連 Blog

http://www.pbyk.com/blog/bloglist.html

posted @ 2015/05/07 22:09 by mitchin(mitchin@wankuma.com)

MvvmCross について 6

MvvmCross のクラスのは Mvx というプレフィックスが付いているのが一般的です。
ということは Mvx クラスは MvvmCross のなかでも特別なクラスという意味に見えます。
クラス生成・IoCコンテナサポート・トレースサポート・例外クラス生成を行っています。

名前空間 Cirrious.CrossCore
public static class Mvx

クラス図

image

 

クラス生成
public static T IocConstruct<T>()
public static object IocConstruct(Type t)

IoC コンテナ
public static void RegisterSingleton(Func serviceConstructor)
public static void RegisterSingleton(Type tInterface, Func serviceConstructor)
public static void RegisterSingleton(Type tInterface, object service)
public static void ConstructAndRegisterSingleton()
public static void LazyConstructAndRegisterSingleton()
public static void LazyConstructAndRegisterSingleton(Func constructor)
public static void LazyConstructAndRegisterSingleton(Type type, Func constructor)
public static void RegisterType()
public static void RegisterType(Func constructor)
public static void RegisterType(Type type, Func constructor)
public static void RegisterType(Type tInterface, Type tType)
public static bool CanResolve<TService>()
public static bool CanResolve(Type serviceType)
public static TService Resolve<TService>()
public static object Resolve(Type serviceType)
public static bool TryResolve<TService>(out TService service)
public static bool TryResolve(Type serviceType, out object service)
public static T Create<T>()
public static T GetSingleton<T>()

IoCコンテナ登録時実行
public static void CallbackWhenRegistered<T>(Action<T> action)
public static void CallbackWhenRegistered<T>(Action action)
public static void CallbackWhenRegistered(Type type, Action action)

トレース
public static void TaggedTrace(MvxTraceLevel level, string tag, string message, params object[] args)
public static void TaggedTrace(string tag, string message, params object[] args)
public static void TaggedWarning(string tag, string message, params object[] args)
public static void TaggedError(string tag, string message, params object[] args)
public static void Trace(MvxTraceLevel level, string message, params object[] args)
public static void Trace(string message, params object[] args)
public static void Warning(string message, params object[] args)
public static void Error(string message, params object[] args)

例外クラス生成
public static MvxException Exception(string message)
public static MvxException Exception(string message, params object[] args)
public static MvxException Exception(Exception innerException, string message, params object[] args)

posted @ 2015/05/06 22:59 by えムナウ

Windows 10 Insider Previewのサウンド

個人設定で各サウンドを聴いてみた、

いろいろとエコーのかかったきれいな音が多く、心地よいものでした。

 

さて、唯一(2つ?)けたたましく不快というか気づきやすいのは、「バッテリ切れアラーム」でした。

ぜひ聞いてみてください^^;

image

posted @ 2015/05/06 22:29 by ちゅき

[Hardware]Olympus AIRでの今日の1枚

P5060425

posted @ 2015/05/06 21:59 by 初音 玲

ドメイン追加後のDNSサーバーの設定

新しいドメインツリーとしてドメインを追加したので ルートドメイン(最初のドメイン)と追加したドメインの DNS サーバーを設定します。

どちらのドメインの DNS サーバーにも条件付フォワーダーを追加します。

まずはルートドメインの DNS サーバー。

管理ツール「DNS マネージャー」を起動し、左のペインから「条件付フォワーダー」を右クリックして「新規条件付きフォワーダー」を選択

※すべての図はクリックすると新しいウィンドウで拡大図が表示されます。

01-01DNS

追加したドメインの DNS ドメイン名とドメインコントローラーの IP アドレスを入力、「この Active Directory に条件付きフォワーダーを保存し、次の方法でレプリケートする」にチェックを入れ、「このドメインのすべての DNS サーバー」を選択して「OK」をクリック

01-02Forwarder

条件付フォワーダーが追加できました。

01-03DNS

 

次は追加したドメインの DNS サーバー。

管理ツール「DNS マネージャー」を起動し、左のペインから「条件付フォワーダー」を右クリックして「新規条件付きフォワーダー」を選択

02-03DNS

ルートドメインの DNS ドメイン名とドメインコントローラーの IP アドレスを入力、「この Active Directory に条件付きフォワーダーを保存し、次の方法でレプリケートする」にチェックを入れ、「このドメインのすべての DNS サーバー」を選択して「OK」をクリック

02-04Forwarder

条件付フォワーダーが追加できました。

02-05DNS

 

あと、ルートドメインを作成した時もそうでしたが追加したドメインの DNS サーバーもフォワーダーを設定します。

設定の仕方と内容はルートドメインの DNS サーバーと同じです。

 

 

Active Directory 関連 Blog

http://www.pbyk.com/blog/bloglist.html

posted @ 2015/05/06 16:07 by mitchin(mitchin@wankuma.com)

フォレストに新しいドメインを追加

フォレストに新しいドメインツリーとしてドメインを追加しました。ドメインコントローラーは追加したサイトに配置されるようにしました。

Windows Server 2012 R2 のセットアップと Active Directory ドメイン サービスと DNS サーバーのインストールは既存のドメインと同じです。

 

次の手順で設定します。

1. TCP/IP を設定

2. サーバーをドメインコントローラーに昇格

3. DNS を設定

4. サイトを設定

5. FSMO を設定

 

今回は 1 と 2 について書きます。3~5 は別途書きます。

1. については IP アドレス部分を設定し、優先 DNS サーバーは既存のドメインのドメインコントローラーの IP アドレスを指定します。

※すべての図はクリックすると新しいウィンドウで拡大図が表示されます。

01-01IP

 

2. については既存のドメインと同様、Active Directory ドメイン サービスと DNS サーバーのインストール後に設定します。

サーバー マネージャーの画面上「管理」メニュー左の旗のアイコンをクリックし「このサーバーをドメインコントローラーに昇格する」を選択

02-01ServerManager

 

Active Directory ドメイン サービス構成ウィザードが表示されます。

今回はフォレストにドメインを追加するので、配置操作は「新しいドメインを既存のフォレストに追加する」を選択し、フォレスト名(1 つ目のドメイン名:既存のドメイン名)と新しいドメイン名を入力

02-02Wizard1

 

資格情報の「変更」ボタンをクリックし、ドメインの管理者のユーザー名とパスワードを入力して「OK」をクリック

02-02Wizard2

 

ウィザードに戻るので「次へ」をクリック

02-02Wizard3

 

サイト名は追加したサイトを選択、ディレクトリ サービス復元モードのパスワードを入力して「次へ」をクリック

02-02Wizard4

 

「次へ」をクリック、NetBIOS ドメイン名も自動的に設定されるのでそのまま「次へ」をクリック

02-02Wizard5 02-02Wizard6

 

AD DS データベース、ログファイル、SYSVOL のパスを入力または選択して「次へ」をクリック

02-02Wizard7

 

オプションを確認して「次へ」をクリックし、前提条件を確認して「インストール」をクリック

02-02Wizard8 02-02Wizard9

 

インストールが完了したら再起動します。

自分自身が DNS サーバーになったので、TCP/IP の設定で優先 DNS サーバーをループバックアドレスに変更します。

03-02IP

 

 

Active Directory 関連 Blog

http://www.pbyk.com/blog/bloglist.html

posted @ 2015/05/05 16:30 by mitchin(mitchin@wankuma.com)

サイトの追加

物理的に離れてたりスピードの遅い回線を経由したりする場所にドメインやドメインコントローラーを追加する場合は事前にサイトを設定します。

サイトのイメージです。

※すべての図はクリックすると新しいウィンドウで拡大図が表示されます。

Site3

 

今回はフォレスト内の既存のドメインと異なるサブネットに新しいドメインを作成するために、サイトとサブネットを追加してサイトリンクを設定します。

上の図でいうと、今は TokyoSite があって DC1 と DC2 がいて 192.168.0.0/24 のサブネットがあります。

そこに OsakaSite を作って 172.16.0.0/24 のサブネットを追加して、Tokyo-OsakaLink を設定します。

 

管理ツール「Active Directory サイトとサービス」を起動し、左のペインから「Sites」を右クリックして「新しいサイト」を選択

01-01Site

サイトの名前を入力、サイトリンクを選択して「OK」をクリック

01-02SiteName1

ダイアログが表示されるので「OK」をクリック

01-02SiteName2

サイトが追加できました。

01-03Site

 

左のペインから「Subnets」を右クリックして「新しいサブネット」を選択

02-01Subnet

プレフィックスを入力、サイトを選択して「OK」をクリック

02-01SubnetName

サブネットが追加できました。

02-02Site

 

左のペインから「Inter-Site Transports」を展開して「IP」を選択

03-01SiteLink

右のペインからサイトリンクをダブルクリック

03-01SiteLinkSites

複製間隔はデフォルトで 180分です。必要であれば変更します。

上のサイト図でいうと DC1 と DC4 が 3時間おきに Active Directory ドメインの情報(圧縮されます)を複製し合います。

 

 

Active Directory 関連 Blog

http://www.pbyk.com/blog/bloglist.html

posted @ 2015/05/04 16:34 by mitchin(mitchin@wankuma.com)

[Azure]空気を読んで年齢を答えてくれる例のあれの裏側にあるAPIがAzure Marketplaceに登場してきました。

 

 

Marketplaceからの購入

でも、お高いんでしょう?

ふ、フリーっ!
無料ですか!

 

米国西部にしか展開できませんがさくっと作成できます。

管理用キーの取得

作成が完了するとAzureダッシュボードに「Microsoft Webサイト」にアクセスが必要だとリンクが張られているのでリンク先に移動します。

https://dev.projectoxford.ai/Developer

API仕様

Face APIには次のようなエンドポイントが公開されています。

  • Detection
  • Find Similar Faces
  • Grouping
  • Identification
  • Verification

Face APIのページ(というかProject  Oxfordのページ) には各エントリポイントを試せる「Open API Testing Console」が用意されています。

Detection

URLパラメタに指定する値は次の通り。

パラメタ名 説明
subscription-key トップページにあったPrimary Keyを指定します。
analyzesFaceLandmark 目とか口とかの画像上の位置判定の実施有無
これは年齢当てサイトでは使われていませんが、こんな判定までできるんですね。
analyzesAge 年齢推定の実施有無
analyzesGender 性別推定の実施有無
analyzesHeadPose 頭の向き判定の実施有無
pitch,roll,yawで返ってきます。
正面向いている写真だけ抽出とかにつかえそうですね。
なお、画像の中の顔の位置自体は、このパラメタがfalseでも関係なく常に返却されてきますので、それ使って顔の周りに四角い枠が描けます。

リクエストBodyにはJSON形式で画像のURLを指定します。ちゃんと自分でJSON形式で書いてくださいw

[HTTP POST]をクリックすると実行結果が返ってきます。

analyzesAgeとanalyzesGenderだけtrueにして実行してみると791msで戻ってきてますね。

16才の女性の画像であるって返ってきてますね。雨取千佳ちゃんと年齢近い!ww

ところでこのFaceIdですが他のエントリポイントで使うのでどれくらい維持されるのかと思ったら「The face ID will expire 24 hours after detection.」とのこと。24時間は保持されているみたいですね。これ利用率上がってくると時間短くなったりセッション内とかに変更されそうな予感。

そのほかの制限事項としては次のような感じです。

  • 画像フォーマットは、JPEG、PNG、GIF(最初のフレームだけ)、BMP
  • 画像サイズは、最大4MB
  • 顔のサイズとしては画像サイズとして36x36~4096x4096の間であれば認識
  • 1つの画像からは最大64人まで、それ以上多い時は顔の画像サイズが大きい人から
  • まだ実験段階なので年齢推定とか性別推定は性格じゃないかも

なお、画像自体を保存している訳ではなく特徴点とかそういったものみたいなので、faceIdから逆引きで画像URLを取得するAPIは用意されていないですね。

 

Detection(複数)

複数の人が写っている画像を指定してDetectionをしてみました。その結果は!

ちゃんと配列で帰ってくるんですね。

 

Find Similar Faces

顔画像の中から同一のものを抽出します。

事前にDetectionを使ってFaceIDを取得しておきます。

URLパラメタに指定する値は次の通り。

パラメタ名 説明
subscription-key トップページにあったPrimary Keyを指定します。

リクエストBodyにはJSON形式でfaceIdとfaceIdsを設定します。第二パラメタは配列なので[]で囲ってFaceIdを羅列します。

どれくらい並べられるかといえば最大100個まで。

処理速度は100ms。処理結果は第二パラメタに指定したのは姉妹で、1つめが該当人物。さて結果は?

きちんと1番目のfaceIdが返ってきましたね。

 

Grouping

最大で100個のfaceIdを指定して、同一人物ごとにグループ化します。

URLパラメタに指定する値は次の通り。

パラメタ名 説明
subscription-key トップページにあったPrimary Keyを指定します。

リクエストBodyにはJSON形式の配列でfaceIdsを設定します。

今回は3つのfaceIdを指定しています。このうちの2つが同じ人の別画像です。

応答時間は247ms。

結果は?

ちゃんと同一人物がグループ化されてます。

結果をよく見ると二重の配列になっているので、グループ化できるものが複数あった時にもgroups:[[Aさん1,Aさん2],[Bさん1],[Bさん2]]みたいな感じで返却されてきます。

 

Identification

FaceIdで指定した画像が誰なのか、事前に登録しておいたデータと顔認証を行い、特定を行います。

Identificationを使うためには、同一人物の顔画像をPersonとして登録しておき、さらに複数のPersonをPersonGroupとして登録したものを用意しておきます。

Personの作り方やPersonGroupの作り方は別エントリで説明しています。

 

PersonGroupが準備できたら、最大10人のfaceIdを配列で指定して、PersonGroupの中のPersonと比較します。

 

ヒットした場合は、FaceIdごとにCandidatesが返され、その中にPersonIdがあります。

サンプルではpersonIdに対するnameも返却されるみたいでしたが、現時点での実際の動作ではnameが返ってきません。このあたりはそのうち治っていくでしょう。

 

なお、PersonGroupのトレーニングが行われていないと次のような結果になります。

このときはPersonGroupに対するトレーニングを行ってください。

 

Verification

2つの画像から同一人物かを判定します。

事前にDetectionを使ってFaceIDを取得しておきます。例えば、

の2つの画像を比較していましょう。

事前にDetectionを使って2つの画像のFaceIdとして

d225347d-8a6c-48b6-af28-1bff90797c96

c71a4412-ce12-4015-9605-200c3d580e92

を取得しておきます。

URLパラメタに指定する値は次の通り。

パラメタ名 説明
subscription-key トップページにあったPrimary Keyを指定します。

リクエストBodyにはJSON形式でfaceId1とfaceId2を設定します。

[HTTP POST]をクリックすると実行結果が返ってきます。

応答時間は81ms。はやっ。

結果は同一人物(isIdentical=true)、適合度57.342%でした。

ちなみに同じ写真に別ID付与してやってみると適合度100%になります。

まあ当たり前ですねw

 

まとめ

Open API Testing ConsoleだけじゃなくてCode Samplesなんかもサイトから取得できます。

サポートされている言語は

  • JavaScipt
  • C#
  • PHP
  • Python
  • Ruby
  • Curl
  • Java
  • Objective-C

と充実のラインナップです。Curlとか珍しいですね。

ぜひぜひ画像処理とかに活用してみてください。

posted @ 2015/05/02 14:30 by 初音 玲

[Azure]顔認証用のPersonGroupの登録

PersonGroupの作成

顔認証用データを保存するグループを作成します。

https://api.projectoxford.ai/face/v0/persongroups/{personGroupId}/?subscription-key=<Your subscription key>

のように指定して、HTTP PUTします。

image

Personの登録

PersonGroupに顔認証用の個人の特徴点を登録します。

https://api.projectoxford.ai/face/v0/persongroups/{personGroupId}/persons?subscription-key=<Your subscription key>

事前に顔画像をFace APIでFaceIDにしておきます。正面か正面に近い画像が良いようです。

image

最大32個の同一人物のFaceIdを配列で指定し、nameで人物名、userDataで備考データをHTTP POSTで指定します。

上手く登録できたらPersonIdが返却されます。

image

トレーニング

PersonGroupが登録できたらトレーニングを行います。これを行わないと顔認証ができません。

https://api.projectoxford.ai/face/v0/persongroups/{personGroupId}/training?subscription-key=

トレーニング状況の確認

トレーニングには多少の時間が必要です。ステータス確認で"succeeded"になったかを確認します。

今回のように2つのFaceIdのトレーニング時間は4秒でした。

https://api.projectoxford.ai/face/v0/persongroups/{personGroupId}/training?subscription-key=

posted @ 2015/05/02 13:39 by 初音 玲

[VisualStudio]すべての環境にVisual Studio / すべての開発者がWindows 10 Apps

米国サンフランシスコでBUILD 2015が絶賛開催中です。

Day 1からすでに新発表全開。

Visual Studio Code

Visual Studioのエディタ機能を抜き出したようなVisual Studio Code。今まではMonacaみたいなWebベースはありましたが、これはインストールベース。

for Macやfor LinuxがあるのでWindows以外にもインストールして利用できます。

EclipseやjetBeansになじめない人とかには朗報かも。Windows開発者が他のプラットフォーム開発するときにとても有利ですね。

無料なので「エディタです」とかいって導入しやすそうだし。

これで「あー、Visual Studioならできるのにめんどう」とかフラストレーションためずに済むようになるかな。

Windows 10 Appsの作成方法が4つ増える

Windows Universal Apps (要はWindows 8.1やWindows Phone 8.1ネイティブアプリ)を作成するには、Windows Runtimeを使ったアプリをC#/VB.NET/C++で作成する方法がありました。

APIもWindows Runtime APIやWindows Phone Runtime APIとかを使う感じ。

もう一つの方法は、Cordova使ってHTM5とJavaScriptでつくる方法。あとUnity使うのもそうかな。

で、今回発表されたのは、

  1. Webアプリをネイティブアプリのように動作させる方法

  2. クラシックWindows Apps (デスクトップアプリとかWin32APIつかっているやつ)をWindowsストアアプリ扱いにする

  3. Androidサブシステムを搭載して、Anrdoidアプリを動作させる

  4. Visual StudioでObjective-Cサポート。

の4つ。好きな言語使ってWindows 10のアプリ作ってストアに登録してね!というのが明確になってきていますね。

なんか一気にストア上にアプリ増えそう。

posted @ 2015/04/30 12:58 by 初音 玲

FBムリゲーすぎる^^;

Facebookの投稿確認がムリゲーの件について^^;

image

posted @ 2015/04/29 14:38 by ちゅき

MvvmCross について 5

ViewModel の次は Command かなぁと、
INotifyPropertyChanged と ICommand を制すればMVVMは怖くないと。

名前空間 Cirrious.MvvmCross.ViewModels
public class MvxCommand : MvxCommandBase , IMvxCommand
public class MvxCommand<T> : MvxCommandBase , IMvxCommand

クラス図
image

 

ICommandサポート
通常のよくあるコマンドでパラメータがあるのとないののパターンがあります。
特徴は IMvxCommandHelper がIocコンテナに定義があるかどうかで CanExecuteChanged が WeakReference かどうかを代えられます。
object parameter は string で渡しても Convert.ChangeType メソッド で可能な限り型変換してくれます。
public event EventHandler CanExecuteChanged;
public void RaiseCanExecuteChanged();
public MvxCommand(Action execute, Func<bool> canExecute);
public bool CanExecute(object parameter);
public void Execute(object parameter);
public bool CanExecute();
public void Execute();

posted @ 2015/04/25 22:44 by えムナウ

MvvmCross について 4

これからはよく使うクラスの説明をしていきたいと思う。

まずは MVVM と名がついているので ViewModel の基底クラス MvxViewModel から説明します。

名前空間 Cirrious.MvvmCross.ViewModels
public abstract class MvxViewModel : MvxNavigatingObject, IMvxViewModel

クラス図

image

 

abstract クラスで ViewModel で継承して使うように設計されている。

Dispatcher サポート
UIスレッドの Dispatcher をサポートしておりUIスレッドでのメソッド実行を行える。
protected IMvxMainThreadDispatcher Dispatcher;
protected void InvokeOnMainThread(Action action);

INotifyPropertyChanged サポート
ViewModel のプロパティが View に変更を通知する INotifyPropertyChanged をサポートする。
プロパティの set 時に使う SetProperty や イベントを発行する RaisePropertyChanged は当然ある。
RaisePropertyChanged をUIスレッドで常に実行するためのフラグや プロパティ名を string.Empty でイベントを発行すると全プロパティが変更されたとみなすよう促すメソッドもある。
ユニットテストのときなどイベントを発行されると邪魔な場合に抑止する機構もある。
public bool ShouldAlwaysRaiseInpcOnUserInterfaceThread();
public void ShouldAlwaysRaiseInpcOnUserInterfaceThread(bool value);
public void RaisePropertyChanged<T>(Expression<Func<T>> property);
public void RaisePropertyChanged([CallerMemberName] string whichProperty = "");
public virtual void RaiseAllPropertiesChanged();
public virtual void RaisePropertyChanged(PropertyChangedEventArgs changedArgs);
protected bool SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = null);
protected virtual MvxInpcInterceptionResult InterceptRaisePropertyChanged(PropertyChangedEventArgs changedArgs);

遷移サポート
IMvxViewDispatcher と連携して各プラットフォームの ViewDispatcher で遷移を実現している。
例えばストアアプリやWindows Phoneなどは Close 時に前ページに遷移するがWPFではワーニングのログを出力する。
ShowViewModel は各種パラメータ形態に対応しているが最終的に最後のメソッド呼び出す。
protected IMvxViewDispatcher ViewDispatcher;
protected bool Close(IMvxViewModel viewModel);
protected bool ChangePresentation(MvxPresentationHint hint);
protected bool ShowViewModel<TViewModel>(object parameterValuesObject,
                                                 IMvxBundle presentationBundle = null,
                                                 MvxRequestedBy requestedBy = null);
protected bool ShowViewModel<TViewModel>(IDictionary<string, string> parameterValues,
                                                 IMvxBundle presentationBundle = null,
                                                 MvxRequestedBy requestedBy = null);
protected bool ShowViewModel<TViewModel>(IMvxBundle parameterBundle = null,
                                                 IMvxBundle presentationBundle = null,
                                                 MvxRequestedBy requestedBy = null);
protected bool ShowViewModel(Type viewModelType,
                                     object parameterValuesObject,
                                     IMvxBundle presentationBundle = null,
                                     MvxRequestedBy requestedBy = null);
protected bool ShowViewModel(Type viewModelType,
                                     IDictionary<string, string> parameterValues,
                                     IMvxBundle presentationBundle = null,
                                     MvxRequestedBy requestedBy = null);
protected bool ShowViewModel(Type viewModelType,
                                     IMvxBundle parameterBundle = null,
                                     IMvxBundle presentationBundle = null,
                                     MvxRequestedBy requestedBy = null);
private bool ShowViewModelImpl(Type viewModelType, IMvxBundle parameterBundle, IMvxBundle presentationBundle,MvxRequestedBy requestedBy);

ViwModelサポート
ViewModel の開始時や終了時には、virtual で修飾されたメソッドが呼ばれるので override して適切な処理を行える。
遷移のShowViewModelで指定した parameterBundle や requestedBy が取得できる。
ReloadFromBundle や SaveStateToBundle では中断・再開時に記憶しておく情報を利用できる。
public MvxRequestedBy RequestedBy { get; set; };
public void Init(IMvxBundle parameters);
public void ReloadState(IMvxBundle state);
public void SaveState(IMvxBundle state);
public virtual void Start();
protected virtual void InitFromBundle(IMvxBundle parameters);
protected virtual void ReloadFromBundle(IMvxBundle state);
protected virtual void SaveStateToBundle(IMvxBundle bundle);

posted @ 2015/04/24 5:24 by えムナウ

MvvmCross について 3

MvvmCross について 2 で作成したソリューションに、WPFとストアアプリのプロジェクトを追加して、
.Core のプロジェクト参照を追加し、
NuGet から MVVM Cross Hot Tuna Starter Pack を入れる。

image

 

Windows Phone は 8.1 から Windows 8.1のWinRT と 従来の Sliverlight 8.1 に開発環境が分離している。

Windows Phone 8.1のWinRT プロジェクトも追加してNuGet から MVVM Cross Hot Tuna Starter Pack を入れる。

Windows Phone 8.0 のプロジェクトのプロパティから Sliverlight 8.1 に更新する。

更新すると MVVM Cross の環境も変わるのか NuGet から 一度削除して MVVM Cross Hot Tuna Starter Pack を入れなおさなければいけない場合もあった。

これで今回説明する基本となるソリューションができる。

image

posted @ 2015/04/20 7:48 by えムナウ

MvvmCross について 2

用意しておく

Visual Studio 2013 Update4

Mac

Xamarin ライセンス

Mac 開発者ID

 


Xamarin のインストール

Xamarin をインストールして有効化

http://www.xlsoft.com/jp/products/xamarin/xamarin_android_win_installation.html

http://www.xlsoft.com/jp/products/xamarin/xamarin_ios_win_installation.html

 

ソリューションを作る

image

 

各プロジェクトに NuGet から MVVM Cross Hot Tuna Starter Pack を入れる

image

 

ソリューションルート(App)の名前空間などをApp.Core のように .Core を追加する
(Xamarinはソリューション名で作るけどMvvmCrossは.Coreがデフォルトな為)

ToDo-MvvmCross の通りにソースを修正する

image

posted @ 2015/04/18 20:17 by えムナウ

MvvmCross について 1

最近よく MVVM Cross を使っているので書いておこうと思う。
まず一番使っているのは ストアアプリ 次に WPF なので一般の MVVM Cross 利用者とは違う使い方だというのは認識しているが、共通点もあると思う。

まずは基礎的な内容から。

 

MvvmCrossとは

Xamarin で iOSやAndrodといったプラットフォームにも対応していて、Windows Phoneや Windows Store App や WPF も対応しているMVVMライブラリ

PCL( Portable Class Library ) として作成することで全プラットフォーム共通の ViewModel (および Model) クラスを作成する

MS-PL ライセンス

GtiHubで公開

 

MVVMとは

イベント駆動開発のコードビハインドの保守性や疎結合性を高めるためにコードビハインドをViewModelに分離したもの。

イベントやプロパティのかわりにコマンドやバインディングしたプロパティを使う。

 

PCL( Portable Class Library ) とは

汎用性のあるクラス ライブラリ

複数の .NET Framework プラットフォームで動作するマネージアセンブリを作成してビルド

共有ビジネスロジックなど、多数のプロジェクトで共有するコードを含むクラスを作成し、そのクラスを異なる種類のプロジェクトから参照

変更することなく 各種プラットフォームで動作する、汎用的なアセンブリを作成

posted @ 2015/04/18 13:39 by えムナウ

[Windows10]PCとスマホで同じ地図がでるって素晴らしいですね

WP_20150415_002

Windows 8.1の地図と、Windows 10 for Phone Technical Previewの地図の表示を比較しました。

One Windowsなだけあってデバイスが違っても基本は同じなだけありますね。

 

ついでにルート検索もためしてみましょう。

WP_20150415_003

ちょっと見ずらいですが道路の曲がり具合に合わせてルートも表示されています。

ちょっと拡大してみるとこんな感じ

WP_20150415_004

 

いい感じですね。

posted @ 2015/04/15 15:38 by 初音 玲

[MicrosoftMVP]Awardリング届きました

P4130302

posted @ 2015/04/13 22:08 by 初音 玲

[Netduino]Netduino連載の3回目が公開されました。

www.buildinsider.net

第三回目はアナログ入力について取り上げました。

アナログ入力、パスコン、ノイズフィルター、オペアンプによる非反転増幅回路などにピピッときたら是非お読みください。
BuildInsiderの掲載ページでの「いいね!」「ツイート」「はてブ」もよろしくお願いします。

posted @ 2015/04/13 14:36 by 初音 玲