Computer

Happy New Year 2018!

Computer Java JavaFX

Happy New Year! May this be a happy and fruitful year.

新年最初のエントリーは JavaFX で IBM Cloud (Bluemix)Watson Personality Insights を利用した人格診断プログラムです。

昨年の 11 月 1 日から IBM Cloud (Bluemix)ライト・アカウントが気楽に使えるようになったので少し遊んでみました。

もう、リリースされてから随分経ちますので参考となる資料がネット上にあるのでググればなんとかそれなりのものは動かせるようです。

と言うことで定番の Twitter のつぶやきを解析して人格診断をおこなうプログラムを組んでみました。

本家サイトではこんなデモがおかれています。

1

自分のアカウントで試そうとしたけどエラーで駄目だったのでサンプルの方ので分析してみました。

2

結果が上のスクリーンショットのようになります。

Watson Personality Insights で得られる結果は下段の 「ビッグファイブ – 個性」、「欲求」、「価値」のデータです。

分析データのスコアに関する説明は以下のようされています。

スコアはすべて百分位数であり、膨大な集団の中での位置を表しています。

たとえば、外向性が90%という結果は、その人が90%外向的であることではなく、100人中その人より外向性の低い人が90人(高い人が10人)ということを意味しています。

データは JSON 形式で返されてきます。

これらの分析データの信頼性はどれ位のものかは想像もつかないのですがなかなか面白そうです。

これらの技術を利用した面白いデモも用意されています。

Science and Star Wars の「自分のライトセーバーの色を見つけよう」です。

3

ヨーダと言えば STAR WARS では生ける伝説と称されるジェダイ・マスターで絶対的存在となっています。

うれしいですね! (^_^)

これはもっと詳しく人格診断してみたくなります。

JavaFX で Watson Personality Insights を利用した人格診断プログラムを作るに当たり、分析データをレーダーチャートを使って表示させることにしました。

ところが JavaFX 標準で用意されているチャートにレーダーチャートは見当たりません。((((;゜Д゜)))))))

しかたないので JFreeChart-FX に期待して見に行ったらレーダーチャートは無かった。(見落としていたらごめんなさい)

これで一気に面倒くささハードルが上がった。

とりあえずレーダーチャートは Canvas にお絵かき対応することにしました。

できあがったプログラムを動かして人格診断を行った結果がこちらです。

4

あれれ? なんか・・・ 酷くないですか?

ヨーダと 71 パーセントも性格が一致しているわりには・・・

