Archive | Technical Stuff RSS feed for this section

IV Encontro de Comunicação Digital

Será realizado em João Pessoa nos dias 9 e 10 de dezembro o IV Encontro de Comunicação Digital – evento anual organizado por alunos do Instituto Federal de Educação, Ciência e Tecnologia da Paraíba – IFPB, de cunho científico e cultural, sem fins lucrativos, que visa a integração acadêmica, a caracterização e a promoção da atividade de Tecnologia da Informação e áreas afins, reunindo estudantes, professores, pesquisadores, profissionais e empresas da área.

Participarei como palestrante do evento, com o tema “Desenvolvimento de aplicações para redes sociais: Twitter”.

Será dada uma visão geral sobre o desenvolvimento de aplicações usando api’s de redes sociais; depois, será mostrado todo o processo de desenvolvimento de uma aplicação para o Twitter, utilizando a biblioteca open source TwitterTools – que facilita esse processo. No decorrer da palestra será mostrado o código e passo a passo da criação de uma aplicação do tipo “robô de reply”, que responde mentions recebidas automaticamente. Minha palestra está marcada para as 17:10 do dia 10/12 (sábado).

As inscrições estão sendo realizadas através do site oficial do evento: http://comunicacaodigital.info/ . A entrada é apenas 1kg de alimento – serão doados à casa da Criança com Câncer.

Url Rewriting – como tornar a estrutura de urls do seu site amigável e profissional

Há algumas semanas, um grande buzz foi gerado no Twitter depois que uma reportagem sobre fraudes na internet deu a entender que urls com a extensão .php seriam, em sua maioria, vírus. O “especialista em segurança” estava dando dicas para que as pessoas não clicassem em links suspeitos, e a forma que ele falou, com a edição que foi feita, deixou bem claro que “a maioria das páginas em php são vírus.” O acontecido se deu no Jornal Hoje, e o vídeo pode ser visto nesse link: http://www.youtube.com/watch?v=x9_qwgYrESg .

O que muitas pessoas podem não saber é que a linguagem PHP é a mais utilizada na WEB nos dias atuais. Pesquisas recentes indicam que ele é usado em 59% dos sites (contra 34% do ASP, que fica em segundo). Acontece que nem todo site que usa php precisa mostrar isso através das extensões .php. Existem técnicas para esconder a extensão dos arquivos; essas técnicas são geralmente usadas por questões de segurança e otimização para mecanismos de busca. Sites e CMSs profissionais (como o WordPress, usado aqui neste blog) não exibem suas extensões de arquivo, e a técnica mais utilizada para isso é Url Rewriting.

Para quem não conhece, a técnica de Url Rewriting funciona como uma reescrita de urls, um tipo de mascaramento que tem por objetivo tornar a url mais amigável e esconder as extensões dos arquivos, o que acaba tendo um aspecto de segurança também. Os servidores web e frameworks mais conhecidos implementam esse mecanismo, seja de maneira nativa ou através de módulos. No nosso caso, como estamos falando de PHP, estamos falando de Apache com mod_rewrite habilitado (a maioria dos servidores pagos e instalações padrão já vêm com esse módulo ativo).

Nesse post, você terá uma visão geral de como criar as regras do url rewriting em uma estrutura de site que utiliza essa técnica de maneira prática e inteligente, similar ao que é utilizado pelo WordPress.

mod_rewrite e o .htaccess

Antes de mais nada, é legal entender como funciona o esquema de url rewriting no apache. Precisamos estabelecer regras que devem ser colocadas no arquivo .htaccess, na raiz do diretório www (o arquivo .htaccess também pode vir em qualquer subdiretório, estabelecendo regras próprias para aquele diretório específico). As regras são definidas através de expressões regulares. A imagem abaixo explica como é feito o processamento após a requisição vinda do usuário:

 

a requisição

 

