Skip to content

Instantly share code, notes, and snippets.

View bouzuya's full-sized avatar

bouzuya bouzuya

View GitHub Profile
@bouzuya
bouzuya / Booklog.java
Last active December 17, 2015 00:19
ブクログから「読み終えた」冊数を取得するスクレイパーをJavaで
package info.bouzuya.booklog;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
@bouzuya
bouzuya / IsConvertResult.java
Created June 8, 2013 22:43
junit-4.11 ( org.hamcrest-1.3 ) 向けカスタム Matcher のサンプル。実際には equals() / toString() を ConvertResult が実装しているためなくても良い。
package net.bouzuya.bim.matchers;
import net.bouzuya.bim.ConvertResult;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.hamcrest.Matcher;
public class IsConvertResult extends BaseMatcher<ConvertResult> {
private final ConvertResult expected;
@bouzuya
bouzuya / header.tex
Last active February 15, 2020 03:48
Pandoc で Markdown から PDF へ変換
%\usepackage{luatexja}
\setmainfont{TakaoPMincho}
\setsansfont{TakaoPGothic}
\setmonofont{TakaoGothic}
@bouzuya
bouzuya / gist:6180669
Last active December 20, 2015 19:08
Java joda-time で ISO8601 フォーマットに変換 ( ミリ秒なし )
@Test
public void iso8601() {
assertThat(toIso8601(0), is("1970-01-01T00:00:00Z"));
}
private String toIso8601(long time) {
DateTimeFormatter local = ISODateTimeFormat.dateTimeNoMillis();
DateTimeFormatter utc = local.withZoneUTC();
return utc.print(time);
}
@bouzuya
bouzuya / s3.rb
Last active May 12, 2020 01:07
AWS SDK for Ruby で S3 を操作する
require 'rubygems'
require 'bundler/setup'
require 'aws-sdk'
# NOTE: require ENV[...]
# export AWS_ACCESS_KEY_ID='...'
# export AWS_SECRET_ACCESS_KEY='...'
# export AWS_REGION='ap-northeast-1'
s3 = AWS::S3.new
#
# Usage:
#
# export AMAZON_ACCESS_KEY_ID='xxxxxxxxxxxxxxxxxxxx'
# export AMAZON_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
# export BASE_DOMAIN='example.com'
# export RECORD_VALUE='www.example.com'
#
# ruby route53_user_manager.rb add bouzuya
# #=> bouzuya.example.com. CNAME www.example.com.
var fs = require('fs');
var crypto = require('crypto');
function hash(filename, callback) {
var sha1 = crypto.createHash('sha1');
var s = fs.ReadStream(filename);
s.on('data', function(data) {
sha1.update(data);
});
var async = require('async');
async.map([1, 2, 3], function(item, next) {
console.log(item);
next(null, item * 2);
}, function(err, results) {
console.log(results);
});
// 1
// 2
console.log('#' + [1, 2, 3].map(function(item) { return item * 3; }).join(' #'));
// #3 #6 #9
// npm install twitter
var twitter = require('twitter');
function newTwitterClient() {
var consumerKey = process.env.TWITTER_CONSUMER_KEY;
var consumerSecret = process.env.TWITTER_CONSUMER_SECRET;
var accessTokenKey = process.env.TWITTER_ACCESS_TOKEN_KEY;
var accessTokenSecret = process.env.TWITTER_ACCESS_TOKEN_SECRET;
var params = {
consumer_key: consumerKey,