2016年3月29日火曜日

Android : FireTVのセットアップ

デジタルサイネージ用にFireTVを購入したのでそのセットアップです。鈴木歩検証。

1.FireTVの設定
FireTVを立ち上げて、ネットワークの設定Amazonアカウントの登録をします。
セットアップの動画が始まります。 その後、動画のプレミア設定してやっと終了です。

2.FireTV用のSDKをインストール
SDKマネージャを開いて、FireTV用のURLを登録
SDK UpdateSitesを開き、アマゾンのURLを追加
https://s3.amazonaws.com/android-sdk-manager/redist/addon.xml
SDKプラットフォームズを開き、Show Package Detalsにチェックをいれる。
android4.2.2の中に、Amazon Fire TV SDKがあるため、チェックをいれてインストールする。

3.FireTVへのアプリ転送
FireTVのリモコンで設定->システム->開発者オプション->ADBデバッグ->オンにする。
USBで接続しAndroidStudioからFireTVに接続してみる。
アプリを転送。うまく表示できました。

参考サイト
https://developer.amazon.com/public/solutions/devices/fire-tv/docs/setting-up-your-development-environment
http://tabkul.com/?p=14666
http://www.aftvnews.com/how-to-sideload-apps-to-your-amazon-fire-tv-using-a-mac-with-os-x/

Office Mix : インストールと使いかた

Office Mixを使うためにまとめておきました。
Office MixはWindows版のOffice2013以降にしかないので、それでインストールします。
https://mix.office.com/ja-jp/Home
にアクセスしサインインします(今回はsist.ac.jpのOffice365アカウントを利用しました)
同意して、インストールします。
インストールが終了すると、次の画面が出てきます。
4〜5月の予定表を作って見ました。

今回は単に2枚のスライドを10秒間隔で表示するだけなので、「ビデオにエクスポート」(1枚表示秒数指定)して完成です。mp4でエクスポートされます。今回は一番上のフルHD(1080p)で合計20秒の動画を作りました。ファイルサイズは2.3MB程度。
 今回は静止画を動画にしただけなので、Mixでなくてもいいですが、今後動きをつけた動画を作っていき、デジタルサイネージを運用したいと思います。
 まずこの動画をAndroidで動くか検証です。

2016年3月28日月曜日

RStudio (3): RMySQLのデータからクラスタ化

RMySQLでDBからデータを取得し、そのデータからクラスタ化しました。
距離関数を作成するときに試行錯誤したのですが、DBから得られたデータでそのまま行けました。


dbconnector <- dbConnect(dbDriver("MySQL"),dbname="xxxxxxxx",user="yyyyyyyyy", password="zzzzzzzzz")
zones.table <- dbGetQuery(dbconnector, "SELECT zone_nondpc, zone_nontrans, zone_nonhospital , zone_hospital FROM zones where prefecture_id = 22")
zones.c <- cbind(c(zones.table$zone_nondpc), c(zones.table$zone_nontrans), c(zones.table$zone_nonhospital), c(zones.table$zone_hospital))
zones.d <- dist(zones.c)
print(zones.d)
zones.h <- hclust(zones.d)
plot(zones.h)




グラフにタイトルを入れる場合は

plot(zones.h, main="Cluster in a secondary medical care zone", xlab ="Zone ID", ylab="Distance")
のようになります。

クラスタ作成時に、領域でクラスタを表示する場合は、次のようにやります。最初の部分は同じ


cluster = hclust(dist(zones.d), method="ward")
rect.hclust(cluster, k=3, border="red")

2016年3月25日金曜日

RStudio (2): RMySQLの設定

RStudioをインストールし、ログインできるようになったので次はRMySQLのインストールを行った。
資料を見るとRを起動し、
> install.packages("DBI")
> install.packages("RMySQL")
とすればいいと書いてあるが、どうしてもインストールできない。下記のようなエラーが出てしまった。
警告:  リポジトリー https://cloud.r-project.org/src/contrib に対する索引にアクセスできません 
 警告メッセージ:
package ‘DBI’ is not available (for R version 3.0.2)