Vamos supor que temos o diretório www como a raiz do site meusite.com . Imagine que dentro dessa pasta www, nós temos o diretório “abc/def/ghi” (acessando via http, a url ficaria http://meusite.com/abc/def/ghi ). Mas gostaríamos que todos os arquivos dessa pasta fossem acessíveis através de um caminho diferente e mais simples: /xyz . Ou seja, ao invés de acessar pelo endereço http:/meusite.com/abc/def/ghi/arquivo.html, eu quero usar http://meusite.com/xyz/arquivo.html (onde o diretório /xyz na verdade não existe).

Nosso arquivo .htaccess ficaria assim:

RewriteEngine On

RewriteBase   /

RewriteRule  ^/xyz(.*) /abc/def/ghi$1

Para maiores detalhes sobre todas as regras possíveis, e o que cada item significa, é bom dar uma olhada na documentação do Apache sobre o mod_rewrite:  http://httpd.apache.org/docs/current/mod/mod_rewrite.html . Esse post aqui também tem umas dicas básicas muito boas: http://php.refulz.com/201105/url-rewriting-with-apache/ (ambos em inglês).

Passo 1 – .htaccess

Podemos criar várias regras no htaccess para nossos scripts, porém, existe uma maneira mais simples de trabalharmos com o url rewriting. Através de uma regra geral, podemos deixar o processamento a cargo de um script php, ao invés de encher o arquivo .htaccess de regras. Esse é o esquema utilizado pelo WordPress. Abaixo está o conteúdo de um arquivo .htaccess padrão utilizado por essa plataforma:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Basicamente, o que esse .htaccess especifica é que: toda requisição, tendo como diretório base o “/”, que não for um arquivo nem um diretório (que jogariam um erro 404 normalmente, pois não existem), deve ser repassada para o script /index.php, que ficará responsável por tratar essas requisições da maneira que quiser. Ou seja, no arquivo index.php deve haver um processamento para obter a requisição feita e decidir o que deve ser chamado – um típico controlador.

É bom lembrar que diretórios existentes não serão afetados, já que a regra do url rewriting só irá redirecionar para o index quando não existir um arquivo ou diretório no caminho especificado.

Passo 2 – Controlador php e estrutura de diretórios

Utilizando o .htaccess exemplificado acima, o script index.php será responsável por definir o que deve ser chamado – faremos isso com uso de includes. Fica a seu critério a organização do seu framework, porém irei fazer aqui uma sugestão, que deixa o diretório de arquivos bem organizado e torna o desenvolvimento bem mais fácil. Primeiro, vamos dar uma olhada no arquivo index.php, que é o controlador do framework:

<?php
/* no config.php você pode iniciar sessão e conectar ao BD por exemplo */
require_once("includes/config.php");

$uri = $_SERVER['REQUEST_URI'];
//default = index
$pagina = "index";

if($uri != "/")
{
      /* faz o parsing do url rewriting */

        /* retira parametros de url*/
	$t = explode('?',$uri);
	$path = explode("/",$t[0]);

	$module = strtolower($path[1]);
	/* checagem extra para a existência de um diretório com esse nome */
	if(!is_dir($module))
	{
          /*verifica se existe o módulo requisitado*/
		if(is_dir("modules/$module"))
			$pagina = $module."/index";
		else if(is_file("modules/$module.php"))
			$pagina = $module;
		else
            /* caso não exista, incluir o módulo de 'not found' */
			$pagina = "404";

	}
}

require_once("modules/$pagina.php");

Como vocês podem ver, a lógica é bem simples. É importante verificar se o arquivo existe antes de tentar incluí-lo – verificamos se existe aquele “módulo”. Uma requisição feita para “/contato“, por exemplo, resultará na checagem/inclusão do arquivo “modules/contato/index.php” OU “modules/contato.php“.

E assim, para cada página que você quiser acrescentar, pode criar um arquivo ou diretório dentro da pasta “modules” (você poderia usar diretórios para organizar melhor quando houvesse “submódulos”). Dentro desse arquivo você ainda pode criar regras (um switch já serve) para testar um segundo,  terceiro nível de requisição (por exemplo: “/contato/orcamento” ). Nesse caso, a página que será incluída continuará sendo a “contato.php“, dentro dela é que você irá checar se existe um “submódulo”, o que pode ser feito facilmente com regex ou verificando o array $path. Nossa estrutura de diretórios/arquivos estaria mais ou menos assim:

/
/includes
   /includes/config.php
/modules
   /contato.php
   /404.php
/.htaccess
/index.php

Bom, acredito que a partir daí já dá pra desenvolver a idéia né? Adicionando a engine de templates Smarty, você já deixa seu framework mais elaborado e modulado, facilitando ainda mais a criação de novas páginas / módulos. Nesse caso, use os arquivos de módulo para obter as informações necessárias, e dar o display no template.

É importante ter um módulo “404″ para chamar quando não encontrar a página que o usuário pediu, já que não haverá mais o erro 404 padrão pois estamos pegando tudo o que “não existe” e tentando mapear no nosso framework. Nesse arquivo você deve exibir alguma mensagem indicando que o conteúdo não foi encontrado.

Palestra no Ensol – desenvolvimento de apps para o Twitter em PHP

Hoje palestrei no V Ensol – a palestra foi sobre desenvolvimento de aplicativos em PHP para o Twitter, com o auxílio da biblioteca open source TwitterTools. Abaixo seguem os slides da palestra :) pra quem não pôde ir, ou pra quem foi e quer dar uma estudada a mais no tema.

 

