わんくま同盟 Blog's

わんくま同盟

メニュー

わんくま同盟

  勉強会情報

  メンバリスト

掲示板

ブログ

リンク

統計

わんくま同盟メンバ

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

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

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 初音 玲

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

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

今回のUnityはパックマンだったんですが、資料作成の作業量が結構あって何回か心が折れてました。セッション前日までの段階でBlenderの資料は1割しか出来ておらず、金曜日の夜に必至こいて何とか作成しました。本当はつま先と顔まで作成する予定でしたが間に合わないので次回に持ち越し。
また、セッション当日の午前中には必死にスクリプトを組んでいました。パックマンの迷路の衝突設定が52個、ドットの設定が330個、巡回ルート用のポイントが120個あって、これをセッション内で皆さんに入力させるのはさすがに時間が足りないんで、スクリプトで設定を追加できるようにしたかったわけです。ですが、さすがに巡回ルート用のポイントまでは手がまわらず、セッション時はチュートリアル通りに5つの巡回ルートを入力して動作させるところで終わらせました。
セッション翌日の日曜日に資料の誤字等の修正と巡回ルート用のポイントとスコアのスクリプトを作成して、再度SlideShareとGit Hubに資料をアップロードしておきました。セッションを受けた方は、巡回ルートとスコアの部分を追加でやってみてください。

4月ということもあって、何か新しいことをやるとして「Unity」や「Blender」を選ぶ方には丁度いい資料になっていると思います。
今回のパックマンは作業量が少し多めですが、前回の第2章のアルカノイドやサイコロは気軽にやるにはいいでしょう。

資料の作成元になっているnoobtutsさんのUnityのチュートリアル(英語)も参考になりますよ。
http://noobtuts.com/unity


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

posted @ 2015/04/07 1:53 by やじゅ

[AED]内閣官房IT総合戦略室の資料にAEDオープンデータプラットフォームが掲載されました。

【内閣官房IT総合戦略室】「起業家精神を創発するIT関連施策パッケージ」のアイデア集にAEDオープンデータプラットフォームが掲載されました。

create-entre-it-meas-pkg.tumblr.com

?

リンク先からアイデア集を見て頂くとわかるように、他がアイデアレベル(それはそうですね)ですが、AEDオープンデータプラットフォームは実装が終わっていて、データ公開を進めている点が異彩を放っています。

posted @ 2015/04/06 19:21 by 初音 玲

Windowsで文字入力中に、水色の枠が表示される…

何の拍子か、水色の枠が表示されるようになってしまいました。
うざいことこの上ないですね。(^^;;;

ナレーター機能が有効になっているそうです。

Ctrl + Alt + Esc キーで消すことができます。
逆に表示は、Win + Enter キーでできます。(そんなキーは尾下加奈←誰?)

posted @ 2015/04/05 18:00 by なか-chan@最愛のiMac

netduino plus 2で、ボタンを押したらLEDを光らせる

前回は、LEDが自動的にチカチカするだけでしたが、ボタンを押したら、LEDが光るようにします。
ちょうど初音さんも同様の記事を書いているので、ちょっと違う方法で…

netduino公式ページの、projectsというページの一番最後に、光らせ方のビデオがあるので、こちらを参考にします。
ただし、解説は、古い netoduino 1 で行っているので、少々Pinの指定や値が違ったりするようです。

ちなみに、btn.OnInterrupt まで記入したところで、Tabキーを2回押すと、イベントハンドラが自動的に作成されます。
VisualStudio が使えて幸せなところですね。(^^)/ まるで、WPFやWindowsFormで、button1.Click += button1_Click;
とやっているかのように、同じ感覚でボタンクリックの処理が書けます。

InterruptPort変数を作るときに、 Port.InterruptMode.InterruptEdgeBoth を指定すると、
ボタンを押したとき、および離したタイミングの2回、イベントハンドラが呼ばれるようになるようです。
そのとき、data2 に、1(ON)または0(OFF)の情報が渡ってきますので、これをtrueとfalseに変換してセットしてあげます。

using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;

namespace NetduinoApplication2
{
    public class Program
    {
        static OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);

        public static void Main()
        {
            // 立ち上がりと立ち下がりの両方を検知するように設定
            var btn = new InterruptPort(Pins.ONBOARD_BTN, false, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeBoth);
           
            // +=まで入力して、TABキーを押すと、ハンドラーを自動で生成できます
            btn.OnInterrupt += btn_OnInterrupt;

            // これがないと、すぐに終了してしまう
            Thread.Sleep(Timeout.Infinite);
        }

        static void btn_OnInterrupt(uint data1, uint data2, DateTime time)
        {
            // 1または0が渡ってくるので、trueまたはfalseに変換して設定
            led.Write(data2 != 0);
        }
    }
}