といいうことで、通常のコマンドラインから(Rではない)から次を発行
# wget http://cran.r-project.org/src/contrib/DBI_0.3.1.tar.gz
# wget http://cran.r-project.org/src/contrib/RMySQL_0.10.8.tar.gz
# R CMD INSTALL DBI_0.3.1.tar.gz
# yum install mysql-devel  (これが入ってないとRMySQLでエラー)
R CMD INSTALL RMySQL_0.10.8.tar.gz
これでインストール完了。RStudioにログインし、コマンドを発行してみる。
> library(DBI)
> library(RMySQL)

> dbconnector <- dbConnect(dbDriver("MySQL"),dbname="naisyo",user="naisyo", password="oshieteagenai")
> zones.table <- dbGetQuery(dbconnector, "select * from zones")
<- dbconnect="" dbdriver="" dbname="naisyo" password="oshieteagenai" span="" user="naisyo" ysql=""><- dbconnector="" dbgetquery="" from="" select="" span="" zones="">

これでRStudio上でDBからの情報を扱えるようになった。これで解析を進めてみる。

参考
http://www.geovanie.me/installing-r-and-rmysql-in-centos-6-6/
http://rindai87.hatenablog.jp/entry/20110406/1302101132

2016年3月23日水曜日

RStudio : RStudioのインストール

rJavaに挫折したので、RStudioをインストールし、rを使うことにしました。

RのCentOSへのインストール
http://mizunolab.sist.ac.jp/2015/12/centosr.html
を参照

RStudioのインストール(今回はCentOS6.5)
# wget http://download2.rstudio.org/rstudio-server-rhel-0.99.441-x86_64.rpm
# yum -y install --nogpgcheck rstudio-server-rhel-0.99.441-x86_64.rpm
# rstudio-server verify-installation (インストールの確認)

[root@ip-10-0-0-213 ~]# rstudio-server verify-installation
rstudio-server start/running, process 2173

 これでインストールができたがデフォルトポートが8787のため、学内からアクセスできない。ポートを443を使うように変更する。
# vi /etc/rstudio/rserver.conf
 # Server Configuration File
www-port=443

この後
# rstudio-server verify-installation
とすると反映される(と思う)。
ダメなら
# rstudio-server restart

これで http://ホスト名:443 でアクセスするとログイン画面が出てくる
 Linuxのユーザでログインすると、Rの画面が出てくる

次はRStudioとMySQLの連携をして、データベースの内容をそのままRで使えるようにする。

参考
http://qiita.com/jcs502ulf/items/2f6b2ea3e9273f052365
http://memorandum2015.sakura.ne.jp/docs/server/configuration.html

2016年3月20日日曜日

rJava : プログラミング(13) クラスタ分析

rjavaで二次医療圏のクラスタ化をしてみました。
流れとしては
1. DBに接続しデータを持ってくる(344医療圏×4項目)
2. R配列作成
3. Rで距離行列作成
4. クラスタを計算
5. 樹形図で表示

結果は表示できましたが、件数が多くなんだかわからない状態に。表示を工夫する必要があります。ひとまず出来たようでよかったです。





[Medical2_Cluster01.java]

import org.rosuda.JRI.REXP;
import org.rosuda.JRI.Rengine;
import java.sql.*;
import java.util.Arrays;

public class Medical2_Cluster01 {

