Skip to content

Instantly share code, notes, and snippets.

@nejckorasa
nejckorasa / deploy_jar.sh
Last active July 5, 2018 13:20
Simple script to deploy JAR files via SCP. Also option to restart them if they are build as Spring Boot Service
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
usage="usage: $(basename "$0") [-h] [-r] [-s] [-t] -n name
options:
-n name Name of JAR (including .jar extension)
-r restart Restart jar once deployed
-t target Set target, for instance demo1
-s SSH target Set SSH target, for instance -s usr@my_host -t /home/usr/remote/dir/path
-h [help]
@nejckorasa
nejckorasa / MostFrequentItem.java
Last active July 6, 2018 12:18
Find most frequent item in collection
private <V> V findMostFrequentItem(final Collection<V> items)
{
return items.stream()
.filter(Objects::nonNull)
.collect(Collectors.groupingBy(Functions.identity(), Collectors.counting())).entrySet().stream()
.max(Comparator.comparing(Entry::getValue))
.map(Entry::getKey)
.orElse(null);
}
@nejckorasa
nejckorasa / TomcatConfig.java
Created July 6, 2018 12:17
Deploy war alongside jar. Add webapp to Tomcat
import java.io.File;
import java.util.Arrays;
import javax.servlet.ServletException;
import org.apache.catalina.startup.Tomcat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
@nejckorasa
nejckorasa / AsyncMapFunctions.kt
Created July 11, 2018 14:36
Functions to use map and async calls in Kotlin
// async kotlin collections map
suspend fun <A, B> List<A>.awmap(f: suspend (A) -> B): List<B> {
return map { async { f(it) } } // create async function call
.map { it.await() } // await it on next map call
}
suspend fun <A, B> List<A>.amap(f: suspend (A) -> B): List<Deferred<B>> = map { async { f(it) } } // create async function call
@nejckorasa
nejckorasa / Translator.java
Created July 25, 2018 06:31
Translator using yandex translations
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import javax.annotation.Nonnull;
@nejckorasa
nejckorasa / CustomCorsFilter.java
Created July 31, 2018 06:51
Custom CORS filter for Spring framework to enable wildcard matching
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
@nejckorasa
nejckorasa / retrieve-token.sh
Created July 31, 2018 13:52
Script to retrieve and print OAuth token from Auth provider
#!/bin/bash
TOKEN_URI='http://bla.si:8180/auth/realms/ble/protocol/openid-connect/token'
CLIENT_ID='js-client'
USERNAME='taavci'
PASSWORD='test'
RESULT=`curl --data "grant_type=password&client_id=$CLIENT_ID&username=$USERNAME&password=$PASSWORD" $TOKEN_URI`
TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'`
@nejckorasa
nejckorasa / Standards.kt
Last active August 17, 2018 08:36
Usefull Kotlin extension functions
inline fun <T> T.throwIf(predicate: (T) -> Boolean, throwBlock: (T) -> Exception): Unit = if (predicate(this)) throw throwBlock(this) else Unit
@nejckorasa
nejckorasa / RateLimitFactory.java
Last active March 11, 2021 02:52
Rate Limiter in Java
import java.time.Duration;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
public class RateLimitFactory {
private final ConcurrentMap<String, RateLimiter> rateLimiters = new ConcurrentHashMap<>();
private long capacity;
private Duration window;
@nejckorasa
nejckorasa / kill-all-mac-apps.sh
Created August 19, 2019 16:36
Kills all mac apps
#!/bin/sh
PIDS=$(ps axww -o pid,command | grep -v bash | grep Applications/ | grep -v /bin/sh | grep -v Self\Service | grep -v grep | awk '{print $1}')
for i in ${PIDS}
do
echo "Killing PID $i"
kill -9 $i
done