posted @ 2015/04/05 17:40 by なか-chan@最愛のiMac

[チラ裏]Windows 10 TPの更新を行うと標準メールアプリが利用できなくなる問題

アップデートのたびにドラスティックに変わっていくWindows 10 TP.発売が楽しみです。

さて、そのTechnical Previewのリビジョンを更新すると、なぜかメールが使えなくなります。

その場合、PowerShellで一度メールアプリをアンインストールしてストアアプリ(ベータじゃない方)で再インストールするとまた使えるようになりました。ちゃんと設定も残っていました

元ネタ:Windows 10 Build 10041 でストアアプリ「メール、カレンダー、People」が使えなくなった場合の対処法

posted @ 2015/04/04 11:24 by ちゅき

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

www.buildinsider.net

ハード界のHello, WorldことLEDチカチカ、通称、Lチカを試してみました。

posted @ 2015/04/02 17:42 by 初音 玲

MVP再受賞しました。

Directory Services のカテゴリーで Microsoft MVP アワードを再受賞しました。

これも Microsoft コミュニティや技術者のみなさんのサポートがあったればこそです。

 

ありがとうございます!

Thank you!

多謝!

 

これからも Directory Services に関する情報をいろいろと発信していきますので よろしくお願いします。

 

 

Active Directory 関連 Blog

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

posted @ 2015/04/02 15:38 by mitchin(mitchin@wankuma.com)

Microsoft MVP for Windows Platform Developmentを受賞

言語系MVPを卒業して、心機一転、Windows Platform DevelopmentカテゴリでのMicrosoft MVPを受賞いたしました。

活動的には何も変わりがありませんが、より自分の活動に即したカテゴリへの移籍となります。

 

Windows Platform Developmentカテゴリは、WindowsをはじめとするMicrosoftプラットフォームでの開発をターゲットにしたカテゴリだと理解しています。

以下は、私の解釈なのでもしかしたら相違があるかも知れませんが…

従来のPCに加えて、タブレットやスマホ、Windows 10 fot IoTがターゲットにしている組込み向け開発と、とにかく「開発」しまくっていきます。

Netduinoなど.NET Micro FrameworkのようにOSSだとしてもマイクロソフトの技術から派生したものも範疇ではないかと考えます。

当然、Xamarinとかもですね。

ね?今までやっていることですね。

 

また1年、精進していきます。よろしくお願いします。

posted @ 2015/04/01 23:45 by 初音 玲

*「Nintendo Watch」の登場で変わる?

Nitendo Watch」の登場である。
さて、今日4/1で例の日であるが、ネタが無いので今回は思い出話とする。
Nintendo Watchといえば、自分が思い出すのは「ゲーム&ウォッチ」である。当時小学3年生であった私が初めて購入したのはバンダイの「バクダンマン」である、これは傑作といってもいい。この記事のために調べたら「バクダンマン」は「ゲーム&ウォッチ」ではなく、同じコンセプトのバンダイ「ゲームデジタル」 ブラックボディシリーズだったのね、騙された感・・・。
このバクダンマンは、ダイナマイトをもった犯人がビルの上からダイナマイトを落とし、下にいるバケツをもった消防士を左右に動かしダイナマイトを拾うゲームである。ビルの右側に「ポリスマン」が待機していて1000点ごとにピストルを5発撃つのだが、まったく犯人に当たらないのでは下手くそ! http://homepage3.nifty.com/lsigame/lsigame/bakudan/bakudan.htm
しかも10000万点を超えると万有引力の法則から外れて、先に落としたダイナマイトが空中で止まり、後から落としたダイナマイトが落ちてくるわけですよ、そんなの直ぐに対応なんか出来ないので、だいたいそこらへんでゲームオーバーになります。
バクダンマンで検索してみたら、カウンターストップ(19990点)までの動画なんてのがありました。
https://www.youtube.com/watch?v=hW_f00KaLQk