        public static void main(String[] args)
        {
                MySQL mysql = new MySQL();
                Rengine re = new Rengine( new String[]{"--no-save"}, false, null );
                ResultSet rs = mysql.selectZones();

                double values [][] = new double[344][4];
                int index = 0;
                try {
                        while(rs.next()){
                                values[index][0] = rs.getDouble("zone_nontrans")/rs.getDouble("zone_eventnum")*100;
                                values[index][1] = rs.getDouble("zone_dpc")/rs.getDouble("zone_eventnum")*100;
                                values[index][2] = rs.getDouble("zone_event4")/rs.getDouble("zone_totalnum")*100;
                                values[index][3] = rs.getDouble("zone_eventnum")/rs.getDouble("zone_population")*100;
                                System.out.println("Rate for Non-Transition("+rs.getString("id")+")"+values[index][0]);
                                System.out.println("Rate for DPC-Transition("+rs.getString("id")+")"+values[index][1]);
                                System.out.println("Rate for Contact more than 4 times("+rs.getString("id")+")"+values[index][2]);
                                System.out.println("Rate for Occurance of events("+rs.getString("id")+")"+values[index][3]);
                                System.out.println("");
                                index++;
                        }
                } catch (SQLException e) {
                        e.printStackTrace();
                }

                StringBuffer buf1 = new StringBuffer();
                buf1.append("c_values<-c(");
                for(int i = 0; i < values.length; i++){
                        if(i == values.length-1)
                                buf1.append(values[i][0]+","+values[i][1]+","+values[i][2]+","+values[i][3]+")");
                        else
                                buf1.append(values[i][0]+","+values[i][1]+","+values[i][2]+","+values[i][3]+",");
                }
                String c_values = buf1.toString();
                re.eval(c_values);
                re.eval("colnames(c_values)<-c('non-trans','doc','4times,'event)");
                re.eval("c_values.d<-dist(c_values)");
                re.eval("c_values.h<-hclust(c_values.d)");
                REXP x1 = re.eval("round(c_values.d)");
                System.out.println(x1);

                re.eval("png('Medical2_Cluster01.png', 640, 480)");
                re.eval("plot(c_values.h)");
                re.eval("dev.off()");

                re.end();
        }
}


参考
http://midoriit.com/2014/05/r%E3%81%AB%E3%82%88%E3%82%8B%E7%B5%B1%E8%A8%88%E8%A7%A3%E6%9E%901.html
https://www1.doshisha.ac.jp/~mjin/R/28/28.html

2016年3月8日火曜日

Java : exp4jライブラリ利用

フォームから数式を打ち込んで、それの値を出したかったのですが、exp4jというライブラリがあったので使ってみました。

http://projects.congrace.de/exp4j/
から-> Download -> Binary Jar をダウンロードして、Eclipse で外部jarファイルの登録をします。
そのページにあるexample1を試してみると、うまくいったので、ちょっと複雑な式でやってみました。


package math;

import net.objecthunter.exp4j.Expression;
import net.objecthunter.exp4j.ExpressionBuilder;

public class Math_main {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Expression e = new ExpressionBuilder("1 / 2 * (x1 -x2^2)^2 + 1 / 4 * (x2 - 2)^4")
          .variables("x1", "x2")
          .build()
          .setVariable("x1", 1.4693877551020404)
          .setVariable("x2", 1.3061224489795917);
  double result = e.evaluate();
  System.out.println(result);
 }

}


次は、標準入力(キーボード)やフォームから入力した式の値が出てくるかチェックします。式を入力した時に数式が表示されるようなスクリプトあったらフォームでの入力が楽なので、探してみたいです。

プロジェクト全体

2016年3月4日金曜日

ネットワーク:コメンドメモ

# show processes cpu
CPU利用統計




CPU utilization for five seconds: 23%/0%; one minute: 13%; five minutes: 13%
今回この部分が99%だった。

#show logging
Mar  4 17:19:43: %SEC-6-IPACCESSLOGP: list 144 denied udp 133.SS.XXX.2(53) -> 133.SS.YYY.48(62895), 1 packet

%SEC-6-IPACCESSLOGP は IPv4 TCP (6) and UDP (17)で何か起きたことを意味する





Mar  4 16:39:06: %SW_MATM-4-MACFLAP_NOTIF: Host ABCD.EFGH.e5ac in vlan 120 is flapping between port Gi1/0/9 and port Gi1/0/1
ネットワークループが起きている可能性


参考
http://www.cisco.com/cisco/web/support/JP/docs/SW/LANSWT-Access/CAT3750-ESWT/SMG/001/9777_01_2.html?bid=0900e4b182529d82
http://www.cisco.com/c/en/us/about/security-center/access-control-list-logging.html
http://www.cisco.com/cisco/web/support/JP/100/1007/1007988_showproc_cpu-j.html