Skip to content

Instantly share code, notes, and snippets.

@makotan
makotan / IDERunner.java
Created August 17, 2012 12:22
vert.x IDE Runner
package com.github.makotan;
import org.vertx.java.core.Handler;
import org.vertx.java.core.SimpleHandler;
import org.vertx.java.core.impl.DefaultVertx;
import org.vertx.java.core.impl.VertxInternal;
import org.vertx.java.core.json.DecodeException;
import org.vertx.java.core.json.JsonObject;
import org.vertx.java.core.logging.Logger;
import org.vertx.java.core.logging.impl.LoggerFactory;
@makotan
makotan / gist:3000852
Created June 27, 2012 02:04 — forked from j5ik2o/gist:2996293
リトライハンドラー
case class RetryException(throwables: List[Throwable]) extends Exception(throwables.toString())
object RetryUtil {
import scala.util.control.Exception.allCatch
def retry[T](retryLimit: Int)(f: => T): T =
retry(retryLimit, 0, classOf[Throwable])(f)
def retry[T](retryLimit: Int, retryInterval: Int)(f: => T): T =
@makotan
makotan / HttpRestVerticle1.java
Created June 14, 2012 09:01 — forked from anonymous/HttpRestVerticle1.java
HttpRestVerticle1 long polling
import java.text.SimpleDateFormat;
import java.util.Date;
import org.vertx.java.core.Handler;
import org.vertx.java.core.http.HttpServer;
import org.vertx.java.core.http.HttpServerRequest;
import org.vertx.java.core.http.RouteMatcher;
import org.vertx.java.deploy.Verticle;
public class HttpRestVerticle1 extends Verticle {
@makotan
makotan / build.gradle
Created April 4, 2012 13:54
build.gradle でsrc系のディレクトリと.gitignoreを作成するタスク
version = '0.1-SNAPSHOT'
group = 'foo.bar'
task init << {
def ignores = ["/.*","/build","/lib","/bin","/repo"
,"/gradle*","!gradle","!gradle.bat"
,"target","/out","/logs","/log","/bin"
,"*.iml","*.ipr","*.iws",".idea"
,".DS_Store"
]
@makotan
makotan / gist:1591964
Created January 10, 2012 23:44
Scala版ワークステートエンジン構想・・・第二版 rev1
class Sample02 {
import sburi.b1._
import scala.reflect.BeanInfo
@BeanInfo
class Sample02Entity(
var id:Long = 0 ,
var name : String = "" ,
var status : String = "")
class Sample02EntityPersistentPlugin extends PersistentPlugin[Sample02Entity,Long] {
@makotan
makotan / gist:1582844
Created January 9, 2012 12:59
簡易ワークステートエンジン
package sburi
import scala.collection.mutable.MapBuilder
trait PersistentPlugin[Entity,IdType] {
def setStatus(e :Entity , state : String)
def save(e :Entity)
def getStatus(e :Entity) :Option[String]
def get(id:IdType) : Option[Entity]
}
@makotan
makotan / gist:1554280
Created January 3, 2012 09:42
Scala版Buri構想・・・第一版 rev10
@RunWith(classOf[JUnitRunner])
class Sample01 extends FunSuite {
import sburi._
import scala.reflect.BeanInfo
@BeanInfo
class Sample01Entity(
var id:Long = 0 ,
var name : String = "" ,
var status : String = "")
@makotan
makotan / gist:1499102
Created December 19, 2011 22:02
低頻度の更新と高頻度の読み込みがある場合・・・
import java.util.concurrent.atomic.AtomicReference
class LowUpdateHighReadList[T] {
val aList = new AtomicReference[List[T]]
aList.set(List())
def list() : List[T] = aList.get()
def add(t : T) : List[T] = {
listUpdate(t::_)
@makotan
makotan / gist:1476310
Created December 14, 2011 11:59
Either[L,Either[L,R]]のように多段になる場合にRだけを取得する
def eith[R](arg: Either[Throwable, Any] ) : R = {
arg match {
case Left(e) => throw e
case Right(o:Either[Throwable, Any]) => eith(o)
case Right(o:R) => o
}
}
@makotan
makotan / gist:1447000
Created December 8, 2011 13:34
ScalaなのにJavaっぽくVFSを使ってファイルを書き込んでみた 2
package testcase.vfs
import org.scalatest.FunSuite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import org.apache.commons.vfs2.VFS
import java.io.BufferedOutputStream
import java.io.OutputStreamWriter
import java.io.BufferedWriter
import org.apache.commons.vfs2.FileObject
import org.apache.commons.vfs2.FileContent