CLOVER🍀

That was when it all began.

2011-01-01から1年間の記事一覧

Scala Compiler Pluginで遊ぶ

最近、Groovyの書籍を読んでAST変換に興味を持ちまして…。んで、ちょっと試しにやってみたいことがあったのですが、それをやるにはScalaのCompiler Pluginを書く必要があるみたいですね。Scala Compiler Pluginを利用すると、 コンパイル時にチェックの追加 …

動的コンパイル結果から、Scalaのobjectを触る

先週、ScalaのCompiler APIを使ってclassの定義を実行時にコンパイルしたり、スクリプトを走らせたりしました。今回は、Scalaのobject構文で宣言されたオブジェクトを扱ってみたいと思います。 ちょっと癖がありましたので。まずは、今回のスケープゴート。 …

Scala Compilerで遊ぶ

Scalaは比較的DSLに向いている言語と言われていて、設定ファイルとかもScalaで書くといったような流れが各種著名なライブラリにはあるようです。例えば、LiftのBoot.scalaとか…。とはいえ、これらの設定ファイルってソースの一部ですよね。それって、都度コ…

JBoss NettyでHTTPサーバ

先週触っていた、Netty ExampleのScala写経の続きです。今回のお題は、HTTPサーバ。 http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/http/snoop/package-summary.htmlまずは、サーバ側。 HttpServer.scala import java.net.InetSocketAddres…

続・XHTMLからJSPへの変換

XML

前回は中途半端に終わってしまった、XSLTを使ってXHTMLからJSPへ変換する試みですが、一応その後ある程度できたので、公開しておきます。別に、万能ツールとして作成したかったわけではありません。変換後のJSPが利用される想定は… SAStrutsおよびStrutsのカ…

XHTML to JSP…の実験

XML

今日、XSLTを勉強していた理由は、XHTMLで書かれたコンテンツをJSPに変換したかったから、というもの。残念ながら、ちょっと中途半端なところでタイムアップしちゃったのですが、成果を載っけておきます。変換元XHTML。 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </meta></head></html>

XSLTを勉強する

XML

ひょんなことから、仕事でXSLTを使うことになりました。この技術は学生の頃にちょろっと使ったことがあったのですが、あまり理解せず。そして、このXMLが嫌われている中で、これをお目にすることになるとは…。まあ、いいです。やるだけやっておきましょう。…

JBoss NettyでWebSocket

今度は、チュートリアルのWebSocketをScalaで写経。いかにチュートリアルの写経とはいえ、WebSocketを使ったプログラムを書くのは今回が初めてです♪写経元のチュートリアル。 http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/http/websocket/…

JBoss Nettyを触ってみる

以前からちょっと興味はあったのですが、NIOベースのフレームワークを触ってみることにしました。この分野でのフレームワークと言えば…Grizzly http://grizzly.java.net/Apache MINA http://mina.apache.org/JBoss Netty http://www.jboss.org/nettyJBoss Ne…

sbtでOutOfMemoryErrorを回避する

Jettyを使ってjetty-run、jetty-stopとかprepare-webappとかを繰り返していると、そのうちPermanentを使い切ってOutOfMemoryErrorが発生します。こんな感じ。 [info] Compiling 1 Scala source to /xxxxx/hello-servlet/target/scala-2.9.0.final/classes...…

xsbt-web-pluginを使って、WARファイルを作る

前回sbtでサーブレットプログラミングにトライしたのですが、ちょっと不足がありました…。それはズバリ…package。 > package [info] Updating... [info] Done updating. [info] Compiling 1 Scala source to /xxxxx/hello-servlet/target/scala-2.9.0.final/…

sbt 0.10でサーブレットプログラミングにトライ

注意)この記事は、sbt 0.10とxsbt-web-plugin 0.1系の組み合わせです。 xsbt-web-plugin 0.2系では動作しませんので、ご注意ください。今度は、sbtでサーブレットプログラミング。その前にコマンドとか基本的なことをまとめた方がいいような気がするのです…

sbt 0.10で依存関係の管理

続いて、Mavenの時と同様、sbtで依存関係の管理をしてみましょう。今回も、スケープゴートになっていただくのは、Jakarta Commons Langでございます。では、ちょっとクラスを修正。 $ cat src/main/scala/HelloSbt.scala import org.apache.commons.lang.Str…

sbt(Simple Build Tool)0.10ことはじめ

以前から使ってはいたのですが、CentOSからUbuntuに移行した時に残念ながらsbtの設定は吹っ飛んでしまったため、いい機会なのでまとめておこうと思います。sbt(Simple Build Tool) https://github.com/harrah/xsbt/wikisbtは、Scalaのための開発ツールです…

ふと気付くと、scala.concurrent.pilibオブジェクトが非推奨に…

Scala 2.9.0.1のAPIドキュメントを眺めていて、ふとscala.concurrentパッケージのpilibオブジェクトがdeprecatedになっているの気付きました。しかも、「use actors instead(Actorに置き換わりました)」ですと?pilibオブジェクトとActorライブラリはけっ…

