Skip to content

Instantly share code, notes, and snippets.

View matchilling's full-sized avatar
🎯
Focusing

Matías J. Schilling matchilling

🎯
Focusing
View GitHub Profile
@matchilling
matchilling / postgresql-naming-convention-cheat-sheet.md
Last active December 17, 2025 20:21
This cheat sheet provides a clear guide to PostgreSQL's default object naming conventions, which ensure consistency, clarity, and maintainability in database schemas. Our team enforces these defaults across all tables, indexes, sequences, and constraints to maintain uniformity.

PostgreSQL Naming Conventions Cheat Sheet

This cheat sheet provides a clear guide to PostgreSQL's default object naming conventions, which ensure consistency, clarity, and maintainability in database schemas. Our team enforces these defaults across all tables, indexes, sequences, and constraints to maintain uniformity.

1. Default Naming Pattern

{table}_{column(s)}_{suffix}
@matchilling
matchilling / InstantConverter.java
Created October 14, 2025 09:43
Converter that transforms string values into Java Instant} objects
package com.matchilling.websupport.converter;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Optional;
import java.util.function.Function;
@matchilling
matchilling / CloudflareHeader.java
Last active October 13, 2025 08:29
Cloudfare HTTP Request Headers
package cat.encordats.cloudflare;
import lombok.Getter;
/**
* Cloudflare provides several HTTP request headers that include information about the visitor's location, IP, and
* network characteristics. These are automatically added to requests sent to your origin server (your backend) when
* traffic is proxied through Cloudflare.
* <p>
* Cloudflare <a href="https://gist.github.com/matchilling/959f82e72f70325590741c1acfcbfe3a">visitor location headers</a>.
@matchilling
matchilling / aws-cdk-bootstrap-permission.json
Created March 16, 2024 07:01
Least privilege permissions to run AWS CDK bootstrap (tested with version 2.133.0)
{
"Statement": [
{
"Action": [
"cloudformation:DescribeStackEvents",
"cloudformation:DeleteStack",
"cloudformation:CreateChangeSet",
"cloudformation:DescribeChangeSet",
"cloudformation:ExecuteChangeSet",
"cloudformation:DescribeStacks",
@matchilling
matchilling / Ubuntu.terminal
Created July 30, 2021 08:14
Ubuntu skin for MacOS terminal
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ANSIBlackColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGjCwwTVSRudWxs0w0ODxARElVO
U1JHQlxOU0NvbG9yU3BhY2VWJGNsYXNzTxAmMC4xODAzOTIxNjEgMC4yMDM5MjE1NzE0
IDAuMjExNzY0NzA4MgAQAoAC0hQVFhdaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9y
@matchilling
matchilling / ObjectMapper.java
Last active December 12, 2020 17:25
IntelliJ Debugger - View object as JSON
new com.fasterxml.jackson.databind.ObjectMapper()
.setSerializationInclusion(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL)
.writeValueAsString(this);
@matchilling
matchilling / README.md
Last active September 11, 2024 14:26
Setting autogenerated Id manually in Hibernate

Setting auto-generated Ids manually with Hibernate

In this tutorial, you will learn how to implement a custom IdentifierGenerator to support auto-generated and manually assigned Ids using Hibernate.

Continue reading ...

@matchilling
matchilling / PageSerializer.kt
Last active December 13, 2023 13:50
REST Pagination in Spring with Link header
package com.matchilling.api.rest.data
import com.fasterxml.jackson.core.JsonGenerator
import com.fasterxml.jackson.databind.JsonSerializer
import com.fasterxml.jackson.databind.SerializerProvider
import org.springframework.boot.jackson.JsonComponent
import org.springframework.data.domain.PageImpl
import java.io.IOException
@JsonComponent
@matchilling
matchilling / Dockerfile
Last active December 24, 2019 10:08
Install ImageMagick on Docker CentOS
FROM centos:centos7
MAINTAINER Mathias Schilling <m@matchilling.com>
ENV IMAGEMAGICK_VERSION="7.0.9-10"
ENV IMAGEMAGICK_LIB_RPM_URL="https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-${IMAGEMAGICK_VERSION}.x86_64.rpm"
ENV IMAGEMAGICK_RPM_URL="https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-${IMAGEMAGICK_VERSION}.x86_64.rpm"
RUN export HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" $IMAGEMAGICK_RPM_URL)
RUN if [ $HTTP_CODE != "200" ] ; then echo "$IMAGEMAGICK_RPM_URL does not exist" && exit 1 ; fi
@matchilling
matchilling / carbono.json
Last active June 12, 2019 07:28
🔥 Carbono - The Team Red CO₂ Meter
[{"temperature_C":29.29,"humidity":37,"pressure_hPa":1010,"time":1559916427,"eCO2":400,"TVOC":0},{"temperature_C":29.31,"humidity":37,"pressure_hPa":1010,"time":1559916432,"eCO2":400,"TVOC":0},{"temperature_C":29.38,"humidity":37,"pressure_hPa":1010,"time":1559916437,"eCO2":400,"TVOC":0},{"temperature_C":29.41,"humidity":37,"pressure_hPa":1010,"time":1559916442,"eCO2":400,"TVOC":0},{"temperature_C":29.43,"humidity":37,"pressure_hPa":1010,"time":1559916447,"eCO2":400,"TVOC":0},{"temperature_C":28.86,"humidity":38,"pressure_hPa":1010,"time":1559916485,"eCO2":400,"TVOC":0},{"temperature_C":28.94,"humidity":38,"pressure_hPa":1010,"time":1559916490,"eCO2":400,"TVOC":0},{"temperature_C":29.03,"humidity":37,"pressure_hPa":1010,"time":1559916495,"eCO2":400,"TVOC":0},{"temperature_C":29.09,"humidity":37,"pressure_hPa":1010,"time":1559916500,"eCO2":400,"TVOC":0},{"temperature_C":29.13,"humidity":37,"pressure_hPa":1010,"time":1559916505,"eCO2":400,"TVOC":0},{"temperature_C":29.17,"humidity":37,"pressure_hPa":1010,"time"