Encontrando um processo(server) pela porta do socket

Existem momentos em que você quer saber qual o processo (PID) está com um socket aberto em uma porta específica, digamos 4000. Neste caso, para o encontrar o dito cujo, basta digitarmos:

$ lsof -i:4000
COMMAND   PID   USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
ruby    46391 edsono    3u  IPv4 0xaeaf66c      0t0  TCP *:terabase (LISTEN)

Alterando a prefência de mirros do macports

Recentemente precisei instalar um novo pacote atraves do macports porém, antes disso fiz a atualização padrão das receipts:

$ sudo port -v selfupdate

O problema é que quando fui instalar o meu pacote desejado, tive a infelicidade de descobrir que o mirror escolhido era muito lento. Procurei mudar o link de download direto no Portfile, mas logo descobri que na nova versão do macports ele possui alguns mirrors pré-cadastrados. Depois de procurar na documentação descobri o nome do arquivo que contem a lista e descobri que era preciso apagar os mirrors não desejados. Abaixo o comando para abrir o arquivo de mirrors:

$ e `find /opt -name 'mirror_sites.tcl'`

Sendo “e” o alias para meu editor padrão, o textmate.

Não armazene as senhas SÓ com digest!

Finalmente consegui entender o porquê de não armazenar diretamente no banco de dados as senhas somente usando um algorítimo de digest. Segundo Ola Bini em seu artigo RUBY SECURITY QUICK GUIDE, existe uma ataque chamado rainbow tables que consegue recuperar a senha original a partir de um hash gerado. Para combater este tipo de ataque, basta combinarmos a senha com um salt antes de gerarmos o hash. Um salt seria uma sequencia randômica, após combinada com sua senha, que invalida ataques equivalentes ao do rainbow tables.

Diferença entre o por que, porquê, porque e por quê

Resumindo, há quatro formas de escrever o porquê:

Porquê: É um substantivo, vem sempre depois de um artigo (o_, _os), pronome (meu, este, aquele…) ou numeral (um, dois, três…);

Porque: É uma conjunção que liga duas orações. Use se você puder substituir por pois ou a fim de;

Por que: Use se você puder substituir por pelo qual / pela qual;

Por quê: Estando a palavra que no final, ela leva acento: Está me olhando por quê?

Use the Power of Command Shell

Teclas de Atalho do /bin/bash

  • ⌃A -> Início da linha;
  • ⌃E -> Fim da linha;
  • ⌃K -> Deleta tudo do cursor até o fim da linha;
  • ⌃U -> Deleta tudo do cursor até o início da linha;
  • ⌃W -> Deleta do cursor até o início da palavra anterior;
  • ⌃Y -> Copia texto do clipboard para a linha atual;
  • ⌃L -> Limpa a tela e copia linha atual para o início da tela;
  • ⌃D -> Logout, mesmo que exit, quit, etc…
  • ⌃R -> Busca no lista histórica de comandos;
  • ⌥Z -> Coloca o programa atual em stop/sleep;
  • ⌥C -> Kill o processo atual.

Configurações para o Mac OS X Terminal.app

  • ⌥← -> %5C033B para mover uma palavra a esquerda;
  • ⌥→ -> %5C033F para mover uma palavra a direita;

/bin/bash command-fu

  • !! -> Executa o último comando;
  • !n -> Executa o comando de número n na lista histórica;
  • !abc -> Executa o último comando da lista histórica começado por abc;
  • !abc ->p -> Somente exibe o último comando da lista histórica começado por abc;
  • !^ -> Repete na linha atual, o primeiro argumento utilizado no último comando;
  • !$ -> Repete na linha atual, os argumentos utilizados no último comando;

Aliases

  • alias e=’mate ’ -> Dispara o textmate;
  • alias h=’history’ -> Atalho para exibir a lista histórica de comandos;
  • alias g=’grep’ -> Atalho para o grep;
  • alias f=’find’ -> Outro atalho, mas agora para o find;
  • alias ls=’ls -G’ -> ls colorido no Terminal.app do Mac OS X;
  • alias l=’ls -lhF’ -> ls com minhas opções preferidas;
  • alias ll=’ls -lahF’ -> variação do ls;
  • alias ..=’cd ..’ -> Move para o diretório anterior;
  • alias dev=’cd ~/Development’ -> Move diretamente para o diretório de desenvolvimento.

Diferença entre o este, esse e o aquele

Aproveitando para registrar todos meus aprendizados, vai agora um relativo ao português. No link Este, Esse ou Aquele, é explicado a diferença de uso dos pronomes. Isto sempre me causa confusão, mas agora que estou blogando, vou aproveitar para aprender e tentar utilizar melhor a língua portuguesa. Segue abaixo um pequeno resumo:

De forma geral:

  • 1a Pessoa: este -> Próximo de você, nas suas mãos;
  • 2a Pessoa: esse -> Não muito longe de você;
  • 3a Pessoa: aquele -> Distante de você.

Em relação ao lugar:

  • O lugar onde estou: este;
  • O lugar onde você está: esse;
  • O lugar distante do falante e do ouvinte: aquele.

Em relação ao tempo:

  • Presente: este;
  • Passado ou futuro próximo: esse;
  • Passado distante: aquele.

Demonstrando dois ou três fatos já citados:

  • O primeiro fato citado: aquele;
  • O fato do meio: esse;
  • O último citado: este.

Em relação ao discurso/texto:

  • Referência ao que você ainda vai mencionar: este;
  • Referência ao que você já mencionou: esse;

Tirando screenshots no Mac OS X

Aproveitando que estava aprendendo a blogar no textmate, tive que aprender a tirar screenshots das minha telas no Mac OS X. As teclas que existem para isso são:

Command + Shift + 3 – Tira uma screenshot da tela inteira;

Command + Shift + 4 – Apresenta uma mira para vocês selecionar a parte da tela que você quer;

Command + Shift + 4, Barra de Espaço – Dessa forma, seu ponteiro do mouse se transformará uma pequena câmera fotográfica e com ela você selecionará qual janela você quer tirar a screenshot.

PS: Todas as screenshots são armazenadas no formato PNG.