Skip to content

Instantly share code, notes, and snippets.

@kencharos
kencharos / IndexPdf.java
Created March 8, 2012 14:48
Create index page using iText
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.itextpdf.text.Chapter;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
@kencharos
kencharos / ScalaSnippet.scala
Last active December 17, 2015 07:48
Scala memo
// scala snippets
// read STDIO examples.
// read single line.
def singleLine():String={
readLine()
}
// read from redirect(e.g, scala Test.scala < some.txt)
def simpleExample():Seq[String]={
@kencharos
kencharos / JavaSnippets.java
Created May 15, 2013 04:17
java File IO, std in example
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
def readStdIn()
input = []
while line = gets
input << line.chomp
end
return input
end
# 1.9
def readFile(name)
@kencharos
kencharos / AmpFriends.scala
Created June 16, 2013 14:23
アンパンマンのサイトからキャラクター一覧を引っ張って適当なHTMLにする。 あとは関数型プログラム、関数合成の練習 . run に保存したいファイル名を渡して実行する。
import scala.io.Source
import scala.xml._
/** アンパンマンのサイトからキャラクター一覧を引っ張って適当なHTMLにする。
あとは関数型プログラム、関数合成の練習 */
object AmpFriends {
case class Friend(name:String, img:String)
val base ="http://anpanman.jp/sekai/"
val imgBase ="http://anpanman.jp/sekai/friends/"
val loadFromUrl:String => String = Source.fromURL(_).mkString
@kencharos
kencharos / ConcurrentTest.java
Created August 23, 2013 01:50
To check race condition about ConcurrentHashMap. if you use ConcurrentHashMap, you should atomic method. (e.g, putIfAbsent)
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrentTest {
private static ConcurrentHashMap<Integer, Integer> map = new ConcurrentHashMap<Integer, Integer>();
private static class Update extends Thread {
@Override
public void run() {
for (int i = 0; i < 100; i++) {
// forrowing code is incorrect. (probabry happens race condition)
if (!map.contains(i)) {
@kencharos
kencharos / FunctionalListImpl.java
Last active August 29, 2015 13:57
Java8 - Listにfilter,mapなどの高階関数を追加してみる例
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Function;
import java.util.function.Predicate;
// 任意のListにmap, filterメソッドを追加する。
interface FunctionalList<T> extends List<T> {
default <R> FunctionalList<R> map(Function<T, R> f) {
FunctionalList<R> list;
@kencharos
kencharos / StreamUtil.java
Created March 31, 2014 02:44
zip in java8
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.function.BiFunction;
import java.util.stream.LongStream;
import java.util.stream.Stream;
/**
*
*/
/*
* Java8 デフォルト実装の使用例
*/
package defaultif;
import java.io.File;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.file.Files;
@kencharos
kencharos / StaticResourceHttpServer
Last active August 29, 2015 14:09
javaによる複数の特定ディレクトリ以下の静的リソースを返すHttpサーバー(やっつけ実装)
package server;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;