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

ぬるぬる備忘録

主にシステム系の備忘録とか雑記とかです。備えよう。

ScalaとPlayを始めてみよう - ハロワ編

セットアップ Scala PlayFramework Sbt Eclipse

こんばんは、お久しぶりです。
新年明けたので何か初めてみるかと思いまして、Scalaでも触ってみることにします。
フレームワークPlayに興味があるので、最終的にはそこまで行ければ良いですね。

環境構築

IDEIntelliJ IDEA かEclipseの二択のようですね。
IntelliJの方が主流のようですが、フリーウェア万歳なのでEclipseプラグイン入れて使うことにします。

Eclipseマーケットプレイスから「Scala IDE」をインストールする

入れなくてもIDE上で実行できるが、一応Scala自体も入れておく
http://www.scala-lang.org/download/
(インストール時のバージョンは scala-2.12.1 だった)

環境変数「Path」は勝手に追加されていた。
SCALA_PATH」を新規で作っておく。C:Program Files (x86)scala

さあ始めるぞ

偉大な先人が最初に読むべき物を纏めてくれているので、取り敢えず読んでいこう。

Scala入門時に役立つ情報まとめ - Qiita

とりあえず参考にしてHello Worldまで作っとこう。

f:id:null256:20170103220330p:plain

やったぜ。
classじゃなくてobjectで生成しないと、Eclipse上から実行できなくて少し詰まった。
objectはシングルトンを示す修飾子らしい。

Playを使う...前にsbtを入れよう

作るものも決めてないし、Play使う準備でもしようと思ったら、downloadsに

If you have sbt 0.13.13 or higher installed, you can create your own Play project using sbt new using a minimal giter8 template

 と書いてあって、sbtと言うものを入れたほうが良いらしい。下記記事のようなものらしい、一先ず入れときましょう。
超sbt入門 - Qiita

Eclipseに対応させるには、「sbteclipse」というプラグインの記述を入れたplagin.sbtを「プロジェクトのルート/project」に配置する必要があるようです。
Scala入門記004 sbt + Eclipse - うさばかSE Blog3

頭使わず記事のとおり全てコピペするとエラー出るので、ちゃんとGitHubに書いてある最新版を指定しときましょう。
https://github.com/typesafehub/sbteclipse

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.0.1")

プロジェクトのルートから「sbt eclipse」を実行して、成功すればOK
(追記 .classpathが書き換わるので、これが原因でビルド失敗するようになるときもあるかも。その時はclasspathまわりの設定を見直そう。)

sbtでPlayFrameworkもインストールだ

workspaceのディレクトリで、PlayのDownloadsにある下記コマンドを実行しよう

sbt new playframework/play-scala-seed.g8

必要な情報を聞かれるので、入力するとplayのプロジェクトが出来る
(※何も入力せずにEnterを押すとデフォルト値になる。)

This template generates a Play Scala project

name [play-scala-seed]: testplay //★プロジェクト名
organization [com.example]:
scala_version [2.11.8]:
scalatestplusplay_version [1.5.1]:
play_version [2.5.10]:

Template applied in . estplay

出来たら一先ず動かそう!作ったプロジェクトに移動して「run」だ。

cd testplay

sbt run

「Application started (Dev)」の表示が出たらhttp://localhost:9000/へアクセス

f:id:null256:20170115221714p:plain

うおーこんなにかんたんに動くとは。
で今の状態だとeclipseで見れないので、「/project/plagin.sbt」にsbteclipseの記述を追記して、「sbt eclipse」でする。終わったら「インポート→既存のプロジェクト」でeclipseに取り込む。
念のためもう一回「sbt run」で動くか確認、動く、いいね。

このあと

今回は取り敢えずここまでで。次はheroku辺りにデプロイする方法を調べてみることにする。

scalaの勉強は「Scalaスケーラブルプログラミング」を買ったので、それでやっていくことにする。Playの勉強は...一先ずWEB+DBpressのvol.71かなぁ。。(Playの特集がある)

ではでは。

Scalaスケーラブルプログラミング第3版

Scalaスケーラブルプログラミング第3版

 
WEB+DB PRESS総集編[Vol.1~84] (WEB+DB PRESS plus)

WEB+DB PRESS総集編[Vol.1~84] (WEB+DB PRESS plus)

 

 

キーボードが物故割れた

キーボード REALFORCE 雑記 おすすめ

f:id:null256:20160612203639j:plain

愛用してた仕事用のキーボードがぶっ壊れました。
下の富士通コンポーネントさんのやつです。コーヒーはねて中に入って誤反応するようになってしまった。アホですね。。


なので、怒ったので、REALFORCEの最新モデル買いました。
クソ高かったです(怒)

 

 

両者使っての感想としては...

富士通コンポーネント
使い心地よく、説明にある通り板面が反っているからか、フィットしてtypoが少ない、気がする。音が静か。印象「めちゃくちゃ使いやすい、普通のキーボード」。

