Skip to content

Instantly share code, notes, and snippets.

View rnkoaa's full-sized avatar

Richard Agyei rnkoaa

View GitHub Profile
import io.micronaut.http.HttpResponse
import io.micronaut.http.MutableHttpRequest
import io.micronaut.http.annotation.Filter
import io.micronaut.http.filter.ClientFilterChain
import io.micronaut.http.filter.HttpClientFilter
import mu.KotlinLogging
import org.reactivestreams.Publisher
import org.slf4j.MDC
import java.util.*
@rnkoaa
rnkoaa / Main.java
Created December 17, 2022 17:11
Convert a Yaml File to a Java Properties of Map<String, Object>
public static void main(String[] args) {
try (var inputStream = Main.class.getClassLoader().getResourceAsStream("application.yml")) {
var yamlToProperties = new YamlToProperties(inputStream);
Map<String, Object> stringObjectMap = yamlToProperties.asProperties();
stringObjectMap.forEach((key, value) -> {
System.out.println("Key: " + key + ", Value: " + value);
});
} catch (IOException e) {
System.out.println(e.getMessage());
}
@rnkoaa
rnkoaa / index.html
Created November 9, 2022 00:25
sidebar navigration with minimization to small bar on click inspired by bedimcode
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="css/style.css" />
<title>Bedim Code</title>
</head>
<body id="body-pd">
@rnkoaa
rnkoaa / Retry.java
Created June 30, 2022 11:51 — forked from dtodt/Retry.java
Retrofit2@2.5.0 - Retry Adapter Factory - Call & CompletableFuture
package com.company.retrofit2.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
@rnkoaa
rnkoaa / EitherCallAdapterFactory.kt
Created June 30, 2022 10:36 — forked from marcRDZ/EitherCallAdapterFactory.kt
A custom Retrofit CallAdapter.Factory to handle Response as Either
import arrow.core.Either
import okhttp3.Request
import okio.Timeout
import retrofit2.Call
import retrofit2.CallAdapter
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import java.io.IOException
@rnkoaa
rnkoaa / Actor.java
Created April 17, 2022 22:47
Jooq MultiSet select for one-to-many using Sakila DB on Postgresql
public record Actor(int id, String firstName, String lastName) {}
@rnkoaa
rnkoaa / Application.kt
Created January 9, 2022 07:51
Loan Amortization in Kotlin
package org.richard.amortization
import kotlin.math.pow
object Application {
private const val NUMBER_OF_MONTHS_IN_YEAR = 12
private fun interest(principal: Money, rate: Double): Money {
return Money(rate * principal.value())
@JsonDeserialize(using = CustomDeserializer.class)
public abstract class BaseClass {
private String commonProp;
}
// Important to override the base class' usage of CustomDeserializer which produces an infinite loop
@JsonDeserialize(using = JsonDeserializer.None.class)
public class ClassA extends BaseClass {
@rnkoaa
rnkoaa / VavrReactor.java
Created November 18, 2021 09:42
VAVR try to Reactor Conversion
public Mono<Person> load(UUID id) {
return API.Match(tryLoadPerson(id)).of(
Case($Success($()), Mono::just),
Case($Failure($(instanceOf(IllegalArgumentException.class))), Mono::error),
Case($Failure($()), x -> Mono.error(new RuntimeException("unknown error")))
);
}
private Try<Person> tryLoadPerson(UUID id) {
@rnkoaa
rnkoaa / README.md
Last active October 28, 2021 03:47
simple lua config for neovim with lsp

Setup environment

  1. clone from eclipse jdtls
  2. compile with cd eclipse.jdt.ls && ./mvnw clean install -DskipTests
  3. download google java format
  4. create launch-jdtls.sh
#!/bin/sh