Renomear chave de deploy no gitlab

Enquanto não sai o merge request, a atualização do nome da deploy key tem que ser direto no banco.

Numa instalação padrão, conectamos no banco pgsql via linha de comando:

su gitlab-psql
/opt/gitlab/embedded/bin/psql --port 5432 -h /var/opt/gitlab/postgresql -d gitlabhq_production

 Depois localizamos o ID da chave (nesse caso eu exibi todas) e fazemos um update pelo id

SELECT id, title FROM keys WHERE type='DeployKey';
UPDATE keys SET title='root@shared-servers' WHERE id=181;

 Simples, não? =)

backup de sites com wget

Recentemente precisei efetuar backup de um site para leitura offline, tinha feito um script mirabolante com wget e sed, convertendo links etc, mas pesquisando melhor descobri que o proprio wget tem opções pra muita coisa.

O comando que usei foi

wget \
     --recursive \
     --no-clobber \
     --page-requisites \
     --html-extension \
     --convert-links \
     --restrict-file-names=windows \
     --domains website.org \
     --no-parent \
     http://website.org/diretorio/

As opções usadas são:

  • –recursive: backup do site inteiro, de forma recursiva.
  • –domains website.org: não vai seguir nenhum link de fora do domínio especificado.
  • –no-parent: não vai seguir nenhum link que remeta a diretórios anteriores.
  • –page-requisites: obter todos os elementos que compõem a página (imagens, css, etc).
  • –html-extension: usar extensão html.
  • –convert-links: converter links para uso offline.
  • –restrict-file-names=windows: Modificar nomes de arquivos para funcionar em windows
  • –no-clobber: não sobescrever arquvos (para caso o download ser interrompido e ter que recomeçar).

Data em portugues no php

Normalmente eu fazia alguns malabarismos, como um array com os nomes dos meses em português, mas a gente acaba esquecendo que o php tem função nativa pra praticamente tudo.

Pesquisando um pouco, descobri que é só trocar o locale que a mágica acontece =)

setlocale(LC_ALL, 'pt_BR', 'pt_BR.iso-8859-1', 'pt_BR.utf-8', 'portuguese');
date_default_timezone_set('America/Sao_Paulo');
echo strftime("%A, %d de %B de %Y", strtotime('NOW'));

Referências:
http://br.php.net/strftime
http://br.php.net/setlocale
http://br.php.net/date_default_timezone_set

Internet sem limites

internet ilimitada, internet sem franquia, provedor sem limites, internet livre

Um projeto ao qual orgulhosamente faço parte visa criar uma lista colaborativa de pequenos provedores que não vão aderir a bizarra prática de impor limites de franquia na banda larga fixa.

http://internetsemlimites.github.io/

O código-fonte do site, cms e api de utilização estão disponíveis gratuitamente no github.

https://github.com/InternetSemLimites

Imagem docker lemp/lnmp de fácil uso

Eu uso docker para ambiente de desenvolvimento, logo não preciso de tamanha complexidade com várias imagens dependentes montagem de diretórios cruzados etc.

Para esta finalidade basicamente preciso de um servidor lemp (ou lnmp), que é sigla para “Linux, (e)nginx, mysql e php” e um php myadmin.

Assim sendo criei uma imagem disponível publicamente no docker hub para quem precisa desta finalidade.

Para subir a aplicação com esta imagem, basta criar um docker-composer.yml na raiz de seu projeto com o conteúdo abaixo:

web:
 image: fbraz3/lnmp
 volumes:
 - ./:/app/public/
 ports:
 - "127.0.0.1:80:80"
 - "127.0.0.1:3306:3306"

E depois rodar o comando:

docker-compose up -d

A aplicação estará acessível em http://localhost/ e o PHPMyAdmin em http://localhost/pma/ simples assim.

Já está pré-configurado e com todos os grants necessários uma base de dados com o nome de “app” (sem as aspas) para uso na aplicação.

Como uso essa imagem nos meus projetos venho sempre aprimorando ela, então o changelog vai ficar sempre disponível em https://hub.docker.com/r/fbraz3/lnmp/

 

criando proxy através do ssh

Eu uso muito esta técnica para efetuar testes em sistemas simulando acesso vindo de redes externas.

Esta dica funciona com qualquer servidor ssh que não possua bloqueios na porta 80 e 443. Logo também é possível o uso em servidores compartilhados!

Pra quem usa linux, é muit fácil, basta executar o comando abaixo no terminal e configurar o navegador para acesso a internet via proxy socks na porta determinada no comando

syntaxe:

ssh -Nn -D PORTA USUARIO@SERVIDOR

exemplo:

ssh -Nn -D 4050 [email protected]

No exemplo acima, basta configurar o navegador para acesso via proxy socks5 na porta 4050

API para obter informações de geolocalização de um IP

O site http://ipinfo.io/ disponibiliza uma API pública e gratuita (até 1000 requisições/dia) para consulta de geolocalização.

O funcionamento é bem simples, basta fazer uma requisição usando file_get_contents(), curl ou o que mais a imaginação desejar para o endreço http://ipinfo.io/XXX.XXX.XXX.XXX/json o retorno é em json então basta usar algum json parser pra trabalhar com os dados.

Exemplo:

curl ipinfo.io/8.8.8.8/geo
{
  "ip": "8.8.8.8",
  "loc": "37.385999999999996,-122.0838",
  "city": "Mountain View",
  "region": "California",
  "country": "US",
}

Dica do Giuseppe

Certificado SSL gratuito

Pra quem quer contratar um certificado SSL e não quer gastar grana.
https://www.startssl.com/

OBS: O certificado gratuito (level1) não permite o uso em sites de ecommerce, para este tipo de site eles possuem o level2 que é US$ 59,90 a cada dois anos, porém o certificado é emitido para *.dominio (wildcard) que é um preço que ta valendo a pena. =)

Autenticação ADSL Brasil Telecom e OI Velox grátis sem provedor

Nos dados de configuração do seu aparelho ADSL, configure com os seguintes dados de acesso:

A principal forma:

Login: [email protected]
Senha: qualquer senha que contenha 8 dígitos

Outras contas, opcionais caso a do senado não funcione por algum motivo:

@ac.unisul.br
@orangenet.com.br
@mma.gov.br
@wireshark.com.br
@netkey.com.br
@pr.gov.br
@fozdoiguacu.pr.gov.br
@serpro.gov.br
@tc.df.gov.br
@caixa.gov.br
@planejamento.gov.br
@ms.gov.br

** Lembre-se, coloque qualquercoisa antes do @ e na senha coloque qualquer uma que contenha 8 dígitos.

OBS: Testado na OI.