Abrir o Finder na pasta atual do Terminal

Comando:

open .

Habilitar Disco Externo NTFS no Mac OS X Yosemite

Informações retiradas de http://josebarbosa.com.br/.

Será necessário baixar três aplicações (no link acima você encontra os arquivos para download):

1) OSXFuse

2) NTFS-3G

3) Fuse-Wait

Após baixar os pacotes, instale-os nesta ordem. Caso seja solicitado o reinício do sistema, não clique no botão para reiniciá-lo, apenas feche o instalador. Apenas após a instalação dos três aplicativos, aí sim, reinicie o sistema e verifique seu disco rígido NTFS: ele aparecerá disponível e você poderá fazer operações de leitura, escrita, alteração e exclusão de arquivos.

Converter um File para array de byte e, um array de byte para File

Para converter um File para array de bytes utilizamos a classe ByteArrayOutputStream. Esta classe implementa um fluxo de saída em que os dados são gravados em um array de byte. O buffer aumenta conforme os dados vão sendo escritos. Os dados podem ser recuperados usando os métodos toByteArray() e toString().

File file = new File("java.pdf");

FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
   for (int readNum; (readNum = fis.read(buf)) != -1;) {
      bos.write(buf, 0, readNum); //no doubt here is 0
   }
} catch (IOException ex) {
   Logger.getLogger(genJpeg.class.getName()).
      log(Level.SEVERE, null, ex);
}
byte[] bytes = bos.toByteArray();

Para converter um array de byte para um File utilizamos a classe FileOutputStream.

File someFile = new File("java2.pdf");
FileOutputStream fos = new FileOutputStream(someFile);
fos.write(bytes);
fos.flush();
fos.close();

Fonte: http://www.programcreek.com/2009/02/java-convert-a-file-to-byte-array-then-convert-byte-array-to-a-file/

Relatório PDF com Código de Barras do JasperReports

Ao exportar um relatório, do ireport/jasperreports, diretamente para um arquivo PDF, do sistema operacional Linux, sabe-se que os estilos de fonte (negrito, itálico, entre outros) não serão aplicados caso a biblioteca jasperreports-fonts não seja adicionada ao classpath.

Se o relatório, neste contexto, possuir código de barras (barbecue) também, os jars das bibliotecas não podem ser compactados juntos com o jar principal. A adição das classes em um jar único gerará a seguinte exception em tempo de execução "No components bundle registered for namespace "http://jasperreports.sourceforge.net/jasperreports/components".

Compactando pastas no Linux usando Gzip

Comando:

tar -zcf nome.tar.gz NOME_DA_PASTA

 

-z: filtrar o pacote através do gzip
-c: cria um novo arquivo
-f: usar arquivo de dados ou dispositivo ARQUIVO

MAC OS: Capturar tela

Texto retirado de: http://www.quaddro.com.br/blog/dicas-mac/dica-mac-como-capturar-tela-printscreen-screenshot.

Por padrão as capturas de telas são salvas como uma imagem diretamente na Mesa (Desktop) do seu mac.

Vejamos, então, algumas formas de se tirar uma foto da tela (printscreen ou screenshot no Mac).
Parar tirar uma screenshot geral da sua tela (o que seria a mesma coisa que apertar o Printscreen no Windows), basta pressionar o atalho command + shift + 3:

Para tirar uma screenshot de uma área delimitada, por exemplo um pedaço de uma imagem ou de um menu da tela, o atalho é command + shift + 4. Depois clicamos e arrastamos para definir o que será “fotografado”:

Porém nem sempre você começou a arrastar o curso da posição certa, ou então quer definir o tamanho da imagem antes de efetivamente tirar a foto. Para isso existem atalhos depois da ativação do recurso.

Travar X ou Y: ENQUANTO você está arrastando e definindo a área, se você pressionar shift irá travar a largura ou altura enquanto define o tamanho. Sabe quando a altura está certa e só falta acertar a largura, mas aí você mexe e perde a altura que estava certa?! O uso do shift nessa hora assegura que não teremos problemas. Ele libera apenas a primeira coordenada que você mover. Então se manter pressionado o shift e só mover o cursor para o lado a altura estará travada, e vice versa.

Redimensionar a partir do centro: ENQUANTO você está arrastando o cursor para definir a área de captura, mantendo pressionada a tecla option você fará com que o redimensionamento da tela seja em função do centro e não do canto oposto.

Mover a área de captura: ENQUANTO você está arrastando o cursor para definir a área de captura, mantendo pressionada a tecla barra de espaço você poderá mover a área de captura sem alterar seu tamanho. É super útil quando você quer primeiro definir uma área de captura exata, para depois posicionar e disparar a “foto” em si.

