読者です 読者をやめる 読者になる 読者になる

emu雑記

C#erな人が書いているブログです。最近、javaを始めました。なんかいろいろやってます。

Windows 10 で Genymotionが動かない!

インストール時にいろいろあったWindows10ですが、入れてしまえばかなり快調です。
ただ、Android開発時の生命線ともいえるGenymotionのインストールでだいぶはまりました。

そんな時に救ってくださったのがこちらです。
labo.dotsmart.biz

いいね!が押せるなら100回は押したい気持ちです。

Office 365 試用版を試す

いろいろありましたが、まさかの半月経っていました。
今日は久しぶりにゆっくりと記事が書けます。

さて。Microsoft Conference 2014で「おっ!」っと思ったのが、MS 米田さんのセッションです。
「Office 365、Google Apps など、情報共有基盤のクラウド化を選択する際に検討すべき 10 のポイント」

私も今の開発チームでGoogle Documentを使っています。(使っていました)

でも、やっぱりOfficeには敵わないんですよね。
特にExcel方眼紙に慣れてしまっている私としては、ショートカットキーが使えないとか死んでしまうレベル。

他のメンバーに聞いてみても、「やっぱブラウザベースは使いにくいよね。」と言っていましたし。

でも、「『Office 365』って『Office 2013』と何が違うん?」レベルだった私。

このセッションを聞いて、やっとわかりました。

いつも使っている 「Office 2013」 とか全然関係なかったんです!


すごくわかりやすく言うと、以下のクラウドサービスの複合体でした。
・メールサーバー
グループウェア
社内SNS
・社内メッセージツール
・オンライン会議
・オンラインプレゼンテーション
・オンラインストレージ
etc

もっともっとザックリいうと、Office サーバー製品をサーバーをこちらが準備しなくても使えるようになるってこと。

これは、小さいビジネスシーンや、自分たちで作った開発チームなんかではすごい便利なんです。

そして、プランにもよりますが「Office 365 Business」を使用すれば、5台までOffice アプリケーション*1 *2をクライアントマシンにインストール可能。

私も、

①普段の開発マシン
②外出用のノートパソコン
mac Book Pro

とクライアントが三台ありますからね。

Windows タブレット
も増える予定ですし。


話はそれましたが、Office 365 は上記のようなサービスを統一して提供してくれます。

ちなみに私が使っていた前のチームインフラはこんな感じ。

・ドキュメント→google Document,Office 2010
・ドキュメントサーバー→VisualStudio Online
グループウェアサイボウズ
・メールサーバー→レンタルサーバー
・オンライン会議→Skype、LINE
・オンラインプレゼンテーション→Mikogo
・オンラインストレージ→そんなものはない


なんかいっぱいありすぎて…。
先月あたりでは、サイボウズは誰も使っていなかったです。

Office 365 に移行したあとは「Outlook 2013」でメール・タスク・予定表と統一して管理できるので、やっとこのあたりが整理できたかなっと安心。

ドキュメントサーバーもSharePointで管理できて、OneDriveアプリケーションをインストールして、WindowsのExplorerと統合できました。

続きは次回!!
今回はイイコト書きすぎたので、次回は悪い点なんかも書いていきます!!

*1:今だとOffice 2013

*2:mac版のOfficeも可能

Microsoft Conference 2014に行ってきました

今年もマイクロソフト カンファレンス2014(二日目だけ)に行ってきました。
いやー、目玉が全くなかったですね…。(MS様 すみません!)

「Mobile first, Cloud first」がマイクロソフトのキャッチコピーなんですが、Windows Phone が日本のメインキャリアからリリースされてない以上、どう頑張っても日本ではfirstにならないですよね…。

昨日のしばやん様のブログによればフィンランドWindows Phone天国みたいですが。
フィンランドの Windows Phone 事情とかずあきさんの理想郷 - しばやん雑記

SQLServer 2014 インメモリのセッションも昨年とほぼ一緒だったし。

開発関連は「モバイル=Xamarin」に頼るしかない状況。Xamarinのお値段高すぎ。

ASP.NETはいい感じに進化してますけどね!Windows アプリは…。セッションは大入りでしたけど。

Windows タブレットは大当たりすると思ってるんですが、ストアアプリじゃなくても…みたいな感もありますし。


そんな中、よかったセッションは二つ。

スポンサーセッションのDELLが発表していたPCI Express NVMe。