Quero aprender PHP (ou outra linguagem web) sozinho, e agora? O passo a passo

elePHPant, seu lindo!

Esse post foi idealizado para aquelas pessoas que estão pretendendo aprender PHP ou até mesmo outra linguagem de programação, por conta própria, assim como eu aprendi. É possível, é viável, de graça e só depende de você.

Muitas pessoas me pedem uma indicação de curso ou livro, ou me perguntam como eu aprendi. Eu aprendi sozinha, com material da internet, praticando principalmente através de exemplos e com muita “tentativa-e-erro”. Já fazem mais ou menos 08 anos que comecei, e apesar de ter acumulado bastante experiência, sempre há algo novo para aprender. Por isso, acredito que nenhum livro pode superar o aprendizado obtido com a prática, ou mesmo reunir todo o conteúdo necessário pra que uma pessoa aprenda “TUDO” sobre uma linguagem de programação. Se fosse possível, seria inviável, e ninguém conseguiria ler o livro todo e assimilar 100% do conteúdo! Algumas coisas a gente só aprende mesmo quebrando a cabeça com os erros.

1. Isso é MESMO sua área?

Muitas pessoas são atraídas para o mundinho das ciências exatas por conta de alguma influência que não necessariamente indica uma real “aptidão” para a área. Você não precisa ser fera em matemática, física e química… mas é imprescindível ter um bom pensamento lógico, e isso a gente não aprende estudando “lógica e algoritmos”. É algo que você tem, ou não tem, e pode exercitar com a prática.

Se você não sabe fazer uma regra de três, amigo(a), infelizmente temo que essa não é a sua área. Como eu já disse, não precisa ser fera em matemática, eu mesma passo vergonha em se tratando de fórmulas e cálculos, mas a boa e velha regra de três junto a um bom pensamento lógico resolvem a maior parte dos seus problemas no dia-a-dia de programação web. A pequena parte restante você encontra na WEB, e para isso você precisa ser desenrolado, saber pesquisar – isso faz parte da próxima dica.

2. Saber pesquisar, e saber ler textos em inglês

O Google pode resolver a maioria dos seus problemas, mas é preciso saber pesquisar. E é muito importante ter em mente que a maioria dos conteúdos relacionados a programação, independente da linguagem, estarão em inglês. Geralmente, os MELHORES conteúdos, e mais recentes, vão estar em inglês, então você tem que deixar a preguiça de lado e desenrolar a leitura nessa língua. Use o Google Translator, que por mais que não seja perfeito, ainda é a melhor opção em tradutores online. E procure estudar mesmo, porque se você vai trabalhar nessa área e planeja ser um bom profissional, o inglês a nível de leitura é essencial.

Dica: Um excelente site onde você pode aprender inglês e outras línguas, de forma gratuita e com uma ótima didática, é o Livemocha.com .

Outra dica: para buscar resultados mais recentes (o que é de grande importância quando lidamos com resolução de erros) acrescente na busca o termo inurl:2011 (o ano atual, no caso…). Assim você encontra geralmente posts em blogs que foram criados no ano atual, o que lhe dá mais chances de encontrar uma resolução para o seu problema de acordo com a versão atual das ferramentas que está usando. Também procure ser bem específico na sua busca.

3. Montando um ambiente de desenvolvimento

Para testar seus scripts php, você precisa de um servidor Apache com PHP rodando, localmente ou em um servidor remoto ao qual você tenha acesso via FTP. Localmente é bem mais rápido para testar, mas você precisa instalar o servidor. Existem soluções bem facilitadas para todos os sistemas operacionais. Você também vai precisar de um editor para facilitar o processo de escrita de códigos.

4. Material de estudo

