Skip to content

Instantly share code, notes, and snippets.

View twogood's full-sized avatar

David Eriksson twogood

View GitHub Profile
View docker-compose@.service
Description=%i service with docker compose
twogood / ScopeFunctions.cs
Last active May 4, 2020 06:55
Kotlin Scope Functions (Also, Let, Run) in C# .NET Core
View ScopeFunctions.cs
public static class ScopeFunctions
public static T Also<T>(this T self, Action<T> action)
return self;
public static TResult Let<T, TResult>(this T self, Func<T, TResult> func) => func(self);
twogood / DaggerViewModelFactory.kt
Created January 25, 2019 22:32
Android Jetpack ViewModel, Dagger 2, Kotlin coroutines
View DaggerViewModelFactory.kt
package example
import android.arch.lifecycle.ViewModel
import android.arch.lifecycle.ViewModelProvider
import dagger.Binds
import dagger.MapKey
import dagger.Module
import javax.inject.Inject
import javax.inject.Provider
import kotlin.reflect.KClass
twogood / transformAsyncPair.kt
Created November 14, 2017 13:56
Create ListenableFuture<Pair<A, B>> from ListenableFuture<A> and ListenableFuture<B>
View transformAsyncPair.kt
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)
twogood /
Created October 20, 2017 20:55
Android studio 3 beta fix
twogood /
Created June 13, 2017 13:26
Using LocalDate fields with BeanMapper in JDBI
// jdbi.registerColumnMapper(new LocalDateColumnMapper());
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDate;
twogood /
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;
package com.claimtowers.common.asynctask;
public class AsyncTaskResult<T> {
private T result;
private Exception exception;
public AsyncTaskResult(T result) {
this.result = result;
View sendgrid-webhook.js
var express = require('express');
var multer = require('multer');
var app = express();
app.set('port', process.env.PORT || 3000);
});'/parse', multer().any(), function (req, res) {
var from = req.body.from;
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
View Secure Sessions Howto
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: