Inicialmente este blog foi criado para armazenar algumas dicas e links de UNIX/Linux, OpenVMS, linguagem C, Assembly, TCP/IP e nerdezas afins. No entanto devido ao autor ter abandonado o seu plano de ser um super hacker e dominar o mundo (devido esposa, família, filhos, trabalho), a partir de 2012 este blog tem um tipo de nerdeza mais light (Android, Linux, RetroPie (retrogames), produtividade, e por aí vai). Estas dicas raramente serão criações minhas.

Mostrando postagens com marcador java. Mostrar todas as postagens
Mostrando postagens com marcador java. Mostrar todas as postagens

quinta-feira, 1 de outubro de 2009

NetBeans com jeito de vim

Essa dica foi tirada das googladas da vida. Quando comecei a engatinhar no java eu lia o Deitel (Java Como Programar, 6 edição) e ele encorajava a não utilização de um IDE para aprender a linguagem. E eu fiz isso muito feliz da vida, segui usando o meu amado vim.

Posteriormente, fui experimentar o Eclipse. Fiquei empolgado com todas as facilidades e tudo mais, porém ficava muito irritado de não poder editar um texto (código-fonte) com a mesma agilidade com que faço no vim. Comecei a pesquisar alguma maneira de simular o comportamento do vim no Eclipse e eis que caio numa plugin para NetBeans que faz exatamente isso. Depois disso não fiquei mais em dúvida de qual IDE utilizar.

Foi batido o martelo quando descobri isso: http://jvi.sourceforge.net/. É um plugin para o NetBeans que deixa o editor com jeitão de vim. Sim!!! Um sonho realizado. Substituição de textos, busca, as teclas já manjadas e todos aquelas facilidades para programar (já comentei isso em outro post)... Não quero outra vida! Se um dia bolarem algo desse tipo no Eclipse eu posso até pensar em experimentá-lo novamente, mas até lá eu sou fã do NetBeans desde criancinha!

Segue como fazer essa maravilha funcionar:

1. Vá em http://jvi.sourceforge.net/, procure a parte de download e baixe a versão mais recente do jVi.
2. Extraia o arquivo zipado em algum canto.
3. No NetBeans vá em Ferramentas > Plug-ins. Na janelinha que vai abrir vá na aba Baixados, em seguida clique no botão Adicionar plug-ins.
4. Navegue até o local onde foram descompactados os arquivos, selecione os arquivos com extensão .nbm e clique em Abrir.
5. Certifique-se de que "jVi KeyBindings" e "jVi Core" estejam marcados e clique em Instalar.
6. Prossiga com o wizard e seja feliz!

quinta-feira, 24 de setembro de 2009

Dicas soltas de NetBeans

