quarta-feira, 30 de julho de 2014

Ferramentas para o Shell


   Muitas vezes no dia precisamos criar uma pasta e em seguida entrar nesta pasta para realização de algum procedimento dentro desta, que seria algo como:

-> mkdir pasta

-> cd pasta


É possível criar funções( comandos ) personalizados modificando o arquivo ~/.bashrc que é o arquivo que é executando quando é iniciada uma nova instancia do terminal.

Para isso adicione as seguinte linhas neste arquivo:

 function mkcd
 {
   local final_dir=""
   for i in $@
   do  
     [ ! -d "$i" ] && mkdir -pv "$i"
     final_dir="$i"
   done
   cd "$final_dir"
 }



Uso:

-> mkcd nova/pasta pasta_final



No final você estará na pasta "pasta_final".

OBS: nesta função foi utilizado o parâmetro -p do comando mkdir que cria toda a raiz de pasta quando a pasta "pai" não existir. Ex.: medir -p a/b/c/d/e/f  // caso estas pastas não existam , todas serão criadas.

quarta-feira, 22 de janeiro de 2014

Ordenamento por Data no DataTables


Logo do DataTables plugin jQuery


O DataTables é hoje uma dos plugin jQuery mas utilizado por resolver ordenamento e paginação de forma automática. Mas em qualquer ferramenta que tente fazer ordenamento sem reflection, ocorre um problema que é a identificação automática do tipo de dados da coluna ou lista ordenada.
    Isto ser torna um problema no seguinte caso:
  • 01/02/2015
  • 02/01/2015
  • 03/12/2014
Na lista acima as datas estão ordenadas como "string". 
Por padrão, o plugin do dataTables reconhece automáticamente os tipos "string", "numeric", e, "date" , mas todos em formato americano.

Para burlar este problema, é possível criar um tipo de dado extendendo a api do jquery (Clique em Result para ver o resultado ):




segunda-feira, 23 de dezembro de 2013

Script para implementação de "lixeira" no linux ( terminal )

Quando se utiliza o terminal o linux, pode acontecer alguns desastres, como por exemplo o uso do comando rm que remove o arquivo informado permanentemente. Por isso criei o script abaixo que move o arquivo ou pasta informado para uma pasta temporária, e so remove permanentemente apos 30 dias.

 Para disponibilizar o comando em qualquer local do terminal, crie o arquivo com o nome "del.sh", dê permissão de execução com o comando "chmod +x del.sh" e crie um link dentro da pasta "/usr/local/bin" com o seguinte comando: "ln -s /home/pasta/onde/esta/o/arquivo/del.sh del"
Apos seguir todos estes passos, você ja poderá utilizar o comando:
del arquivo.txt

trash="$HOME/.trash"
if [ ! -d "$HOME/.trash" ]; then 
  mkdir "$HOME/.trash"
fi

clear(){
  files="`find $trash -mtime +30`"
  for f in files
  do
    echo "$f"
  done
}

if [ "$1" == "-ls" ]; then
  ls -ag $trash
  exit 0
else
 if [ "$1" ==  "-c" ]; then
      clear
  exit 0
 else
  if [ "$1" == "-s" ]; then
   echo -e "Current size of trash folder: `du -m $trash | tail -1 | sed 's/\([0-9]\+\).*/\1/g'`Mb"
   exit 0
  else
   if [ "$1" == "-h" ]; then 
    echo -e "Usage [del [files] or [options]]"
    echo -e "-ls -> List files in trash folder \n-c -> Remove files deletes after 30 days\n-s -> Show current size of trash folder"
    exit 0
   fi
  fi
 fi
fi

delete(){
if [ -d "$1" ]; then 
  mv -R "$1" $trash
else
 if [ -f "$1" ]; then
   mv "$1" $trash
     else
    echo "File or directory not exists: [$1]"
    exit 1
 fi
fi
}

for item in $@
do
  delete $item
done
# "du -m" -> exibe o espaço utilizado em Mb
# "tail -1" -> retorna a ultima linha
# "sed 'sed 's/\([0-9]\+\).*/\1/g'" -> Substitui todos o conteúdo da linha pelo número 
size="`du -m $trash | tail -1 | sed 's/\([0-9]\+\).*/\1/g'`"