Para começar, é interessante ter um material de base. Pode ser um livro bem simples, só pra você começar, fazer um ‘Hello World’ e aprender algumas noções. Um livro dá uma orientação básica para quem está iniciando, dá um pouco mais de segurança, por isso acredito que é interessante. É complicado para mim indicar um livro, já que eu não conheço os livros, não os li, então não tenho como garantir; porém, pelas avaliações, você pode encontrar umas opções básicas em torno de 30 a 50 reais, que parecem ser o ideal para quem está começando. Fazendo uma pesquisa rápida no Submarino, achei interessante o “Fundamentos de PHP“, tem avaliações positivas de pessoas que leram, e custa módicos 30 reais.

Mas isso também é opcional. É possível encontrar conteúdo muito bom na internet. Minhas recomendações para que você possa iniciar os estudos são:

Antes de mais nada (o básico do básico)

  • Como funciona a internet – se você vai desenvolver para a WEB, precisa entender como se dá o processo de acessar um site, o que acontece, que tecnologias estão envolvidas. Esse infográfico (em inglês) explica direitinho o processo de comunicação na internet: http://www.makeuseof.com/tag/internet-works-infographic/
  • Como funciona um servidor WEB – o servidor web é responsavel por fornecer as páginas que você acessa na web. As linguagens de programação server-side (php, asp, python) são executadas no lado do servidor, e já retornam tudo “mastigadinho” para o browser, enquanto que liguagens client-side (javascript) são executadas no próprio browser. O servidor web utilizado pelo PHP é o APACHE, e nesse link tem uma explicação simples do seu funcionamento: http://www.aocubo.tecnologia.ws/?p=35

PHP

  • Manual oficial do PHP - Esse é o manual oficial disponibilizado no site php.net (esse site tem que ser a sua referência sempre.. adicione nos favoritos!). Está disponível também em português. http://www.php.net/manual/pt_BR/
  • Referência das funções – Material essencial, também do site oficial php.net. Todas as funções do PHP, com exemplos e comentários dos usuários. Basta buscar pelo nome da função, no canto superior do site -> http://php.net
  • Practical PHP Programming – Um manual/guia muito bom, bem completo mesmo, em inglês. http://www.tuxradar.com/practicalphp

Complementos

Outros links interessantes (tudo em inglês) podem ser encontrados aqui: http://www.smashingapps.com/2011/06/02/45-useful-yet-free-ebooks-for-designers-and-developers.html .

5. A prática é a melhor professora

Não adianta nada você ler todo esse material e não praticar, ou testar uma vez e pronto. Você tem que ir fundo, repetir os testes com pequenas modificações, assim você vai compreendendo melhor o funcionamento das funções e tudo o mais. Pense em coisas práticas, tenha em mente um projeto simples para ir desenvolvendo, essa é a melhor maneira de encontrar motivação para seus estudos e práticas. Depois você vai complicando mais, aos poucos. A boa e velha “agenda” é um bom aplicativo para aprender o básico de banco de dados e formulários. Ou pense em outra coisa que não seja demasiado complicada, e coloque em prática.

É importante ter os pés no chão, e começar com coisas simples. As coisas mais básicas que você precisa aprender e praticar são:

  • Diferenças do GET e POST
  • Formulários – enviar e receber as informações postadas em um formulário
  • Banco de dados – adicionar, remover, modificar
  • Upload de imagens e arquivos
  • Sessões

A partir daí já é possível criar projetinhos simples, com autenticação de usuário inclusive.

6. Estruturada X Orientada a Objetos

O PHP suporta orientação a objetos, embora não seja totalmente dependente desse conceito, como o Java.

A programação estruturada é mais fácil para quem está começando. Dependendo do material utilizado para estudo, você pode já aprender em cima do conceito de OO, mas geralmente é ensinado primeiro o básico, a sintaxe da linguagem e a utilização de forma estruturada. Depois é vista a parte de OO, e aí você pode utilizar classes para organizar melhor seu projeto.

7. Desesperar jamais

Talento é paciência sem fim. – Gustave Flaubert

Erros vão aparecer, mensagens de erro são comuns e você precisa aprender a lidar com elas. Geralmente as mensagens indicam o número da linha onde está contido o erro, erros de sintaxe são muito comuns pra quem está começando. Também podem acontecer outros tipos de erros, mais ligados à lógica da programação, e geralmente para resolver esses você vai precisar fazer uma busca no Google.

No mais, é preciso ter paciência e perseverança, praticar um pouquinho todos os dias, e como dito anteriormente, é legal ter um projeto em mente, assim você se estimula a ir aprendendo as coisas que precisa para colocar seu projeto em prática.

