Skip to content

Instantly share code, notes, and snippets.

View komiya-atsushi's full-sized avatar
🏠
Working from home

KOMIYA Atsushi komiya-atsushi

🏠
Working from home
View GitHub Profile
@komiya-atsushi
komiya-atsushi / apriori.rb
Created June 9, 2013 13:37
アルゴリズムの理解のために、Apriori algorithm を Ruby で実装してみました。 お勉強用なので、性能は度外視しています。
# -*- coding: utf-8 -*-
# Apriori algorithm の実装です
#
# http://en.wikipedia.org/wiki/Apriori_algorithm の擬似コードと
# http://www.codeproject.com/Articles/70371/Apriori-Algorithm を
# 参考にしています
require 'set'
@komiya-atsushi
komiya-atsushi / StringSplitDemo.java
Created May 20, 2013 00:08
String#split() と Pattern#split() の性能を比較するデモコード。
package biz.k11i.demo;
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
import java.util.List;
import java.util.regex.Pattern;
public class StringSplitDemo {
public static void main(String[] args) {
if (args.length < 2) {
@komiya-atsushi
komiya-atsushi / BearerAuthenticateByTwitter4JDemo.java
Created April 13, 2013 06:13
Twitter4J で Application-only authentication の bearer トークンを用いて Twitter API を呼び出す ref: http://qiita.com/items/84d22445fac14dc6cffa
package demo.twitter4j;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.auth.Authorization;
import twitter4j.conf.ConfigurationBuilder;
import twitter4j.internal.http.HttpRequest;
/**
@komiya-atsushi
komiya-atsushi / file1.txt
Created April 12, 2013 19:45
Ruby で Twitter API の Application-only authentication のトークンを取得する方法 ref: http://qiita.com/items/b3e6351877d89ce74691
{"token_type":"bearer","access_token":"ここにトークンが設定される"}
@komiya-atsushi
komiya-atsushi / AccurateAdder.java
Created April 1, 2013 07:34
情報落ちを回避する加算処理はこんなものかな?
/**
* なるべく精度を保ちつつ加算する機能を提供します。
* <p>
* 情報落ちを回避する仕組みを備えています。
* </p>
*
* @author KOMIYA Atsushi
*/
public class AccurateAdder {
/** sum より大きな値を一時的に蓄積するバッファのサイズです */
@komiya-atsushi
komiya-atsushi / BlockingQueueDemo.java
Created March 24, 2013 12:42
ArrayBlockingQueue クラスと LinkedBlockingQueue クラスの処理性能を比較するためのデモプログラムです。
import java.util.Properties;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingDeque;
/**
* ArrayBlockingQueue クラスと LinkedBlockingQueue クラスの性能を比較するデモプログラムです。
*
* @author KOMIYA Atsushi
*/
@komiya-atsushi
komiya-atsushi / gist:5064231
Created March 1, 2013 12:07
zopfli でパラメータを変えながら Silesia Corpus の dickens (約 10MB) を圧縮してみた。
command comp.size time[sec]
---------------------------------------
gzip -9 3,851,823 1.00
zopfli -i5 3,683,337 28.04
zopfli -i10 3,674,622 37.57
zopfli -i15 3,673,627 46.77
zopfli -i25 3,672,377 65.90
zopfli -i50 3,671,837 115.22
zopfli -i100 3,671,506 210.78
zopfli -i250 3,670,590 496.03
@komiya-atsushi
komiya-atsushi / avoid-case-folding-collision.py
Created January 5, 2013 09:27
Mercurial のリポジトリにおける、case folding collision を回避するための Python スクリプトです。 セントラルリポジトリの pretxnchangegroup フックでこのスクリプトを実行するように設定します。
#!/usr/bin/env python
import commands
import sys
latest_node = commands.getoutput("hg head --template '{node}'")
file_statuses = commands.getoutput("hg status --all --rev %(latest_node)s" % { "latest_node": latest_node })
file_status_list = file_statuses.split('\n')
latest_files = [x[2:] for x in file_status_list if len(x) >= 3 and x[0] != "A" and x[0] != " "]
require 'arow'
model = AROW::Model.new(2, 0.1)
File.foreach("CodeIQ_auth.txt") do |line|
elems = line.chomp.split(/\s/)
next if elems.size < 3
features = { 0 => elems[0].to_f, 1 => elems[1].to_f }
label = (elems[2] == "1")
@komiya-atsushi
komiya-atsushi / GetUserListStatusesPagingCountTest.java
Created November 25, 2012 10:43
Paging#count() of ListsResources#getUserListStatuses() doesn't work.
/*
* TFJ-726 reproducing code.
*/
import org.junit.Assert;
import org.junit.Test;
import twitter4j.*;
public class GetUserListStatusesPagingCountTest {
@Test
public void pagingCountDosentWork() throws TwitterException {