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

謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

Form を使う

Playframework にはPOSTデータ等を簡単にバリデーション、及びオブジェクトマップする方法があります。先ずは簡単にフォームを使いましょう。 import play.api.data._ import play.api.data.Forms._ val loginForm = Form( tuple( "email" -> text, "passwor…

Playframework の Form メッセージ多言語化

この Forms を使用した時のバリデーションエラーメッセージや、画面にバインドしたときのメッセージを多言語化する場合の方法。 まず、このフォームバリデーション定義がどこにあるかというと、 ディレクトリ : play-2.1.1/framework/src/play/src/main/scal…

Playframework の Akka 設定を読み解く

※ Play2.0.3 時代の古いやつです Playframework は Akka を利用しており、性能に直結してる。 もし、CPUやメモリに余裕があり、更に大規模なアクセスに対応したい場合は、設定を上書きできる。application.conf で設定可能だが、Playのデフォルト設定は下記…

PlayFramework をインストールする

Playframework 2.1.1 をインストールする手順です Java6 以上を入れます(この詳細はJavaの物を探してください) Play Framework - Build Modern & Scalable Web Apps with Java and Scalaから2.1.1 をダウンロードしてきます 適当なディレクトリへ解凍し、パ…

Playframework のバグに全力でハメられたのでメモ

https://github.com/playframework/Play20/issues/1086このバグ、、、要するに Playframework 2.1.1 は何らかの問題*1で less css を正常に認識できずコンパイルできないらしい。 これで 2h 位嵌められたよ、、、、。 *1:コード追ってないけど

Playframework 2.1.1 ビルドとテストを非同期に

Playframework でそれなりにプロジェクトの規模が大きくなると無視できなくなるのがビルド時間、、、。 特にUT走らせるとなると、ビルド時間が指数関数的に増えること請け合いです。 しかもコンパイル中はソースの改修もなにもできないという、、、、。後IDE…

sbt で書いたものをサービスとして動かす

極論停止は kill 出来れば良いやの感覚です。 というのも、 sbt run &なんて馬鹿正直に書くと、sbt プロセスが何故か停止してしまう。 fg するとまた動くのだが、bg 出来ないから冗談ではない。なので、デーモン化を考える。http://stackoverflow.com/questi…

AkkaのMailboxサイズを引っこ抜く

高スペックマシンで普通に余裕があるのは当たり前として、問題は AthronNEO なんてへちょいスペックではたして動くだろうか?(;´∀`) 常時起動できないと集計にならんし、かといって高スペマシンの常時稼働はお財布に厳しい。 仕方がないので10秒ごと位にキ…

ScalaActiveRecoard の 0.2.2 を弄る

ってもそんなに真面目にやる気ないですけどね。sbt の build.sbt に libraryDependencies ++= Seq( "org.scala-lang" % "scala-library" % "2.10.0" % "provided", "org.scala-lang" % "scala-compiler" % "2.10.0", "com.github.aselab" % "scala-activerec…

Twitter4J でざっくりデータを引っこ抜く

事前に https://dev.twitter.com/ でアカウント登録と、アプリケーション登録を済ませておくこと。 参考はこれ使うのはこれhttp://twitter4j.org/ja/index.htmlで、application.conf *1に twitter { consumerKey = "ZZZZZZZZZZZ...." consumerSecret = "AAAA…

Ubuntu 12.04 に sbt 突っ込む

なんで今まで書いてなかったんだろ?まぁいいや。Javaが既に入ってる前提で wget http://apt.typesafe.com/repo-deb-build-0002.deb sudo dpkg -i repo-deb-build-0002.deb sudo apt-get update sudo apt-get install sbt どうでもいいけど sbt の S が Simp…

形態素解析した結果からまだ何か考察

前回 の処理に似たようなことを行い、 接頭詞 + 名詞 = 名詞 名詞 + 名詞 = 名詞 名詞 + 動詞 = 動名詞 + 動詞 動詞 + 動詞 = 動詞 動詞 + 助動詞 = 動詞 動詞 + 助詞 = 動詞 で区切ったあと、句読点が「記号」と認識されていることに着目。 記号で区切られ…

形態素解析ライブラリを触ってみる【Igo】

先ず適当なディレクトリを掘って、ダウンロード - Igo - SourceForge.JP と MeCab - Browse /mecab-ipadic/2.7.0-20070801 at SourceForge.net を配置。 MeCab のtarボールは解凍しとく。 で、 C:\common\projects\lab\Igo>dir ドライブ C のボリューム ラベ…

SSH のアクセスログを洗ってみる

SSH ポート空けてると、不正にログインしようとするやつはいるもの。 また、アカウントが盗まれて変な所から ssh されることもあり得る。そんなこんなで、/var/log/auth* なログファイルをパースしてディレクトリに振り分ける処理をざっくり書く。わざとシー…

Akka のClusterを調べてみる

前回写経して中身を確認してみたが、正直サンプル見たほうが理解が早かった。https://github.com/akka/akka/blob/master/akka-samples/akka-sample-cluster/src/main/scala/sample/cluster/simple/SimpleClusterApp.scala https://github.com/akka/akka/blob…

Akkaのrouterを調べる

とりあえず内容はこれhttp://doc.akka.io/docs/akka/2.2-M3/scala/routing.html A Router is an actor that receives messages and efficiently routes them to other actors, known as its routees. そのままですよね。Actorのインスタンスが複数ある時に、…

続、Akka勉強する

随時更新 Akka について勉強する。 - 謎言語使いの徒然 の続き Akka2.2-SNAPSHOT で大分 Cluster に動きがあった。流石試験実装、、、、安定しない。 設定ファイルの中身を換えればまだ動きはするが、この際だから最初から考え直す。*1 まずサンプルを求めて…

Akka について勉強する。

終了まで随時更新 教科書はこれ http://www.slideshare.net/scalaconfjp/scaling-software-with-akka概要から読んでいく。 重要そうな箇所だけまずはメモProgram at higher level 共有するステータス、ステータスの可視性、スレッド、ロック、同期、スレッド…

Playframework2.1.0 で ComboBox のテンプレートを使ってみる

無いかなーと思ってソースコード読んでて見つけた。 公式ドキュメントに乗ってない(まだ書いてないだけ?)のでこれはみんな難儀するだろうなーということで共有。 /play-2.1.0/framework/src/play/src/main/scala/views/helper この辺開くとテンプレートヘ…

Akka を勉強する 4

ActorSystem は単語単位で名称を持つことができる。これはURIスキーマの一部として利用することができる。 使える範囲は「'^[a-zA-Z0-9][a-zA-Z0-9-]*$'」の範囲だそうな。 これはこんな感じで書くそうな。 akka://actorSystemName@ServerHostName:9000/user…

Akkaの勉強をやってみる 2

うん、Scala2.10あんま関係ないのでタイトル変更。午後やるって言って遊んじゃった(主にPSO2)ので遅かった。 先ずコードはこんなん import akka.actor.{Props, Actor, ActorSystem} import java.util.Date import org.slf4j.LoggerFactory class SampleActor…

Akkaの勉強をScala2.10で行ってみる

先ずはsbtでscala2.10を設定。 依存とバージョン番号指定すればよさそう organization := "net.azalea" name := "Alla-sample" version := "0.1.0" scalaVersion := "2.10.0" description := "An JSON schema(http://json-schema.org/) access helper for sc…

Akkaの勉強をやってみる3

始めに断わっておきますが英語圏のネイティブじゃないんでドキュメント読んで拾った内容だけど間違ってるかもしれない。 Akka は動作階層を持っているらしい。 ActorRef MessageDispatcher MailBox(with MessageQueue) Actor(プログラマが実際に処理を記述す…

Playframework2.0.4 のgzip転送について調べてみた

そもそもPlayにこの機能ないの?って思ってソースを追っかける。 すると、https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/controllers/Assets.scala惜しい、Assets じゃ無いんですよ、、、。 とは言え、s…

OSSを試してハマったログ

Play2.0 + PostgreSQL + ScalaActiveRecord0.2で突っ込んでみてハマったログです。 情報等ほぼ存在しないだろうから、後に踏み入れる人たちに、、、、。http://www.playframework.org/ http://www.postgresql.jp/ https://github.com/aselab/scala-activerec…

Actor と RemoteActor

アクターは基本的にはメッセージの受信に対してどう動くかという、Objective-CやSmalltalk的なオブジェクトの振る舞いをするスレッド。 内部的には、メッセージを「receive」で受け取り、処理をする。処理中に他のメッセージが来れば、そのまま「receive」可…

Play の開発に使いやすい情報

メモ。既にある情報を書くまでも無い気がしてリンクだけ。 動作時に別の設定ファイルをロードする方法。http://www.playframework.org/documentation/2.0.4/ProductionConfigurationちなみに、start コマンドはリリース用動作モード。http://www.playframewo…

Play Framework2.0 いじってみる。

https://github.com/playframework/Play20/wikiこのへんのチュートリアルに沿ってインストールはできると。 SBT ベースになってるので、そのままいけるかなーと思ったけど、コレが案外ハマった。まず、SBT-Idea突っ込もうとして、「project/plugins.sbt」に …

sbt0.11 使ってみる

とりあえず作業ログ。このへんからsbt落としてきて set SCRIPT_DIR=%~dp0 java -Xmx512M -jar "%SCRIPT_DIR%sbt-launch.jar" %*こんなバッチ書(abt.bat)く。 次にプロジェクトディレクトリ作って、そこで sbt.bat 起動。 プロジェクトディレクトリルートに b…

jetty のスタティックリソースロック回避。

webapp 直下のリソースファイルを更新した状態で、「~ prepare-webapp」やると、エラーで鯖が落ちる問題。何かなーと思って調べたら、jettyの仕様(?)だった。https://www.assembla.com/wiki/show/liftweb/Fix_file_locking_problem_with_jettyrun回避方法を…

Jetty で hotdeploy できないか悩んでみた

SBT で何とかできないかなぁと ま、結局 Jetty 自体にほとデプロイが無いので、以下の手順踏めば行けるようだ。 compile copy-resources jetty-reload 面倒っちゃ面倒だ。 最後の手順は、起動パラメータでどうにかなるらしいが、あいにくとSBTでのやり方知ら…

PostgreSQLにサクっとつないでみる。

環境は、sbt0.7.7, scala2.9.1 で作成。 Projectの設定にザクッと以下を流し込む。 val posgresDriver = "postgresql" % "postgresql" % "9.0-801.jdbc4" val squeryl = "org.squeryl" %% "squeryl" % "0.9.4" で、update かけたら以下のようなDatabaseModel…

日曜にやったことぺたり

色んなコードを逆コンパイルして、実装眺めてた。 ても、結構色んなパターンやったくせにログが残ってないので、やったことの記憶を辿って一部だけ。 (貼りつけるだけで面倒)まずは object の実装。 package sample object HelloWorld { def tak( x:Int , …

Scalaでモナド使うことはあまりないけど、わかりやすいのがあったのでメモ。

http://blogs.dion.ne.jp/keis/archives/5880105.htmlカリー化の部分が少々間違ってた気がするけどそれはそれ。http://www.sampou.org/haskell/a-a-monads/html/いいガイドだとは思うけど量が凄いね。

コンソールでScala使う場合のメモ

メモでURLだけ用意。http://blog.goo.ne.jp/byakhee/e/f538b931e5ee68318a2235e202bb9b80

末尾呼出と最適化

ある関数Aが、Bを呼ぶだけの場合、Bの呼び出しをジャンプで呼び出すと、スタック消費が無いとか、諸々最適化できるという話。 コレが Tail call optimization なわけですが、Scalaの2.8では自動でやるどことか、Trampoline for Tail Call までやるらしい。 …

Scala で linq

集合要素にかけて使えるLINQ、Scalaならありそーかなーと思ったら速攻見つけたのでメモ。 https://github.com/vladimirk/scalalinq/ 一度これに慣れちゃうとアウトよね。

Scalatra で開発する環境メモ

概要とかは知らんが、Scala という言語自体がいいのと、Scalatra の仕様がシンプルでわかりやすいので、自宅で揃えてみた。http://d.hatena.ne.jp/fits/20100810/1281429835 http://d.hatena.ne.jp/Naotsugu/20110501/1304363927これだけ用意しとけば動く。 …

サンプル書いて理解し続ける

オライリー英語本が何故かAndroidに入ってる。理由は、英語版しか電子書籍が売ってなかったから。 まぁいいよ。言語見ればわかるだろと。shapes.scala をざくっと書いている。 package shapes { class Point(val x:Double, val y:Double) { override def toS…

Scalaが面白いという話を聞いて遊び始める

基本はここからダウンロードしてインストールするだけ。IsPackインストーラあるから便利ね。 Java6最新update入ってりゃ基本問題ないはず。 IDE はこっちにあった。 そしてざくっとコード書く。 class Upper { def upper(strings:String*): Seq[String] = { …