データベースの処理は突き詰めていけばHDDの読み込みにぶち当たるのは最近のお約束。

なんでSQLServer 2014もインメモリ対応でそこをクリアしようとしています。

でも、メモリじゃなくてもSSDでいいんじゃね?って内容でした。
「コストも下がって、処理も早い!最高やな!!」

まぁ、ぶっちゃけ発表のあった「DELLサムスン」構成じゃなくてもいいと思います。

とりあえずPCI Express NVMeを頭の片隅に入れておくことにしました。


もう一つよかったセッションが「Google Apps VS Office 365」です。
※正式セッション名:Office 365、Google Apps など、情報共有基盤のクラウド化を選択する際に検討すべき 10 のポイント

これは本当によかった!!!
Google Appsは個人でも使うのでイメージはあったんですが、Office 365はよくわかんないので無視してました。
Office 2010もってるしなー。みたいな。

全然ちがうかった。

Office 365 イケイケやん!!ってことで、本日、導入しましたよ。

そんなわけで、Office 365 導入への道は次回からアップしていきます。
・Office 365 試用版を試す
・Office 365 はAzure Active Directoryに紐づいていた!
・Office 365 カスタムドメインと紐づける!(裏ではAzure Active Directoryのカスタムドメインに!)
レンタルサーバー会社がOffice365に対応してなかった!
ドメイン管理だけレンタルサーバーと切り離す!
DNSレコードのメンテナンスでOffice 365 が完全体になった!
・Azure Active DirectoryドメインユーザーでVisualStudio.comのユーザーを一元管理!

みたいな流れです。今日一日でここまでやって疲れた…。

androidのGridViewでスワイプが発生しない現象

android

この現象に1か月ほど悩まされてました。

スワイプ操作はGestureDetectorを使って実装します。

以下、Fragment内での処理。

/**
 * ジェスチャー
 */
private final GestureDetector mGestureDetector = new GestureDetector(getActivity(), new GestureDetector.SimpleOnGestureListener() {
	@Override
	public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
		Log.i("GestureDetector", "スワイプ");
		//ここにスワイプ処理
		return super.onFling(e1, e2, velocityX, velocityY);
	}
});

@Override
public void onActivityCreated(Bundle savedInstanceState) {
	super.onActivityCreated(savedInstanceState);
	// GridViewを取得
	GridView gridview = (GridView) getActivity().findViewById(R.id.gridview);
	// フリックイベントの登録
	gridview.setOnTouchListener(new OnTouchListener() {
		@Override
		public boolean onTouch(View v, MotionEvent event) {
			return mGestureDetector.onTouchEvent(event);
		}
	});
}

ってな感じで実装しました。

ところが、上下方向のスワイプでは反応するのに、左右方向のスワイプだけ発生しない。

かなりの時間をかけて調べてたんですが、単純なことでしたね。

答えはViewPagerを使っていたからでした。
ViewPagerを使っていると、左右方向のスワイプ処理が乗っ取られて子Viewのイベントが発生しないようです。

同じ現象に困っている人が居たらお試しください。

ASP.NETのアプリケーション構成について

ASP.NET ASP.NET MVC ASP.NET Web API

本日は久しぶりに.NETの話題です。

レンタルサーバーで以前動いていたASP.NET WebAPIが突然動かなくなりました…。

動いていたときから、動かなくなった間にやったことは…っと考えていたら、その親階層にASP.NET MVCのアプリケーションを配置した!!

構成はこんな感じ

webroot[ASP.NET MVC]
|-Views
|-Scripts
|-Images
|-Content
|-bin
|-Application_Folder[ASP.NET WebAPI]

やりたかったことは

http://www.emu717171.com

ASP.NET MVCのページにしておいて、

http://www.emu717171.com/Application

ASP.NET WebAPIにしたかったのです。

今回、調べてみるとweb.configの継承という仕組みが悪さしていました。

↓ここに載ってます。
ASP.NET 構成ファイルの階層と継承

ASP.NET MVC(親フォルダー)のweb.configの設定が、ASP.NET WebAPI(子フォルダー)の設定に反映されちゃってる感じかな。

これを無効にするには、親フォルダー側のWeb.configに

<location path="." inheritInChildApplications="false">

のタグが必要でした。

今回は完全に独立させる構成だったので、一気に全部を囲んでみました。

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=301880
  -->
