endless pulse

どっくんどっくんふるえる毎日を過ごしています

Play framework 2.3のインストールとチュートリアルのおぼえがき

Webアプリを作ってみよう!と思って、Play framework 2.3の環境を整えてみました。
学生時代の研究の試行にScalaでWebアプリを作りたくって、LiftとPlayで悩んでLiftを使ったことはあったんですが、、Playは初。(Liftももうすっかり忘れちゃいましたが、、、涙)

環境:Mac OS X Yosemite、Play framework 2.3.8

まず、インストールからチュートリアルまで。以下を参考にさせていただきました。
・Play Framework 2 for Javaのプロジェクト作成と開発環境 (Scala IDE on Eclipse)
http://qiita.com/shinobu_shiva/items/4bb16071a03418103cbf
・Play Framework インストール,プロジェクト作成,実行,eclipseデバッグWindows編)
http://tekitoo.sakura.ne.jp/2014/12/20/play-framework-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E4%BD%9C%E6%88%90%E5%AE%9F%E8%A1%8Ceclipse%E3%81%A7%E3%83%87%E3%83%90/


・本家チュートリアル(2.2.x)
https://www.playframework.com/documentation/ja/2.2.x/ScalaTodoList

上記の本家のチュートリアルは、Play Framework 2.2.xようなので、そのままはできません。。
何が最も違うかというと、起動するコマンドが
play
 ↓
activator
になってることですかね…(最初混乱しましたw)

他はとりあえず意識せずできました。
Emacsと何かしらのIDEに環境を整えると安堵感。


なんか苦労した気がしたけどメモが雑であまり残ってない…
基本的なPlay(Scala)プロジェクトことはじめ↓

[1]プロジェクト作成
$activator new
で、
6) play-scala を選択。
アプリ名はSampleに。

[2]次に、eclipseプロジェクトを作成。
cd ~/さっき作った場所/Sample
./activator eclipse

[3]Eclipseへインポート。
Eclipseを起動して「インポート」からEclipseプロジェクトとして先のパスを指定。
※Copy projects into Workspace のチェックは外した。


★追記
とゆーメモを2014/12〜2015/3にとったあと、ふと今見たら、チュートリアル2.3.x用があった!
・本家チュートリアル(2.3.x)
https://www.playframework.com/documentation/ja/2.3.x/Home
次からは2.3.x用を参照します。。
あれ、でもPlayのサイトから「Documentation」を辿るとまずは2.2.xが出ますね。主流派2.2.xなのかな?

Playのバージョンも2.3.8から2.3.9が最新になってますねー。
どんな技術も更新が早くて、会社って枠を抜け出ると技術のスピードを実感します…。

GNU Emacs 24.5へアップデート

学部4年生のときから、基本エディタはEmacsです。 キーバインドに慣れてしまってるだけなので、Eclipseの「EmacsキーバインドにしてC-hのバックスペースを足すぐらいで満足しちゃうぐらいにはライトユーザーですが;
今年度になってから、3年ぶり(?)にScalaを書こうとしていて、Emacsで簡単なのを書いたら、色づかなかった…。3年前に.emacsを吹っ飛ばしてからscala-modeを入れてなかったらしい。というわけでscala-mode2を入れました。そのときにEmacsアップデートが必要になったらつまずいたのでメモ。(メモ時点は、2015/4)

昔の記事「Scalaのインストールとかpluginとか(Mac OS X 10.6)」をみながら(懐かしい…!)ググったりしてたら、今はscala-mode2なるものがあるそう。

2.マニュアルのやり方で、gitから該当の*.elたちを持ってくる。

git clone git://github.com/hvesalai/scala-mode2.git

きたきた。で、.emacsに以下をいれる。

