Home –  Archive
Monthly Archives: 2月 2015

Raspberry Pi2でJava使うときはOracleのを使うのがいいですな

前回の記事でOpenJDKでSBTやらPlayframeworkやらでトラブルが出てた話ですが、Oracleがリリースしている本家JDKをインストールしたら解決しました(・_・;)

ARMのJDKってリリースされてるんですね。知らなかったです_| ̄|○

↓からダウンロードできますヽ(=´▽`=)ノ

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-arm-downloads-2187472.html
JDK 8 for ARM - Download

ダウンロードしたのを適当なディレクトリに解答して、PATH通してJAVA_HOMEを設定すれば、あとは普通に使うだけ!

SBTもばっちり動作しましたし、何も問題なくなりましたヽ(=´▽`=)ノ
まぁ・・・・すっごく遅いので、Raspberry Pi2上で開発しようとは思いませんが。

Raspberry Pi2自分で作ったWebアプリを動かしてみると、富豪的プログラミングで非効率な処理をしてる所とかはぐぐっとレスポンスが悪くなるので、なんというか・・・手抜きを防げまするなぁと思いました(・_・;)

ちょっとしたことならRaspberry Pi2で結構実用になるかなと思います。

Raspberry Pi2 届いたので、SBTとかPlayframework使おうとしてみた・・が

追記: 解決しました(・_・;)

DSC00772DSC00771

Raspberry Pi 2手に入れましたヽ(=´▽`=)ノ

早速、手持ちのSDカードに変換ケーブルつけて、無線LANアダプタつかって使用しています。
前モデルは持っていないので、比較はできませんが、そこそこのCPUパワーと、そこそこのメモリがあるので、色々勉強するには持ってこいの素材だなぁと思います。

私は最近、Scala と Playframeworkを趣味程度ですが使っているので、Raspberry Pi 2で動くかな?
と思って早速やってみました。

read more

Play Framework で 206 Partial Content を返したい

気がつけば半年以上、放置していますね。イカンイカン(・_・;)

最近、趣味でPlay Frameworkを使っています。Play FrameworkはScalaもしくはJava用のWeb Frameworkです。
私はJavaの冗長な記述が嫌だというのもあるのでScalaを勉強しつつ使ってます。

それで使ってるうちにHTTPのレスポンスで「206 Partial Content」を返したいなという事がおきて、作ったので後々のメモ代わりにBLOGに書いておこうかなと。

通常Play Frameworkでレスポンスでファイルをクライアントに送信する場合はさくさくと一文でできてしまいます。

def index = Action {
  Ok.sendFile(new java.io.File("/tmp/fileToServe.pdf"))
}

https://www.playframework.com/documentation/ja/2.3.x/ScalaStream

この場合、クライアントから「Range: bytes=xxx-xxx」みたいなリクエストに多分(考えて見たら未確認だった・・・!)対応出来ません。

で、自分で実装してみようかともい頑張ってみました。

Play FrameworkではEnumeratorのおかげで、一気にメモリを取得せずちまちまと少しずつデータが遅れるので巨大なデータでも安心ですね。
最初取っ付きづらかったですが、この仕組は素晴らしいなぁと作ってて思いました。

以前、Railsとかで同様の仕組みを作った時に、一気にファイルを取得してデータを返していたのでファイルサイズに応じてメモリを大量に使用しまうという問題があったりしたので(・_・;)
もしかしたらやり方がまずかったからかもしれませんが。

read more