次の次くらいに購入したのが「ドンキーコング」で、これは正式に「ゲーム&ウォッチ」を購入ってことになるわけですね。
憶えているがこのゲームを購入する際に母親から算数の成績が上がったらって条件があったわけです。これをなんとかクリアすることゲームを購入したわけですが、この時に初のマルチ画面の「ドンキーコング」にするのか、タイトルは忘れたがソーラーパワーを使ったゲームにするか、今でも思い出すくらい悩んだ記憶があります。今は手軽にコンビニとかでボタン電池が手に入るのかも知れないが、田舎にいた小学生にとってはボタン電池の購入も大変なんですよね、ソーラーパワーって魅力だったわけです。
この当時はゲーム雑誌なんかないからゲーム性とかより広告とかで判断してたかも「マルチ画面」VS「ソーラーパワー」ってね。

改めてソーラーパワーを使ったゲームってなんだったのか調べると、これまたバンダイだったんですね、確か色が青色だった記憶があるので、タイトルは「天国と地獄」ってゲームだったかも知れません。これを買っていたら正式な「ゲーム&ウォッチ」を購入していなかったってことになるな。

posted @ 2015/04/01 0:26 by やじゅ

[Hardware]Surface 3がきたーっ

www.microsoft.com

Intel Atom x7 processorなのかー。

Docking Stationがなかなかよさそう。

posted @ 2015/04/01 0:20 by 初音 玲

netduinoでLEDチカチカ