まぁ、人工知能が人の発言(ツイート)を分析して人格診断するとこんなもんですねと悔しいから言っておきます。(ヲヒ

せっかく年末の忙しい時期にゴニョゴニョしてプログラム組んだのにこれではあんまりだから現在の日本の内閣総理大臣である安倍晋三氏の人格診断をしてみた。

5

おおっ! ビッグファイブ – 個性 のスコアが凄い!

やはり職業柄か誠実性、外向性のポイント高いですね。

個々のスコアもそうかも知れないと思わせる結果です。(個人の感想です。)

断っておきますが私は政治にあまり詳しくなくこの結果を利用して政治批判や誹謗中傷を行うことを目的としていません。

テレビ等で見聞きする情報をもとにした感想です。

それではもう一人診断してみましょう。

私の好きな歌手の宇多田ヒカルさんです。

6

ビッグファイブ – 個性の知的好奇心、協調性、外向性のポイントが高いですね。

やはり生まれついての芸術家なのでしょう。

さて、この結果から私には個性が足りないことがバレてしまいました。

2018 年は個性をもう少しなんとかする年にしなければ。。。(^_^;

そう言うことでこのプログラムのコードを載せておきます。

ただし、かなり酷いことを平気でしています。

パスワード等はプログラムにハードコーディングしていますのでそこは適宜書き換えてくださいませ。

あと、例外処理もほとんど対処していません。

IBM Cloud (Bluemix)ライト・アカウントでお気楽に Watson Personality Insights を試してみたかったからです。

JavaFX はそれなりに手抜きプログラムにも対応してくれます。(ヲヒ 本当は駄目ですよ(^_^;

見ての通り GUI は AnchorPane に直接部品を貼り付けリサイズ出来なくするということをしています。(HBox,VBox 使いましょう(^_^;

テキストフィールドに入力された Twitter ID のツイートを約 1000 件取得してそれを Watson Personality Insights で分析してその結果をレーダーチャートに表示させています。

Twitter のツイートを取得するためには Twitter API を利用しなくてはならないので Twitter Developer アプリケーション登録が必要となります。

IBM Cloud (Bluemix)Watson Personality Insights を利用するには IBM Cloud (Bluemix)ライト・アカウントの登録が必要となります。

既に登録されている、もしくは有料プランをご利用の方は必要ありません。

参考

ツイート取得、分析データ取得の処理は時間がかかるので非同期処理で対応しています。

JavaFX に非同期処理を簡単に扱うことを可能とする javafx.concurrent パッケージがあります。

参考

Twitter のツイートを取得処理は TweetCollection クラスでおこなっています。

取得したツイートの分析処理は PersonalityAnalysis クラスでおこなっています。

これら二つの処理を非同期処理してそれによって得られた分析データを Canvas にお絵かき対応したレーダーチャート上に表示させています。

ここで Canvas はベースとなるレーダーチャートと、分析データの表示用の二つを利用しています。

分析データをベースのレーダーチャートに重ねて表示させています。(フォトショップで使うレイヤーのように)

ここで Canvas に文字列を表示させるのに位置決めが難しく苦労しました。

X 座標の位置は日本語で等幅のものを使っているので一文字の幅データを元に計算することによって対応しました。

Y 座標はなかなか難しく結局これといった結論が得られずフォントのサイズをそのまま利用したり、日本語のセンターの位置をゴニョゴニョして取得しています。

これではあんまりなので FontMetrics を取得してちゃんと対応しようとしたのですがそれでもあまり綺麗にプログラマチックに決めることができなかった。

しかたないのでウザウザの力技コード対応としています。

ちなみに JavaFX 9 での FontMetrics 取得は JavaFX 8 と同じように出来なくなってしまっているので注意が必要です。

参考

このように手抜きだけどちょっと遊んでみようかなっていうデスクトッププログラムが JavaFX だと簡単にできてしまします。

取得解析するものを二つにして重ね合わせて表示して相性診断プログラムとしても楽しいかもしれません。

Java には JavaFX が標準でついているので Java プログラマー、Java に興味のあるかたはお気楽に楽しんでみてはいかがでしょうか。

もちろん、JavaFX も Java なのでクロスプラットフォームです。

Write once, run anywhere

Windows でも Linux でも一度書けばどちらでも動いちゃいます。

Write once,test anywhere とは言わないで (>_<。)

 

Hatena タグ: ,,

IBM BlueMix Watson の Personality Insights を使うために

Computer Java JavaFX

IBM BlueMix ライト・アカウント登録を行い、Watson の Personality Insights を使えるようにするφ(..)メモメモ

この IBM BlueMix ライト・アカウントは今年の11月1日から制限が緩くなりお気楽に試せるようになりました。

詳しくはこちらをご覧ください。 https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/

31

32

ライト・アカウントを今すぐ登録 ボタンをクリックします。

ライト・アカウント登録画面がひらきます。

33

必要事項を記入します。

アカウントの作成ボタンをクリックします。

34

登録を完了するために Eメールを確認します。

Eメールの指示通りに確認を完了させます。

35

ログインします。

38

Products, Watson,Watson API とたどってリンクをクリックして移動します。

39

View all services ボタンをクリックします。

40

次に Personality Insights の項の矢印ボタンをクリックします。

41

Already using Personality Insights? Log in のところからログインします。

ライト・フィルターが有効になっているようなのでライト・アカウントで使用できる Watson のサービスが表示されています。

43a

Personality Insights をクリックして選択します。

44a

作成ボタンをクリックします。

45a

ハンバーガーメニューからダッシュボードを選択してクリックします。

46a

47a

ダッシュボードに先ほど作成した Personality Insights サービスがあることを確認します。

48a

それを選択してクリックします。

49a

サービス資格情報をクリックします。

50a

先ほど作成した Personality Insights のサービス資格情報がここで確認できます。

51a

資格情報の表示をクリックして username, password を取得します。

52a

これで Personality Insights サービスを利用する準備は完了です。

おっと! SDK が必要ですね。(^_^;

管理画面の Developer resources の Getting started tutorial をくりっくします。

61a

遷移先画面の Overview for developers のリンク先の Using Software Development Kits から Watson SDKs のリンクをクリックします。

62a

私の場合 Java で開発をするので Java SDK を選択しクリックします。

63a

GitHub にて SDK を取得します。

64

ビルドとか面倒なことはしたくないので先程のページにある JAR ファイルのリンクからいただきます。

65

これで準備完了です!(^_^)

IBM のサイトはころころよく変わるのでこの通りではないかもしれませんが必要なリソースに辿り着ける道しるべになれば幸いです。

あと、Personality Insights の結果は JSON テキストで返されてくるのでお好みで Java で JSON を扱えるようにするライブラリを用意する。

私はこちらを利用しました。

http://json-b.net/download.html

とりあえず、自分用にφ(..)メモメモ… でした。

 

Hatena タグ: ,,

Twitter Developer アプリケーション登録

Computer Java JavaFX

Twitter Developer にてアプリケーション登録を行って

Consumer key
Consumer secret
Access token
Access token secret

を入手します。

サイトが昔とずいぶん変わってしまって迷子になってしまわないよにφ(..)メモメモ

まず、https://developer.twitter.com/ を開きます。

1

そして左上段の Docs にフォーカスして Documentation リンクをクリックして移動します。

2

左上にある Basics リンクをクリックしてでてくるコンテンツメニューの Authentication リンクをクリックして移動します。

3

4

移動したら Guides リンクをクリックします。

5

そして Access tokens from apps.twitter.com をクリックして Getting tokens from apps.twitter.com の項目の

apps.twitter.com をクリックして移動します。

7

過去にアプリケーションの登録を行っていなければ次のような画面が表示されます。

8

Sign in リンクよりログインします。

9

ログインが完了したら次のようなアプリケ-ション登録画面が表示されるので

Create New App ボタンをクリックします。

10

アプリケーション登録のために必要事項を記入します。

Developer Agreement の内容を良く確認して同意できるならチェックボックスにチェックを入れて Create your Twitter applecation ボタンをクリックします。

11

電話番号の登録をしていなければ次のようなエラー画面が表示されます。

12

無事にアプリケーションの登録が完了すれば次のような設定画面が表示されます。

13a

Permissions タブボタンをクリックします。

14a

Access の項目で必要な機能を選択します。

今回のアプリケーションは最新ツイートから過去ツイート1000個ほど取得するためのものなので Read only を選択しています。

あなたが Twitter クライアントを作るなら Read, Write and Access direct messages を選択するのがベターかもしれません。

選択したら Update Settings ボタンをクリックします。

16

Permissions の設定が完了したら Details タブボタンをクリックします。

17

Permissions の設定に間違いが無いか確認します。

18a

良ければ Keys and Access Tokens タブボタンをクリックします。

19a

この画面で Consumer key, Consumer secret が表示されています。

20a

Access Token を取得するために Create my access token ボタンをクリックします。

21a

ここで表示される画面で Twitter API を利用するために必要な

Consumer key
Consumer secret
Access token
Access token secret

が全て取得できます。

トップ画面からアプリケーション登録画面までたどり着きにくくなっているので

apps.twitter.com

にいきなり行くのが楽です。

Java を使ってアプリケーションを作るのに便利な Twitter4J はこちらからダウンロードします。

http://twitter4j.org/ja/index.html

以上、完全無欠の自分用φ(..)メモメモでした。

Hatena タグ: ,,

Atom をとりあえずインストール

Computer Java Ubuntu

Windows 環境で Valhalla がビルドできなくなって遊べなくなったので Ubuntu で遊べるように最近ブレイク中の Atom をインストールしてプログラムを実行できるようにしてみた。

注意: なぜ Windows 環境でビルドできなくなったか原因を調べて対処しないの?ってことは禁句です。私には無理!!

入れるパッケージはネットで適当に調べて Script を導入すればよさげなので早速試してみた。

他にもネット上の情報を拾い集めて入れてみた。

とりあえず Java が実行できればいいので Script の設定をφ(..)メモメモ

[編集] → [環境設定] → init.coffee に使いたい Java のパスを記述する。

process.env.PATH = [“使いたい Java のパス“, process.env.PATH].join(“:”);

1

あと、Script の出力画面のフォントがこのままだと小さくて見づらいので大きく変更する。

[編集] → [スタイルシート] → styles.less に次の設定を追加する。

.script-view .line{
    font-size: 18px;
}

2

これで Valhalla を楽しむ準備ができた!

確認してみる。

3

Script の出力画面のフォントサイズもこれで OK!

はい! 自分用のピンポイントメモエントリーでした。

 

ここで重大な問題が・・・

Atom の使い方がよく解らん。。。


ASRock N3700-ITX 買っちゃいました。

Computer

Blog の更新さぼってます。

いつものことなのでお許しください。(^_^;

そんなこんなで ASRock N3700-ITX を買っちゃいました。(いきなり、すみません)

何故かというと・・・

パソコンって意外と電気を食うことがばれてしまったからです。

特に私の場合エンコード処理を速くすませたい。

同時に他の作業もしたいという理由でマルチコア CPU のパソコンを使っています。

もう、エンコード作業をすることはほとんど無くなったのでただの電気の大食いパソコンを無駄に使っているのが現状です。

しかし、低消費電力のパソコンを組むとしてもお金が要ります。

それに他にもパソコンは所有しているのでわざわざ新規に導入する必要もないのですが、それを置くスペースを考えてみると上手くいきません。

そこで省エネルギー、省スペースの Mini-ITX パソコンを組むことにしました。

なんて言い訳をして現在の事実上 ATOM の性能を試してみたいと思い購入しました。

初代 ATOM を購入して動くことは動くけど本当に軽い処理だけのもので泣いた悲しい記憶しか残っていないのでそれを払拭できることを期待します。

購入した ASRock N3700-ITX についてザックリ紹介すると Mini-ITX 規格のマザーボードです。

省電力向けSoC Bay Trail-Dの後継として Braswell と呼ばれています。

製造プロセスが22nmから14nmにが微細化され、ほぼ同等のCPU性能を維持したままTDPは10Wから6Wへと低下しました。

ストレージコントローラはSATA2.0(3Gbps)×2からSATA3.0(6Gbps)×2 となりました。

グラフィックスチップもEU数16基にアップグレードされ、ワットパフォーマンス、拡張性とも大幅に強化されている。

CPU は インテルPentiumプロセッサー N3700、4コア4スレッド、動作周波数:1.6GHz(バースト周波数:2.4GHz)、L2キャッシュ 2MB、TDP:6W となっています。

メモリは、DDR3/DDR3L SO-DIMM × 2 デュアルチャネル このマザーは 16GB (8GB X 2) まで載せられるようになっています。電圧も普通のタイプも使えるようです。

グラフィック機能は第8世代インテルHDグラフィックスで出力は DVI-D × 1(デジタル)HDMI × 1(デジタル)DisplayPort 1.2 × 1(デジタル)となっています。

DVI-D × 1(デジタル)はデュアルリンクではなくシングルなので 2K 出力はできないようです。

HDMI、DisplayPortは4K解像度出力(3840×2160@30Hz)に対応しているらしいです。トリプルモニターに対応と凄い環境を提供してくれます。

ストレージは SATA 6Gbps × 2(CPU), SATA 6Gbps × 2(ASMedia ASM1061)と 2 ポート追加され、合計 4 ポートもあります。

拡張スロットは、PCI Express 2.0(x1)×1、ハーフサイズ mini-PCI Express × 1 があります。後者は無線LANやBluetoothカードを使用するのに使われるようです。

オーディオは 7.1ch対応のRealtek ALC892 を搭載し、ELNA製オーディオコンデンサを使い高音質なサウンドを提供するという凝ったことをしています。

LAN は Realtek RTL8111GR なのでこだわりのある人や、これで不具合のでる人は PCI Express 2.0(x1) に intel の NIC を挿すことになるでしょう。

あとは USB3.0 X 4、USB2.0 X 2、音声入出力 X 5、光オーディオ端子 X 1、PS/2 X 1 その他・・・といったところです。

PS/2 が1つというのは中途半端ですが無いよりは良いのかな?

総合的に見て一通りの機能はそろえていて、省電力であるという印象です。

では、実際に組んで動かして確認することにしました。

今回、購入した物は次のようになります。

M/B :N3700-ITX
メモリ:Transcend TS1600KWSH-16GK
電源 :玄人志向 ACアダプタ 電源 120W KRPW-AC120W
ケース:LIANLI PC-Q33B
SSD :crucial CT250MX200SSD1

DSC00251

ASRock N3700-ITX には次のものが同梱されてます。

日本語のマニュアルがあるのはうれしいですね。

DSC00252

ここで面白いのはケースです。

こんなふうに作業しやすいように開くことができます。

DSC00253

ただし、このケースのファンは少し五月蠅いので次のものと換装しました。

DSC00254

これ、超静かで GOOD! です。

玄人志向 ACアダプタ 電源 120W KRPW-AC120W は次のようなものが同梱されています。

DSC00255

至れり尽くせりです。

基板の半田付けがちょっと荒いような気もしますが普通に動いてくれました。

この手の商品は随分前に試したことがありますが1年半くらいで壊れてしまったので壊れたら普通の電源に交換する予定です。

組み立てるとこんな感じになります。

DSC00256 

DSC00257

それぞれの部品と転がっていた SSD を一台付け足して組むとこうなりました。

DSC00258

DSC00259

この画像では SSD 2台ですが、現在はストレージケージには SSD 2台と HDD(2.5) 2台を積んでいます。

ケースには 2.5 インチならあと3台積むことが可能なので SATA カードを挿して大容量ファイルサーバーとすることも可能です。

DSC00260

コンパクトに一通りの機能を持ち合わせたパソコンがあっという間に組み上がりました。

試しに Windows 8.1 をいれて動かしてみました。

初代 ATOM のようなもっさり感はなく、ナチュラルに動いてくれます。

ちなみに、Transcendの1.35V(低電圧) – 1.5V 両対応メモリーは低電圧で認識され動いてます。

これだけ普通に動いてしまうとベンチマークをかけてみたくなります。

電気をよく食うとばれてしまって顰蹙をかっているメイン PC と今回組んだ N3700-ITX と初代 ATOM330 で性能を比べてみましょう。

それぞれのパソコンの環境は次のようになっています。

メイン PC

X9DAi_info

X9DAi_mem

N3700-ITX

n3700_info

ATOM330

ATOM330_info

それでは、CINEBENCH R15 とタイムリープベンチマークを走らせてみます。

タイムリープベンチマークの設定は次のようにしました。

set

メイン PC

cbr15_xeon

xeon

良好な結果ですね!

消費電力は、CINEBENCH R15 CPU マルチ実行時、約 445w、シングル実行時、約 185w、OpenGL 実行時、約 250w となります。

N3700-ITX

n3700_cb

n3700

意外と良好な結果がでてます。

もっと低い結果だろうと思っていただけにうれしい誤算です。

消費電力は、CINEBENCH R15 CPU マルチ実行時、約 23w、シングル実行時、約 19w、OpenGL 実行時、約 26w となります。

電気食わないですね~ (^_^)

ATOM330

atom330_cb15

atom_330

ATOM330 のベンチマークの結果が悲しいですね。

デュアルコア ハイパースレッディングで疑似クアッドコアとしても所詮こんなものです。

消費電力は、CINEBENCH R15 CPU マルチ実行時、約 37w、シングル実行時、約 32w、OpenGL 実行不可。

しかし、ATOM330 は何故か人気があって売れていました。

パソコンショップの店員さんもお勧めはできないといっていたのにね。

以上のベンチマークの結果から N3700-ITX の健闘がうかがえます。4コア4スレッドの実力の世界ですね。

メイン PC は、さすが XEON 二つといった当然の結果です。

さて、ASRock N3700-ITX は、UEFI で Intel Virtualization Technology を有効にして使うことができます。

これだけ普通に動くとこれも試したくなりますよね。

VMware をインストールしてゲスト OS として Windows 7 をいれて先ほどのベンチマークを走らせてみました。

7_2

まず、 Windows エクスペリエンスは次のような結果となりました。

7_1

7_3

7_4

2コア、8GB を分け与えた仮想マシンとしてはけっこう良い結果となってます。

ベンチマークも走らせたし、それでは実際にエンコード作業の時間を調べてみることにします。

次のような設定で作業してみました。

入力ファイルは、4K 動画です。

enc_1

出力設定は次のようにしました。

enc_2

メイン PC

x_enc

エンコード実行時の消費電力は、約 350w でした。

消費電力量は、約 16.5wh となります。

N3700-ITX

n3700_enc

エンコード実行時の消費電力は、約 26w でした。

処理時間はメイン PC の 4倍以上かかっていますが消費電力は、1 / 13 です。

消費電力量は、約 5.6wh となります。

ATOM330

atom330_enc

エンコード実行時の消費電力は、約 37w でした。

消費電力量は、約 25.6wh となります。

ATOM330 超遅い!N3700-ITX の 3倍以上の時間がかかった上に消費電力も 1.4倍なんて。

これがテクノロジーの進化というものなのか。

皮肉なことに初代省エネ PC の ATOM330 が一番消費電力量が多くなりエコでないとは・・・

エンコード作業もファンレス静音(ほぼ無音)PC で寝ている間にすませるのがエコな時代になったようだ。

私のようなせっかちな性格だと一気に速く終わらせたいという気持ちもあるけど消費電力量が3倍近くも違ってくると考え物ですね。

以上の結果から当初は、Linux をいれてファイルサーバー、そしてウェブ、メール、軽作業用と考えていたけど予定変更しようかな。

いずれにしても良い買い物になったと思う。

    

Hatena タグ:

« 古い記事