Skip to content

Instantly share code, notes, and snippets.

View thiagosperandio's full-sized avatar

Thiago Sperandio thiagosperandio

View GitHub Profile
@thiagosperandio
thiagosperandio / function makePhrase.js.html
Created January 3, 2023 15:25
function makePhrase.js.html
<script language="JavaScript">
function isArrayOrObject(val) {
return val instanceof Array || val instanceof Object;
}
function isStringOrWrapper(val) {
return typeof val === 'string' || val instanceof String;
}

DB Comum

Transação:

Begin transaction
	...update/delete/insert table...
Rollback se erro
Commit se OK em tudo

JPA

Quem estiver vendo essa mensagem após atualizar o git bash for win:

git: 'credential-manager' is not a git command. See 'git --help'.

The most similar command is
        credential-manager-core

Execute no terminal:

Vinculações - análise de concomitância:
Regra: dado um elemento de apelido "c", pesquiso na base se existe um "cx" concomitante: [
and ( c.inicio <= cx.fim or cx.fim is null )
and ( c.fim is null or c.fim >= cx.inicio )
]
Obs.: Dependendo da análise, podem querer adicionar um "[ and c.id <> cx.id ]" para não considerar o mesmo elemento como concomitante. Mas tem caso que eu não posso usar isso.
Testes: Períodos concomitantes
01/02/2020 a 31/03/2021 - contrato
@thiagosperandio
thiagosperandio / Java toString() like JSON format.jsonc
Last active February 1, 2021 14:21
Java toString() like JSON format
{ "${object.className}" : { "${member.name}": "${member.value}", "${otherMembers}" } }
// ---
// Obs: Deixe uma linha em branco no final, se quiser mostrar cada Elemento em uma linha, no caso de uma lista desse mesmo elemento. Senão todos serão mostrados numa linha só.
@thiagosperandio
thiagosperandio / corrigir-repo-apos-gitignore.md
Last active November 11, 2019 18:54
.gitignore - Como remover um arquivo ou diretório que foi recentemente adicionado ao .ignore, mas que já existia no versionamento do seu projeto

.gitignore - Como remover um arquivo ou diretório que foi recentemente adicionado ao .ignore, mas que já existia no versionamento do seu projeto

A gente pode remover ele do versionamento com git rm --cached <FILENAME>.

Se for um diretório, a gente pode usar o parâmetro -r (git -rm -r --cached ) para ser feito recursivamente.

@thiagosperandio
thiagosperandio / Docker - Limpar sistema removendo itens não usados.md
Last active July 17, 2021 15:04
Docker - Limpar sistema removendo itens não usados

Docker - Limpar sistema removendo itens não usados

Antes de tudo, analisar os tamanhos e usos:

  • docker system df
  • docker image ls
  • docker volume ls
  • docker ps

Limpar sistema:

  • docker system prune -a --filter label!=do-not-remove
@thiagosperandio
thiagosperandio / Java - Usar Optional + equals() pra comparar objetos e atributos nulos.md
Last active July 19, 2019 12:30
Java - Usar Optional + equals() pra comparar objetos e atributos nulos

Usar Optional.ofNullable( obj ).map( x -> x.id ).equals( Optional.ofNullable( longNull ) );

Pra galerinha da gamb, vi um (monte de) código com comparação Long == Long, o que é errado.

No caso, a pessoa queria validar se o objeto é nulo, se o atributo é nulo e então comparar com um outro valor, que também poderia ser nulo. Por fim, fizeram a comparação de obj.getId() == idObjParam, o que é muito zuero. Devem ter medo de que obj.getId().equals(idObjParam) dê um null pointer exception. Compreensível, mas não tem jeito. Temos que usar o .equals() de qualquer forma pois é uma comparação entre objetos!

O exemplo desse snippet é para mostrar como fazer isso usando um único Optional.

No caso, o equals() ali não é do próprio tipo do objeto, mas é de Optional. Sendo assim, o atributo de comparação com o equals() foi também transformado em Optional para os resultados serem mais corretos.