Para tirar uma screenshot de uma janela de programa, usamos o mesmo atalho anterior (command + shift +4), porém ao invés de clicar e arrastar para definir a área, basta posicionar o cursor sobre a janela desejada e pressionar a barra de espaço, isso irá gerar uma imagem contendo apenas a janela em questão. O mais legal é que além da imagem ser transparente nos cantos arredondados, ela usa o sombreado padrão das janelas do Mac.

Para concluir existe um atalho que joga a imagem capturada na área de transferência, para ser colada em algum programa específico. Imagine que você quer capturar um pedaço da tela para colar diretamente no Adobe Photoshop, por exemplo.

O final do atalho depende do que você quer, se for a tela inteira o atalho termina com 3, se for um recorte de uma área o atalho termina com 4.

Pressionando command + control + shift + 3 você tira uma foto da tela inteira, mas ao invés de salvar em disco a imagem está na área de transferência. Basta ir em algum programa e pressionar command + V para colar a imagem que foi capturada.

Varargs Java – Número de parâmetros variáveis no método

Disponível deste a versão 5 do Java, varargs permite fazer com que um método de uma classe receba parâmetros variáveis. Por exemplo, seu método pode receber 1 inteiro ou vários inteiros. Nas versões anteriores ao Java 5, você teria que criar um método que recebesse um array de inteiros ou então criar dois métodos:

class Varargs1 {
    public void metodoTeste(int a) { 
         //a implementação tratará um único int  
    }
 public void metodoTeste(int[] a) {  
        //a implementação tratará o array  
    }  
}

 

Com varargs a solução passou a ser mais elegante. Repare no exemplo abaixo que você utilizará o tipo acompanhado de reticiências (…) e depois o nome da variável, como mostra o exemplo:

public class Estatistica {
    public float media(int... numeros){
        float soma = 0;
        for(int num: numeros)
            soma += num;
        return soma/numeros.length;
    }
    public static void main(String[] args) {
        Estatistica est = new Estatistica();
        System.out.println( est.media(1,2,3) );
        System.out.println( est.media(0,1,2,3,4,5,6,7,8,9,10) );
        System.out.println( est.media(10,20,30) );
    }
}

ATENÇÃO: quando se combina o varargs com outros parâmetros num método, é imprescindível que a variável que use as reticiências fique como último parâmetro.

Exemplo retirado de: 
http://silveiraneto.net/2008/02/05/java-metodos-com-numero-variavel-de-parametros/

Criando um JDialog a partir de um simples JOptionPane

public class CreateDialogFromOptionPane {
   public static void main(final String[] args) {
      JFrame parent = new JFrame();
      JOptionPane optionPane = new JOptionPane(“Deseja continuar?”,
              JOptionPane.QUESTION_MESSAGE,  JOptionPane.YES_NO_OPTION);

      JDialog dialog = optionPane.createDialog(parent, “Título do JDialog”);
      dialog.setVisible(true);
   }
}

Retirado de: http://www.java2s.com/Tutorial/Java/CatalogJava.htm

Como descompactar arquivos zip, rar, tar.gz, bz2, tar.bz2 pelo terminal linux

Créditos: http://www.vivaolinux.com.br

Para descompactar estes formatos de arquivos os comandos são simples:

zip:
gunzip nomedoarquivo.zip

rar:
unrar x nomedoarquivo.rar

tar:
tar -xvf nomedoarquivo.tar

tar.gz:
tar -vzxf nomedoarquivo.tar.gz

bz2:
bunzip nomedoarquivo.bz2

tar.bz2:
tar -jxvf nomedoarquivo.tar.bz2

Java: Encontrar a próxima data pelo dia da semana

Partindo de uma data específica deseja-se saber qual é a próxima Quarta-feira por exemplo.
Podemos então criar um método que utilizará a classe Calendar do Java. Este método receberá dois parâmetros: o primeiro é a data a partir da qual se deseja obter a próxima em um determinado dia da semana; o segundo parâmetro é o dia da semana. Este método retorna a nova data encontrada.

public Date nextWeekDay (Date dtReference, int dayOfWeek){  
  
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(dtReference);  
  
         while ( calendar.get(Calendar.DAY_OF_WEEK) != dayOfWeek){  
                // incrementa em 1 dia
                calendar.add(Calendar.DAY_OF_MONTH,1);
         }  
  
         // ao sair do while, a data no calendar será a que queremos  
         return calendar.getTime();
}