echo -e "Current size of Trash folder: $size Mb"


domingo, 17 de novembro de 2013

Auto incremento no banco de dados Derby ( javaDb )

   O auto incremento no derby é um pouco diferente do padrão dos outros banco de dados.
Segue um exemplo que pode ajudar a criar as tabelas de seu novo banco.




CREATE TABLE students
(
  id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
name VARCHAR(24) NOT NULL,
address VARCHAR(1024),
CONSTRAINT primary_key PRIMARY KEY (id)
) ;

segunda-feira, 10 de junho de 2013

Conectando-se ao banco Derby

Apache Derby é um sistema de gerenciamento de banco de dados relacional Java que pode ser embutido em programas Java e que possui quase todos os recursos dos grandes SGDBS.


História:
Apache Derby originou-se na Cloudscape Inc, uma start-up de Oakland, California fundada em 1996 para desenvolver tecnologia Java para banco de dados. A primeira versão do motor do banco de dados, foi nomeada JBMS, em 1997. Posteriormente foi renomeada para Cloudscape e novas versões eram desenvolvidas a cada seis meses.
Em 1999 a Informix Software, Inc., comprou a Cloudscape, Inc. Em 2001 a IBM adquiriu os ativos da Informix Software, incluindo a Cloudscape. O banco de dados foi registrado como IBM Cloudscape e suas versões continuaram a ser produzidas, principalmente focando o uso em aplicações embarcadas usando os produtos Java da IBM.
Em agosto de 2004 a IBM contribuiu com o código para a Apache Software Foundation como Derby, um projecto incubado mantido pelo projeto Apache DB. Em julho de 2005 o projeto Derby foi promovido na incubadora do Apache e agora está sendo desenvolvido como um sub projeto do DB, um projeto de alto nível na Apache. Anteriormente à promoção do Derby na incubação, a Sun uniu-se ao projeto Derby com a intenção de usar o Derby como um componente de seus produtos,3 e com o lançamento do Java 6 em dezembro de 2006, a Sun incluiu o Derby no JDK renomeado como Java DB.
Em março de 2008 a IBM anunciou a remoção do produto Cloudscape do mercado, mas continuará contribuindo com o projeto Apache Derby.
Fonte: (wikipedia)

Você pode fazer o download do arquivo jar do Derby aqui

  private static void createConnection()
    {
        try
        {
            Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
       
            conn = DriverManager.getConnection("jdbc:derby:myDB;create=true;"); 
        }
        catch (Exception except)
        {
            except.printStackTrace();
        }
    }

quarta-feira, 29 de maio de 2013

Os melhores serviços cloud gratuítos ( armazenamento na web )

Vocês ja deve ter passa do pela situação de perder arquivos no computador que pifou, ou mandou formatar sem fazer backup, ou ainda precisar de uma arquivo que esta no seu pc de casa, a solução para este e outros problemas é o armazenamento em nuvem ( cloud ).

Usando as 12 opções de armazenamento em nuvem pública seguintes, você poderia, teoricamente, chegar 112GB de armazenamento em nuvem livre. Mas nem todos os serviços são os mesmos. Alguns têm seus prós e contras relacionados a como um limite de tamanho de arquivo que pode ser carregado, o preço do espaço adicional de armazenamento em nuvem, integrações com diversos sistemas operacionais e aplicativos móveis, e, claro, as precauções de segurança.



Veja a comparação dos principais com opção gratuita e escolha o melhor para sua situação, ou melhor, escolha como usar todos ao mesmo tempo :D .

