CLOVER🍀

That was when it all began.

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

ScalaのパターンマッチでORを使う

きっかけは忘れましたが、何かの記事で見かけてScalaのパターンマッチでOR(|)が使えるということを知りました。よくよく見ると、これとかScala逆引きレシピ作者:竹添 直樹,島本 多可子発売日: 2012/07/03メディア: 単行本(ソフトカバー)これにも載ってい…

Matcher#replaceAll、String#replaceAllで後方参照が使える

コロッと忘れていたようなので、メモ。java.util.regex.Matcher#replaceAllやreplaceFirst、String#replaceAllやreplaceFirstで$を使った後方参照が使えます。普段あんまりJavaで正規表現による置換を多用しないのと、Perlに頼り切ってることが多かったです…

mvnコマンドで、ソースとJavadocのJARを取得する

最近、またMavenリポジトリを作ることになりまして。以前の反省を踏まえてdependency:go-offlineゴールを活用して作ろうと思ったのですが、そういえば、ソースとかJavadocとかも落とせた方がいいなぁと思って調べてみました。Eclipseとかではなく、mvnコマン…

いろんな言語で、文字コードを指定してファイル書き込み

Readをやったので、今度はWriteということで。記載パターンは、以下の2通り。 変数messageに格納された文字列を一括してファイル出力 改行を含まない文字列リストmessagesに対して、行末に改行(LF)を付与してファイル出力 今回も、前提はこんな感じです。 …

いろんな言語で、文字コードを指定してファイル読み込み

ふと、書いてみたくなりまして。だいたいスクリプト系の言語で、よく忘れてしまうのが書いた動機です…。記載パターンは、以下の2通り ファイルの中身を全て読み込んで、1つの文字列として変数contentsに格納 ファイルの中身を全て読み込んで、改行無しの1行…

ScalateをWebアプリに使ってみる

今度は、Scalateとサーブレットを組み合わせてみます。最初は、こちらを参考に。Using Scalate as Servlet filter in your Web Application http://scalate.fusesource.org/documentation/user-guide.html#using_scalate_as_servlet_filter_in_your_web_appl…

テンプレートエンジン、Scalateを使ってみる

この前、Mustacheについて調べた時に、このテンプレートのScala実装があることがわかりました。で、その実装がScalate。あ…なんか、聞いたことあります。なんですが、使ったことがなかったのでちょっと試してみることにしました。Scalate http://scalate.fus…

sbtでJavaのプロジェクトを作る場合に、アーティファクト名からScalaのバージョンを省く

Twitterで流れているのを見て。自分は、このブログを書いている時はJavaでもsbtを使うことが多いですが(たまにGradle)、そういえばアーティファクト名についてはあんまり気にしてなかったですね…。だいたい、runして終了!ってパターンが多いからですか。…

mustache.javaをGroovyで使う

mustacheにはGroovy版はありませんが、そのままJava向けのmustache.javaが使えます。mustache.javaではMapのキーが使えることを考えると、MapとListでけっこう簡単にバインドするオブジェクトを表現することができます。例えば、mustache.javaのサンプルでJa…

mustache.javaでの、Java側の書き方について

前回、mustache.javaでのテンプレートの書き方について記載しましたが、Javaコード側の内容についていくつか。 バインドできる項目 以下の項目でバインドするようです。 パッケージスコープ以上のフィールド名(privateは不可) メソッド名(getter含む?) …

テンプレートエンジンmustacheを使ってみる

いろんな言語で使うことができるテンプレートエンジン、mustacheというものがあるそうです。「ロジック・レス・テンプレート」といってるだけあって、構文もシンプルな感じです。mustache http://mustache.github.com/manual http://mustache.github.com/mus…

Mavenでプロジェクト内で使用していないライブラリを調べる

これも同じく、使ったことのないプラグイン(ゴール)です。dependency:analyze http://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.htmlpom.xmlに依存関係が定義してある割には、実際のコードで使っていないと思われる依存関係を解析し…

Mavenでプロジェクトの依存関係を解析する

できるできるとは聞いたことがありましたが、実際にコマンドを打ったことがなかったので試してみました。dependency:tree http://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html例えば、こんなpom.xmlを用意します。

Mavenをオフラインで使うために、ローカルリポジトリにライブラリをダウンロードしておく

追記) ソースやJavadocのJARファイルなども含めて集める方法を後で書いたので、こちらを見た方がよいかもしれませんmvnコマンドで、ソースとJavadocのJARを取得するComments http://d.hatena.ne.jp/Kazuhira/20121226/1356529301 ちょっと前に知って、もう…

Ubuntu LinuxにMySQLをインストールする

Apache/PHPに続いて、今度はMySQLをインストールすることにしました。この時点でのMySQLの最新安定版は、5.5.28です。では、まず http://dev.mysql.com/downloads/mysql/ より、Debian Packageをダウンロード。…最初はソースからコンパイルしてみようかと思…

