sábado, 26 de setembro de 2020

Atividades guiadas para o GIT

Efetuando o commit e enviando alterações para o servidor
git status
git add .
git commit -m "Descrição das alterações"
git push

Lembretes
git remove <arquivo.txt> (É o contrário de git add)
git commit -am "Descrição das alterações" (Junção dos comandos add e commit)
git push -u origin master (Para o primeiro commit)

git reset --hard <hash> (Remove os commits até o hash informado)

Histórico
git log --oneline --graph (Histórico em apenas uma linha com gráfico)
git show (Exibe a última alteração)
git checkout <hash> (Muda para o commit de acordo com o hash)
git checkout <nomeBranch> (Volta para o último commit)

git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short --since='7 days ago' (Melhor)

Tag
git tag -a v1 -m "Minha tag 1" (Criar uma tag com comentário)
git tag (exibe as tags)
git checkout v1 (Muda para a tag)


Branch
git branch (Exibe as branches e informa a atual)
git branch <nomeBranch> (Cria uma nova branch)
git checkout <nomeBranch> (Mudar a branch)
git merge <nomeBranch> (Faz o merge das branches, trazendo de <nomeBranch> para a atual)
git push (Atualiza a branch enviando para o servidor)

git branch -D <nomeBranch> (Apaga a branch local)
git push <origin> <nomeBranch> (Apaga a branch remota)

Lembrete
git diff (Exibe a diferença do commit atual com o último commit)
git checkout -b <nomeBranch> (Cria a branch e muda para ela)


Baixando atualizações
git pull (Baixa o código e faz o merge)

Lembrete
git fetch (Baixa o código, necessário fazer o merge)


Criando um repositório e enviando para o servidor
git init (Cria o repositório local)
git remote (Exibe o repositório remoto)
git remote -v (Exibe detalhes do repositório remoto)

git remote add origin  https://github.com/... (Envia o repositório local para o remoto)
git push -u origin master (Comando push pela primera vez)


Resolvendo conflitos
(Se após o git push exibir a mensagem de conflito, então faça):
git pull (Baixa o código e faz o merge para indicar o conflito)
(Em seguida resolva os conflitos no arquivo e salve-o)
git add .
git commit -m "comentário"
git push


Referência


segunda-feira, 14 de setembro de 2020

Expressão Regular (regEx) em java com exemplos para senhas

Simples exemplo:

String regEx = "^[^\W_]{4}$";
Pattern p = Pattern.compile(regEx);
return p.matcher(textoDeTeste).matches();

Outros métodos:

p.matcher("abc").matches();   // String inteira casa com o padrão
p.matcher("$a$").find();      // O padrão pode ser achado na string
p.matcher("ab$").lookingAt(); // A String começa com o padrão

Padrões para senha:

4 caracteres contendo letras ou números apenas:

^[^\W_]{4}$

Mínimo 5 e máximo 15 caracteres, pelo menos 1 letra e 1 número:

^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{5,15}$

Ela deverá conter no mínimo 8 caracteres, dos quais deve possuir no mínimo 1 letra, 1 número e 1 caractere especial.

(?=.*[}{,.^?~=+\-_\/*\-+.\|])(?=.*[a-zA-Z])(?=.*[0-9]).{8,}

Explicações

(?=.*...) - É um positive lookahead que irá garantir que o grupo de caracteres a seguir DEVE estar na string para que ela seja validada.

[}{,.^?~=+\-_\/*\-+.\|] - É o set que define quais caracteres podem ser capturados pelo positive lookahead.

(?=.*...) - É um positive lookahead que irá garantir que o grupo de caracteres a seguir DEVE estar na string para que ela seja validada.

[a-zA-Z] - É o set que caracteriza qualquer caractere de letra sendo maiúscula ou minúscula.

(?=.*...) - É um positive lookahead que irá garantir que o grupo de caracteres a seguir DEVE estar na string para que ela seja validada.

[0-9] - É o set que caracteriza qualquer número entre 0 e 9.

.{8,} - Após essas validações, será capturado uma sequencia de qualquer caractere que não contenha quebra de linhas(sinalizado pelo .).

E que seja de comprimento mínimo de 8 caracteres (sinalizado pelo {8,}), sem limite máximo (caso queira definir um limite você pode colocar o número máximo de caractere após a ,).

Referência:

https://pt.stackoverflow.com/questions/25605/express%C3%A3o-regular-que-aceite-somente-n%C3%BAmeros-e-ou-letras-em-java

https://pt.stackoverflow.com/questions/347152/regex-caracteres-especiais-obrigat%C3%B3rio

quinta-feira, 10 de setembro de 2020

Arquivo persistence.xml para o banco de dados H2

 Exemplo de arquivo persistence.xml configurado para o banco de dados H2


<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit name="NomePU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:~/NomeBanco" />
<property name="javax.persistence.jdbc.user" value="sa" />
<property name="javax.persistence.jdbc.password" value="" />
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver" />
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />

<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
</properties>
</persistence-unit>
</persistence>

Classe HttpServlet não encontrada

 Caso ocorra o erro de não encontrar a classe: 
javax.servlet.http.HttpServlet

Então é necessário incluir a depêndência: 
servlet-api-3.1.jar


Maven:
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>


quarta-feira, 12 de dezembro de 2012

Eventos de teclados em todos os browsers

Código javascript para eventos de teclados em todos os browsers (navegadores), incluindo o Microsoft Internet Explore e o Mozilla Fire Fox:

function validar(e) {
    var tecla;
    if (e.keyCode) {// IE
        tecla = e.keyCode;
    }
    else if (e.which) {// Firefox
        tecla = e.which;
    }
    else {//Outros Browsers
        return false;
    }
    return !(tecla < 48 || tecla > 57);
}

//Chamada da funcao:
onkeypress="return validar(event)"

sexta-feira, 7 de dezembro de 2012

Alterando o cursor com CSS

É possível alterar o cursor em páginas HTML usando CSS, para isso veja o exemplo abaixo e as opções de cursores disponíveis:
Posicione o mouse sobre a palavra e veja o tipo do cursor:

  • auto

  • crosshair

  • default

  • e-resize

  • help

  • inherit

  • move

  • ne-resize

  • n-resize

  • nw-resize

  • pointer

  • se-resize

  • s-resize

  • sw-resize

  • text

  • wait

  • w-resize

Exemplo:

<span style="cursor:pointer">pointer</span>

sábado, 1 de dezembro de 2012

Função Trim para JavaScript

Estas funções simulam a função Trim (retiradas de espaços a esquerda, a direita e ambos, respectivamente)

//Funcao trim para retirar os espacos a esquerda
function leftTrim( sString ){ 
    while ( sString.substring( 0,1 ) == ' ' ){ 
        sString = sString.substring( 1, sString.length ); 
    } 
    return sString;
 
//Funcao trim para retirar os espacos a direita
function rightTrim( sString ){
    while ( sString.substring( sString.length-1, sString.length ) == ' ' ){
        sString = sString.substring( 0, sString.length-1 ); 
    }
    return sString;
 
//Funcao trim para retirar os espacos a esquerda e a direita
function trimAll( sString ){ 
    while ( sString.substring( 0,1 ) == ' ' ){ 
        sString = sString.substring( 1, sString.length ); 
    } 
    while ( sString.substring( sString.length-1, sString.length ) == ' ' ){
        sString = sString.substring( 0,sString.length-1 ); 
    } 
    return sString;