Empresa Capacidade (Grátis) Armazenamento extra Descrição
5G 20GB, $10/year; 50GB, $25/year; 100GB, $50/year; 200GB, $100/year; 1TB, $500/year. Cloud Music player: 250 imported songs free; 250,000 imported songs, $24.99/year. Músicas compradas e baixadas da Amazon são automaticamente armazenadas na Amazon Cloud Drive de graça. O serviço também faz o backup de tablets Kindle da marca. Desde seu lançamento em março de 2011, o serviço foi alvo de críticas por suas políticas de acesso. Veja mais aqui .
5G 10GB (15GB total with 5GB free), $20/year; 50GB, $100/year Automaticamente sincroniza arquivos, fotos, vídeos e até mesmo guias de navegação na Web através de dispositivos Apple. Apps como o Keynote, Pages e Numbers são utilizados para a gestão / sincronização de documentos. A Apple possui uma criptografia mínima de 128 bits AES para iCloud
5G 25GB for $9.99/mês; 50GB, $19.99/mês. Business account: $15/usuário/mês, 3 a 500 usuários; Fornece SSL 256-bit AES criptografia protegido por firewall. Para negócios e contas da empresa, os arquivos são armazenados criptografados com redundância automática. Limites de tamanho de arquivo: 100MB para as contas gratuitas, 1GB para contas pessoais pagas; edições negócios têm limite de tamanho de arquivo de 2 GB. Box permite a edição de documentos na nuvem por meio de aplicativos de terceiros, como o Zoho.
2G contas pró até100GB, $9.99/mês ou $99/ano,  500GB por $49.99/mês ou $499/ano. Conta para grupos, 1TB por $795/ano para 5 usuários, $125 por usuário adicional. Fornece SSL 256-bit AES criptografia protegido por firewall. Para negócios e contas da empresa, os arquivos são armazenados criptografados com redundância automática. Limites de tamanho de arquivo: 100MB para as contas gratuitas, 1GB para contas pessoais pagas; edições negócios têm limite de tamanho de arquivo de 2 GB. Box permite a edição de documentos na nuvem por meio de aplicativos de terceiros, como o Zoho.
7G
ilimitados para documentos no formado do googleDrive
25GB, $2.49/mês; 100GB, $4.99/mês; 200GB, $9.99/mês; 1TB, $49.99/mês; 16TB, $799.99/mês Google Drive permite aos usuários armazenar muito mais arquivos em sua nuvem de graça se os arquivos são o Google Docs. Em muitos casos, os ficheiros podem ser convertidos para este formato, simplesmente através de cópia para um documento do Google. Tem alguns limites de arquivo, incluindo 2MB de arquivos convertidos, ou 10MB para arquivos não-Google Doc. Planilhas têm um limite de 20 MB ou 256 colunas. Arquivos do Google Doc pode ser editado no aplicativo, mas aplicativos de terceiros são necessários para editar arquivos Doc não do Google, como arquivos do Microsoft Word
50G

Edição pró 250GB por $4.50/mês, e Business edition com 1TB por $49/mês. Startup MediaFire oferece uma grande quantidade de armazenamento em nuvem, mas ele só tem Windows, OS X e os aplicativos de desktop Linux, sem aplicativos móveis ainda. Por US $ 1.50/mês, os usuários podem obter 50GB de armazenamento, sem anúncios, através da edição de "pessoal". MediaFire comercializa seu pacote de distribuição de conteúdo fortemente. Pro Edition permite 500GB/mês de distribuição de conteúdo através de 500 links de uma só vez por dia; enterprise edition permite 4TB/mês de distribuição com 5.000 links por dia. A versão gratuita tem limite de tamanho de arquivo de 200MB, enquanto que pessoal tem um limite de tamanho de arquivo de 1GB. Pro tem um limite de tamanho de arquivo de 4 GB e de negócios tem limite de tamanho de arquivo individual de 10GB.
7G

20GB, $10/ano;
 50GB, $25/ano; 100GB, $50/ano.
Microsoft SkyDrive, que tem uma interface no estilo do Windows 8, oferece aos usuários uma das maiores contas das principais ofertas de nuvem de armazenamento gratuito iniciais. Ele faz envios limite de 300MB de arquivos via navegador da Web e tem um limite de 2GB por meio do aplicativo de desktop, que pode ser executado no Windows e OS X. Ele também suporta iOS, Android e aplicativos Windows Phone. Ele inclui um "esqueci alguma coisa" recurso que permite que os usuários recuperem remotamente um arquivo no seu PC que não tenha enviado para a nuvem.
7G

