Archive for agosto \30\-02:00 2012

Tips: Ferramentas de trabalho de um desenvolvedor

Posted on agosto 25, 2012. Filed under: Tips | Tags:, |

Introdução

Neste artigo vou procurar listar as principais ferramentas de trabalho que utilizo no meu dia a dia. Atualmente, tenho meu ambiente de trabalho criado em cima de um sistema operacional Windows 7. Já utilizei Linux como ambiente “primário” por muito tempo. Porém no momento, uso Windows devido à diversas circunstâncias do meu dia a dia. O meu trabalho inclui também administração de sistemas Linux, que faço remotamente, através de conexão ssh usando putty.

A maioria das ferramentas abaixo são software livre e todas são de uso gratuito.

Bem, vamos à lista das ferramentas:

  • Eclipse:

    Eclipse é a minha principal e preferida IDE de desenvolvimento. Torna meu trabalho mais eficiente. Uso para desenvolvimento em Java, e PHP através do Eclipse-pdt. Muitas IDE´s são baseados em Eclipse. (Zend Studio, Adobe Flash Builder, entre outras). Portanto, se você for desenvolver em Flex, provavelmente irá utilizar um IDE baseado em EClipse. Além disso, possui muitos plugin’s interessantes, entre eles, desenvolvimento de aplicativos para Smart TV (LG, Samsung). É possível também baixar versões para C e C++.

    http://www.eclipse.org/downloads/
    http://www.eclipse.org/projects/project.php?id=tools.pdt

  • vim:

    Utilizo muito o vim, tanto no Windows como no Linux. A versão GUI (Gráfica) é chamada de gvim e a versão usada no modo texto, simplesmente vim. Editor muito eficiente. Utilizo principalmente quando preciso programar scripts e aplicativos acessíveis em servidores remotos através de ssh. No Windows, para manipulação e formatação de textos, através do forte suporte de expressões regulares e da criação de funções próprias no editor. Difícil de aprender para os iniciantes, mas após dominado, economiza muito tempo. Para iniciar o aprendizado, aconselho a fazer um mini-curso interativo do vim, chamado vim-tutorial. O vim tutorial é distribuído junto com o pacote do aplicativo. No Windows, chama-se vimtutor.bat (Procurar no diretório de instalação) e no Linux, digitar vimtutor na linha de comando.

  • http://www.vim.org/download.php

  • PgAdmin:

    Melhor ferramenta para administradores e desenvolvedores de banco de dados PostgreSQL. Pode ser usada em Linux, Windows, Mac OSX, entre outros *nix.
    http://www.pgadmin.org/index.php

  • Mysql Workbench:

    Ferramenta completa para administradores e desenvolvedores de banco de dados MySQL. Perfeito para criar/executar queries SQL, alterar e criar tabelas, objetos de banco de dados (procedures, triggers, etc..). Inclui ferramenta para modelagem de dados extremamente rica em funções. Possível fazer engenharia reversa para criação do modelo de dados. Sincronizar modelo de dados com o banco, realizar comparações entre outras. Possui ferramenta exclusiva para administração do banco de dados também. (Logs, gerenciamento de usuários). Particularmente, utilizo mais a parte de modelagem de dados e da parte de desenvolvimento de queries. Normalmente a parte de administração do banco, gosto de fazer através da linha de comando.

    http://www.mysql.com/downloads/workbench/

  • Putty:

    Uso como terminal para acesso remoto à servidores Linux, através de protocolo SSH. Pode ser usado para telnet também e para testar portas abertas em servidores remotos. Muitas vezes, o telnet do seu Windows não esta instalado/habiltiado. Neste caso o putty também pode ajudar. Outra função muito útil do putty, é a configuração de tunel ssh. Quebra o galho muitas vezes essa função. O tunel ssh no putty é bem mais simples de configurar do que via linha de comando.

    http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

  • Winscp:

    Winscp é meu aplicativo para transferência de arquivos. Simples e eficiente. Utilizo tanto para protocolo SCP (cópia de arquivos através de ssh) e FTP. Como já sugere o nome, é um aplicativo somente para Windows.

    http://winscp.net/eng/download.php

  • Firefox

    Firefox é meu navegador preferido para testar e debugar aplicações web. Os principais complementos que utilizo são firebug, firephp, firecookie e LiveHttpHeaders. Do firebug, destaco a parte de inspeção de elementos, erros de javascript e o painel de Rede, onde é possível monitorar as informações das requisições HTTP, inclusive as requisições Ajax. O firephp, é possível o envio de mensagens do php (mensagens de erro e debug) para o console do firebug, ajudando principalmente a debugar requisições ajax. O firecookie permite a manipulação de cookies “ao vivo” durante a navegação no site. O complemento LiveHttpHeaders muito útil para analisar os cabeçalhos de requisições HTTP durante a navegação no site.

    http://www.mozilla.org/pt-BR/firefox/new/
    https://addons.mozilla.org/pt-BR/firefox/addon/firebug/
    http://www.firephp.org/
    https://addons.mozilla.org/pt-br/firefox/addon/firecookie/
    https://addons.mozilla.org/pt-br/firefox/addon/live-http-headers/

  • Gimp

    Fantástico manipulador de imagens. É Software Livre. Tem versões em diversas plataformas, inclusive Windows. Uso o gimp para operações básicas, como criar imagens transparentes, pequenos acabamentos e redimensionamento de imagens.

    http://www.gimp.org/downloads/
     

  • Vmware PLayer

    Player de máquinas virtuais. Utilizo no Windows. Uso para testar outros sistemas operacionais, subir ambientes de desenvolvimento, testar ferramentas de proxy / firewall, etc.

    http://www.vmware.com/products/player/

  • Thunderbird
    Meu leitor de E-mail preferido quando trabalho em estações Windows. Uma ótima alternativa ao Outlook. Pode ser usado no Linux também.
    http://www.mozilla.org/pt-BR/thunderbird/

 
 
 