Ubuntu 12.04 LTSにPHPをソースからインストールする

PHP

前回、Apacheをインストールしたので続いてPHP。とりあえず、ソースをダウンロードしてconfigureしようとすると… configure: error: xml2-config not found. Please check your libxml2 installation. ですって。libxml2は入ってるけど??と思いましたが、l…

Apache 2.4をソースからインストール

仕事でPHPを使いそうなので、ちょっと環境でも作ってみようかな、と思いまして。というわけで、まずはApacheのインストールから。そういえば、2.4系をインストールするのは、初めてだったりします。そして、割とハマったのでメモ。まずはApache本体をダウン…

いろんな言語で、外部プロセス起動

前のエントリで、Groovy/Scalaでプロセス起動に関するコードをちょこちょこと書いていたのですが、ちょっと自分が割と使う言語でまとめてみることにしました。ほんの、サンプルです。サンプルのお題は、 外部プロセスの実行結果(戻り値)を取得し、変数ret…

Javaのプロパティファイルを比較するスクリプト

前回のエントリのScala版です。勢いで書いてみました。スクリプトの動作仕様には、変更ありません。 比較したプロパティファイルに差分があれば、diffコマンドっぽく出力する 出力結果がUnicodeエスケープされていた形だと見づらくてしかたがないので、java.…

Javaのプロパティファイルを比較するスクリプト

前に、仕事でJavaのプロパティファイルを比較するのに、Groovyで簡単なスクリプトを作りました。プロパティファイルにいろいろ環境に依存した設定が書かれていて、なおかつその内容がExcelとかで管理されていたので実際のソースコードとその内容が一致してい…

ClojureでJavaクラスのフィールドに値を設定する

Clojureで、Javaクラスのフィールドから値を読み出すことはよくありましたが、そういえば値の設定はやったことがありませんでした。メソッド呼び出しのように (.field-name instance-name value) みたいな感じで書くのかな?と思いきや、ちょっと違う模様。S…

doc、find-doc、source、apropos

Clojureについては、普段はClojureDocsとかGoogleを使って調べていますが、REPLで使えるマクロ/関数を使ってもよさそう。まー、ClojureDocsだとサンプルとかも載っているので、それなりに効果はあるのですが。 docマクロ 指定した関数のdoc-stringを表示す…

ClojureでJavaのクラスを作る

これまで、だいぶ目を背けていたのですが、ClojureとJavaを使うにあたり、そろそろClojureでJavaのクラスを作成したり継承したりというのを覚えてみようと思います。う〜ん、遅いネタですねぇ…。ま、気にせずいってみましょう。 まずは Clojureでソースを書…

Clojureのクラスに、コンストラクタとStateを定義する

続いて、今度はClojureでコンストラクタを持つクラスを作成してみます。 foo.clj (ns foo (:gen-class :init init :state state :constructors {[String] []} :methods [[decorate [char] String]])) (defn -init [val] [[] val]) (defn -decorate [this c] …

Clojureの並列処理関連の関数

Clojureで並列・並行処理といえばSTMやエージェントが有名だと思いますが、お手軽な関数も用意されているみたいなので、調べてみました。 pmap map関数の並列版です。与えたシーケンスに対して、関数を並列に適用してくれます。 (time (println (let [sleep-…

package-info.javaの一括生成

だいぶ遅れているのですが、こちらのお題に参加してみることにしました。 http://npnl.hatenablog.jp/entry/2012/08/17/014930もうちょっと、早く見つけておけばよかった…なんか、Groovyが人気っぽいので、ScalaとClojureでいってみます。ターゲットのディレ…

Javaのネットワークに関するプロパティについて

今日、NIO.2関連の内容を見ていて、一緒に見つけたページなのですが… http://itpro.nikkeibp.co.jp/article/COLUMN/20120327/388103/?ST=develop&P=6システムで使っているプロキシの設定を使うことができる、 java.net.useSystemProxiesなんてプロパティあっ…

map関数の並列版、pmap関数

GroovyのGParsとかを見ていて、そういえばClojureって並列コレクションとか持ってないのかなぁと思って見てみたら、なんか少しはありそうな感じです。とりあえず、map関数の並列版である、pmap関数を見つけたのでちょっと試してみました。ClojureDocsでの例…

sbt 0.12系でWARファイルを作る時の注意

前のエントリで、「TomcatにWARファイルをデプロイ…」なんてことを書いてましたが、xsbt-web-pluginを使うのにこれまたてこずっていたという…。う〜ん、久しぶりにこの辺りを触ると、だいたいハマりますね(笑)。今回使用した、sbtとxsbt-web-pluginのバー…

Tomcat 7から追加された、StuckThreadDetectionValveを使う

こちらの記事にすごーくしれっと載っているのですが http://www.atmarkit.co.jp/fjava/rensai4/tomcat7_03/03.html Tomcat 7から、StuckThreadDetectionValveというValveが追加されています。これを使うと、リクエストに時間がかかっている処理を検知するこ…