ちょうどマイコンをやりたいと思っていたところ、初音さんの、.NET対応組み込みデバイス「Netduino」入門という連載が始まったので、netduinoボードを購入してみました。大枠は、初音さんの記事を読んでいただくとして、補足など…

  • 注文から1日ちょっとで届いた。
  • ボードと同時に、「普通のブレッドボード(税込257円)」と「固いジャンパワイヤ(税込257円)」も購入しておいた。
  • 取扱説明書など何も付いていない!(付属品はUSBケーブルとゴム足のみ)
  • 実行開始時に「Cannot deploy the base assembly 'mscorlib', or any of his satellite assemblies, to device - USB:Netduino twice. Assembly 'mscorlib' on the device has version 4.2.0.0, while the program is trying to deploy version 4.3.1.0」というエラーが出て実行できない。deviceのFirmwareをアップグレードすれば、そのままいけるようだが、今回は大したことをしないので、プロジェクトのプロパティで対象フレームワークを「.NET Micro Framework 4.2」に変更することで対応。
  • var が使える~。
  • ReleaseでもDebugでも動いた。もちろん、ステップ実行も可能。(マイコン用のデバッガハードウェアも不要)
  • えっとLEDのチカチカを止める方法は?…(^^;; USBコードをぶちっと抜けばいいのかな?(^^;

netduino

using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;

namespace NetduinoApplication1
{
    public class Program
    {
        public static void Main()
        {
            var onOff = false;
            using (var port = new OutputPort(Pins.ONBOARD_LED, onOff))
            {
                while (true)
                {
                    port.Write(onOff);
                    onOff = !onOff;
                    Thread.Sleep(300);
                }
            }
        }
    }
}

posted @ 2015/03/28 14:07 by なか-chan@最愛のiMac

[Hardware]OLYMPUS AIR A01を入手しました

OPC Hack&Make Projectのテスターに選ばれ、製品化直前のモデルでアプリや100mpusを作らせていただいた関係で製品版を入手することができました(プロトタイプと交換)。

 

AIRって?

本体はこんな感じ。

image

プレゼントして頂いたのはレンズ付きのレンズキットなので、ここにマイクロフォーサーズレンズのM.ZUIKO DIGITAL ED 14-42mm F3.5-5.6 EZがつきます。

image

 

マイクロフォーサーズって何?といえば、Olympus Penとかにも採用されている共通規格です。

つまり、AIRはPenとかと同じレンズが使えるってことですね。

例えば、M.ZUIKO DIGITAL 17mm F2.8の単焦点レンズなんかも付きます。

image

 

ということは…AIRの画質も!

 

AIRでの撮影はまだこれからですが、プロトタイプ版にM.ZUIKO DIGITAL 17mm F2.8の単焦点レンズをつけて撮影したものがあるので、それで確認してみましょう。

P2030014

P2060033

P2090058

P2190088

 

AIRの設定手順

AIRを開封して使う場合、まずやらなくてはいけないのは手持ちのスマホへのOA.Centralアプリのダウンロードとインストールです。

app.olympus-imaging.com

AIRの電源を入れてOA.Centralを起動するとBluetoothにより接続を行い各種設定をした後に、AIR本体後部に印刷された二次元バーコードを使ってAIRをWiFiアクセスポイントとして接続するための設定をスマホ側で行います。

この初回のみに必要な作業(そして、どうしても煩雑でITに詳しくない人にとっては分かりづらく躓きやすくIT詳しい人にとっても面倒な)をアプリ画面で流れに沿って図解で説明していきます。

プロトタイプ版ではないものだったので最初分からずに少しだけ悩みましたが、逆にプロトタイプ版の経験がなければパッケージを開けたときに最初に目に飛び込んでくる付属品に「OA.Central → スマホ」って図示もあるし、その中の説明書でも最初にダウンロードしてくださいとあるので迷わないですね。

 

お勧めAIRアプリ

必須ソフトのOA.Centralでも撮影ができますがAIRの実力を発揮するには撮影用の専用アプリを使いましょう。

OA.ModeDial

app.olympus-imaging.com

まずはなんといってもOA.ModeDialですね。撮影モードもプログラム/絞り優先/シャッター優先/マニュアルと一眼レフライクです。メインの撮影アプリといえるでしょう。

このアプリもBluetoothで自分のAIRを探して見つかったらAIRの電源をオンにしてWiFi接続に移行してくれます。

 

OA.Viewer

app.olympus-imaging.com

AIRで撮影した写真はAIR本体に差し込んだMicro SDカードに記録されます。その撮影したデータをみるためのアプリがOA.Viewerです。

これも必須アプリですね。

 

OA.Genius

app.olympus-imaging.com

OA.Geniusは最初の2本と違って必須アプリではないかもしれません。でも、このアプリ面白いです。

このアプリでシャッターを1回押すと6枚の写真がとれます。

AIR側の画像処理エンジンが被写体を認識してその内容や構図を解析した結果から、オリジナルの1枚に加えて、ズームや構図やカラーバランスの異なる5枚を生成します。

最初、構図ってどうしているのかと思ったら、オリジナルを拡大してトリミングすることで実現している感じです。いろいろ試してみたいですね。

posted @ 2015/03/28 8:13 by 初音 玲

[xamarin]Human Sensing Frontier Award #01グランプリの賞品がとどきました

オムロン製品が届くという事で楽しみにしていました。ほんと、分かってらっしゃるというセレクトです。

 

NeckMassager
オムロン ネックマッサージャ ブラウン HM-141-BW

オムロン ネックマッサージャ ブラウン HM-141-BW

 

活動量計
オムロン(OMRON) 活動量計 Active Shift EDGE 【iPhoneアプリ専用】 ブラック HJA-700T-BK

オムロン(OMRON) 活動量計 Active Shift EDGE 【iPhoneアプリ専用】 ブラック HJA-700T-BK

 

肩こりというか首が辛い時があるので本当に助かります。ありがとうございます。

 

WP_20150324_001

 

WP_20150324_002

posted @ 2015/03/24 23:54 by 初音 玲

[Netduino]BuildInsiderでNetduino入門の連載始まりました

www.buildinsider.net

Arduinoピン互換で.NET Micro Frameworkに対応しているNetduinoの入門記事の連載がはじまりました。

去年くらいから温めていた企画です。ぜひ、お読みいただき感想を聞かせて頂けたら幸いです。

posted @ 2015/03/24 18:14 by 初音 玲

「前例がある」ことを恐れちゃダメ

前回、

hatsune.hatenablog.jp

というエントリをあげました。

一般的には「前例がない」は否定的な流れで使われます。

その影響なのか分かりませんが、前例調査を意識なのか無意識なのかさけてしまってはいないでしょうか。

なぜかといえば、学生さんなどのアイデアを聞く機会が最近多いのですが、前例を調査しないで先に進んでしまう、前例調査をしていないと見受けられるアイデアにある程度の頻度で出会うからです。

類似のアイデアを知ることで、自分たちのアイデアのいい点、悪い点もみえてきますし、乗り越えないといけない事柄もみえてきます。既出のものがたどりつけなかった先に価値を見出して、その先に行くことも「前例がない」ところです。何もゼロからすべてが「前例がない」からかっこいい訳じゃないので、きちんと前例を調べ、自分たちの価値観と「前例がない」部分の掛け算で進むといいじゃないかと思うのです。

前例があることを恐れる必要とかないのですから。

posted @ 2015/03/24 9:57 by 初音 玲

「前例がない」は褒め言葉

『前例がない』という理由を持ち出す、時代遅れの恥ずかしさ

「前例がない」は褒め言葉であるとある時から解釈するようになったら気持ちが軽くなった。
「前例がない」から「色々試す必要があるのでスピード感が必要ですね。」
「前例がない」から「うちの独自性が出せますね。」
「前例がない」から「世界にも通用しちゃうかも。」

前例がないはそれほどパワフルな言葉なんです。

posted @ 2015/03/24 9:28 by 初音 玲

[Codezine]Forguncy Pro + Azureの記事がCodezineに掲載されました。

codezine.jp

 

Forguncy Proの外部データベース連携を使って、Microsoft Azure SQL Databaseのデータメンテアプリを素早く構築する方法を調べてみました。

posted @ 2015/03/23 22:58 by 初音 玲

[Win10TP]Windwos 10 Technical Preview 10041にアップデート

S7SとMiix2 8をWindwos 10 Technical Preview 10041にアップデート中

10041がこないーという方は、Windows 10の[保守と管理]で[詳細オプション]にある[プレビュービルドのインストール方法を選択してください]を「高速」にするとWindwos Updateで降ってきますよ。

posted @ 2015/03/22 5:03 by 初音 玲

[xamarin]HVC-C SDK for Xamarin.Androidを公開しました。

nugetにHVC-C SDK for Xamarin.Android v1.2.2を公開しました。

 

HVC-Cとは

HVC-Cはオムロンさから発売されている顔認識センサーデバイスです。多人数のセンシングにも対応しており、クラス全体や打ち合わせ、舞台から客席の表情認識などにも使えるようなデバイスです。

HVC-C

 

公式SDK

公式SDKは、iOS版とAndroid版があります。また、ソースも公開されています。


OmronSensingEggProject/HVC-C1B_SDK-Android ・ GitHub

 

HVC-C SDK for Xamarin.Android

しかし、残念ながら現時点でWindows版やXamarin版がありませんでした。

そこで、公開されているソースからXamarin.Android版を作成してnugetに登録しました。


NuGet Gallery | OMRON HVC-C SDK for Xamarin.Android 1.2.3

 

nugetですので、Visual Studioから簡単に導入できます。

image

 

また、Githubにソースも公開しています。


hatsunea/HVC-C1B_SDK-Android ・ GitHub

 

HVC-C SDK for Xamarin.Androidを使ったサンプル

今回公開したSDKを使ったサンプルプログラムもGitHubに公開しました。


hatsunea/HVC-C1B_SimpleDemo-Android ・ GitHub

こちらのサンプルではnugetからSDKを取得していますので下記の手順で動作可能になります。

  1. ダウンロード
  2. ダウンロードしたzipのプロパティで[ブロックの解除]
  3. zipを任意のフォルダに展開
  4. Visual Studioで開く
  5. プロジェクトエクスプローラーでプロジェクトを右クリックしてnugetを開いてSDKをダウンロード

 

なお、もちろん、Visual Studio 2013 Community Editionでも動作します。

 

今後の展開

HVC-C SDK for Xamarin.Androidのソースを見て頂くとわかるように、Core部分とXamarin.Andoid依存部分を分離しています。

今後は、Xamarin.iOS依存部分、WinRT依存部分、WindowsPhone依存部分を作成して

  • HVC-C SDK for Xamarin.iOS
  • HVC-C SDK for Windows Runtime 8.x
  • HVC-C SDK for Windows Phone 8.x

を提供予定です。

もし、反響が大きければ優先順位を上げて開発しなくちゃね!

posted @ 2015/03/15 12:24 by 初音 玲

[IoTKitHol]EGIotKit.UtilityにPull Request

日本マイクロソフトが展開している「IoT Kit Hands-on Training Site」と連動した便利ユーティリティにEGIotKit.Utilityがあります。

https://github.com/ms-iotkithol-jp/Library/tree/master/EGIoTKit.Utility

 

名前の意味は「Easy IoT Kit Utility」でしょうか。

このユーティリティを使うと.NET Micro FrameworkからHTTP通信がしやすく、また、JSON文字列も作りやすくなっています。

 

Codezineの記事では、Microsoft Azure Web Sitesを使っている「Internet of Things キット ハンズオン トレーニング」の内容とはちょっと異なったアプローチをしており、Microsoft Azure Mobile Servicesを使った手法をとりましたので、このユーティリティを使わせていただきました。ありがとうございます。


IoTの計測データをWindowsストアアプリで可視化してみよう (1/3):CodeZine

 

この記事の前半は、.NET Micro Frameworkを使って温湿度を測定してクラウドにアップするための手順やプログラムコードになっています。

そして、記事の中でユーティリティを使ったときに気付いた改善点をpull requestしました。

どこかのタイミングでマージされると思いますが、もし、お急ぎの場合は、pull requestの方も見て頂けると上手く動きます。

posted @ 2015/03/15 9:49 by 初音 玲

[IoTKitHol]「Internet of Thingsキットハンズオントレーニング」と連動した情報発信を開始

日本マイクロソフトが展開している「Internet of Thingsキットハンズオントレーニング」と連動した情報発信を開始しています。

http://hatsune.hatenablog.jp/archive/category/IoTKitHol

 

目的としては以下の通り。

よろしくお願いします。

posted @ 2015/03/15 9:31 by 初音 玲

[xamarin]Human Sensing Frontier Award #01ソリューション部門グランプリを受賞しました

Human Sensing Frontier Award #01のソリューション部門で「Selfie & Coffee」が選ばれました。

http://plus-sensing.omron.co.jp/egg-project/award_top/award01/

ありがとうございます。

副賞に「追加HVC-C提供」という選択肢があるので、追加提供をお願いしてそれを前提にアプリ作ってみようかと思っています。

posted @ 2015/03/13 17:02 by 初音 玲

[EV3]OPC + LEGO MINDSTORM EV3 と 100mpusを紹介いただきました。


次々発表されるアイデアに圧倒!第3回OPC Hack & Make Gatheringを開催しました。 | オリンパス OPC Hack & Make Project

オリンパスOPCのテスターやってます、初音です。

この前、参加した第三回OPC Hack & Make Gatheringの紹介ページで2つの作品を紹介して頂きました。

1つ目はOPC + EV3であるOPC brick EV3。


OPC brick EV3初稼動 - YouTube

もう一つは、TMCNチームひゃくらすとのコラボ作品である100mpus。

http://opc.olympus-imaging.com/wp-content/uploads/2015/03/014.jpg

期末でなかなか時間が取れませんが完成に向けてアプリをブラッシュアップ中です。

posted @ 2015/03/10 15:32 by 初音 玲

[WiX]VCRedist の ExePackage を作ってみた。

さっきも書いたけど、VS2015 から、VCRuntime の配布も原則として VCRedist を使うことになる(おそらく、MFCも含めてマージモジュールでの配布の選択は無くなるだろう)。

個人的には、VCRedist の開発元が、ClickOnce 向けの setup.exe 用必須コンポーネントの情報だけではなく、ExePackage 向けの情報も出してくれると、大変ありがたかったりするのだけど。。。

ま、それはともかくとして、既存の(そして残念ながらこちらは開発元からの提供はない) VCRedist から代表的な2つをピックアップして、ExePackage を作ったので張り付けておく。

VC100(VS2010のVisualC++) SP1用

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Fragment>  
  3.  <util:ProductSearch  
  4.        Id="VCRedist100_x86"  
  5.        Variable="VCRedist100_x86"  
  6.        ProductCode="{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}"  
  7.        Result="state"/>  
  8.  <PackageGroup Id="VCRedist100_x86">  
  9.   <ExePackage  
  10.     Id="VCRedist100_x86"  
  11.     Name="redistVC100\vcredist_x86.exe"  
  12.     SourceFile="VS2010\vcredist_x86.exe"  
  13.     DetectCondition="VCRedist100_x86 &gt;= 3"  
  14.     Permanent="yes"  
  15.     PerMachine="yes"  
  16.     Cache="no"  
  17.     Vital="yes"  
  18.     Compressed="no"  
  19.     LogPathVariable="VCRedist100_x86_log"  
  20.     DisplayName="Microsoft Visual C++ 2010 x86 Redistributable - 10.0.40219"  
  21.     Protocol="netfx4"  
  22.     InstallCommand="/q /norestart /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[VCRedist100_x86_log].html&quot;"  
  23.     RepairCommand="/q /norestart /repair /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[VCRedist100_x86_log].html&quot;"  
  24.     UninstallCommand="/uninstall /q /norestart /ChainingPackage &quot;[WixBundleName]&quot; /log &quot;[VCRedist100_x86_log].html&quot;" />  
  25.  </PackageGroup>  
  26. </Fragment>  

VC120(VS2013)用 Update4 用

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Fragment>  
  3.  <util:ProductSearch  
  4.     Id="VCRedist120_x86"  
  5.     Variable="VCRedist120_x86"  
  6.     ProductCode="{13A4EE12-23EA-3371-91EE-EFB36DDFFF3E}"  
  7.     Result="state" />  
  8.  <PackageGroup Id="VCRedist120_x86">  
  9.   <ExePackage  
  10.     Id="VCRedist120_x86"  
  11.     Name="redistVC120\vcredist_x86.exe"  
  12.     SourceFile="VS2013\vcredist_x86.exe"  
  13.     DownloadUrl="http://go.microsoft.com/fwlink/?LinkID=320712"  
  14.     DetectCondition="VCRedist120_x86 &gt;= 3"  
  15.     Permanent="yes"  
  16.     PerMachine="yes"  
  17.     Cache="no"  
  18.     Vital="yes"  
  19.     Compressed="no"  
  20.     LogPathVariable="VCRedist120_x86_log"  
  21.     DisplayName="Microsoft Visual C++ 2013 Redistributable (x86) - 12.0.30501"  
  22.     Protocol="burn" />  
  23.  </PackageGroup>  
  24. </Fragment>  

あえて、コメントを入れていないのはわざとです。すべての行を分けてるのもわざとです。

質問がある場合は、msi-ml(http://www.freeml.com/msi)までどうぞ。

posted @ 2015/03/09 15:25 by とっちゃん

[VC++] Universal CRT

ネタ元:Introducing the Universal CRT

ちょっと、インパクトが大きいのでBlogにも書いておこっと。

VS2015 では、長年基本構成が同じだった C/C++ ランタイムに大幅なてこ入れが入ります(これ自体は、2014/01 の時点ですでに情報が出ています)。

この時は、msvcrXX と msvcpXX を見直して、VCRuntime, AppCRT, DesktopCRT の3部構成にするよ!CTP1 からそうなっるよ!というものでした。

CRTの構成が変わったからと言って、アプリケーションのビルドや配布自体が大きく変わるわけじゃないし、インパクトがあるといっても、直接的な影響を受けるのは、そろそろ絶滅危惧種に認定されそうな C++ アプリ配布をやらなきゃいけない Setup Author だけですからね。

彼らは本物のプロフェッショナルなので、この手の話題はいち早くキャッチアップしてるだろうし、今までだって名前が違ってたからそのままというわけにはいかなかったので作業量的にも変わらないし、影響は軽微だったから私も放置だったわけですけど(もちろん、中身の問題は別よw)。

で、今回ここをもう一度改め、AppCRT と DesktopCRT のうち、Stable(もうずっと変わっていない部分=C言語のライブラリ部分)な箇所をまとめなおして、Universal CRT って名前で統合するよ!に変わります。

ここまでなら、FBに1つになるんだってーって書いて終わりなんでしょうけど、影響が大きいのがそのあと。

Universal CRT に Stable なものに集約させるので、変更が入らないからシステムコンポーネント(Win10からプリインストール)にして、WindowsUpdate 経由で配布しますよ!

です。

どうやって配布するんだよ!という話はネタ元に載っているのでそちらを参照していただくとして。。。

超絶意訳モードでざっくりと書くと、

  • Windows10 にプリインストールされてるから、何も考えたくないなら今すぐ Windows10 にすればいいと思うよ。
  • 俺は、Vistaのあの背景がいいんだよ!という人でも、Windows Update で配布するから、家康よろしくなくまで待ってれば届くよ!
  • Windows Update なにそれ?おいしいの?俺のマシンでMACアドレス作ると重複するかもよー!って怒られるんだけど?な人には、msu があるよ!
  • システムコンポーネントだからマージモジュールはないよ!でも、それ以外のモジュールも含めて、今までと同じように VCRedist でまとめて配れるよ!
  • スタティックリンクしてるなら今までと同じでUniversalCRT部分もスタティックリンクされるよ!
  • でもね。Universal CRT は、アプリのローカルフォルダ(exeと同じ場所)への配置はサポートしてないよ。

というところですね。

実際はこんな風には書かれてませんよ。勉強会後の懇親会でしゃべってる風味にしてあるだけです。

ということで、これからは、C++アプリでもブートストラッパー必須の時代が来ます。まぁ msi 単独では msu を実行させることができないから仕方ないんですが。幸いにも先週初めから、うちも WiX Bootstrapper を使う方向で話が進んでるので、今年の段階で対応の基礎は出来上がりそうですけどねw

posted @ 2015/03/09 12:48 by とっちゃん

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

2015/03/07(土)に、静岡Developers勉強会 UnityとBlenderハンズオンが行われる島田市地域交流センター歩歩路(ぽぽろ) 第4会議室には7名が集まりました。同じ日に島田市、静岡市、浜松市、三島市と4つ勉強会が重なってしまい2人欠けましたが、今回は県外の名古屋から1人参加してくださいました。参照:静岡でUNITYとBLENDERをやった話
前回:静岡Developers勉強会 UnityとBlenderハンズオン第1章

当日は参加者全員が、Unityのアルカノイドもどき(ブロック崩し)とBlenderのサイコロ(モデリング)を完成させることが出来たのが良かったです。

今回のUnityはブロック崩しということで物理演算を使っているのですが、やはり物理演算って面白いですね。数値を間違って入力してしまったことで、ボールがブロックに跳ね返らないで止まってしまったり、ボールがラケットにぶつかるとラケットがボールの重みで徐々に沈んでしまったりと、ミスもまた別のゲーム性を産みます。参加者ともどもミスで起こる現象に笑いながら楽しんでハンズオン出来ました。

Blenderはたかがサイコロされどサイコロですね、Macを使用している方はマウスではなくトラックパッドを使っての操作方法に苦労してました。おまけとして木目調のテーブル作成もやってもらったのですが時間切れでした。参加者の方が仰っていたけど、Blenderは一人でやっていたら絶対挫折していたが皆で協力して何とか解決出来ている。そういうところが勉強会のいいところだと思います。

家に帰宅していてツイッターを眺めていたら「UnityやUnrealを覚えないといけない脅迫観念にかられている若者へ」が流れてきました。
一部引用:「unityを勉強しないとだめかも…どうしよう…どうしよう…。」「ゲームを自分で完成させたいけど、なんかいいツールないかな、unityならできそうだ!全部ひとりゲームを完成できた!」後者ならunityを勉強する価値があります。前者が多くてしかもみんな不安になってるから心配。

まー静岡Developers勉強会としては、後者でありスマホアプリを開発する上で汎用的なツールとしてUnityとBlenderを学び、6月にはUnityの2Dでミニゲームを作成してもらって発表会をする予定です。


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

posted @ 2015/03/09 2:06 by やじゅ

[Codezine]CodezineにFEZ Spiderで計測したデータをクラウド経由でストアアプリで表示する記事が掲載されました。


IoTの計測データをWindowsストアアプリで可視化してみよう (1/3):CodeZine

.NET Micro Frameworkを使ってセンサー値をAzure Mobile Service経由でストアアプリに表示する内容です。

記事の都合上、データアップロードもAzure Mobile Serviceを使っていますが、Event Hubを使って動作しているバージョンもあります。近々、Code Recipeで紹介したいと思います。

posted @ 2015/03/07 0:00 by 初音 玲