Skip to content

Instantly share code, notes, and snippets.

View twogood's full-sized avatar

David Eriksson twogood

View GitHub Profile
@twogood
twogood / main.cf
Last active August 29, 2015 14:18
Mandril SMTP relay in Postfix
relayhost = smtp.mandrillapp.com:submission
# http://www.zulius.com/how-to/set-up-postfix-with-a-remote-smtp-relay-host/
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_type = cyrus
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
@twogood
twogood / counter.js
Created May 28, 2015 05:52
Code of the day
function counter(colAdd, rowAdd) {
var count = 1;
var x, y;
for (x = move.col + colAdd, y = move.row + rowAdd;
isOwnedByCurrentPlayer(x, y);
count++, x += colAdd, y += rowAdd) {
}
for (x = move.col - colAdd, y = move.row - rowAdd;
isOwnedByCurrentPlayer(x, y);
count++, x -= colAdd, y -= rowAdd) {
@twogood
twogood / python-compile.sh
Created December 7, 2015 08:31
Check python syntax
python -m py_compile script.py
@twogood
twogood / Secure Sessions Howto
Created February 23, 2016 21:39 — forked from nikmartin/A: Secure Sessions Howto
Secure sessions with Node.js, Connect, and Nginx as an SSL Proxy
Secure sessions are easy, but it's not very well documented, so I'm changing that.
Here's a recipe for secure sessions in Node.js when NginX is used as an SSL proxy:
The desired configuration for using NginX as an SSL proxy is to offload SSL processing
and to put a hardened web server in front of your Node.js application, like:
[NODE.JS APP] <- HTTP -> [NginX] <- HTTPS -> [CLIENT]
To do this, here's what you need to do:
var express = require('express');
var multer = require('multer');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
});
app.post('/parse', multer().any(), function (req, res) {
var from = req.body.from;
package com.claimtowers.common.asynctask;
public class AsyncTaskResult<T> {
private T result;
private Exception exception;
public AsyncTaskResult(T result) {
this.result = result;
}
@twogood
twogood / LocalDateArgumentFactory.java
Created June 13, 2017 13:23
ArgumentFactory to support LocalDate with @BindBean in JDBI
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Types;
import java.time.LocalDate;
import org.skife.jdbi.v2.StatementContext;
import org.skife.jdbi.v2.tweak.Argument;
import org.skife.jdbi.v2.tweak.ArgumentFactory;
@twogood
twogood / LocalDateColumnMapper.java
Created June 13, 2017 13:26
Using LocalDate fields with BeanMapper in JDBI
//
// USAGE:
//
// jdbi.registerColumnMapper(new LocalDateColumnMapper());
//
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDate;
@twogood
twogood / studio.sh
Created October 20, 2017 20:55
Android studio 3 beta fix
LC_NUMERIC="en_US.UTF-8"
@twogood
twogood / transformAsyncPair.kt
Created November 14, 2017 13:56
Create ListenableFuture<Pair<A, B>> from ListenableFuture<A> and ListenableFuture<B>
fun <A, B> transformAsyncPair(futureA: ListenableFuture<A>, futureB: ListenableFuture<B>, executor: Executor): ListenableFuture<Pair<A, B>> {
return Futures.transformAsync(futureA, AsyncFunction<A, Pair<A, B>> { a ->
Futures.transformAsync(futureB, AsyncFunction<B, Pair<A, B>> { b ->
Futures.immediateFuture(Pair<A, B>(a!!, b!!))
}, executor)
}, executor)
}