Boa Sorte!

Slides da palestra sobre o TweetAuditor no StartPB – 10/06/2011

Aconteceu hoje durante todo o dia o StartPB – evento sobre Start Ups paraibanas realizado no Instituto Federal de Educação, Ciência e Tecnologia da Paraíba – IFPB.

Fui convidada para palestrar sobre o TweetAuditor; apesar de não ser uma empresa e de não gerar lucro, o projeto tem uma boa repercussão e não deixa de ser um case muito interessante de empreendedorismo. É a primeira vez que falo assim sobre o projeto, contando a história dos bastidores, e alguns segredinhos do desenvolvimento da ferramenta. A palestra foi às 09h, os presentes participaram bastante com perguntas, fiquei muito satisfeita com o resultado e a repercussão que teve, tanto “offline” quanto online.

Se você perdeu, calma! Aqui está sua chance de descobrir um pouco mais sobre o TweetAuditor. Abaixo, os slides da palestra. Se gostou, compartilhe ;-)

View more presentations from Erika Heidi.


Top 20 Temas para WordPress profissionais, bonitos e gratuitos

Neste post procurei reunir um apanhado de temas profissionais para wordpress, todos gratuitos e muito bonitos. E o melhor é que estes não são tão manjados como alguns que a gente encontra por aí, que todo mundo usa. Dei preferência aos que nunca vi ninguém usando e eu mesma nunca usei. Enjoy! Os temas estão divididos em categorias. Clique em “Mais” para ler o post inteiro.

Read More…

Novo Projeto: TweetVote – enquetes e pesquisas via Twitter

Está no ar – lançado ontem, 21/12/2010 – o meu mais novo projeto, TweetVote: http://tweetvote.in . Com o TweetVote, você pode criar enquetes / pesquisas via Twitter, com respostas de múltipla escolha ou respostas abertas.

A idéia surgiu com base em fazer um “Formspring ao contrário”, onde você pergunta e os seus seguidores respondem. Ideal para pesquisas de opinião, e também para concursos culturais, visando premiar as respostas mais criativas recebidas. Enfim, uma boa ferramenta para marketing de pesquisa.

Como opções avançadas da enquete / pesquisa, você pode limitar as respostas apenas para seus seguidores, manter os resultados privados, e limitar 1 resposta por usuário (por padrão, os usuários podem responder 1 vez por dia enquanto a enquete estiver aberta).

O site está disponível em inglês e português. O serviço é gratuito.

Desenvolvimento de aplicativos para Android no Ubuntu: primeiros passos e app Hello World

Desde maio de 2010,  o número de celulares usando Android comprovadamente já ultrapassa a quantidade de aparelhos rodando IOS (Iphones, Ipods, Ipads), e esses números vêm crescendo cada vez mais. Isso era de se esperar, considerando-se que o Android pertence ao Google, uma empresa que nunca fica para trás mediante concorrência, não é verdade? Dessa maneira, investir no desenvolvimento de aplicativos para a plataforma Android é o novo MUST do momento, e quem pegar o barco agora colherá um excelente retorno num futuro próximo. O quanto antes você entrar na onda, melhor.

Diferentemente do IOS, o Android não exige aplicativos “assinados”, não há licenças a serem pagas ou um sistema operacional específico a ser utilizado no desenvolvimento. Ou seja: qualquer pessoa pode desenvolver aplicativos para Android. Para colocá-los à venda na Android Market o desenvolvedor paga uma taxa única de 25 dólares, o que é bem mais acessível do que os salgados 100 dólares anuais que a Apple cobra de seus desenvolvedores IOS.

Nesse artigo da IDG Now! você pode entender porque a Android Market tem tudo para tomar o posto da Apple Store num futuro não muito distante: http://idgnow.uol.com.br/telecom/2010/10/26/artigo-5-razoes-para-a-android-market-superar-a-apple-store/ .

Movida por esses fatores, comecei meus estudos para desenvolver aplicativos para Android. Começo agora a postar alguns artigos relacionados a esse assunto, para ajudar quem está começando como eu.

A primeira coisa a fazer, obviamente, é preparar o seu ambiente para o desenvolvimento das aplicações. Nesse post, vou mostrar passo a passo essa preparação num Ubuntu 10.10. Antes de mais nada, é preciso deixar claro que a linguagem utilizada para o des. de apps Android é Java, por isso o ideal é que você tenha algum conhecimento básico da linguagem, e de preferência que já tenha utilizado anteriormente o Eclipse. Eu não sou programadora Java, mas mesmo assim consegui me aventurar nesse mundo porque já paguei uma cadeira de Java básico na faculdade. “O resto” você encontra na net e o Eclipse te ajuda a resolver, vá por mim!

