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

やったもん勝ち

主にプログラミングのこと。生産性向上の某とかも。

MacOSで既存のplay frameworkのプロジェクトを実行する環境構築をする

MacOS Siera Ver.10.12.2 おにゅーのMacでplay frameworkの環境設定を行いました。 プロジェクトは既にあったので、そこら辺は別のサイトの情報を参照ください。

Javaのインストール

まずは、Javaのインストール

$ Java -version

でinstallされているか確認する。

installされていなかったら、installページに飛べるダイアログが出現するので、クリック。

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlmacOSのDownloadファイルをダウンロード、展開

順番に進めていくと、ブラウザで確認画面になる。(Chromeだと確認できないみたいなので、デフォルトブラウザをサファリにしておく)

ブラウザでも確認できるが、(よくわからなかった) Macの左上りんごアイコンから、システム環境設定>Javaコントロールパネルで確認。

てかMacは標準でインストールされているのですね・・・

play frameworkのインストール

続いて、play frameworkのインストール

基本的には公式ドキュメントに書いてあります。 sbtがなければインストールするとのこと(sbtとはscala用のbuildツール)

$ brew install tbt

エラー:javaがないとのこと。 ???

javaはあるはずなのに… エラーログでbrewでinstallせよと言っていたので、従う。

brewjavaを再インストール

$ brew cask install java

sbt new playframework/play-java-seed.g8

コマンド。 activatorをinstallする

適当なディレクトリで展開して、activatorのパスを通す。

$ sudo atom .bash_profile

環境変数を設定する。(もちろんatomじゃなくてもなんのエディタでもいい)

activatorが~/developに展開したので、

export PATH=/Users/yoshii/develop/activator-dist-1.3.12/bin/:$PATH

を追加する。

$ source ~/.bash_profile

をしないと、パスが通らない。(更新されない)

echo $PAHT

でパスが通っているかを確認。

アプリケーションが既にあるなら、そのディレクトリに移動し、

$ activator

[play] run

これで実行できました。

play framework2.4でDBをリモート環境とローカル環境で分けるときの設定

play framework2.4で

application.confにDB接続設定がありますが、

リモートの環境設定をそこに書いている場合、

ローカル環境のDBを使用するときは、また別に設定しなくてはダメですね。

迂回策①

application.confのDB接続情報をローカル環境のDBにして、

gitignoreでリモートには反映させないで自分の環境だけで反映させるというものです。

しかし、applicationには他にも設定ファイルがあって、その変更が反映されないのはいかがなものかと

ということで、

迂回策②

local.confでapplication.confをimportして、

さらにローカルのDB接続情報を書いて上書きする方法です。

local.conf

include "application.conf"

db.default.url="jdbc:mysql://localhost/url
db.default.username=root
db.default.password=“password" #自分のPCのDBののパスワード

とします。

実行時にlocal.confを指定する

2.3では

[play] -Dconfig.file=local.conf run

だったみたいなのですが、 2.4以降では

[play] run -Dconfig.file=local.conf

とターミナルに入力します。

Oops、これではだめでした。

[play] run -Dconfig.file=conf/local.conf

しっかりパスを指定しましょう。 当たり前か。。。

これでいけました。

統計検定2級に合格するための勉強方法、勉強時間、参考書籍

先日、統計検定2級の合格通知をいただきました。 (偉そうな事書いてありますが、自己採点したらかなりギリギリの合格でした。。。)

受験したのは、2016年11月の試験でした。

目次

受験背景

機械学習を勉強したいと思い、界隈に詳しい人に色々な話を聞いていると、機械学習というのは、統計と結びつきが深い(と言うより同じようなもの)。

ということで、プログラミングと並行して、統計も勉強していこうと思い、受験しました。

勉強を始める前の知識として、

理系大学出身なので高校数学くらいの知識はありました。

ただ、統計に関しての知識はほとんどなく、偏差値の計算方法も、どっかで見たことあるなーくらいで、全然無知でした。

勉強時間

勉強時間は、正味24時間程度だったと思います。

2,3時間くらいまとまった時間が取れるときにガーッと勉強しました。

あまり細切れ時間だと、理解が進まないと思うので、特に初めのうちはまとまった時間を確保したほうがいいと思います。

ただ、過去問を段階になって、あまりまとまった勉強時間を確保できなかったら、ちょっとずつわからないところを埋めていくというスタイルでも良いかもしれません。

勉強方法

勉強方法は、過去問(1回)→書籍→過去問という流れです。(当たり前ですかね)

以下、参考書籍とコメントです。

マンガでわかる統計学

マンガでわかる統計学