Outras Ferramentas

Gostaria de destacar mais algumas ferramentas que considero importante: Skype, VirtualBox, PhpStorm, NetBeans, Google Docs, Chrome, TortoiseSvn, Notepad++ !

E você, quais ferramentas considera essenciais para o seu trabalho como desenvolvedor ?

Ler Post Completo | Make a Comment ( None so far )

Dicas de Programação para Objective-C / iOS 5

Posted on agosto 8, 2012. Filed under: Objective-C, Tips | Tags:, , , |

Introdução

Neste artigo separei algumas dicas de desenvolvimento para iOS 5. São dicas que me foram úteis durante o desenvolvimento de uma aplicação para Iphone. Espero que possam ser úteis para você também.

Manipulando Strings

  • Obtendo o tamanho de uma string
  •   NSString* string = @"Hello World";
      int tamanho = [string length];
    
  • Convertendo inteiro para String
  • [NSString stringWithFormat:@"%d",tamanho];
    
  • Concatenando Strings
  • NSString* string = @"Hello World";
    NSString* string2 = @"!";
    string = [string stringByAppendingString: @" Douglas"];
    string = [string stringByAppendingString: string2];
    

    A string final ficara com o valor:
    Hello World Douglas!

  • Substituição em Strings
  • NSString* string3 = [string stringByReplacingOccurrencesOfString:@"Hello World" withString:@"Ola Mundo"];
    

    A string final ficara com o valor:
    Ola Mundo Douglas!

  • Obtendo caracter de determinada posição
  • if([string3 characterAtIndex:0] == 'O') {
            // ok
    }
    

    O caracter na primeira posição será O

    Expressões Regulares

  • O código abaixo representa uma expressão regular responsável por fazer um matching em uma string. A condição retorna verdadeiro se o valor checado contém somente números:
  • NSString *regex1 = @"^[0-9]+$";
    NSPredicate *numberTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex1];
    if([numberTest evaluateWithObject:@"123456789"]) {
        myLabel.text = novoCpf;
    }
    

    O código acima entra dentro da condição, devido à string "123456789" conter somente números.

  • A expressão regular abaixo é usada para fazer uma substituição em string através de um determinado pattern. A operação irá remover de uma string tudo aquilo que não for número.
  • NSString* cpf = @"111.111.111-11";
    NSError *error = NULL;
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^0-9]" options:NSRegularExpressionCaseInsensitive error:&error];
    NSString *novoCpf = [regex stringByReplacingMatchesInString:cpf options:0 range:NSMakeRange(0, [cpf length]) withTemplate:@""];
        
    myLabel.text = novoCpf;
    

    A string novoCpf conterá apenas números. (De 111.111.111-11 para 11111111111)

    Escondendo/Habilitando elementos

  • Esconder qualquer objeto da tela é bem simples. Basta setar a propriedade alpha do elemento para 0. Caso queira que o elemento volte a ficar visivel, bastar setar o alpha para 1
  • // escondendo elementos na tela
    MyProgressbar.alpha = 0;
    MyAlert.alpha = 0;
    MyButton.alpha = 0;
    MyLabel.alpha = 0;
    
    // mantendo elemento visivel
    MyProgressbar.alpha = 1;
    ...
    

    Atualizando elementos da tela dentro de loop

    Ao atualizar algum elemento da tela dentro de um loop (Label, Barra de Progresso, …), a atualização no objeto será refletido somente após à finalização do loop. Para que o elemento seja atualizado imediatamente, e não somente ao final do loop, é necessário incluir a seguinte linha, logo após à instrução que modifica o elemento:

    [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantPast]];
    

    Essa funcionalidade é ideal para contadores e barras de progresso. Segue abaixo um exemplo mais detalhado.

    for(int i = 0; i < 100; i++) {
            myLabel.text = [NSString stringWithFormat:@"%d",i];
            usleep(5000);
            [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantPast]];
    }
    
    Ler Post Completo | Make a Comment ( None so far )

Liked it here?
Why not try sites on the blogroll...

%d blogueiros gostam disto: