Skip to content

Instantly share code, notes, and snippets.

View takawitter's full-sized avatar

Takao Nakaguchi takawitter

View GitHub Profile
public TwitterFuture getTrends() throws TwitterException {
final HttpResponse res = get(conf.getRestBaseURL() + "trends.json");
return new TwitterFuture(){
@Override
public void get(TwitterListener listener) throws TwitterException {
listener.gotTrends(new TrendsJSONImpl(res, conf));
}
};
}
@takawitter
takawitter / gist:1033764
Created June 19, 2011 04:41
gaeasync twitter4j implementation sample
class GAEAsyncTwitterImpl extends TwitterBaseImpl
implements Twitter {
public QueryResult search(Query query) throws TwitterException {
try {
return LazyEntityFactory.newQueryResult(
get(conf.getSearchBaseURL() + "search.json", query.asHttpParameterArray())
, conf);
} catch (TwitterException te) {
if (404 == te.getStatusCode()) {
return new QueryResultJSONImpl(query);
// workaround for http://jira.twitter4j.org/browse/TFJ-556
System.setProperty("http.keepAlive", "false");
TwitterStream s = new TwitterStreamFactory().getInstance();
s.setOAuthConsumer("CONSUMER", "SECRET");
s.setOAuthAccessToken(new AccessToken("ACCESSTOKEN", "SECRET"));
s.addListener(new StatusAdapter(){
public void onStatus(Status status) {
System.out.println(String.format("[%s] @%s: %s"
, status.getCreatedAt()
, status.getUser().getScreenName()
@takawitter
takawitter / Sample.java
Created June 27, 2012 12:30
Trie4J sample code
import org.trie4j.doublearray.DoubleArray;
import org.trie4j.louds.LOUDSTrie;
import org.trie4j.patricia.simple.PatriciaTrie;
public class Sample {
public static void main(String[] args) throws Exception{
PatriciaTrie pat = new PatriciaTrie();
pat.insert("Hello");
pat.insert("World");
pat.insert("Wonder");
@takawitter
takawitter / Seimei.java
Last active December 12, 2015 12:09
姓名判断プログラム in Java8 lambda and stream interface
package seimei;
import jp.go.nict.langrid.commons.util.Pair;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
@takawitter
takawitter / MsgPackTest.java
Last active December 14, 2015 04:39
MessagePack JavaでListを使うテスト。
public class MsgPackTest {
public static void main(String[] args) throws Exception {
MessagePack msgpack = new MessagePack();
List<String> lines = Arrays.asList("hello", "world");
byte[] bytes = msgpack.write(lines);
msgpack.register(List.class, new ListTemplate(ValueTemplate.getInstance()));
for(Value v: (List<Value>)msgpack.read(bytes, List.class)){
System.out.println(new String(v.asRawValue().getByteArray(), "UTF-8"));
}
}
@takawitter
takawitter / gist:5477296
Created April 28, 2013 15:49
libディレクトリの全jarファイルをクラスパスとして連結。
Arrays.stream(new File("lib").listFiles(f -> f.getName().endsWith(".jar")))
.map(f -> f.getAbsolutePath())
.reduce(".", (l, r) -> l + File.pathSeparator + r)
@takawitter
takawitter / ScalaJSR223Test.java
Last active March 12, 2021 10:38
The sample code to run scala via JSR223 API. I turn usejavacp option true at line 10. Unless that you have to use http://github.com/rjolly/jarlister to list classes in scala-library.jar into MANIFEST.MF of jar that contains this ScalaTest class. I use Scala-2.11.6 to run this code.
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import scala.tools.nsc.interpreter.IMain;
import scala.tools.nsc.settings.MutableSettings.BooleanSetting;
public class ScalaTest {
public static void main(String[] args) throws Exception{
ScriptEngine engine = new ScriptEngineManager().getEngineByName("scala");
((BooleanSetting)(((IMain)engine).settings().usejavacp())).value_$eq(true);
@takawitter
takawitter / LZ77.java
Created May 14, 2013 00:12
「高速文字列解析の世界」を参考に、LZ77実装してみた。非常に単純な実装で、compress1はマッチする文字列を元配列をなめて求める方式。compress2は文字出現位置をマップで持つ方式。 Wikipedia日本語タイトルをTrieに格納してできたTail配列に対してやってみると、513万文字が435万文字になった。 compress1が31.7秒、compress2が8.9秒。ウィンドウサイズは8192。
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class LZ77 {
public static void compress1(CharSequence src, Appendable out, int windowSize)
throws IOException{
@takawitter
takawitter / LZSS.java
Created May 14, 2013 14:17
ちょっとLZSSに浮気。http://ja.wikipedia.org/wiki/LZSS を参考に、さらに一致文字数が2文字未満の場合は無視するようにした。compress6.6秒、363万文字+282byte(bit列サイズ)になった。
import java.io.IOException;
import java.util.BitSet;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class LZSS {
public static class LZSSData{