Postagens

Linux - Transferência de arquivos utilizando sftp

Existe dois protocolos de transferência comumente usados no ssh, RCP (implementado pelo scp) e o SFTP. Hoje vamos falar um pouco de um programa muito útil do linux, o sftp. Para quem já utilizou o protocolo ftp (de transferência de dados) está ai uma opção muito interessante. Vamos utilizar como plataforma o console do linux e a transferência de exemplo será entre duas máquinas com sistema operacional Linux. Primeiramente temos que saber em qual máquina a conexão será estabelecida. Isto se traduz em saber o endereço, login e senha da máquina. Tendo estas infos em mãos, podemos digitar na shell $ sftp login@endereco ou como um melhor exemplo: $ sftp usuario1@200.200.00.0001 o endereço, neste caso, é o ip da máquina que se quer conectar Após inserir a senha solicitada você estará conectado. A partir deste momento temos de ter em mente que estamos em um "ambiente duplo", ou seja, o sftp nos deixa com a possibilidade de operar comandos tanto no computador local ...

Linux - Utilizando atalhos de sequência de comandos com alias

Uma técnica muito interessante para quem quer automatizar alguns comandos no linux é utilizar o "alias", algo como um apelido para uma sequência de comandos. A vantagem do "alias" é que você não precisa utilizar de shell script para fazer seus atalhos ou sequência de comandos. $ alias Lista todos os alias atuais no sistema $ alias nome="sequencia de comandos" cria um novo alias Um exemplo de alias útil é listar a quantidade de arquivos no diretório atual. O comando para fazer isto seria: $ ls | wc -l Porém podemos criar um atalho, por exemplo: $alias qtd="ls | wc -l" Pronto! Toda vez que digitarmos: $ qtd o Shell retornará a quantidade de arquivos (inclusive pastas) presentes no diretório atual. Porém quando vc fizer log out estes aliases sumirão. Para mante-los você deve editar o arquivo .bash_profile ou .bashrc com os mesmos para que sejam preservados. Este arquivo pode ser encontrado em /home/usuario.  Use sua cr...

Linux - Compactando e Descompactando com .zip

Quando trabalhamos, seja com Linux, seja com outro sistema operacional, uma das operações mais importantes na manipulação de arquivos é a compactação. Existem vários padrões (.gzip,.bzip2, etc) porém neste post vamos falar do padrão zip e como utiliza-lo na linha de comando Linux/Unix (Shell). São inúmeras as opções de compactação e descompactação porém vamos listar aqui as mais comuns e algumas que não são tão comuns mas não por isto menos úteis. Compactação normal de arquivos: $ zip   nome_do_novo_arquivo.zip   arquivo_1   arquivo_2   arquivo_n Compactação recursiva $ zip   -r   nome_do_novo_arquivo.zip   c aminho_do_diretorio Compacta todos os arquivos do diretório em que se está $ zip   -r   nome_do_novo_arquivo.zip   * Compacta os arquivos de um diretório mas sem a sua árvore de diretórios $ zip   -rj   nome_do_novo_arquivo.zip   caminho_do_diretorio Lista o conteúdo do arquivo zip $ unzip  ...

MySQL - TRUNCATE em tabelas com CONSTRAINT de chave estrangeira

Na fase de desenvolvimento e testes é muito comum alterar as propriedades de suas tabelas e preenche-las com informações.  Porém chega um momento que queremos resetar tudo para colocar nosso banco em produção e para isso é sempre bom dar um TRUNCATE nas tabelas, a fim de zera-las, tanto na questão dos dados quanto dos incrementadores (AUTO_INCREMENT).  Dependendo de como seu banco foi modelado podemos ver frustradas estas tentativas. No caso de tabelas com CONSTRAINTS nas chaves estrangeiras simplesmente o MySQL não vai obedecer ao seu comando TRUNCATE. Então o que fazer? Uma solução simples é setar a checagem das CONSTRAINTS para false, truncar a tabela e depois voltar a checagem.  O procedimento para isto é bem simeples: Execute uma query com o comando: "mysql> SET FOREIGN_KEY_CHECKS = 0;"  Execute TRUNCATE em suas tabelas  Execute uma query com o comando: "mysql> SET FOREIGN_KEY_CHECKS = 1;" Desta forma você consegue zerar suas tabelas...

MySQL - Usando HAVING para limitar queries com agrupamentos GROUP

Agrupamentos são incrivelmente uteis quando precisamos fazer somas ou contar itens de várias linhas de um DB. Apesar de muitas pessoas utilizarem a linguagem em que estão desenvolvendo sua aplicação para fazer este tipo de operação as queries dos bancos de dados são a forma mais eficiente de se fazer isto. Vamos supor que você tenha uma tabela como a que segue abaixo: Nome CPF Veiculo Antonio 240.400.462-00 Corsa Antonio 240.400.462-00 Vectra Pedro 798.455.105-74 Gol E necessitamos do total de veículos de cada CPF. Então teríamos um SELECT deste tipo: SELECT Nome,CPF,COUNT(CPF) AS Quantidade FROM veiculos GROUP BY CPF. E nosso resultado seria algo como Nome CPF Quantidade Antonio 240.400.462-00 2 Pedro 798.455.105-74 1 Mas e se nos interessasse  resultados que trouxessem apenas cpf's com mais de dois carros? É para isto que usamos HAVING. HAVIING é como um WHERE porém utilizado para limitar buscas em agrupamentos. No exemplo acima ...

Desafio SQL

Você consegue desenvolver um SELECT (MySQL) que converta a string de um campo VARCHAR no seguinte padrão: "UM TEXTO" para "Um Texto" "um texto" para "Um Texto" ou seja, transformar a primeira letra de uma  palavra em Maiúscula? Publicaremos aqui a melhor solução enviada.

Adotando padrões ao codificar em JavaScript

A algum tempo atras, JavaScript era considerado uma linguagem de terceira categoria, "vagabunda" que só servia para validar formulários. Porém hoje, apesar de ainda existirem, já são muito poucos os que acham isto, principalmente com o avanço da linguagem e seus usos. Ao contrário do que pensava-se antigamente, JavaScript não apenas valida formulários mas sua utilização vai desde a requisição assincrona de dados de servidor, API's de uma infinidade de serviços até o controle de vídeo e audio passando pelo desenvolvimento de jogos e aplicações para mobile. Mas o que talvez tenha dado fama ruim no passado foi, como diriamos, uma permissividade muito grande da linguagem, fazendo com que programadores que não se preocupassem com desempenho ou boas práticas fizessem "o diabo" com a mesma. Partindo deste pressuposto, vamos fazer as coisas bem feitas? O início de tudo é adotar padrões para que seu código possa ser lido de maneira clara e limpa, facilitando a manute...