Skip to content

Instantly share code, notes, and snippets.

View oliverjumpertz's full-sized avatar
🏠
Working from home

Oliver Jumpertz oliverjumpertz

🏠
Working from home
View GitHub Profile
package de.oliver;
import javaslang.collection.List;
public class SquareOfNumberCalculator {
public static void main(String[] args) {
final List<Integer> myList = List.range(1, 6);
final List<Integer> squaredNumbers = myList.map(i -> i * i);
System.out.println("Printing original numbers");
myList.forEach(i -> System.out.println(" i --> " + i));
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>aGroupId</groupId>
<artifactId>test-jar-resources</artifactId>
<version>1.0-SNAPSHOT</version>
@oliverjumpertz
oliverjumpertz / once.ts
Last active May 9, 2020 17:35
once is a function wrapper that wraps another function. The wrapped function will only be executed exactly once, no matter what arguments are passed in subsequent calls.
type AnyFunc = (...args: any) => any;
export function once(func: AnyFunc): AnyFunc {
let alreadyCalled = false;
return (...args: any[]): any => {
if (alreadyCalled) {
return undefined;
}
alreadyCalled = true;
@oliverjumpertz
oliverjumpertz / readStdIn.js
Last active May 9, 2020 17:38
readStdIn is an awaitable naive function which reads all input from stdin as a single, new-line preserved string,
import readline from 'readline';
async function readStdIn() {
return new Promise((resolve, reject) => {
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
let input = '';
rl.on('line', (line) => {
input += line;
@oliverjumpertz
oliverjumpertz / .dockerignore
Last active December 16, 2020 14:31
A Dockerfile to get your Next.js app containerized.
node_modules/
README.md
@oliverjumpertz
oliverjumpertz / Dockerfile
Created December 19, 2020 13:35
Minimum contents of a project for a containerized Lambda
FROM public.ecr.aws/lambda/nodejs:12
COPY package*.json ./
RUN npm install
COPY index.js ./
CMD [ "index.handler" ]
@oliverjumpertz
oliverjumpertz / index.js
Created December 24, 2020 20:40
Creating a vanilla dictionary
const dict = {};
dict.__proto__; // => {}
console.log(dict.hasOwnProperty); // => f hasOwnProperty() {}
const emptyDict = Object.create(null);
emptyDict.__proto__; // => undefined
emptyDict.hasOwnProperty; // => undefined
// ❗️ Anyone can modify the object prototype from the outside
@oliverjumpertz
oliverjumpertz / index.js
Created December 24, 2020 20:45
Iterating over values and indices with a for..of-loop
// Iterating over the array with each individual element at hand while separately
// keeping track of the index.
let i = 0;
for (const element of array) {
console.log(i++, element);
}
@oliverjumpertz
oliverjumpertz / index.js
Created December 24, 2020 20:48
Switching over anything
function getCheering(followers) {
// If you were to switch over followers, you'd be surprised,
// because you'd always hit the default case.
// By switching over true, all cases get evaluated properly, although they
// contain numeric ranges!
switch (true) {
case followers >= 2000:
return "Wow, I'm speechless. I'm so happy, thank you!!!";
case followers >= 1000:
return "Wow, this is so great!";
@oliverjumpertz
oliverjumpertz / index.js
Created January 8, 2021 08:30
Calculating the simple and exponential moving average in JavaScript
function simpleMovingAverage(prices, window = 5, n = Infinity) {
if (!prices || prices.length < window) {
return [];
}
let index = window - 1;
const length = prices.length + 1;
const simpleMovingAverages = [];