100GB, $4.99/mês; 500GB, $20/mês ou $199/ano; 1TB, $35/mês ou $325/ano. MiMedia se intitula como sendo um repositório de backup e ferramenta de nuvem de acesso especificamente para a mídia, embora ele funcione também para outros documentos. O destaque deste serviço são os recurso para arquivos de áudio, como a opção de escutar as suas músicas online. MiMedia ainda não suporta Mac OS X. Ela tem iOS e Android apps.
2G

$10 por mês ou
$100 por ano para 100GB.
SpiderOak apresenta-se como a opção de armazenamento em nuvem pública seguro. Gozando de um "conhecimento zero" política, o programa de SpiderOak não armazena senhas dos clientes, e todos os dados do cliente são criptografados, tanto em transmissão e durante o armazenamento, usando hashes salgados e uma combinação de 2048 bits RSA e criptografia AES de 256 bits. Para os desenvolvedores da multidão, a empresa também começou a abertura da fonte parte do código usado para criar o produto. SpiderOak oferece pessoal, empresarial e sócio / versões de seu serviço de nuvem revendedor.
5G

30GB, $4.99/mês ou  $49.99/ano; 60GB, $9.99/mês ou $99.99/ano; 500GB, $39.99/mês ou $399.99/year. Business account com 100GB para três usuários por $29.99/month ou $299.99/ano. Até 32 GB de armazenamento adicional livre disponível se você recomendar outros que se inscreverem para o serviço. SugarSync tem aplicativos móveis disponíveis no iOS, Android, BlackBerry, Symbian e plataformas WinMobile.
até 10G

? Symform oferece, de longe, a maior quantidade de armazenamento potencialmente livres, mas há um problema. Sua nuvem pública usa espaço de armazenamento doados pelos usuários, ou seja, os dados criptografados de outros clientes serão armazenadas em seu sistema quando você contribui para a nuvem Symform. A quantidade de armazenamento de cada usuário recebe é baseado em quanto de armazenamento contribuem de volta para a rede de nuvem pública Symform. Assim, por exemplo, se você contribuir com 2 TB de armazenamento, você pode obter 1TB de armazenamento gratuito. Casos de uso comum para isso é em torno de recuperação de desastres e backup. Os clientes podem pagar para o armazenamento ao invés de contribuir para trás o excesso de espaço de armazenamento também. Symform criptografa arquivos usando 256-bit AES, em seguida, divide os arquivos armazenados na nuvem, em 64 blocos, que são distribuídos por toda a rede de cloud Symform de modo que há um único usuário tem acesso ao conjunto completo de dados criptografados de um cliente.
2G

50GB, $15/mês para edição pessoal. Syncplicity é de propriedade da EMC. Preços para a edição de negócios, que inclui controles de acesso centrais, começam em US $ 45/mês com preços diferenciados para até armazenamento ilimitado. Não há limite de tamanho de arquivo ou número de arquivos. Criptografia AES de 256-bit é usado em transmissão e em repouso.

terça-feira, 28 de maio de 2013

Executar comando em segundo plano


Existem situações onde precisamos iniciar um processo manualmente em segundo plano, como por exemplo, inicializar um servidor web. O problema é que o processo fica preso na tela do console nos impossibilitando de utilizar a mesma sessão, e o pior: quando o acesso é remoto ( ssh ) , e você não pode fechar o terminal para não encerrar o processo.
Uma das formas de resolver este problema é usando o "&" ao fim do comando (ainda não resolve para ssh)

edgard$ sleep 3&
[1] 16129

Sera exibido na tela o spid do processo e o console fica imediatamente livre para digitação, e após 3 segundos é impresso na tela a informação de que o processo foi finalizado.

[1]+  Exit 127                $ sleep 2


Outro problema é com o uso do acesso remoto (ssh) que quando fechamos a aplicação ( se for windows o put por exemplo) , processo é finalizado. Para resolver este problema, utilizaremos o aplicativo nohup.
Ex.:

nohup sleep 3&

Além de executar o processo em segundo plano, o nohup envia toda a saida (stdout) para o arquivo nohup.out que estará na pasta corrente.



profile for Edgard Leal at Stack Overflow, Q&A for professional and enthusiast programmers