Skip to content

Instantly share code, notes, and snippets.

View kannangce's full-sized avatar

Kannan Ramamoorthy kannangce

View GitHub Profile
@kannangce
kannangce / FeignSSLUtils.java
Last active April 3, 2024 09:11
Feign client for 1 or 2-way TLS with self signed certificates when javax.net.ssl.keyStore / javax.net.ssl.trustStore cannot be overridden.
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.AccessController;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
@kannangce
kannangce / GenericResultSetExtractor.java
Created August 27, 2018 10:22
A generic ResultSetExtractor to be used with Spring's JdbcTemplate for any simple beans.
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Supplier;
import org.springframework.dao.DataAccessException;
@kannangce
kannangce / Command Line utils.adoc
Last active March 15, 2019 05:25
Contains quick command line utils that will be required for some scenarios that I faced. Some times the equivalent site I used is also mentioned

Start all the docker containers

docker ps -a|tail -n +2|awk '{print $1}'|xargs docker start

Diff

This gives side-by-side diff.

diff -y file_1 file_2

@kannangce
kannangce / sieve-of-eratosthenes.clj
Last active April 11, 2019 12:48
Sieve of Eratosthenes in clojure
(defn multiple?
"Check if the number-to-check is a multiple of number."
[number-to-check number]
(= 0 (mod number-to-check number)))
(defn sieve-of-eratosthenes
"For the number ranging from 2 to the given number 'upto'(inclusive),
filters out all the numbers that are not prime and
return the prime numbers."
[upto]
@kannangce
kannangce / custom-comp.clj
Created May 4, 2019 06:14
Custom implementation of clojure 'comp'.
(defn custom-comp
"Custom implementation of clojure 'comp'.
Accepts a set of functions and returns a composite of
those functions.
ex, ((custom-comp f1 f2 f3) some-argument) = (f1(f2(f3(some-argument))))"
[& fns]
(fn [& params]
(loop [fn-list fns
@kannangce
kannangce / RespectSigPipe.java
Created October 1, 2019 20:00
Showcase on capturing and making use of SIG_PIPE
import sun.misc.Signal;
import sun.misc.SignalHandler;
/**
* Demo on making use of SIG_PIPE
*
*/
public class RespectSigPipe
{
static boolean isPipeRecieved = false;
@kannangce
kannangce / StringUtils.java
Last active December 21, 2023 15:31
Custom string utilities.
/**
* Meant to contain the custom utilities related to string. Could be handy in common use cases.
**/
public class StringUtils{
/**
* Searches the given pattern in the given src string and applies the txr to
* the matches.
* <br/>
* <b>Note:</b> Ex, To convert snake case to camel case make the call,
import java.util.function.Function;
import java.util.function.Supplier;
import static java.util.Objects.requireNonNull;
import static java.util.Collections.emptyList;
import static java.util.Collections.emptyMap;
import static java.util.Collections.emptySet;
/**
* Class containing the functional utils
;; The below macro could have been simple function. Keeping it for reference though
(defmacro create-matrix
"Clojure macro to create a matrix with any number of dimension"
([x & dim]
(loop [ex ['->> x] d dim]
(if (empty? d)
(apply list ex)
(recur (into ex [`(repeat ~(first d)) 'vec])
(rest d)))
))
@kannangce
kannangce / utils.clj
Last active September 20, 2022 17:45
Handy Clojure utils functions.
(defn create-matrix
"Creates a multi-dimensional vector with dimensions given in dims
with the given default value"
([default-value & dims]
(loop [val default-value remaining dims]
(if (empty? remaining)
val
(recur (vec (repeat (first remaining) val))
(rest remaining)))
))