Skip to content

Instantly share code, notes, and snippets.

View mmoehrlein's full-sized avatar
🦄
fabulous

Michael Möhrlein mmoehrlein

🦄
fabulous
View GitHub Profile
-- Window Function examples
-- PostgreSQL conference South Africa 2018
-- By Willem Booysen
-- Youtube: https://www.youtube.com/watch?v=blHEnrYwySE
-- Create database and templates for demo
DROP DATABASE IF EXISTS WindowFunctions;
CREATE DATABASE WindowFunctions;
@mmoehrlein
mmoehrlein / range.js
Created November 24, 2021 14:23
js - generate an array with sequential numbers
/**
* Generate a Array with sequential numbers.
*
* @param start first value
* @param stop last value
* @param step step size
* @returns {Array}
*/
function range(start, stop, step){
return Array.from({ length: (stop - start) / step + 1}, (_, i) => start + (i * step));
@mmoehrlein
mmoehrlein / sleep.ts
Created November 24, 2021 14:22
ts - promise based sleep
/**
* Sleep for the specified number of milliseconds.
*
* @param ms time to sleep in milliseconds
* @returns {void}
*/
async function sleep(ms: number){
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
@mmoehrlein
mmoehrlein / require-main.js
Created November 24, 2021 14:20
js if statement to check if file is run directly or required by something else
// if executed directly, start the main function
if (require.main === module) {
main();
}
@mmoehrlein
mmoehrlein / incrementer.js
Last active November 24, 2021 14:17
js snippet that creates an incrementer
// creates an incrementor
function getIncrementer(start, defaultStep = 1){
let i = start;
return function(step = defaultStep){
i += step;
return i;
};
}
@mmoehrlein
mmoehrlein / Dockerfile
Last active November 8, 2021 14:58
lambda - deploy docker image
FROM node:14.18.1-alpine as builder
RUN mkdir /app
WORKDIR /app
ADD ./package.json /app/package.json
ADD ./package-lock.json /app/package-lock.json
RUN npm install
COPY src /app/src
COPY tsconfig.json /app/tsconfig.json
RUN npm run build
@mmoehrlein
mmoehrlein / cbeamClr
Created March 8, 2020 06:35
[clear terminal with cbeam] randomly clear terminal with cbeam instead of normal clear
alias clear='[ $[$RANDOM % 10] = 0 ] && timeout 6 cbeams -o; clear || clear'
@mmoehrlein
mmoehrlein / configuration.js
Created February 17, 2019 19:35
a few helpers that setup a logger and config the same in different projects
const nconf = require('nconf');
/* eslint import/no-unresolved: [2, { ignore: ['dotenv.*'] }] */
function init() {
if ((process.env.ENVIRONMENT || process.env.NODE_ENV || '').toLowerCase().trim() !== 'production') {
let dotenv;
try {
dotenv = require('dotenv-safe');
} catch (error) {
try {
@mmoehrlein
mmoehrlein / package.json
Last active February 19, 2019 14:45 — forked from adamreisnz/package.json
package.json template/ standard
{
"name": "projecttemplate",
"description": "",
"version": "1.0.0",
"homepage": "https://moehrlein.io",
"author": "Michael Moehrlein <code@moehrlein.io> (moehrlein.io)",
"license": "ISC",
"keywords": [],
"private": true,
"repository": "github:mmoehrlein/",
@mmoehrlein
mmoehrlein / s3-dropzone-upload.php
Created March 8, 2017 12:10
s3 upload with dropzone.js
<?php
// AWS data
$bucketName = "BUCKET-NAME";
$AWSAccessKeyId = "XXXXXXXXXXXXXXXXXXXX";
$AWSSecretAccessKey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$date = date("Y-m-d");
$dateISO = date("Ymd");
$validTill = date('Y-m-d\TH:i:s.000\Z', time() + (60 * 60 * 4)); // 4 hours