REALFORCE(静音モデル/キー押下30g)
バイ。最高。打鍵音めっちゃ静か。キー押下30g(普通は45gらしい)のおかげで溶けるように入力できる、長文打ってても全く疲れない。typoコンポーネントに慣れてたせいか、こっちに変えてからの方が多いかも。考え事してる時キーボードの上に指添える事が多いけど、キーが柔らかすぎで気付かず押しっぱなしになってることが結構ある。
使って「REALFORCEを知ると他に戻れない」という意見がなかなかに理解できた。

値段との相談があると思いますが、参考にして貰えれば良いと思います。
上記以外での高級キーボードといえば、特殊な配列で有名なHHKBなどもありますよ。私は他のキーボードが使えなくなるデメリットが無視できないので使いませんが。。

...
ちなみに、壊れたキーボードはコーヒーで汚れた部分を水洗いし、ドライヤーで乾かし、数日放置して乾燥させたところ直りました。なんなんすかね。。
今は自宅用のキーボードとして使用しております。

WebエンジニアがUnityを3日間だけ触って思ったこと

感想 C# Unity

こんばんは。
先日のGWに、何か新しいことをしようってんで、Unityで2Dアクションゲームを作ろうと3日間だけUnity触りました。のでその時のことなどを綴っていきます。チラシの裏ってやつです。

言いたいことリスト

・Unityすげー
C#について

Unityすげー

 Unityはすごい。3日間触って一番感じたのは、このゲームエンジンは極力エンジニア以外の人間にも触れる用に工夫がされているということ。物理的な挙動をするオブジェクトをコードも書かず数ステップで作成できる。C#スクリプトを組んだとしても、変数をpublicで外出ししておけば、二値だろうが数値だろうが画像ファイルだろうが、GUI上から初期値を設定できる。

最初に骨組みさえ作れば、非エンジニアでも各挙動を調整出来るっていうのは、洗練されているなーと思いました(こなみ)。

C#について

UnityはスクリプトC#で書く。
(正確には独自カスタムされたJavascriptと独自言語のBooも使えるけど、昨今の流れから採用するメリットがない)
普段はJavarubyでコーディングしているもんだから、コード規約的なところで色々悩んだのでそのことを書いてきます。

大文字小文字のアレコレ

Javaはクラスは大文字、変数・メソッドは小文字で始める。

Human human = new Human();
human.getAge();

C#はpublicが大文字、それ以外は小文字で始める。。?

private age;

public GetAge() { ... }

ただ、C#の規約は結構プロジェクトとかでも違う模様?Unityの既存のソースとかもなんか微妙にニュアンス違う感じがしたし...言語レベルでは統一されていないのだろうか?
なお、C#の大文字・小文字、どうなってんの~??と調べた際は下記記事様が非常に役に立ちました。ありがとうございます。

C#コーディング規約の個人的なまとめ | jikkenjo.net

if-elseの書き方

Javaの書き方、好みはあるかと思うけどこんな感じ。

if (isOtokomae) {
    return "Ikemen";
} else {
    return "Busaiku";
}

 C#(VisualStudioのフォーマッター)だとこう

if (isOtokomae)
{
    return "Ikemen";
}
else
{
    return "Busaiku";
}

 縦にながーい。まぁelse ifの時だと、最初のifの条件と同等に扱っている感じがしていいかもな、とも思いはしますが...それでもやっぱり慣れなくて(これが一番か)やだなぁ。

上で挙げたことはギャップがあったけど、郷に従えということでとりあえずその通りに組みました。逆にC#やってるヒトはやっぱりJavaの書き方がキモかったりするんだろうか。

 

Android Studio 環境設定でしたこと

Android Android Studio セットアップ

AndroidStudioのセットアップで何したか、忘れないように書いておきます。
※他の記事様の引用多しですが、お許しを。

統合開発環境(IDE)について

■まずは「Android Studio」のダウンロード
Android Studio と SDK Tools のダウンロード | Android Developers
※昔はEclipseの開発が主流でしたが、今ではこちらを使ったほうが良いでしょう

■日本語化
インストール後、下記記事の手順にてlibにjarファイルをぶち込む
Android Studioを日本語化する方法 - Android Studioでアプリ開発!

実機のテスト環境設定

AndroidStudioでは実機をUSBで刺しておけば、ビルドしたコードをそのまま実機で動かすことが出来ます。

■Zenfone4での開発
僕はAsusの格安スマホ「Zenfone 4」を持っているので、そちらで行った設定を載せときます。

どのようにZenFoneで、開発者向けオプションを有効にしますか?
①「設定→バージョン情報等→ソフトウェア情報」で「ビルド番号」を7回タップ
②設定に「開発者向けオプション」が現れるので、そこから「USBデバッグ」をON
③AndroidStudioの「Android Monitor」のウィンドウで、機種が検知できていたらOK

f:id:null256:20160124165659p:plain

※Zenfone4に関しては、別途ドライバをインストールとかはしなくてOKでした。

 

 

随時追記していくかもしれません。