2012年03月14日

HadoopのContextをScalaのforで回してみたメモ

HadoopのContextは、「nextKeyValue」「getCurrentKey」「getCurrentValue」の3つを持っていてループで回して使ったりする。

この子をScalaのforでこんな風に回してみたかった。
for ((key, value) <- context) {
// ここで処理
}

続きを読む

2011年12月12日

Java使いをScalaに引き込むサンプル集

なんか気まぐれでこんなの書いた。

Java使いをScalaに引き込むサンプル集(その2)
http://www.mwsoft.jp/programming/scala/java_to_scala2.html

こういうのは書いた後にいろいろ後悔することが多いんだけど、まぁいいや。

2011年12月01日

ScalaでMapReduceの面倒な記述を省略しようとしたメモ

ScalaでMapReduceする際の記述は、以下のサイトがとても参考になった。

ScalaでHadoopのWordCount
http://www.ne.jp/asahi/hishidama/home/tech/scala/sample/hadoop.html

上記のサイトでも登場するけど、ScalaHadoopというMapReduce時の記述を楽にしてくれるライブラリがいるらしい。面倒な記述が自動化されている上にChainで処理が書けてしまうなかなか面白いライブラリ。

個人的にはそこまでやらずに、面倒なところを共通化してくれたらあとは基本機能がむき出しになっている方が好きなので、ScalaHadoopを参考に自分に必要な処理だけ共通化する形を考えてみた。

続きを読む

2011年09月18日

メモ書き

こんなのを書く。

scala.sys.processを使ってみる
http://www.mwsoft.jp/programming/scala/scala_process.html

上のを書いていてふと思いついたので、試しにTwitterのStreamingAPIの内容をcurlでさらっと取ってファイルに書いてみる。

ScalaのデフォルトのJSON機能(微妙な子)を使ってしまっていたり、日本語判定が恐ろしいほどに適当だったりするけど、普通はTwitter4jとか言語判定ライブラリを使うだろってとこなので、適当なままで良しとする。

続きを読む

2011年08月03日

SolrのEmbeddedSolrServerからIndexSearcherを使ってみる

Solrの勉強がてらにEmbeddedSolrServerから直接IndexSearcherを奪って処理をさせてみた。コードはScala。

こんな使い方をして良いのかと聞かれると、どう見ても良くはない。こんな方向性の勉強で良いのかと言われると、これまたどう考えても良くはない。でも、楽しかったから良しとする。

続きを読む

IntelliJ IDEAのJava→Scalaコード自動変換を試す

IntelliJ IDEAにはJavaのコードをScalaのコードに自動で変換する機能が付いている。

プロジェクトの中にJavaのクラスを作って、Refactor→Convert Java File To Scalaで変換ができる。また、プロジェクト中のJavaのコードの一部をコピってScalaのコードの中にペーストすると、Scalaのコードに自動変換した上で貼り付けてくれたりもする。

これをScala入門者が困った時用の機能として勧めて良いものか確認したかったので、軽く調査してみる。結論として、それなりに救ってくれそう。

以下、IntelliJ IDEAにJava→Scala変換してもらった結果。

続きを読む

2011年08月01日

ScalaとJavaの相違点の箇条書き

この手の原稿を書くことになった気がするので(気のせいかもしれない)、いろいろまとめ中。

続きを読む

2011年07月13日

ScalaのSynchronizedQueueを使ったメモ

所用でscala.collection.mutable.SynchronizedQueueを使ったので、メモ。

SynchronizedQueueは名前の通り、enqueue(追加)やdequeue(取り出し)する時の処理をsynchronizedにやってくれるQueueクラス。

処理的にはQueueを継承して各処理でsynchronized{ super.処理 }してるだけ。

ScalaにはQueue以外にも、Stack、Set、Buffer、MapなんかのSynchronized版が存在する。

続きを読む

2011年07月02日

H2 Databaseを組込みモードで使ってみたメモ

H2とはあだ・・・いや、なんでもない。組み込みとしてもサーバとしても使えるJava製データベース。

組み込みで使うSQLというとSQLiteがメジャーだけど、JavaやScalaのプログラムに組み込む場合はH2を見かけることもけっこうある。

