2018年5月18日金曜日

IBM CloudのNoSQL DBを使ってみよう ~第1章~(まずは準備)

どうも、もりもりです。

今回はIBM CloudのCloudant NoSQL DBサービスを使ってみました。
IBM提供のAndroid用のクライアント・ライブラリのソースがあり、
その中にAndroidアプリのサンプルソース(Todo同期アプリ)があります。
そのサンプルアプリを改変をしつつ、試したことを書き残していきます。

章立て


・~第1章~(まずは準備)
・~第2章~(Androidアプリの変更内容)
・~第3章~(Cloudant NoSQL DBの権限設定)
・~第4章~(Android:ToolBarの常時表示方法)
・~第5章~(Android:テキストに取消線を入れる)
・~第6章~(Android:ListViewにボタン追加でListItemのClickイベントが効かない)

※変更する可能性もあります

アプリの概要


Android端末に保存されたデータと、クラウド上にあるIBM CloudのDBサービスのデータを同期します。
Androidアプリは端末ローカル上にデータを保存するため、ネットワーク環境がなくても使用できます。
ネットワークに接続できる環境で、クラウド上にあるDBサービスに用意したテーブルと同期できます。
そのため複数端末からいつでもどこでも最新のTodoを確認、編集できます。
今回のクライアント対象はAndroidアプリのみですが、iOSアプリやPC上で動作するアプリも作成可能です。


事前に必要なもの


・IBMアカウント(ライト・アカウントでOK)
・Android開発のある程度の知識
・Android開発環境
  ・Windows 10
  ・Android Studio : 3.1.1
  ・Gradle Version : 4.4
・Androidのサンプルソース

Androidのサンプルソース


Androidのクライアント・ライブラリは下記で確認できます。

Androidアプリのサンプルソース(Todo同期アプリ)は上記Gitの「sync-android/sample/todo-sync/」にあります。

サンプルアプリの機能
・Todoの追加(端末ローカルに保存)
・Todoの削除(端末ローカルから削除)
・クラウド上のNoSQL DBと同期(Upload&Download)

CloudantNoSQL DBサービスの作成


1.リソースを作成
  ダッシュボード右上の「リソースの作成」をクリックする。



2.サービスの選択
  カテゴリ「データ&分析」の「Cloudant NoSQL DB」を選択する。



3.サービスの作成
  サービス名を入力して「作成」をクリックする。



  作成をクリックすると作成したサービスのトップ画面が表示されます。



4.サービス資格情報の追加
  メニュー「サービス資格情報」を選択し、「新規資格情報」をクリックする。
  ※のちにAndroidアプリからアクセスするための資格情報です。



  名前を入力して「追加」をクリックする。

5.サービス資格情報の確認
  追加された資格情報の「アクション」列の「資格情報の表示」を選択する。
  ※Androidアプリで設定する項目は「username, password」です。



6.DB画面の表示
  「LAUNCH」をクリックする。



7.DBを作成
  メニュー「DBアイコン」をクリックし、右上の「Create Database」をクリックする。
  DB名を入力し、「Create」をクリックする。



8.DBの確認
  メニュー「DBアイコン」をクリックする。
  todoappが作成されました。



以上で、DBの準備は終わりです。

次回予告


次回は、このサンプルアプリの変更内容についてです。


ではまた~。

2018年5月11日金曜日

電子申請してみた!

社員の入社・退職をはじめ、様々なタイミングで社会保険などの書類を提出しなければなりません。
幸い、年金事務所は目と鼻の先ですが、一方でハローワークに行くには電車に乗る必要があります。
移動時間や待ち時間がムダですし、ITの会社がITを活用しなくちゃ!ということで、電子申請にチャレンジしてみます。


準備


電子申請はe-Govから行います。
利用にあたっては下記の準備が必要です。

  1. パソコンとブラウザソフトの確認
  2. Javaの確認
  3. 電子証明書の確認
  4. ブラウザの設定確認
  5. 信頼済みのサイトとしての登録確認
  6. e-Gov電子申請用プログラムの確認

2と6はインストール、4と5はIEの設定が必要になりますが、手順にしたがえば問題ありません。

3にはマイナンバーカードを使用します。
このためにマイナンバーカードを作成したのですが、申請から一ヶ月半かかりました。
私が住む市のHPには、「(2~3週間で市にカードが届いた後、)交付するまでに必要な設定作業等を行い、その後、市から交付案内書を発送するまでに1か月程度」と書かれており、本当にその通りでした。それにしても、1か月もかかる設定作業って何なんでしょうね。


いざ申請!


今回は「健康保険・厚生年金保険被保険者資格喪失届(単記用)」を申請します。
まず、申請者情報などの基本情報を入力します。この情報はファイルに保存することができるので、次回からはそれを読み込めば入力の手間が省けます。

次に、資格喪失届を入力します。
紙の様式と同じレイアウトで表示されるので、入力に迷うことはありません。「入力チェック」で入力漏れがないか確認します。
確認後、ICカードリーダーにマイナンバーカードをセットして、「署名して次へ進む」を押下すると、証明書選択画面が表示されます。


















「ICカード内の証明書」を選択し「読込」を押下すると、PINコード入力画面が表示されます。マイナンバーカード受け取り時に設定したPINコードを入力すると、証明書の表示が変わります。そして「OK」を押下します。

この後は、確認画面で最終確認し、申請するだけで完了です。


ところが


申請から一時間ほど経過したころ、立て続けに3通のメールが届きました。

  • 【e-Gov電子申請システム】連絡事項確認のご連絡
  • 【e-Gov電子申請システム】公文書確認のご連絡
  • 【e-Gov電子申請システム】審査終了のお知らせ

公文書確認とはなんともたいそうですが、差し戻しになったようです。
返戻通知書に記載されている理由を確認すると、

「申請書様式の標題の選択方法に誤りがあります。」

とのこと。
様式上部で「健康保険・厚生年金保険被保険者資格喪失届」か「厚生年金保険70歳以上被用者不該当届」かの選択ができていないことが原因でした。この3月の両様式統合がシステムに反映されていないのか???これも入力チェックでNGにしてほしいですね。

「健康保険・厚生年金保険被保険者資格喪失届」をきちんと選択し、再申請すると、数日で公文書確認のメールが届き、無事「健康保険・厚生年金保険資格喪失確認通知書」を取得することができました。

またいつか、どこかで。

2018年4月28日土曜日

ディープラーニングを体感しよう:第3章(プログラムを動かしてみよう)


こんにちは。よっしーです。


これまでの記事:


前回は、Ubuntu14.04 に Python環境 を構築しました。

これで、プログラムの動く環境ができましたので、

実際にプログラムを動かしてみたいと思います。

ディープラーニングとはどんなものなのか!?


今回は、Aidemy という プログラミング学習サービスから、

無料で受講できる「ディープラーニング基礎」で紹介されている

プログラムを実際に動かしてみました。


37行のPythonコード(script.py)を、Windowsの共有フォルダに保存します。

そして、Ubuntu上から、そのプログラムを実行してみます。

※ 共有ディレクトリに移動し、python と打ってからファイルを指定する。


少し時間がかかりますが、なにやら文字がバラバラと出力され・・・


別ウィンドウでグラフが表示されます。


おお・・・。とりあえず、動いた。

パッとみただけだと、これがすごいのかよくわからないですが、

Pythonからこんなグラフィカルなグラフが出力できるんですね・・・。


で、今回動かしたプログラムですが、超簡単に説明をすると、

手書きの数字(0~9)の画像を、何千回とプログラムに与えて学習させて、

画像から、その数字は何なのかをプログラムが判断できるようになる。

というもの。


学習を重ねるにつれて、正解率が上がっていく。

というのをグラフが表しています。


そんな難しそうな処理がたった37行のPythonコードで書かれています。

Pythonすげー!

ディープラーニングすげー!!


今回は、とりあえず動かしてみただけですが、

次回、プログラムの内容について、詳しく見ていきたいと思います。

今回は、このあたりで。

ではまた~。

2018年4月19日木曜日

ディープラーニングを体感しよう:第2章(Python環境を構築する)



こんにちは。よっしーです。

これまでの記事:
ディープラーニングを体感しよう:第1章(まずは環境構築)


前回に引き続き、ディープラーニングを体感するための環境構築を進めていきます。

前回、VirtualBoxにUbuntu14.04のセットアップを行いましたので、

さっそく、Ubuntu14.04環境へPythonをインストールしていきます。


ちなみに、Ubuntu14.04 にはデフォルトでPythonがインストールされていますが、

今回は、Anacondaをインストールします。


Anacondaは、Python本体と様々なライブラリがセットになったものです。

ディープラーニングでは、Pythonのいろいろなライブラリを使うこととなるので、

まとめてインストールしちゃいましょう。


https://www.anaconda.com/download/


Linux → Python 3.6 version をダウンロード



ダウンロードしたスクリプトファイル(Anaconda3-5.1.0-Linux-x86_64.sh)を
VirtualBoxで設定した共有フォルダに置きます。


Ubuntu側からは、/media/sf_share/ が共有ディレクトリとして割り当てられているため、そのディレクトリへ移動。


共有ディレクトリに移動できません…。権限も変えれない…。

調べたところ、vboxsfグループに所属する必要があるようなので、

$ sudo gpasswd --add {ユーザ名} vboxsf

で、vboxsfグループにユーザを追加します。

共有ディレクトリに入れました。



ダウンロードしたスクリプトを実行して、Anacondaをインストールします。

対話式でいろいろと聞かれるので、基本的にyesを選択していけば問題ないと思います。



Anaconda のインストールが終われば、次に、keras というライブラリをインストールします。

keras はディープラーニング用のライブラリです。

Anaconda に同梱されている、管理ツールの conda を使ってインストールしていきます。


次にtensorflowというライブラリをインストールします。

tensorflow もディープラーニング用のライブラリです。

同じように conda を使ってインストールします。



これで、ひとまず準備完了です。

こうしてまとめると簡単なように見えますが、

ここまでくるのに意外と時間がかかっています。

インストールに失敗したり、依存関係でつまづいたりと。

Linuxの環境構築はなかなか難しい。。。


というところで、今回はここまでにしたいと思います。

次回は、

『ディープラーニングを体感しよう:第3章(プログラムを動かしてみよう)』

を投稿いたします。

ではまた~。

2018年4月13日金曜日

ディープラーニングを体感しよう:第1章(まずは環境構築)


こんにちは。よっしーです。

前回告知した通り、今週よりPythonの得意な分野を体感してみよう。ということで、

『ディープラーニング』について、いろいろと触れて行きたいと思います。


今回は、まず下準備ということで「環境構築」を行います。

Windows上にPython環境を構築することもできるのですが、

前々から自宅PCにもLinux環境を構築したいなぁ~。と考えていたので、

Linux上にPython環境を構築していきます。

と言っても、純粋なLinuxPCではなく、Windows上にLinuxの仮想環境を構築し、その中で動作させます。


用意するものは以下です。

・VirtualBox

・仮想ハードディスクイメージ

さっそく落としてきます。



 ダウンロード → Windows Installer




 ダウンロード → Ubuntu 14.04 LTS



落としてきたVirtualBoxをインストールします。



インストールが終われば、起動します。



「新規」を選択して、仮想マシンを作成します。

 名前 → お好きに
 タイプ → Linux
 バージョン → Ubuntu



落としてきた仮想ハードディスクイメージ(Ubuntu 14.04)を指定します。

 すでにある仮想ハードディスクファイルを指定する → ubuntu-ja-14.04-desktop-amd64.vhd



ひとまず、これで仮想マシンの作成が完了です。



Ubuntuからネットワークに接続できるように、ネットワークアダプターを有効化します。

 仮想マシン設定 → ネットワーク → アダプター2
  ネットワークアダプタを有効化にチェック、割り当てをホストオンリーアダプターに設定



WindowsとUbuntuでファイルのやり取りをしたいので、共有フォルダーを作成します。

 仮想マシン設定 → 共有フォルダー → Windows上のフォルダーを指定



あとは仮想マシンの「起動」を選択すると、VirtualBox上で Ubuntuが立ち上がります。



これで、Linux(Ubuntu14.04) が動作する環境が出来ました。

これから、実際にPythonの環境をこの中へ作っていくのですが、

仮想環境の構築だけで、ずいぶん内容が長くなってきたので、

今回は、一旦ここで切りたいと思います。


次回は、

『ディープラーニングを体感しよう:第2章(Python環境を構築する)』

を投稿いたします。

ではまた~。

2018年4月5日木曜日

ディープラーニングの連載予告!


こんにちは。よっしーです。

最近社内では、Python3エンジニア認定基礎試験を受験する社員が増え、

密かな『Pythonブーム』が訪れています。


IT関連の雑誌やWebサイトでも、Pythonの特集がよく組まれており、

業界でのPythonの人気の高さがうかがえます。


私は、Pythonで簡単なCUIツールを組んだことはあるのですが、

巷で話題となっている「人工知能」とか「機械学習」というものには

まだ触れたことがありません。

(ある意味 Python のおいしいところをまだ味わっていない状態)


だったら、ということで、

このブログを使って Pythonの得意な分野を体感してみよう。

という連載を始めることにしました。

(これから何週か連続してPythonについての内容を投稿させていただきます。)


お題としては『ディープラーニング』を考えています。

ディープラーニングは、機械学習の中の1つです。

私自身も学習しながら記事を書いていきますので、

詰まったりすると、記事の内容が薄くなるかもしれませんが、

あまり期待せず、お付き合い頂ければ。と思います。


そういうわけですので、次回は、

『ディープラーニングを体感しよう:第1章(まずは環境構築)』

を投稿いたします。


これからしばらくの間、よろしくお願いします。

ではまた~。

2018年3月30日金曜日

Python3 エンジニア認定基礎試験、不合格でした

どうもみなさん、ノムノムです。

3/17(土)にPython3の試験を受けてきました。
結果はタイトルの通り...不合格でした。

ネットで調べると合格した方の記事しかないので、
不合格になった私の勉強方法とその問題点を書いていきます。

そもそもPython3 エンジニア認定基礎試験とは

この試験は「一般社団法人 Pythonエンジニア育成推進協会」が実施している民間試験です。
試験については以下の通りです。
  • 試験時間は60分、全40問で700/1000点(1問25点)で合格
  • 受験料は10,800円(税込) ※学生は半額で受験できます
  • CBTによるPCを使った選択式テストなのですぐに結果が確認できる
  • 受験は公式で指定されている施設で実施(受験可能な施設はここで確認)
  • 教材はオライリーの「Pythonチュートリアル 第3版」(公式にて出題傾向を掲載)

どう勉強したか

私の勉強方法は次の通りです。
  1. 「Pythonチュートリアル 第3版」を一通り読む
  2. 模擬試験を実施(模擬試験はこちら ※ユーザー登録が必要)
  3. 合格者の体験記を読んで出題傾向の高い部分を重点的に勉強
  4. 模擬試験で正答率を確認
  5. 模擬試験で間違った部分を勉強
1.が終わった直後の模擬試験では45点でした。
3.では「Python3エンジニア認定基礎試験の効率的な勉強方法!」を参考にしました。
4.で合格ラインを超え、後は5.と4.を繰り返し行いました。
勉強期間は約1ヶ月、1日に1,2時間程度で勉強していました。

反省点

  • 教材を一通り読むのに時間を費やし、コードを実際に動かして確認しなかった
  • 試験本番に緊張しすぎた
  • 模擬試験の正答率は、本試験の1週間前になる頃にはずっと8割を超えていたため、勉強を怠ってしまった
  • 模擬試験にはあった「解答済/未解答」が表示されていなかったため、見直しを怠っていた

わかったこと

試験を受けて次のことがわかりました。
  • 教材がとてもわかりにくい
        →教材に文章とコードのみ記述されおり、内容を理解しづらい。
  • 試験時間は十分にあり、見直す時間が沢山あった
       →落ち着いて試験に挑めば問題はないはず。
  • 「後で確認する」という項目にチェックを入れると、試験の最後に表示される確認画面から確認できるが、「解答済/未解答」の状態はわからなかった。
        →もしかしたら未解答のままになっていた問題があったかもしれない
  • 採点の結果で、出題範囲の章毎に正答率がわかる
        →リベンジをするにあたり、見直す部分がわかる
  • 再試験は、2回目であれば制限なしに受験できるが、3回目以降は1週間(168時間)待たなければならない

今後、受験する方へ

今後、受験を考えている方は、次のことに気をつければ問題は無いと思います。
  • 出題範囲のうち、3,4,5,8,10章は出題数が多いため、この5つをしっかり勉強すれば問題ない
        →私はこの5つがひどかったです。
  • 教材を読むよりも、まずは体験記を読んだほうが効果的
        →よく読まれている体験記:Python3エンジニア認定基礎試験の効率的な勉強方法!
  • 模擬試験は正答率が7割以上取れたことよりも、苦手部分を分析するために使ったほうが良い
  • コードを自ら作成して実行したほうが身につきやすい
        →これをもっとやっておけば覚えやすかったと反省しています。
  • 試験本番ですべて解答後、最低でも解答済みになっているかはすべて見直す
        →試験会場によって違うと思いますが、私が受けた会場では解答の選択肢にチェックしづらかったです。
試験結果でどの部分が悪かったかがわかるのはとても助かりました。
3月中には合格したいので、リベンジに向けて見直します。

それでは、今回はこのへんで、またよろしくお願いします。