Scalaで学ぶイミュータブルなプログラミング

Scalaを勉強してそこそこ経ちますが、Scalaを勉強することになったきっかけは、かの有名な「コップ本」を購入してみたことです。それまでスクリプト言語もあまり学んできていなかったので、中心のプログラミング言語はほぼJava一色だったのですが、Scalaを勉…

VirgoでJRubyは動くのか?

最初に言っておきます。挫折ネタです(笑)。先週、このブログでやっていたVirgo&OSGiの勉強の成果を、そもそも調べるきっかけを与えてくれた方に見せてあげたのですが、その時にこんなことを聞かれました。「JRubyを動かすことってできる?」ぬぉ、またハ…

Xperia arc購入〜♪

前々から欲しい欲しいと思っていたAndroid携帯ですが、やっと店頭に在庫が並ぶようになったので、Xperia arcを購入しました。とりあえず、慣れるところから始めるわけですが、時間ができたらHTML5/CSS3でなんか作って遊びたいですね〜★

IntelliJの設定まとめ

CentOS→Ubuntuに移るにあたり、IntelliJも移行することになっているのですが、いい機会なので設定をまとめておきましょう。あくまで、個人の好みの設定、です。 Keymap以外 Code Style -> General 「Class count to use import with '*'」 は50くらいまで引…

結局…

CentOSから、Ubuntuに移行してみました。JavaやScalaの主要ツールもインストールしなおし、前の環境にそこそこ近い状態になりました。昨日の今日でこんなに急に移行しなくてもよかったのですが、試しにUbuntuやopenSUSEの仮想マシンを作ったり消したりしてい…

UbuntuでRPMを使う

alienというパッケージが必要らしいので、apt-getでインストール。 $ sudo apt-get install alien パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の特別パッケージがインストールされ…

64bit LinuxでAndroidエミュレータを起動する

晴れてUbuntuに移行したので、CentOSでできなかったAndroidエミュレータを起動してみましょう♪で、結果は …なんですと?エラーの内容こそCentOSと違いますが、失敗してるじゃん。それにしても、よくわからないエラーを吐いてますね。emulatorがないと言って…

CentOSか他のディストリビューションか

あんまり気にしていなかったのですが、CentOSってRedHat Enterprise Linux 6のリリースに随分と追従できてなかったのですね。すでにかなり遅れていて、本家RHELでは6.1がリリースされているというのにCentOSはまだ5.6という状態。一応CentOS 6.0のリリースカ…

CentOS上でAndroidエミュレータを起動…できません

ちょっとスマートフォン関係の仕事をすることになりそうなので、Androidエミュレータを導入しようとトライ。Macは持っていないので、iPhoneは対象外ということで。過去にWindows上で遊んでいたことはあったのですが、開発系はLinuxでやりたいよねーってこと…

Scala ActorのDebugオブジェクト

ScalaのActorライブラリを見ていると、たまにDebugというクラスを見かけます。例えば…Code from Reactor.scala... version 2.9.0.1 /* __ *\ ** ________ ___ / / ___ Scala API ** ** / __/ __// _ | / / / _ | (c) 2005-2011, LAMP/EPFL ** ** __\ \/ /__/…

Shift_JIS → Windows-31Jマッピング変換コード

近々仕事で書くことになりそうなので、久しぶりにShift_JISとWindows-31Jのマッピング変換コードでも。 public class CodeReviser { public static void main(String[] args) { String target = args[0]; System.out.println("Before [" + target + "] Hex["…

Actorのlinkとrestart

よく忘れるので、自分のためにメモ。ScalaのActorで、linkとrestartの使い方。ScalaのActorには、Erlangのプロセスと同じようにリンクと再起動の概念があるようです。Actorトレイトのメソッドとして、linkとrestartがあるのですがこの使い方を本当によく忘れ…

Scala 2.9.0で追加された、DelayedInitトレイトを使ってみる

Scala 2.9.0でDelayedInitトレイトというものが追加され、インスタンスの初期化シーケンスがカスタマイズできるようになったとか。Parallel Collectionsとかと違って、あんまり注目されていない機能っぽい?ま、遊ぶだけ遊んでみましょうか、と。なお、ちょ…

OSGi & Virgo雑感

とりあえず、前回まででOSGi Bundleの連携からバージョンの切り替えと基礎的なことをやり終えたと思っています。ここらでちょっとOSGiとVirgoを使ってみての雑感を。まずは良さそうなところから。 同じモジュールであっても、複数のバージョンを管理、共存で…

依存OSGi Bundleのバージョンアップ

前回はWeb層のOSGi Bundleを追加し、Service層のOSGi Bundleを共有する、ということをしました。では、今度はこの状態にService層のOSGi Bundleをバージョンアップして追加してみましょう。つまり、 Web Bundle[Ver1.0] ------------> Service Bundle[Ver1.0…