k4200’s notes and thoughts

Programmer side of k4200

Scala

sbtプロジェクトをデプロイ(sbt 0.11)

rpscala 第100回でやった事。 やりたい事 sbtで出来たプロジェクトがあって、以下のものをリモート環境にデプロイしたい。 自分で書いたコード 依存ライブラリ プロジェクト構成はこんな感じ。multi project構成になっている。モデル等共通部分のcommon、フ…

Magnet Patternを使って、type erasureで同じ型になるオーバーロードの問題を解決する

久しぶりにプログラミングネタ。 背景 List[Int]もList[String]もバイトコードでは同じ type erasureについて知ってる人は飛ばしてOK。知らない人向けに簡単に説明すると、Scalaでは(Javaでも同じだけど)以下の様なメソッドのオーバーロードは定義出来ない…

sbteclipseでソース添付

最近またScalaでプログラムを再開した。開発環境はsbt + Eclipse。なので、sbteclipse を使っている。知らない人のために一応書くと、sbteclipseとは、Eclipseの.projectファイルとかを作成してくれて、sbtプロジェクトをEclipseのプロジェクトとして開ける…

FlockDB (2)

はじめに この記事はScala Advent Calendar jp 2011最終日用のエントリーです。前回はApache Thrift, FlockDBのビルド、そしてFlockDBのデモの動作を試して失敗しました。今回の目標は デモを動かす FlockDBの内部の仕組みについて大雑把に理解する (もしか…

FlockDB (1)

前置き この記事はScala Advent Calendar jp 2011最終日用のエントリーです。 FlockDBって何? FlockDBはグラフDBです。グラフDB?(゚д゚)ハァ?って人はこちらのスライドを読んで下さい。そのスライドでも紹介されているNeo4jとかとはどう違うの?って思うかもし…

SSH for Java (and Scala)

I needed an SSH implementation in Java (or Scala) for my personal project.I did a brief search and JSch came up, so I tried it. The result was bad. It has no documentation and poorly written sample programs, which didn't help much. sshj ro…

First steps to Akka Remote Actors

I've been working on my personal project, Lifthub, which uses Lift, Akka, Gitorious etc. I'm pretty new to Akka and even the concept of Actors, so it took me quite a while to understand it and get the code running.Here are first steps to A…

JGitその2

前回、JGitのインストールとかについて少し書いた。今回は使い方について簡単に。サンプルコードは例によってScalaだけど、Javaでも文法が違う以外は全く一緒。Javaプログラマーはこれを機にScalaを勉強してもいいんじゃないかな。前準備 import org.eclipse…

Parallel Collectionのベンチマークやってみた

xuwei_kさんが面白そうなこと(scala2.9のparallel collection の benchmark をしてみた)をやってたので、ちょっと自分でもやってみることにした。 準備 まずはScalaの最新版を取ってきてビルド。この辺を参考に。 さてscalaを起動 あとJVMの引数のXmx を 4…

JGitその1

ここ最近作りかけのサイトでJGitというライブラリを使ってる。その名の通り、JavaからGitのレポジトリを操作したり出来るもの。Javaプログラムからgitコマンドを呼び出すという選択肢もあったんだけど、以下の2つの理由からJGitを選択。 環境依存を減らした…

Commons Exec

概要 Java(やScala等のJVM系の言語)から外部のプロセスを起動するには、ProcessBuilderというクラスを使う事が多いと思うけど、Apache CommonsにCommons Execというライブラリ(Processクラスとかのラッパーのはず)があり、そちらの方が若干便利そうなの…