Vi estas dicas lendo alguns tutoriais no próprio site www.netbeans.org.

  • auto-formatação do código: Alt-Shift-F.
  • escrever System.out.println(""); rapidamente: digitar sout e teclar Tab.

    Outros atalhos em Ajuda > Cartão de atalhos de teclado. Quando descobri isso desisti de postar novas dicas aqui. :P~

  • quarta-feira, 23 de setembro de 2009

    engenharia reversa em java

    Para quem tem o .class mas não tem o .java, aí vai um mirror para baixar o Java Decompiler. Muito útil e pequenino! ;-)

    http://www.varaneckas.com/jad

    Depois vai no Jude, importa os .java e, voi-lá!, podemos montar o diagrama de classes.

    terça-feira, 8 de setembro de 2009

    gerando números aleatórios - java

    Em um post anterior (gerando números aleatórios) eu fiz uma função para gerar números aleatórios na linguagem C. Agora aí vai uma versão java fortemente inspirada na maneira que faço no post mencionado.

    O que eu queria fazer era um bobo jogo de dados. No lançamento de um dado ele me retornaria um valor aleatório entre 1 e 6, inclusive. Aí vai a implementação da classe Dado.


    import java.util.Random;

    public class Dado {
            private int valorDaFace;
            private static int seed = 0;

            public int getValorDaFace() {
                    return valorDaFace;
            }

            public void lançar() {
                    Random r = new Random(System.currentTimeMillis() + seed++);

                    valorDaFace = 1 + r.nextInt(6);
            } // fim de lançar()

    } // fim da classe Dado


    O atributo seed é para evitar que quando dois dados sejam lançados um seguido do outro, o resultado seja o mesmo. Em outras palavras, o método System.currentTimeMillis() se chamado muito próximo um do outro, pode retornar o mesmo valor, e isso faria Random gerar o mesmo número. O seed sempre diferente contorna esse problema.

    terça-feira, 28 de outubro de 2008

    aprendendo java: métodos úteis para manipulação de arrays

    Iniciando a série "lembretes úteis para quem está aprendendo Java". Esta dica foi obtida no livro "Core Java 2 - Volume I: Fundamentos".

    Para copiar o conteúdo de um array para outro, pode-se usar o método arraycopy da classe System. a sintaxe é a seguinte:

    System.arraycopy(from, fromIndex, to, toIndex, count);

    As variáveis from e to devem ser Object. E como sabemos, todo array em java É UM Object (ou seja, herda os campos e métodos da classe Object).

    Traduzindo para o bom português: copie os "count" elementos de "from", começando em "fromIndex" e vá armazenando em "to" a partir de "toIndex".

    Exemplo de utilização do método arraycopy:


    public class teste {
      public static void main(String args[]) {
        int[] smallPrimes = {2, 3, 5, 7, 11, 13};
        int[] luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};

        System.arraycopy(smallPrimes, 2, luckyNumbers, 3, 4);

        for(int i = 0; i < luckyNumbers.length; i++)
          System.out.println(i +": "+ luckyNumbers[i]);

      } // final de main
    } // final da classe teste



    A saída deste programa será:

    0: 1001
    1: 1002
    2: 1003
    3: 5
    4: 7
    5: 11
    6: 13


    A simples ordenação de um array pode ser feita através do método sort da classe java.util.Arrays. Para ordenar basta fazer o seguinte (luckyNumbers é um array de inteiros):

    Arrays.sort(luckyNumbers);

    Reza a lenda que este método usa o QuickSort.


    Outros métodos úteis para manipulação de arrays (todos da classe java.util.Arrays):

  • static int binarySearch(type[] a, type v)
    usa o algoritmo de busca binária para buscar o valor v dentro do array a. Se econtrado, seu índice é retornado. Do contrário é retornado um valor negativo r; o valor -r - 1 é o ponto em que v deverá ser inserido para manter o array a ordenado.
    Parâmetros:
    a: um array ORDENADO do tipo int, long, short, char, byte, float ou double.
    v: um valor do mesmo tipo que os elementos de a.

  • static void fill(type[] a, type v)
    atribui o valor v a todos os elementos do array a.

  • quarta-feira, 8 de outubro de 2008

    maneira Deitel de checar data

    Essa é mais uma dica da série "como é que eu não tinha pensado nisso antes?". Trata-se de uma maneira super-simples de checar a validade de uma data. Vi isso no livro "Java: Como Programar", sexta edição, do Deitel. Aí vai...

    - ano: pode ser qualquer inteiro não negativo.
    - mês: inteiro dentro do intervalo [1,12].
    - dia: aí vai o algoritmo em C, levando em consideração que o mês e ano são válidos.


    int checarDia(int dia, int mes, int ano) {
       /* aqui está a simplicidade do algoritmo:
       * cada elemento deste array é o maior dia do mês cujo número
       * é o índice do elemento, exceto o elemento 0
       */
       int diaPorMes[] = { 0, 31, 28, 31, 30, 31, 30
       31, 31, 30, 31, 30, 31, 30 };

       /* veja que coisa mágica! */
       if(dia > 0 && dia <= diaPorMes[mes])
         return dia;

       /* cuidando do danadinho do ano bissexto */
       if(mes == 2 && dia == 29 && (ano % 400 == 0 || (ano % 4 == 0 && ano % 100 != 0)))
         return dia;

       /* se não for uma data válida, retornamos o dia primeiro */
         return 1;
    }


    Me lembro de um dia fazer um exercício de programação que pedia para validar se a data que o usuário entrou era válida, fiz o código usando switch-case e alguns ifs...

    Ver essa solução usando um simples array chega a dar raiva! Raiva por não ter pensado nisso de primeira.

    tags