E inclusive, está rolando um concurso que vai premiar com 20 mil reais o brasileiro que desenvolver a aplicação mais inovadora, confira detalhes aqui: http://www.androidbrasil.com/dev/477-atencao-desenvolvedor-android-quer-ganhar-r-20-mil

Então vamos lá:

1. Instalação do Eclipse

O Eclipse é um dos editores mais famosos do mundo Java, e por isso mesmo é o padrão usado pelo projeto Android, com plugins específicos para ele. A instalação é muito fácil, através do Ubuntu Software Center, que já vai instalar também a JDK e deixar tudo prontinho para o Java na sua máquina.

Acesse Applications -> Ubuntu Software Center. Faça a busca por “Eclipse”, e é só clicar no botão “install”.

2. Baixe e instale a SDK do Android

Agora é hora de baixar a SDK do Android. Acesse esse link: http://developer.android.com/sdk/index.html e faça download da versão para linux.

Após fazer o download, abra o pacote tgz e decompacte-o no seu home. Acesse a pasta gerada (no meu caso, android-sdk-linux_x86 ), entre na pasta “tools”, e execute o script “android”.

Vá na aba “Available Packages”, marque o checkbox ao lado do link do repositório. Uma série de opções irá aparecer para que você selecione o que você quer baixar. Você precisa selecionar pelo menos 1 SDK (eu marquei apenas a mais recente). Você pode baixar as outras versões depois, de maneira que possa testar sua aplicação em versões anteriores do Android.

Para maiores informações, acesse http://developer.android.com/sdk/installing.html .

3. Instalando o plugin do Eclipse

Depois que finalizar o download e e instalação da api, você já pode abrir o Eclipse. Acesse o menu “Help” -> “Install new Software” (ou Software Updates, caso sua versão seja a Ganymede).

Clique no botão “Add”. No campo “Name”, coloque “Android plugin”, e o no campo “Location” coloque o seguinte endereço: https://dl-ssl.google.com/android/eclipse/ . Dê ok.

Na lista de “available softwares” deverá aparecer um checkbox com a opção “Developer Tools”, que você deve marcar. Depois disso, vá clicando em “next” para realizar a instalação dos componentes. Você será perguntado para aceitar os termos de utilização, marque que aceita e finalize. O download vai começar, e depois que finalizar você deve reiniciar o Eclipse.

Agora, é hora de configurar o plugin. Acesse o menu “Window” -> “Preferences”. Selecione “Android” no menu esquerdo. Você deve indicar a localização do diretório da SDK que você instalou (no seu home, lembra?). Clique no botão “browser” e selecione o diretório onde você descompactou a sdk logo de início.

Clique em “Apply”, depois “OK”, e pronto.

4. Criando um Android Virtual Device (AVD)

No eclipse, acesse o menu “Window” -> Android SDK and AVD Manager . Selecione “Virtual Devices” no menu esquerdo. Clique em “New“, e a janela para criação da AVD vai aparecer. Defina o nome, e escolha o “target“, que é a versão do sdk que você vai usar (ou seja, a versão do Android que essa VM vai simular). Você pode ignorar os outros campos. Clique em “Create AVD” , e seu ambiente estará pronto.

5. Criando a aplicação “Hello World”

Agora que o seu ambiente de desenvolvimento está setado, é hora de testá-lo com uma aplicação “Hello World”. Comece criando o projeto no Eclipse. Clique em “File -> New -> Project”. Selecione “Android Project” e clique em “Next”. Preencha as informações pedidas com os seguintes dados:

  • Project name: HelloAndroid
  • Application name: Hello, Android
  • Package name: com.example.helloandroid
  • Create Activity: HelloAndroid

Selecione também o “Build Target” e Clique em “Finish”.

Agora, edite o arquivo HelloAndroid.java, que vai estar em: HelloAndroid -> src -> com.example.helloandroid . Esse código é o básico do básico, só para você testar o Hello World. Deverá ficar assim:

package com.example.helloandroid;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       TextView tv = new TextView(this);
       tv.setText("Hello, Android");
       setContentView(tv);
   }
}