(add-to-list 'load-path "/path/to/scala-mode2/")
(require 'scala-mode2)

…C-x, C-eで実行してみたらエラーなんだけど?
(エラーの内容はメモするの忘れてしまった。。)

もっかいさっきのページのReadme見てたら、

not available in emacs prior to version 24.

お、私のGNU Emacsのバージョンが23.xだった…。

というわけで、GNU Emacs 24.5へアップデート

サクッと使いたかったのもあって、最初は以下のサイトから.dmgを持ってきた。

ら、起動したら画面がおかしい…。スクショとるの忘れたけれど、スクロールするとゴミが残る、画面バッファの書き換えでの明らかにバグっぽい何か。
うそー。ビルドされたものもらってきたの悪かった?

以下のサイトを参考に、24.5verをダウンロード&ビルド。ちなみにIMEパッチはあててません。ことえりだし。

wget http://core.ring.gr.jp/pub/GNU/emacs/emacs-24.5.tar.xz
tar xfJ emacs-24.5.tar.xz
cd emacs-24.5
./configure --with-ns --without-x
make
make install
cp -r ./nextstop/Emacs.spp /Applications/.

で起動してみたけど、先に持ってきたものと同じ画面バッファがうまく書き変わらないバグ…

以下のサイトを参考に再度。こちらでうまくいきました。。こちらはパッチも含めて従った。手取り足取りやってもらわないとできないのか…><

上でwgetで手に入れたtar.xzは取得し直してない。(一応元サイトのまま、curlで入れておいた)
make installのGZIP_PROG=''は入れてない。その他はコマンドまったく一緒。

curl -LO http://ftp.gnu.org/pub/gnu/emacs/emacs-24.5.tar.xz
curl -LO ftp://ftp.math.s.chiba-u.ac.jp/emacs/emacs-24.5-mac-5.7.tar.gz
tar xfJ emacs-24.5.tar.xz
tar xfz emacs-24.5-mac-5.7.tar.gz
cd emacs-24.5
patch -p 1 < ../emacs-24.5-mac-5.7/patch-mac
cp -r ../emacs-24.5-mac-5.7/mac mac
cp ../emacs-24.5-mac-5.7/src/* src
cp ../emacs-24.5-mac-5.7/lisp/term/mac-win.el lisp/term
cp nextstep/Cocoa/Emacs.base/Contents/Resources/Emacs.icns mac/Emacs.app/Contents/Resources/Emacs.icns
./configure --prefix=$HOME/opt/emacs-24.5 --with-mac --without-x
make
make install
cp -r ./mac/Emacs.app /Applications/.

これだとうまく動いた…Emacsアップデートに1時間もかかってしまったw

で、無事scala-mode2も動きました。やたー。
けど、もともと.emacsにあったmodelineの設定とcsharp-modeが動かなくなったので、また後日直さないと〜。

KDP(Kindle Direct Publishing)での個人出版メモ(後編)

こんにちは、えみーです。先日の続き、KDPでの個人出版メモです。

前編はこちら↓

glorypulse.hatenablog.jp

 

出版のもろもろ

続きを読む

KDP(Kindle Direct Publishing)での個人出版メモ(前編)

こんにちは、Newになったのに変化が見られないえみーです。

よ…ようやくKDPで出版したものの収入が手元に来そうなので、今までの経緯をまとめます。長くなったので前後編で。

 

↓ことあるごとに宣伝してる気がするので恐縮ですが、本はコレです。

食べる!SSL! ―HTTPS環境構築から始めるSSL入門

食べる!SSL! ―HTTPS環境構築から始めるSSL入門

 

 

執筆のもろもろ

続きを読む

LINEの通信をWiresharkで覗いてみる

「フリーWiFiが危ない!」みたいな話ってよく聞きますよね。で、この前ワイドショーだか夜の不思議番組だかでフリーWiFiをオジサンが立てて実験してるのを見ました。フリーWiFiに繋いだ女子大生たちがLINEを使ったところ、「ほら、LINEの情報はこんなにだだ漏れです」みたいな感じ。実際にオジサンは女子大生のところに行って、「きみらLINE使ってたでしょー」と言う。女子大生ドン引き。「もう二度とフリーWiFiは使いません」とまで言わせる流れだった。

思わず、さすがに引いた。これが本当ならちょっとどうかと思うし、むしろLINE側の問題なんじゃ…?
ググった感じは、TLSで守られていそうだった。

というわけでiPhone (6Plus, au))のLINEのやりとりを覗いてみました。
ちなみに、Mac OS X YosemiteにインストールしたWiresharkで覗きました。iPhoneiOS 8.1.3 でLINEは4.9.1Wifi接続済み。(キャリアLTEではない) ====

■やり方

やり方は、以下のQiitaの記事のWiresharkの項を参考にさせていただきました。

☆やり方おまけ

その1:確かにiTunesに接続したiPhoneの「シリアル番号」をクリックすると「UDID」が出る。戸惑った。

その2:Wiresharkの起動が案外遅くて、インストール失敗か!?とおどおどした。SSDだからか基本どのアプリも待ち時間ないもんで、久々の感覚だった。

■結果

通信先で確認できたのは以下。

IP IPアドレスwhois DNS メモ
203.104.131.24 LINE Corporation nelo2-col.nhncorp.jp 203.104.128.0 - 203.104.159.255はLINEらしい
203.104.142.1 LINE Corporation gw.line.naver.jp LINE使用中ずっとやりとりしてた
104.78.102.15 Akamai Technologies, Inc. (AKAMAI) scdn.line-apps.com.edgekey.net, ..., e1102.g.akamaiedge.net メッセージやりとりぽ
220.208.109.46 Jupiter Telecommunications Co., Ltd. dl.stickershop.line.naver.jp.edgesuite.net, ..., a908.g.akamai.net スタンプ置き場

ちなみに、DNSは実験した日のWiresharkのログから。後日nslookupしたら全然違うドメインだったり、IPだったりした。IPアドレスwhoisはこれを書きながら確認したもの。
通信先としては、LINE系とAKAMI系の2種だった。4番目のものはwhoisJ:COMなのだけど、DNSAKAMAI。我が家のネットがJ:COM(ケーブルTV)なので、そこのキャッシュだと思う。

通信の内容としては、上記にも書いちゃったけど、認証とメッセージ(テキスト)とスタンプと3種類ありそう。(メッセージいっぱい送ったんだけど、どうにも個数とは合わなかったから他にもあるかも…)

通信の種類 相手 SSL/TLS CipherSuite メモ
認証 LINEサーバ TLS 1.0 TLS_DHE_RSA_WITH_AES_128_CBC_SHA 認証の後もずっとSSL 2.0でContinuation Dataなるものを送り続けていた
メッセージ(テキスト) AKAMAI TLS 1.2 TLS_RSA_WITH_AES_256_CBC_SHA メッセージ送信の数に対しては少なかったが…。
スタンプ AKAMAI HTTP - 有料や期間限定のスタンプはメタデータ、最初から入ってるスタンプは画像データだった

エラーメッセージは特に出ていなかったので検証できていない。スタンプは確かに平文で、何をGETしているかも見えた。そして少なくとも今は、同じGETをすると、メタデータか画像がちゃんと見えるという。スタンプだけで会話していたら筒抜けになる可能性はあるかもw ただし機械的にやらず、絵柄から意味を見出す高等テクニックが必要だけど。メッセージは暗号化的には当面十分そう。

■まとめ&雑感

さすがにフリーWifi使ってたからって瞬時にメッセージ内容がわかるわけではない。LINEを使っていることはわかる。スタンプの内容もわかる。

まあ…某番組では例にLINEをあげたからアレだったけど、平文送信がだだ漏れなのは間違いないのでフリーWifiは心して使おうというのは同意。
(SSLはともかく)TLSの内容が漏れるのは、Wifiそのものが引っ掛けだった場合と個人的には思ってる(中間者攻撃など)。携帯キャリアや喫茶店のではない、野良Wifiに繋がないようにしよう、は全面的に同意したい。あとは、クレジットカード情報やインターネットバンキングの利用も避けたい。通信観点ではなくても、そもそも外でそういう番号を入れること自体が危ないし。

LINEのセキュリティイメージを無駄に低く持っている人が多いのもメディアの書き方の気がするなあ。確かに後手に回っていたのは確かだろうけど。個人的には、便利な技術がセキュリティが原因で「使えない」のがもったいなくて。セキュリティの不安は、不安な感情に直結するから簡単じゃないのはわかるんだけどね…。

ゲーム業界キャリア系シンポジウムに行ってきました

少し間が空いたけれど、、2015/1/17(土)に行われた「ゲーム業界におけるキャリアパス、人材育成の過去・現在・未来」に行ってきました!


シンポジウム『ゲーム業界におけるキャリアパス、人材育成の過去・現在・未来』開催 | メディア芸術カレントコンテンツ

 

続きを読む

【告知】2/28にWebインフラなイベントをやります

みなさまこんにちは、えみーです。
こちらに書くのは久しぶりですね…!
技術系ブログとしては残しておく&今後もここに書いていくつもりですが、ブログのあり方についてちょっぴり見直し中です。 2月中にはなんらかの形で報告する予定です。

 

で、今回は告知です!
2/28にWebインフラなLT会&飲み会をやります。

Glory Web Infra 〜Webを支える技術について語る会〜 | Peatix

会の趣旨としては、顔の見える勉強会!ということを考えています。
素直に、全員が発表できて、全員がざっくばらんに話せたらいいなあと思っています。
そんなわけで、LT会にしちゃいました。

会場は、catatsuyさんのおかげで、ピクシブさんのオフィスをお借りすることになりました!(どうもありがとうございます!!!)

 

何か気になるところあればお問い合わせください〜。
どうぞよろしくお願いします!