Skip to content

Instantly share code, notes, and snippets.

@neolitec
neolitec / use-boolean-animation.ts
Last active July 17, 2020 20:12
React - useBooleanAnimation
import {Animated, Easing, EasingFunction} from 'react-native';
import {useEffect, useRef} from 'react';
const DEFAULT_ANIMATION_DURATION = 300;
const DEFAULT_EASING_FUNCTION = Easing.bezier(0.17, 0.67, 0.35, 0.92);
export function useBooleanAnimation(
value: boolean,
{
duration = DEFAULT_ANIMATION_DURATION,
@neolitec
neolitec / ReturnTypes.ts
Created February 7, 2020 15:45
ReturnTypes.ts
export type ReturnTypes<T> = {
[P in keyof T]: T[P] extends (...args: any[]) => any
? ReturnType<T[P]> extends PromiseLike<infer U>
? U
: ReturnType<T[P]>
: T[P];
};
@neolitec
neolitec / BaseDecoder.py
Created June 20, 2019 19:28
Python JSON Serializer / Deserializer
import json
class BaseDecoder:
def __init__(self, clazz):
json.JSONDecoder.__init__(self)
self.clazz = clazz
def decode(self, dct):
if type(dct) is str:
@neolitec
neolitec / abbreviateIpv6.js
Created January 11, 2017 20:37
IPv6 abbreviation
function abbreviateIpv6(ip) {
var out = ip.replace(/(^|\:)0{1,3}([0-9]+)/g, "$1$2");
out = out.replace(/0(\:0)+/, ":");
out = out.replace(/\:{3,}/g, "::");
if (out === ":") {
out = "::";
}
return out;
}
@neolitec
neolitec / utils.js
Last active August 29, 2015 14:07
Property accessing in Javascript
var utils = (function() {
var utils = {},
PROPERTY_REGEXP = /^(([a-z_][a-z0-9_]*\.?)+[a-z0-9_]+)$/i;
var checkProperty = function(propName) {
if(!PROPERTY_REGEXP.test(propName))
throw new Error('Property ' + propName + ' misspelled');
return propName;
};
@neolitec
neolitec / streams1.coffee
Created May 21, 2014 17:13
Node.JS Streams examples
util = require 'util'
printArgs = (method) ->
(args...) -> console.log method, util.inspect(args)
# Read a file and redirect it to standart output
fs = require 'fs'
@neolitec
neolitec / BasicAuthenticationFilter.java
Created February 12, 2014 11:09
HTTP Basic authentication Java filter
package com.neolitec.examples;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@neolitec
neolitec / smartCompare.java
Created October 10, 2013 09:55
smartCompare function for Java beans
@SuppressWarnings({ "unchecked", "rawtypes" })
private int smartCompare(final Object o1, final Object o2, String field, final Class comparable) {
try {
if (o1 == o2) {
return 0;
} else if (o1 != null && o2 == null) {
return -1;
} else if (o1 == null && o2 != null) {
return 1;
}
package com.hotelbb.crs.utils.mail;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.activation.DataHandler;
import javax.activation.DataSource;
@neolitec
neolitec / Catcher.pm
Created June 22, 2012 15:33
Error Catcher in Perl
package Catcher;
use strict;
use warnings;
use Carp;
use Carp qw (cluck);
use File::Basename;
use POSIX qw(strftime);
# Nagios error levels