Depois de salvar o arquivo, é hora de rodar. Vá em “Run -> Run”, e selecione “Android App”. O Eclipse irá então rodar a aplicação no simulador, e depois de dar boot no Android (pode levar alguns minutos), você deverá ver o seguinte resultado:

Você pode encontrar tutoriais simples para aprendizado no site oficial do Android: http://developer.android.com/resources/tutorials/hello-world.html .

Lançamento TweetAuditor – monitore seu Twitter facilmente

TweetAuditor, meu mais recente projeto, desenvolvido totalmente em cima da biblioteca open source TwitterTools, acaba de ser lançado.

A versão beta do TweetAuditor foi lançada ontem (19/10/2010) à tarde, divulgada apenas dentro do Twitter, e em poucas horas depois já estava sendo utilizada por centenas de usuários.

Com o TweetAuditor, você pode monitorar facilmente a sua rede Twitter, obtendo informações extremamente úteis e estatísticas acerca de: seguidores, amigos (quem você segue), retweets recebidos, mentions (citações) recebidas, sua atividade semanal e mensal, além de outras funcionalidades que ainda serão implementadas.

Uma das funcionalidades mais interessantes do TweetAuditor é conseguir monitorar quem te deu unfollow recentemente (coisa que ficou ainda mais difícil depois do lançamento do novo Twitter – saber quem deixou de te seguir).  No dia seguinte ao que você se cadastrou, já é possível acompanhar diariamente esses números com muita facilidade no site. Mesmo quem não utiliza o Twitter profissionalmente vai adorar acompanhar esses dados.

Outra ferramenta muito útil é a listagem de todos os usuários que você segue e não seguem você, e também de quem segue você, e você não segue.

Quem utiliza a interface web do Twitter também sofre para acompanhar todos os retweets recebidos, e essa é outra opção que ficou um pouco mais complicada na nova interface do Twitter, segundo a opinião de várias pessoas. No TweetAuditor você acompanha seus tweets, mentions recebidas e retweets recebidos nos dias anteriores, tudo separado por data.

Tudo isso disponível em português por padrão, e também em inglês.

As funcionalidades adicionais que estão previstas ainda para esse mês de Outubro incluem uma versão mobile e mais gráficos de estatísticas comparativas. Também haverá futuramente a opção de criar um “watchpoint” em uma data específica, de maneira que você poderá marcar com tags dias em que fez algo diferente, como o lançamento de uma campanha, para monitorar o retorno recebido.

As atualizações são feitas automaticamente, de maneira que você não é obrigado a acessar o site todos os dias para que os dados sejam computados. Porém, se você mudar a senha do seu Twitter, não esqueça de acessar o site para atualizar suas chaves de acesso, caso contrário não será possível obter suas informações na atualização diária, o que resultará em dados zerados nas estatísticas.

Sigam o Twitter oficial do TweetAuditor e fiquem por dentro de todas as atualizações e novas funcionalidades do sistema: @TweetAuditor

Este é um projeto 100% brasileiro, com muito orgulho!

Update janeiro/2011: O TweetAuditor já está na versão 2.0, com visual novo e novas funcionalidades. :)

Manual do programador inexperiente

Hoje é o Dia do Programador. A data é comemorada no 256º dia do ano, já que “256″ é o número emblemático que simboliza a quantidade de valores distintos que podem ser representados com um byte de oito bits.

A cada ano dezenas, centenas de recém formados programadores entram no mercado, com pouca ou quase nenhuma experiência, para concorrerem com profissionais mais experientes, nem sempre formados.

É verdade que no quesito programação, a experiência vale mais que o diploma. Por melhor que um curso seja, não haverá tempo de ensinar tudo, e esse é o tipo de coisa que se aprende na prática. Após muitas tentativas, erros e acertos, um programador adquire a experiência necessária para poder dizer com segurança que pode resolver uma demanda, ou que isso não será possível na linguagem que ele domina, e terão de partir para uma alternativa. A experiência produz códigos mais limpos e organizados, com soluções otimizadas.

Mas enfim: você é inexperiente; acabou de sair da faculdade, ou simplesmente quer aprender a programar por conta própria. O que você deve saber, e por onde começar?

Se você já escolheu a linguagem que quer trabalhar, pode pular direto para o item 2.

1. Escolher uma linguagem.

Nas faculdades, somos obrigados a cursar cadeiras de lógica e algoritmos, e depois temos de aprender uma linguagem que é definida por eles como a básica. Mas quem vai definir a linguagem que será a sua especialidade, é você.

