Skip to content

Instantly share code, notes, and snippets.

View christianoguedes's full-sized avatar

Christiano Guedes christianoguedes

  • Brazil, Uberlandia, MG
View GitHub Profile
@christianoguedes
christianoguedes / opencypher_sql.md
Created March 12, 2026 13:46
openCypher vs SQLs

A analogia do openCypher com SQL é útil, mas não é 1:1.

Mapa Mental

SQL openCypher
banco relacional grafo
tabela rótulo de nó (:Person) ou tipo de aresta (:AUTHORED)
linha nó ou aresta
coluna propriedade
chave primária propriedade id
@christianoguedes
christianoguedes / karabiner.json
Created May 29, 2023 12:57
macos: toogle mic + google meet by chrome extension "Mute for google meet" using global key command + control + m
...
"simple_modifications": [
{
"from": {
"key_code": "right_command"
},
"to": [
{
"shell_command": "open -a 'iTerm.app'"
@christianoguedes
christianoguedes / echo-show-size-pics.sh
Last active November 3, 2025 11:45
Remove duplicated by hash md5 file + Convert HEIC to JPG + RESIZE to echo show 8
fdupes -qdN -r ./ #remove duplicates files with same hash
magick mogrify -format jpg -define preserve-timestamp=true *.heic #convert all files heic to jpg on current folder
magick mogrify -path ./convert -define preserve-timestamp=true -format jpg -auto-orient -resize "1280x<" -quality 80% *.jpg #resize proprotional to folder "convert". Echo Show 8 size's
magick mogrify -path ./convert -define preserve-timestamp=true -format jpg -resize "1280x800^" -gravity center -extent 1280x800 -quality 80% *.jpg #crop to amazon echo size after center zoom
mkdir convert_logo
magick mogrify -path convert_logo -compose over -gravity center -draw "image over 0,0 0,0 '<path/logo>.png'" *.jpg #OPTIONAL: Put logo on images
...
<profiles>
<profile>
<id>prd</id> <!-- chave do profile usado pelo CI/CD -->
<build>
<plugins>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>5.3.2</version>
...
<build>
<plugins>
...
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>5.3.2</version>
<configuration>
<suppressionFile>dependency-checker-exclude.xml</suppressionFile>
...
<build>
<plugins>
...
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>5.3.2</version>
<executions>
<execution>
#metrics - habilitar todos os endpoints do actuator
management.endpoints.web.exposure.include=*
management.endpoint.prometheus.enabled=true
#metricas - /actuator/metrics/bucket4j_summary_consumed
bucket4j.filters[0].metrics.enabled=true #habilitar as métricas do bucket4j
bucket4j.filters[0].metrics.types=REJECTED_COUNTER #métricas habilitas apenas para os bloqueios, mas poderia considerar também o consumo: REJECTED_COUNTER,CONSUMED_COUNTER
bucket4j.filters[0].metrics.tags[0].key=IP #chave do actuador
bucket4j.filters[0].metrics.tags[0].expression=getRemoteAddr() #valor ip do cliente
bucket4j.filters[0].metrics.tags[0].types=REJECTED_COUNTER #quantidade de bloqueios
@christianoguedes
christianoguedes / pom.xml
Last active July 15, 2020 23:52
actuator - ratelimit
...
<dependencies>
...
<!-- metrics dependency - actuator !-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
...
</dependencies>
#bloqueio dos endpoints de autenticação - /auth
bucket4j.filters[0].cache-name=rate-limit
bucket4j.filters[0].http-response-body={ "message": "Too many requests" }
bucket4j.filters[0].url=/auth/.* #url que será impactada pela regra
bucket4j.filters[0].rate-limits[0].expression=@authService.getCurrentAuthUserInSession() #chave da regra de bloqueio. Retornado o usuário da sessão
bucket4j.filters[0].rate-limits[0].bandwidths[0].capacity=3 #3 requisições permitidas no intervalod de 1 minuto
bucket4j.filters[0].rate-limits[0].bandwidths[0].time=1
bucket4j.filters[0].rate-limits[0].bandwidths[0].unit=minutes
bucket4j.filters[0].rate-limits[0].bandwidths[0].fixed-refill-interval=5 #ao exceder, será bloqueado por 5 minutos
bucket4j.filters[0].rate-limits[0].bandwidths[0].fixed-refill-interval-unit=minutes
@christianoguedes
christianoguedes / StartController.java
Created July 14, 2020 14:36
example controller for rate-limit
@RestController
@RequestMapping("/")
public class StartController {
@GetMapping
public String helloWorld() {
return "Helo World";
}
}