Skip to content

Instantly share code, notes, and snippets.

View mtranter's full-sized avatar

Mark Tranter mtranter

View GitHub Profile
@mtranter
mtranter / Ajaxify.js
Last active August 29, 2015 14:05
Ajax send a form. Takes into account the HTML5 formaction, formmethod and formenctype attributes.
(function($) {
var events = ['success', 'error', 'complete'];
function getTrigger() {
return $(document.activeElement).is('input:submit,button:submit') ? document.activeElement : null;
}
function capitaliseFirstLetter(string) {
@mtranter
mtranter / CopyEvents.js
Created August 25, 2014 14:52
Copy jQuery bound events between elements
(function($, undefined){
function copyEvents(source, target) {
var evs = $._data(source[0], 'events');
for (var ev in evs) {
for (var i = 0; i < evs[ev].length; i++)
$.fn[ev].apply(target, [evs[ev][i].handler]);
}
}
(function($){
var opts_key = '_sorter_opts_';
var defaults = {
desc: false,
duration: 300
};
function orderNumbers(a,b){
@mtranter
mtranter / gist:f4c8ff9684730b764f5b
Created October 28, 2014 12:41
AddIfNotExists DBSet Extension Method
public static class DbSetExtensions
{
public static void AddIfNotExists<TEntity, TProperty>(this IDbSet<TEntity> dbSet,
Expression<Func<TEntity, TProperty>> selector,
params TEntity[] toAdd) where TEntity : class
{
var compiled = selector.Compile();
foreach (var entity in toAdd)
{
@mtranter
mtranter / gist:68db17c0fe777a080ea3
Last active August 29, 2015 14:09
Possible New Cypher API
class Test
{
static void Main()
{
IStartClause<Person> startClause = null;
startClause
.Start(ctx => ctx.AtAnyNode(p => p))
.Match(ctx => ctx.Node(p => p).Relates("has_job").To(p => p.Job))
.Where(p => p.Name == "Mark" && p.Job.Name == "MGND")
/*
* ng-currency
* http://alaguirre.com/
* Version: 0.7.14 - 2015-04-14
* License: MIT
*/
angular.module('ng-currency', [])
.directive('ngCurrency', ['$filter', '$locale', function ($filter, $locale) {
return {
@mtranter
mtranter / PimpedEtcdClient.scala
Last active February 27, 2016 17:52
Save and get Json from ETCD instance
package com.trizzle.etcd
import net.nikore.etcd.EtcdClient
import net.nikore.etcd.EtcdJsonProtocol.EtcdResponse
import spray.json._
import scala.concurrent.duration.Duration
import scala.concurrent.{ExecutionContext, Future}
import scala.reflect.Manifest
import scala.util.{Failure, Try, Success}
@mtranter
mtranter / AvroDeserializationSchema.java
Created July 25, 2016 19:06
Avro deserializer for Flink's Data Stream API Kafka Source
import org.apache.avro.io.BinaryDecoder;
import org.apache.avro.io.DatumReader;
import org.apache.avro.io.DecoderFactory;
import org.apache.avro.reflect.ReflectDatumReader;
import org.apache.avro.specific.SpecificDatumReader;
import org.apache.flink.api.common.typeinfo.TypeInformation;
import org.apache.flink.api.java.typeutils.TypeExtractor;
public class AvroDeserializationSchema<T> implements DeserializationSchema<T> {
var boolExprMap = {
$and: function(a,b){ return a && b} ,
$or: function(a,b){ return a || b; }
}
var TreeNode = function(op,def){
op = (op || '$and').toLowerCase();
this.op = boolExprMap[op];
def = def || (op === '$and')
this.fns = [new LeafNode(function(){return def;})];
package org.trizzle.kafka
import java.io.{ByteArrayOutputStream, DataOutputStream}
import java.util
import com.sksamuel.avro4s._
import io.confluent.kafka.schemaregistry.client.SchemaRegistryClient
import org.apache.kafka.common.serialization.{Deserializer, Serde, Serializer}