Entries from 2012-01-01 to 1 month

ScalaのREPLをカラフルにして遊ぶ

scala.Consoleを使うと文字に色をつけることができます。 import scala.Console._ println(BLUE + "僕" + RESET + "は" + CYAN + "友達" + RESET + RED_B + "が" + YELLOW + "少" + RESET + RED_B + "ない" + RESET) RESET付けないとその後の出力もずっとそ…

Scalaパターンマッチの Infix Operation Pattern

Unfiltered を使うときに必要になるのですが、キモ便利です ちょっとテストデータを定義しますね。 case class Person(name: String, age: Int, height: Int) val tanaka = Person("tanaka", 16, 170) 田中君は16才で170cmです。 田中君は case class として…

ScalaでMarkdownをHTMLに変換する

knockoff を使えばMarkdownを簡単にHTMLに変換できます。 HTMLの文字列としてではなく、Scalaのオブジェクト(scala.xml.Node)に変換するので使い勝手が良いです。 pamflet や picture-show が knockoff を使っています。 使い方 knockoff して toXML, toXHTM…

unfilteredで作ったアプリをtomcatで動かす

手順 unfilteredでアプリを作る web.xmlを書く xsbt-web-pluginでwarにする tomcatにデプロイ unfilteredでアプリを作る "Hello"って返すだけのアプリを作ります。 Unfiltered では Plan ってのを作って URL のルーティングをします。 package com.github.to…

w3mをページャとして使うと便利

ページャとしてはみなさんlessだのlvだの使っていると思いますが、w3mを使うとちょっと便利です。w3mについては man w3m してください。 検索結果からファイルに直接飛べたりします。 この動画では次のような、 lw という単純なシェル関数を定義して使ってい…

Scalaでスクリプトとか書くときのコマンドライン引数の処理

昔つぶやいたけどブログにはまだ書いていなかったっぽい。 getopt的なものはない(よね?)。 コマンドラインパースしてくれるライブラリもあるっちゃあるっぽいけれど これで充分じゃないかと思ってる。 ポイントは Array[String]をList[String]に変換してから…

main/testの間を素早く移動する

ScalaもJavaもEmacsで書いてます。ScalaはともかくJavaはつらい。 つらいけど、 yasnippet(Javaは冗長すぎてyasnippetが楽しい)と anything(import補完elispとか書いてる)と malabar-mode(すごい)とかがあるので生きてます。 あと自動コンパイルはinotify+wh…

lift-json リファレンス

参考: JSON Support | Lift Project | Assembla Scala標準にもjsonパーサとかありますが、lift-jsonのほうが人気。 基礎知識 A central concept in lift-json library is JSON AST (Abstract Syntax Tree) which models the structure of a JSON document as…

ScalaQueryでカラムのオプションを指定する

ScalaQueryではカラムのオプションを"O ほにゃらら"という形で指定します。 O NotNullとかO PrimaryKeyとか。 https://github.com/szeiger/scala-query/blob/0.9.5/src/main/scala/org/scalaquery/ql/basic/BasicTable.scala#L12 https://github.com/szeiger…

ScalaでXMLからjQueryっぽく要素を抜き出せるものを作った

ScalaでXMLから要素を抜き出す方法について。 // テストデータ val html = <html> <head> <title> </title> </head> <body> <ul> <li>akemashite</li> <li>omedetou</li> </ul> <div id="container"> <div class="contents"> <span class="foo">happy</span> <span class="foo">new</span> <span class="foo">year</span> </div> </div> </body></html>