速度面もそれなりに良い感じだったり、同時アクセスに対してもそれなりに対処できるようなので、ちょっとしたDB操作を伴うScalaのアプリを作ろうとした際に利用できそうに見える。

続きを読む

2011年06月30日

ScalaとCommonsIOでむにゃむにゃしたメモ

私はCommonsがないと生きていけないダメな人間なので、ScalaでCommonsIOをもっと簡単に使えるようにできないものかと思って、下記のようなことをやってみた。

implicit conversionsでjava.io.FileにCommonsIOの機能をドカドカ入れてみたメモ
http://www.mwsoft.jp/programming/scala/commonsfile.html

続きを読む

2011年06月19日

ScalaでWebスクレイピングしようとしたメモ

勉強がてらにうだうだしてみた。
http://www.mwsoft.jp/programming/scala/web_scraping.html

感想
  • NodeSeqとかXMLLoaderのソースをひと通り読んだけど、えらくシンプルだった
  • XPathが使いたくて仕方ない気持ちになったけど、良い解決方法が思いつかなかった
  • 良いライブラリを見かけるまでは、オレオレ実装で頑張ろうと思った

2011年06月13日

lift-mapperをmainから使ってみたメモ

設定が足りているか微妙だけど、割と簡単にmapperの部分だけを使うことができた。さらっとSQLを使いたい時の選択肢としては悪くないような気もした。

続きを読む

2011年06月11日

Jettyで302リダイレクトをするコードを書く

昨日はJettyを静的コンテンツを読むだけのシンプルな設定で立ち上げて、テスト用のHTTPサーバとして使ってみた。

今日はその続き。HTTPのテストをする際に出てくるのが、リダイレクト関連。5回までリダイレクトしてそれ以上になったら止まれみたいなコードをテストする際に、さらっとテストしやすいリダイレクト設定が書けるとありがたい。

続きを読む

JettyをScalaから起動してHTTP関連のテストで使ってみる

・前書き

HTTP通信関連のテストをする時に、あまり他所様に連続リクエストをするのは好ましくない。なのでlocalhostにテストファイルを置いてテストケースを実行することがある。

これまではApacheのhtdocsに放り込んでやってたのだけど、環境が変わるたびにlocalhostにファイルを用意する作業が必要になってしまうのがイマイチ。

続きを読む

2011年05月22日

ScalaのStringLike.formatで日付フォーマット

お決まりのyyyymmddに変換する的なコードを書く時に、何を使ってやろうかなぁと少し迷った。

普通にDateFormatでやっても良いのだけど、StringLikeのformatを使った方が短くて良い気もした。ちとフォーマット文字列が読みづらいのと、パースする方では使えないのがアレだけど。

続きを読む

2011年05月18日

Scala2.9で追加になった文字列関連の関数

StringLikeとStringOpsを見た限りでは、関数の揃い自体は大して変わってなかった。コードはけっこう変わってるように見えるけど。

上記2クラスにおいて、2.9で追加になった関数は「replaceAllLiterally」と「seq」の2つだけっぽい。ざっと見ただけだから見落としはあるかも。あとCollections系の継承してるクラスで追加になったものは省く。

続きを読む

2011年05月14日

なぜScalaなのですか

Odersky先生が書いた、Why Scala?という文章を読む。
http://blog.typesafe.com/why-scala

要訳するとこんな感じだろうか。ちと意訳し過ぎた感があるので注意。

尚、本文ではOdersky先生を甲とする。なんとなくそういう気分だったから。

続きを読む

2011年05月12日

Validator.nu HTML Parserを使ってみる

Validator.nu HTML Parserは、Java製のHTMLパーサ。Firefox4のHTML5パーサはこれを元にしているらしい。Liftが依存しているライブラリの中を覗いていたらこの子がいたので、試しに使ってみた。

利用しているバージョンは1.2.1。Scala2.8で記述。

続きを読む

2011年05月05日

Scalaよもやまメモ

コップ本読んでる時にいろいろメモを残していたので、その中から面白みがありそうなものを貼ってみる。

続きを読む