<configuration>
  <location path="." inheritInChildApplications="false">
    <configSections>
      <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
      <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </configSections>
    <connectionStrings>
      <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WebApplication3-20140810035909.mdf;Initial Catalog=aspnet-WebApplication3-20140810035909;Integrated Security=True"
        providerName="System.Data.SqlClient" />
    </connectionStrings>
    <appSettings>
      <add key="webpages:Version" value="3.0.0.0" />
      <add key="webpages:Enabled" value="false" />
      <add key="ClientValidationEnabled" value="true" />
      <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    </appSettings>
    <system.web>
      <authentication mode="None" />
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>
    <system.webServer>
      <modules>
        <remove name="FormsAuthenticationModule" />
      </modules>
    </system.webServer>
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
          <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
          <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
          <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
          <bindingRedirect oldVersion="1.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    <entityFramework>
      <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
        <parameters>
          <parameter value="v11.0" />
        </parameters>
      </defaultConnectionFactory>
      <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      </providers>
    </entityFramework>
  </location>
</configuration>

TextViewの省略化が突然、無効になって画面をはみ出す現象が発生

android

AndroidのViewに「TextView」がある。Windows Formで言うところのLabel、wpfで言うところのTextBlock。

TextViewに長い文字列をセットすると、基本的には折り返して全体表示を行う。

でも、1行にまとめたい。
そんなときは、「android:ellipsize」と「android:singleLine」を設定すると省略形で表示できます。

<TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:singleLine="true" />

ここまではいいんですが、同じ画面内にあるEditTextの編集を開始すると、省略形で表示されたTextViewが元に戻ってしまう現象が発生してます。

直接の原因はTableLayoutでした。

↓は省略化が正常な状態

f:id:emu717171:20140805235552p:plain

↓ソフトウェアキーボードを表示すると・・・伸びた!!!

f:id:emu717171:20140805235645p:plain

これ、いろいろな要素が絡み合っているんですが、どうもソフトウェアキーボードが表示されるタイミングで描画処理が行われてるっぽい。

ところが、Activityは破棄されていないのでonResume()も呼び出されないし、ndroid:configChangesも反映されない。

いろいろやっていたんですが、原因は横幅を抑えたい場合に指定するandroid:shrinkColumnsを設定していないことでした。

入力部はもちろん可変で横幅いっぱい表示にしたいので、android:stretchColumnsを設定していたのですが、まさか「横幅を最大に延ばす」設定と「横幅を抑えたい」設定を同時に行う必要があったことは盲点でしたね。

無事に表示されました。
f:id:emu717171:20140806000352p:plain

一応、レイアウトxmlを貼っときます。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:shrinkColumns="1"
        android:stretchColumns="1" >

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/text_title"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent"
                android:layout_marginLeft="5dp"
                android:gravity="right|center_vertical"
                android:singleLine="true"
                android:text="Title:" >
            </TextView>

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginRight="20dp"
                android:orientation="horizontal" >

                <TextView
                    android:id="@+id/text"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:ellipsize="end"
                    android:gravity="center_vertical"
                    android:singleLine="true"
                    android:textAppearance="?android:attr/textAppearanceMedium" >
                </TextView>
            </LinearLayout>
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >


            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_marginRight="20dp"
                android:layout_span="2"
                android:orientation="horizontal" >

                <EditText
                    android:id="@+id/edit1"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_gravity="bottom"
                    android:layout_marginLeft="5dp"
                    android:hint=""
                    android:maxLength="4"
                    android:scrollHorizontally="true"
                    android:singleLine="true" >
                </EditText>
            </LinearLayout>
        </TableRow>

        <Button
            android:id="@+id/button1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="ボタン1" >
        </Button>

        <Button
            android:id="@+id/button2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="ボタン2" >
        </Button>

        <Button
            android:id="@+id/button3"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="ボタン3" >
        </Button>
    </TableLayout>

</ScrollView>

サーバーにASP .NET MVCを発行してもbootstrapのglyphiconsが表示されない

ASP.NET Web API Visual Studio

今日、ハマったこと。

レンタルサーバーに発行したASPページ上で、glyphiconsが表示されない。

と思ったらFTP発行プロファイルだと、fontsフォルダが配置されてないだけだった。

どうでもいいことに時間を使ったなー。

fontsフォルダを右クリックして【fonts の発行】を選択すれば解決しました!

f:id:emu717171:20140801012437p:plain