Skip to content

Instantly share code, notes, and snippets.

@fbatroni
fbatroni / provider.py
Created April 24, 2024 15:09 — forked from thoroc/provider.py
Custom Faker Provider
# Based on the following:
# https://www.datainsightonline.com/post/how-to-generate-fake-dataset-with-python-faker-library
# https://deparkes.co.uk/2020/12/28/python-fake-data-with-faker/
from faker.providers import BaseProvider
from faker import Faker
import pandas as pd
from loguru import logger
fake = Faker("en_GB")
@fbatroni
fbatroni / .flake8
Created April 23, 2024 18:35 — forked from andyreagan/.flake8
Standard pre commit and isort, flake8 settings
[flake8]
max-line-length = 88
max-complexity = 12
select = C,E,F,W,B,B950
ignore = E203, E501, W503
@fbatroni
fbatroni / db_seed.sql
Created April 22, 2024 21:57
database seed
-- This schema provides a comprehensive foundation for a hospital management system,
-- outlining the key entities involved and their interrelationships.
-- Adjustments may be required based on specific system requirements,
-- such as adding or modifying tables and relationships.
-- uncomment the below statements to recreate the schema
DROP TYPE IF EXISTS _roomType CASCADE;
DROP TABLE IF EXISTS hospital CASCADE;
DROP TABLE IF EXISTS department CASCADE;
DROP TABLE IF EXISTS employee CASCADE;
@fbatroni
fbatroni / SimpleOkHttpCookieJar.java
Created January 9, 2024 21:01 — forked from johannes-staehlin/SimpleOkHttpCookieJar.java
Simple implementation of OkHttp3 CookieJar
import okhttp3.Cookie;
import okhttp3.CookieJar;
import okhttp3.HttpUrl;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class SimpleOkHttpCookieJar implements CookieJar {
@fbatroni
fbatroni / DeadlockDetectAspect.java
Created November 28, 2023 20:15 — forked from l0co/DeadlockDetectAspect.java
AOP aspect to retry transaction on deadlock
package com.blogspot.lifeinide.postgres.locks;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.hibernate.exception.LockAcquisitionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
@fbatroni
fbatroni / cdk-stack.ts
Created August 9, 2023 13:08 — forked from CaptainChemist/cdk-stack.ts
cdk-fargate-application-lb
import ec2 = require('@aws-cdk/aws-ec2');
import ecs = require('@aws-cdk/aws-ecs');
import ecs_patterns = require('@aws-cdk/aws-ecs-patterns');
import cdk = require('@aws-cdk/core');
import route53 = require('@aws-cdk/aws-route53');
import acm = require('@aws-cdk/aws-certificatemanager');
import targets = require('@aws-cdk/aws-route53-targets/lib');
import path = require('path');
import { config } from 'dotenv';
import { ApplicationProtocol, SslPolicy } from '@aws-cdk/aws-elasticloadbalancingv2';
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
from pyspark.sql.functions import *
from awsglue.dynamicframe import DynamicFrame
@fbatroni
fbatroni / README.md
Created May 8, 2023 16:24 — forked from rainabba/README.md
Bash retry with exponential backoff

A 1-liner bash function to provide basic non-zero exit retry with exponential backoff:

Minified

function retry_backoff {local m=${ATTEMPTS:-5};local t=${TIMEOUT:-1};local a=0;local e=1;while (($a < $m));do "$@";e=$?;if (($e == 0)); then break;fi;echo "Failure! Retrying in $t.." 1>&2;sleep $t;((a++));t=$((t*2));done;if (($e != 0));then echo "Max attempts reached!" 1>&2;fi;return $e; }

Use

retry_backoff $YOUR_COMMAND # default of 5 retries, starting with 1 second timeout

How To Install OpenSSL 1.1.1 on CentOS 7

This tutorial goes through how to install openssl 1.1.1 on CentOS 7, since the yum repo only installs up to openssl 1.0.

Requirements

Upgrade the system

yum -y update
@fbatroni
fbatroni / mock_imports.py
Created November 8, 2022 10:12 — forked from dangunter/mock_imports.py
For testing, use the mock module to wrap non-importable code. Also provide hooks for putting back in real functions/classes where needed.
import importlib
from mock import MagicMock, patch
def example():
with patch_modules():
import something.not.importable
print("yay! it worked!")
def patch_modules():
sm = mock_import('not.importable', 'something')