Para tanto, você precisará levar em consideração vários fatores: facilidade de aprendizado; facilidade de montar o ambiente de desenvolvimento; oportunidades no mercado de trabalho; possibilidades que a linguagem oferece; material disponível na internet gratuitamente.

Não existe melhor ou pior linguagem, porque tudo depende do uso que se deseja fazer, da finalidade, do tempo que você espera dedicar, e do retorno que você espera financeiramente.

Depois de estudar bem as possibilidades e decidir,  você pode partir para o próximo passo. As minhas humildes sugestões onde vejo um bom futuro são: Python, Ruby on Rails e o bom e velho PHP. Vendo pelo conjunto, eu continuo achando PHP a linguagem mais fácil tanto para montagem do ambiente, em questão de preços de servidor de hospedagem e facilidade de aprendizagem. Em compensação, o Python é a tendência pro futuro, e o mercado ainda não tem tantos programadores Python. O perigo é você não encontrar facilmente um emprego pra começar, pois a demanda é sempre maior pra PHP.

Obs: se você não tem experiência nenhuma com qualquer tipo de linguagem de programação, não tem idéia do que seja um IF ou WHILE, pode ser útil estudar algoritmos antes de começar pra valer. Mas não é obrigatório; algumas pessoas tem mais facilidade com a lógica da programação, e entendem o processo ao ver os exemplos da linguagem.

2. Montagem do ambiente de desenvolvimento no seu pc

Seja qual for a linguagem que você deseja trabalhar, precisará de um ambiente de desenvolvimento no seu computador, para começar a testar os códigos. Programação só se aprende na prática. Procure tutoriais de instalação dos programas necessários na internet e prepare a sua máquina.

No caso do PHP, você pode baixar o Wamp (para Windows), que já vem com PHP + Apache + MySQL + PhpMyAdmin. Se você usar Linux (Ubuntu), veja nesse artigo como preparar um bom ambiente de desenvolvimento para PHP .

3. Procure documentação

É sempre bom ter o site oficial de linguagem, com a referência completa de suas funções, aberto. Nenhum programador decora todas as funções da linguagem, a consulta é sempre necessária, nem que seja para relembrar os argumentos que devem ser passados para uma função.

Para começar, é importante também um manual ou tutorial, que irá guiá-lo pelos primeiros passos. Exemplos práticos são sempre a melhor maneira de assimilar, mas não adianta só olhar; é preciso copiar e repetir na sua máquina, ver o funcionamento, modificar, personalizar. Assim você fixa o que está estudando.

Depois de se acostumar bem com a sintaxe da linguagem, é hora de partir para o próximo passo.

4. Pratique criando coisas novas

Mais uma vez eu repito: programação se aprende na prática. Você precisa praticar bastante, criando coisas diferentes, personalizando o código, de preferência para criar algo útil. Criar um sistema / programinha / site com utilidade é ver o resultado do seu estudo, diferente de quando estamos só testando pequenos trechos de código.

5. Estágio – programação na vida real

Nada melhor que um estágio na área para ir ganhando experiência em casos reais. Programar para si mesmo é mais fácil, claro! Quando temos de resolver uma demanda, com prazo determinado, as coisas são diferentes. Isso é programação na vida real, coisa que a gente só aprende no estágio ou emprego.

Agora, o TopFive do bom programador:

  1. Seja organizado no seu código: utilize identação para aninhar blocos, tente usar um padrão para as variáveis. Limpe seu código sempre que possível, porque em programação (assim como em várias outras áreas), menos é mais.
  2. Deixe comentários quando necessário. Não precisa comentar linha por linha.
  3. Leia códigos de outras pessoas, linha por linha para compreender como foi feito. É muito bom compreender o raciocínio de outros programadores mais experientes, porque cada pessoa pensa de um jeito diferente para resolver um problema. Às vezes a solução é incrivelmente simples, mas a gente complica, muitas vezes por falta de experiência mesmo.
  4. Pratique sempre, de preferência todos os dias. A melhor maneira de fazer isso é criando um projeto real para manter e ir melhorando pouco a pouco, com novas implementações. Além de estar aprendendo, você irá gerar um resultado que poderá trazer retorno financeiro e/ou profissional.
  5. Compartilhe o conhecimento! Ajude quem está começando, afinal você já passou por isso um dia e sabe como é difícil.

Espero que essas dicas ajudem alguém. Abraços!