マンガでわかる統計学

まずは、統計ってどういうことをやるんだ…?というのが全くわからなかったので、全体を把握したいと思い、一読。

最初はマンガ部分だけ読んで、2周めで間に入ってくる解説を読んで理解を深めました。

この段階では、厳密な計算などあまり追っていなく、「統計はどういうことをやるか」ということを理解することを目的に読みました。

以下も併せて読むと良いと思います。

マンガでわかる統計学 因子分析編

マンガでわかる統計学 因子分析編

マンガでわかる統計学 回帰分析編

マンガでわかる統計学 回帰分析編

統計学がわかる (ハンバーガ統計学)

統計学がわかる (ファーストブック)

統計学がわかる (ファーストブック)

これで具体的な計算方法などを勉強しました。 実際は、書籍ではなく、サイトで勉強しました。こちらは無料です。

ハンバーガー統計学にようこそ!

こちらは姉妹シリーズです。

アイスクリーム統計学にようこそ!

統計学の必要性や、どう役に立つのかということがストーリー仕立てになっているので、すごくわかりやすく、入ってきます。

あと、演習問題もついているので、学んだことをしっかり定着させられます。(回答がないのが少し残念ですが…)

しかし、このサイトでは、かなりわかりやすさに重点を置いているので、式の説明なども言葉で行っていて、理系な自分にはちょっと分かりづらかった点がありました。 数式で表現したほうが、厳密だしシンプルでわかりやすいなと思う部分があったので、次の書籍で理解を深めました。

