Skip to content

Instantly share code, notes, and snippets.

@iambigd
iambigd / gist:10952096
Created April 17, 2014 04:04
Generating an API Signature - Kayako Developer Resources - Kayako Wiki
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.GeneralSecurityException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.bouncycastle.util.encoders.Base64Encoder;
@iambigd
iambigd / gist:0d7e9f7dc0e5672bf989
Created May 12, 2014 09:08
Create signature with HMAC
import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.security.SecureRandom;
import java.util.Random;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
package some.package;
import java.io.File;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.LogManager;
import org.apache.log4j.xml.DOMConfigurator;
/**
* ServletContextListener to initialize Logging for the application
(function ($, window) {
$.fn.contextMenu = function (settings) {
return this.each(function () {
// Open context menu
$(this).on("contextmenu", function (e) {
//open menu
$(settings.menuSelector)
@iambigd
iambigd / gist:07b06de46aaea2512dea
Created July 6, 2014 15:27
Angular AuthInterceptor
.factory('AuthInterceptor', function($rootScope, $q, API_EVENTS, $log) {
return {
// On response success
response: function(response) {
// Return the response or promise.
return response || $q.when(response);
},
@iambigd
iambigd / gist:8fcef57dd06c6ad58573
Last active August 29, 2015 14:04
Java jersey client API
package tw.org.iii.cosa.javabacked.rest;
import java.util.Iterator;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
app.filter('bytes', function() {
return function(bytes, precision) {
if (isNaN(parseFloat(bytes)) || !isFinite(bytes)) return '-';
if (typeof precision === 'undefined') precision = 1;
var units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'],
number = Math.floor(Math.log(bytes) / Math.log(1024));
return (bytes / Math.pow(1024, Math.floor(number))).toFixed(precision) + ' ' + units[number];
}
});
/* Side notes for calling out things
-------------------------------------------------- */
/* Base styles (regardless of theme) */
.bs-callout {
margin: 20px 0;
padding: 15px 30px 15px 15px;
border-left: 5px solid #eee;
@iambigd
iambigd / gist:c1cc7460e9af5e35001a
Created August 7, 2014 08:38
Angular Form validation: alphanumeric
.directive('alphanumeric', function() {
return {
require: 'ngModel',
restrict: 'A',
link: function(scope, elem, attr, ngModel) {
var validator = function(value) {
if (/^[a-zA-Z0-9]*$/.test(value)) {
ngModel.$setValidity('alphanumeric', true);
return value;
@iambigd
iambigd / gist:a100d7ffbf066e46970c
Last active August 29, 2015 14:05
Angular Form validation: match
.directive('match', function() {
return {
require: 'ngModel',
restrict: 'A',
scope: {
match: '='
},
link: function(scope, elem, attrs, ngModel) {
scope.$watch(function() {
return (ngModel.$pristine && angular.isUndefined(ngModel.$modelValue)) || scope.match === ngModel.$modelValue;