統計学入門(基礎統計学

統計学入門 (基礎統計学)

統計学入門 (基礎統計学)

東京大学出版の書籍です。

入門と書いてありますが、いわゆる入門とは思わないほうが良いです。 初心者向けの入門というよりは、本当にその道に進みたいという人がまずはこの1冊からと言った位置づけです。

この書籍の内容は2級を超えている部分があると思いますが、本質的な統計の理解を考えればやっておくべきです。(友人談)

そこまで内容や数式が難しいということはなく(簡単ではありませんが)、数式をちゃんと順を追って進めていくと、大部分は理解できると思います。

統計学の面白さがこの本でちょっとわかったような気がします。

(途中で膨大すぎて全部はやっていません。基本的な部分と、過去問を見て関連性が高い部分だけやりました。)

日本統計学会公式認定 統計検定 2級 公式問題集

日本統計学会公式認定 統計検定 2級 公式問題集[2013〜2015年]

日本統計学会公式認定 統計検定 2級 公式問題集[2013〜2015年]

最後はやっぱり過去問です。

統計学入門 (基礎統計学)でも2級の問題の中でいくつかカバーしきれない部分があります。

そんなに難しい内容ではありませんが、知っているか知らないかだけの問題などで、正否がわかれる問題など、これで拾っておきたいです。

最後は公式の過去問。

これは資格試験系で鉄板で、言うまでもないですね。

と言いつつも、2年分くらいしか解けていないです。

あとは前日にパラーっと見てみて、ぱっと見わからなさそうな問題を解説をすぐ読むスタイルで1,2年くらい流しました。

今後

今後は、自分の中での方針が大きく変わったので、統計は一旦置いておいて、プログラミングの方に軸をおいていきたいと思います。

実践してみて、必要性を感じたら準1級も受けてみようかなと思います。

難易度はかなり上がるらしいから、それなりの覚悟が必要みたいですね。

eclipseでhtmlコードだけカラースキームが適用されないときの対処法

この記事で、eclipseのカラースキームを変更しました。

 

benzenetarou.hatenablog.com

 

.javaファイルは反映されたのですが、htmlファイルは単一色で、見づらいです。
 
これの解決策を探しました。
 
デフォルトのエディタは、Text Editorで、htmlのカラースキームが反映されないみたいなので、プラグインでhtmlのためのeditorをinstallしてみます。
 
 
HTML Editor(WTP)

f:id:benzenetarou:20170107134544p:plain

 
をインストール
 
htmlファイルを開くときに、「Open with」でHTML Editorを選択
 
すると、日本語のみ文字化けしてしまいました。
 
PreferanceからもHTMLの文字コードutf-8に設定して、
全体の文字コードutf-8にしたけど、どうもHTML Editorで開くと、文字化けが取れない。
 
これ恐らくHTML Editorの設定で個別にutf-8にしたらできると思うんですがけど、やり方が分からずに、頓挫しました。
 
諦めて、他のエディタで開くことにしました。(色々トライして2時間くらい無駄にした。)
 
 
Preferance > Editor > File Associtions 
で、htmlを選択し、エディタを選択(Atom)します。
デフォルトに設定しておきます。
 
 
javaコードは正常に表示されるので、htmlコードだけatomで編集することにしました。
javaファイルはeclipseの補完機能の便利さをatomでは補えないので、そのまま継続してeclipseで編集します。
 
メリットとしては、元々htmlはatomで作っていたので、慣れているというのと、htmlの補完機能がatomの方が便利(設定次第だと思うけど)なので、結果オーライなところがあります。
 
デメリットとしては、Javaとhtmlでeclipseatomを行き来することになると、コマンドの違いを頭で切り替えるのがちょっと慣れるまで大変そうだなということです。
 
そのデメリット解消として、eclipseのinternal editorsの中に、Ant Editorというものもがあり、これだと文字化けが起こりませんでした。
 
 
コレにて、eclipseの設定がようやく完了しました。。。。
(ここまで5時間…)
 
ありがとうございました。

Macでeclipseのカラースキームを黒色に変更する

eclipseのデフォルトのテーマは白色で、なんかダサイというのと、多分白の方が反射が多くて、目に良くないんじゃないかと思って、テーマカラーを変えました。 かっこいいというのが半分以上の理由です。 ⌘ + , でPreferance > General > Appearance > Theme

Macがデフォルトになっているので、Darkに変更 設定完了!

Dark f:id:benzenetarou:20170107033833p:plain

Classic f:id:benzenetarou:20170107033841p:plain

Mac f:id:benzenetarou:20170107033941p:plain

ちなみにMacとClassicの違いはよくわからない。

ところで、何も設定をしないと、htmlコードは色がつかない。

HTMLファイルだけ単一色になってしまう問題が起こった。

地味に困る。。。 続報を待て。

【書評】データベース初心者が"マンガでわかるデータベース"を読んだ

データベースのことについて学びたいと思い、色々探してみました。

この時点でデータベースに関しては、初心者です。

MySQLの本は軽く読んだことがあり、テーブル操作など基本的なことはわかったのですが、 そもそものデータベース設計方法を全然知らなかったので、基礎から学べる書籍を探しました。

読んだことがあったのは、以下の本でした。 しかし、これもさらっと読んだ程度です。

基礎からのMySQL 改訂版 (基礎からシリーズ)

基礎からのMySQL 改訂版 (基礎からシリーズ)

個人的に事始めには、「マンガでわかる」シリーズをやるってのが、僕の方法なので、一旦「マンガでわかるデータベース」から始めることにしました。

Amazonのレビューでもかなり評価は高かったので、ポチりました。

マンガでわかるデータベース

マンガでわかるデータベース

内容としては、

  • 第1章 データベースってなんだろう?
  • 第2章 リレーショナルデータベースってなんだろう?
  • 第3章 データベースを設計しよう
  • 第4章データベースを利用しよう-SQLの基本操作
  • 第5章 データベースを運用しよう
  • 第6章 データベースの普及と活躍

ってな感じです。

全体的にわかりやすく、マンガ部分と解説部分のレベル差がそこまでなかったので、

よくある「マンガってかそれただの挿絵だろ!」状態なんてことはなかったです。

これは恐らくそこまでレベルの高いことは書いてないと思うのですが、ざっくりしたデータベース周りのことはカバーしているのかなと思います。 なので、あくまで入門書としては良書だと思います。

ただ、一点、正規化の説明のイメージが若干湧きにくかったです。

しかし、それも第4回 データベースの正規化|OSS-DB入門|OSS-DB道場|受験対策|DBスペシャリストを認定する資格 OSS-DB技術者認定試験こちらの記事で補完しました。

この次は、自分が必要なデータベースの実践本がいいかなと思います。 僕はこれを読みながら実践をやってみようと思っています。

python3のnumpyのarrayのスライスで、値渡しをしたいとき

  • arrayのスライスについて。 arrayは参照渡しらしいです。
arr = np.arange(0,11)
print(arr[1:4])

array([1,2,3])

arr = np.arange(0,11)
arr[1:4] = 100   
print(arr)

array([0,100,100,100,4,5,6,7,8,9,10])

となります。

arr = np.arange(0,11)
arr2 = arr[1:4]
arr2 = 100
print(arr2)

array([100,100,100])

ここまでは良いと思うのですが、

print(arr)

とすると、 array[0,100,100,100,4,5,6,7,8,9,10] となります。 アレイは参照らしいです。 なので、値をコピーしたかったら、

arr2 = arr.copy
arr2[1:4] = 100
print(arr)

array([0,1,2,3,4,5,6,7,8,9,10])

です