domingo, 4 de dezembro de 2011

Começando com Android

Olá Pessoal, neste post veremos o básico para montar algo em Android.

Para seguir este tutorial você tem que ter na sua máquina.
  • Java SDK 5 ou 6 (nunca testei com o 7)
  • Android SDK
  • Eclipse 3.5 (Galileo) ou mais recente, a versão classic dele basta
  • Plugin ADT do Eclipse, plugin de android para eclipse

Caso não tenha nada disso sugiro dar olha olhada neste guia (em ingles) do próprio site do Android. Que aliás será seu maior aliado para desenvolvimento em Android.

Criando seu projeto

Em seu eclipse vá em File>New>Project..., selecione Android Project.





Em Project Name coloque OlaAndroid, clique em Next.




Agora você deve selecionar o Build Target de seu aplicativo, isto definirá a versão mínima que o seu aplicativo poderá ser executado.


Atualmente a mais de 90% dos aparelhos que existentes rodam na versão 2.2 (Froyo) ou superior, a escolha de qual será seu target é uma questão técnica. Existem algumas APIs que só estão disponíveis em versões mais recentes do Android. Um exemplo são os Live Wallpapers, os papéis de paredes animados, só foram introduzidos a partir da versão 2.1, então neste caso você não conseguiria usar um target do android 1.6 para criar Live Wallpapers.

Vale lembrar que apesar de o mais comum é utilizar o número das versões como 2.2, 2.3 ou 3.0 o mais correto no caso do Android é utilizar o API Level. Digo isto pois dentro de uma mesma versão a API pode ter sido mudada.
Por exemplo na versão 2.3 (conhecida também como Gingerbread) existem dois API Levels diferentes. A API Level 9 e 10.

Em developers.android.com você pode verificar as mudanças de cada API com mais detalhes. Neste link você pode ver as mudanças ocorridas na API 10.

Sim isto é bem confuso e se você não entendeu eu tentarei futuramente explicar melhor isto.
Neste projeto vamos escolher a 2.2.

Agora digite o nome do pacote run.nerd.talks.

Diálogo de novo projeto do Android


E aperte finish!

Rodando seu projeto no emulador



Clique com o botão direito em seu projeto selecione Run As > Android Application.



Aparecerá uma imagem avisando que você não possui um dispositivo, selecione Yes para criarmos um emulador do Android.




Na tela acima clique em new, de um nome para seu emulador, neste caso eu dei o nome de Froyo, target 2.2 - API Level 8 e o resto dos campos eu deixei no padrão.
Clique em Create AVD.



Feche as janelas novamente e tente executar o projeto de novo, desta vez o emulador iniciará automaticamente. Você verá algo como a tela abaixo durante um tempo, não se preocupe se demorar pois infelizmente o emulador é muito lento a boa notícia é que você não precisa inicia-lo toda vez que for testar seu aplicativo por isso deixe o aberto.

Emulador iniciando, não se preocupe ele é lerdo mesmo


Depois do emulador iniciar com sucesso ele vai automaticamente abrir seu aplicativo, você verá então algo como o seguinte.

Nosso Projeto rodando \o/


Alterando um pouco o código



Agora vamos dar uma olhada no código já que o próprio plugin do eclipse já se encarregou de criar o famoso Hello World para você.
A estrutura de diretórios no seu projeto deve estar algo como a imagem abaixo.



Vou explicar brevemente cada diretório
  • src: é onde você colocará todo seu código fonte Java
  • gen: este diretório você não precisará mexer, o próprio Eclipse+ADT se encarrega de gerar o arquivo R.Java nele contido. Explicarei mais adiante o seu conceito
  • bin: é o diretório onde o seu projeto compilado ficará
  • res: esse diretório é o diretório de resources, imagens, arquivos de localização, sons e layouts ficam dentro deste diretório


Vamos dar uma olhada no código do OlaAndroidActivity.java.
public class OlaAndroidActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

Perceba que a classe herda de Activity, uma Activity é um dos elementos mais importantes de um aplicativo Android. Cada activity geralmente representa uma tela que cobre toda a tela do telefone, mas também pode ser um popup que cobre parcialmente a tela.

Veja que nossa Activity OlaAndroid sobrescreve o método onCreate(), este método é um método de Callback da Activity. Os outros são, onRestart(), onStart(), onResume(), onPause(), onStop() e onDestroy(), nós como programadores não temos controle sobre quando esses métodos são chamados e nem podemos impedir que eles aconteçam, todo o ciclo de vida é controlado pelo sistema operacional.

Toda vez que você navega através de seu aplicativo, por exemplo quando você abre a lista de contatos de seu telefone uma activity é executada, quando você seleciona um contato e abre os detalhes dele outra activity é executada e a anterior fica "pausada" mas pode ser até destruída caso o sistema precise de memória.
É importante ter isso em mente ao criar suas Activities.

Na linha 5 veja que é o método equivalente da classe pai é chamado, é importante lembrar que o método da superclasse deve SEMPRE ser chamado antes que você execute qualquer código seu.

Na linha 6 há dois pontos importantes, primeiro está sendo definido qual é o arquivo de layout de sua activity e como parâmetro estamos usando a classe R, esta classe é gerada automaticamente pelo android e se encontra no diretório gen de seu projeto. O R representa todos os resources de seu projeto, desde os layouts até as músicas e os IDs que você declara para os elementos de seu layout você irá acessá-los através do R.
Neste caso estamos definindo que o nossa activity usará o layout main. Vá até o diretório res/layout/main.xml e abra-o.


No canto superior direito veja que tem dois select boxes, um está selecionado como any locale e outro como Android 3.0, mesmo nosso target sendo o 2.2 é preferível usar a renderização do 3.0 pois o preview é melhor que as versões antigas.

Esse editor é no estilo WYSIWYG mas eu particularmente não gosto muito dele, é interessante pois é possível ver os componentes já existentes.
O Android já tem um punhado de componentes prontos que facilitam bastante na hora de criar aplicativos.

Caso, como eu,  prefira criar os layouts digitando o xml na parte inferior clique na aba main.xml.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>


Sinto muito dar esta notícia, mas criar layouts em Android não é parecido com nada que eu ou possivelmente você conheça, mas te digo que não é um bicho de sete cabeças, é mais fácil que swing no Java por exemplo :).

Os elementos gráficos no Android são chamado de Views, a classe android.view.View é o elemento básico de componentes gráficos em Android, todas os objetos gráficos são uma subclasse de View

No exemplo atual temos duas views uma chamada LinearLayout e outra chamada TextView

Na linha 2 está a declaração do LinearLayout, LinearLayout é uma subclasse de ViewGroup como o nome sugere uma ViewGroup é um tipo especial de View que tem outras Views como seus "filhos".
Um LinearLayout vai ordenar seus filhos de maneira, pasmem, linear! Pode ser tanto na horizontal android:orientation="horizontal", ou vertical android:orientation="vertical".

Na linha 6 temos outra View agora do tipo TextView, veja que ela está declarada dentro do LinearLayout, um TextView quem diria serve para exibir textos no Android.

O texto a ser exibido por um TextView pode ser definido programaticamente ou descrito no próprio xml usando a propriedade android:text, no código gerado o valor definido é @string/hello, essa é a maneira do android para se fazer a referência para o arquivo de localização, vamos abri-lo segurando o Control (ou command se tiver no mac) e clicando sobre o texto @string/hello, ou se preferir ele está em /res/values/strings.xml.


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, OlaAndroidActivity!</string>
    <string name="app_name">OlaAndroid</string>
</resources>

Bom agora acho que fica um pouco mais claro como a macumba, digo mágica acontece. Vamos então ao ...

Mãos a obra! Hands to the work!


Abra novamente o arquivo main.xml

Primeiro vamos alterar o android:layout_width de fill_parent para wrap_content no TextView. Quando este parametro é atribuído com fill_parent a largura da view será igual a largura disponível no pai, se colocar wrap_content a largura será igual a largura do conteúdo da view.

Abaixo dessa TextView vamos adicionar uma View ao nosso Layout, coloque após o TextView um Button

<Button android:id="@+id/helloButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="linha ou coluna"/>

Seu arquivo final ficará assim.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    
    <Button android:id="@+id/helloButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="linha ou coluna"/>

</LinearLayout>


Rode o projeto e você vera ele assim.





Vamos alterar agora o android:orientation de vertical para horizontal e executar novamente o projeto, lembre-se não é necessário reiniciar o emulador




E agora seu botão foi colocado ao lado do texto.

Perceba que nosso botão possui um parametro id que está definido com "@+id/helloButton", nossa view agora possui um id helloButton que foi criado automaticamente no R de nosso projeto.

Abra novamente o OlaAndroidActivity.java, se quiser mais uma hotkey aperte [windows = control+shift+r] ou mac [command+shift+r] digite o nome do arquivo e de enter.

Vamos colocar um listener em nosso botão que vai alterar o texto do próprio botão. Sua activity ficará deve ficar como abaixo

private Button helloButton;
private int counter = 0;
 
@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main);
 
   helloButton = (Button) findViewById(R.id.helloButton);
   helloButton.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
         helloButton.setText("clicou "+counter++);
      }
   });
}

Na linha 9 primeiro precisamos da instância do botão que está em nosso layout, para isso usamos o método findViewById passando como parametro o id de nossa view, isso retornará a instância do objeto que está renderizado na tela.

Na linha 10 até a linha 14 implementamos um onClickListener que alterará o texto do botão mostrando um contador de quantas vezes o botão foi apertado

Após apertar o botão seu aplicativo deverá parecer algo com o que está abaixo.


Pronto agora você sabe algumas coisas básicas do Android e poderá se aventurar mais na plataforma, espero que com esse post seja possível ter um apanhado mais básico de como o Android funciona.

Ele acabou ficando maior que eu imaginava e ainda acho que falta muito para explicar, pretendo continuar com essa série de posts sobre android focando em temas mais específicos a partir de agora.

Os sites que mais utilizo como material de referencia e para aprender o Android são os seguintes:
developer.android.com
stackoverflow.com

O código fonte do projeto pode ser encontrado no git hub.
https://github.com/diegoy/OlaAndroid

Obrigado,  se tiverem dúvidas, sugestões de melhoria do post atual ou até temas para próximos posts me avise nos comentários.

Valeu!

segunda-feira, 21 de novembro de 2011

Hibernate para iniciantes

Pessoal, neste post vamos demonstrar os passos necessários para utilizar o Hibernate.

O Hibernate é um framework de ORM (Mapeamento objeto-relacional), basicamente é uma maneira de se mapear as tabelas de uma base de dados em objetos no seu programa.

Neste tutorial eu usei o MySQL como base de dados e o Maven para baixar as dependências do projeto, não entrarei em detalhes da instalação do MySQL, sobre o Maven você pode checar o post anterior caso tenha dúvidas.

Primeiramente abra o seu terminal navegue até o diretório onde deseja criar seu projeto e digite o seguinte.

mvn archetype:generate -DgroupId=com.blogspot.runnerdtalks.hibernatetutorial -DartifactId=HibernateTutorial -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Isso irá criar o esqueleto de um projeto Java, dentro do seu diretório HibernateTutorial que foi criado no comando acima você encontrará o seguinte



Agora abra o arquivo pom.xml e vamos adicionar as dependências do hibernate como no trecho abaixo.
<dependencies>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.16</version>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.4.2</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.18</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.3.0.SP1</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
   <artifactId>hibernate-annotations</artifactId>
    <version>3.4.0.GA</version>
    </dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.4.0.GA</version>
</dependency>
</dependencies>

Volte ao seu terminal de digita o seguinte:

mvn install
mvn eclipse:eclipse

O primeiro comando irá baixar as dependências e o segundo irá criar os arquivos necessários para transforma-lo em um projeto eclipse.

Abra seu Eclipse e vá em File>Import>Existing Projects into Workspace e de Next.
Clique em Browse e navegue até o diretório onde você mandou o Maven criar o seu projeto, e finalize a importação.


Se esta é a primeira vez que você usa o Maven para criar um projeto no Eclipse será necessário resolver alguns problemas no seu Build Path. 

Clique com o botão direito no projeto, e escolha Properties, escolha Java Build Path>Libraries>Add Variable>Configure Variables... > New...

Em Name coloque M2_REPO
Em Path deve ser o caminho do diretório onde o Maven baixa as dependências, isso varia dependendo do sistema operacional que você usa mas, em sistemas como o Linux e OSX é ~/.m2/repository para Windows fica em C:\Document and Settings\username\.m2 (pode variar dependendo da versão do Windows)

Dê ok em todos os diálogos que estavam abertos, caso seu projeto ainda de erros de compilação vá em Projects>Clean... para forçar a recompilação

No diretório src/res o arquivo hibernate.cfg.xml, esse xml é o responsável por configurar para o hibernate o caminho do banco de dados, usuário senha e etc.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
 <session-factory>

  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  <property name="hibernate.connection.password">tutorial</property>
  <property name="hibernate.connection.username">username</property>
  <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernateTutorial</property>
  <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

  <property name="hibernate.show_sql">true</property>
  <property name="hibernate.format_sql">true</property>
  <property name="hbm2ddl.auto">create</property>

  <mapping class="com.blogspot.runnerdtalks.hibernatetutorial.entity.User"/>
 </session-factory>
</hibernate-configuration>

Veja que já estamos com uma Entity mapeada, no caso a entity User, deixei ela aí já para nos poupar um passo mas é importante lembrar da necessidade de colocar esse mapeamento no XML.
Lembre-se de fazer as devidas alterações nos campos de conexão, como usuário e senha.

Crie também o arquivo log4j.properties no mesmo diretório como abaixo.

log4j.logger.org.hibernate = info, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
Será necessário colocar os arquivos no seu classpath, clique com o botão direito em seu projeto vá em Properties>Java Build Path>Source>Add Folder... adicione o diretório res e clique em ok.

Agora vamos criar a nossa entity User, como já definimos ela no Hibernate.cfg.xml é importante cria-lá no mesmo pacote: com.blogspot.runnerdtalks.hibernatetutorial.entity


Sua entity vai ficar como a seguinte

package com.blogspot.runnerdtalks.hibernatetutorial.entity;

//imports

@Entity
public class User {

 @Id
 @GeneratedValue
 private Long id; 

 private String name;

 private String password;

 //adicione aqui seus getters e setters

}

Veja que a classe esta anotada com @Entity que identifica que essa é uma Entity do Hibernate, e que temos um membro da classse anotado com @Id e @GeneratedValue
  • @ID identifica que ela é a chave primária de sua tabela
  • @GeneratedValue é para o próprio hibernate atribuir os valores para ela automaticamente.


Os outros membros não possuem anotação, mas mesmo assim eles serão automagicamente mapeados para colunas na tabela.

Para sua entity isto é o suficiente

Perceba que temos nossa entity mapeada para uma base de dados que não tem nada criado! É porque agora vamos fazer o Hibernate gerar as tabelas da base de dados baseado em nossa entity.

Conecte no mysql com o comando

mysql -u user -p

Dentro do console do mysql vamos criar a base de dados.

create database hibernateTutorial;

Selecione a base de dados recém criada.

use hibernateTutorial

E execute o seguinte para mostrar as tabelas

show tables;
Seu resultado será algo como o seguinte


Crie uma nova classe no pacote com.blogspot.runnerdtalks.hibernatetutorial.main chamada GenerateSchema.


public class GenerateSchema {

    public static void main( String[] args ) {

     //Le o hibernate.cfg.xml

     AnnotationConfiguration annotationConfiguration = new AnnotationConfiguration();
     annotationConfiguration.configure();

     SchemaExport se = new SchemaExport(annotationConfiguration);
     se.create(true, true);
    }
}
E execute...

O console do eclipse irá mostrar para você diversos detalhes do hibernate se conectando a base de dados e também aparecerá um comando SQL.

Volte ao terminal que você está conectado ao MySQL e execute novamente

show tables;

O resultado deverá mostrar agora a table User, uma tabela não é nada sem dados correto? Então vamos criar uma nova classe chamada CreateNewUser no mesmo pacote do GenerateSchema.


public class CreateNewUser {

 public static void main(String[] args) {

  AnnotationConfiguration annotationConfiguration = new AnnotationConfiguration();
  annotationConfiguration.configure();

  SessionFactory sessionFactory = annotationConfiguration
    .buildSessionFactory();
  Session session = sessionFactory.openSession();

  User user = new User();
  user.setName("root");
  user.setPassword("raquel");

  Transaction transaction = session.beginTransaction();
  session.save(user);
  transaction.commit();
 }
}
Volte ao MySQL e execute

select * from User;

Seu terminal irá exibir o recém criado usuário na tabela.


Caso tenha percebido que sua tabela esteja sendo recriado toda vez que executa o código é por culpa dessa linha no xml.

<property name="hbm2ddl.auto">create</property>

Comente-a e a execução do código não fará mais sua tabela ser recriada.

Código Fonte no GitHub

Valeu!

domingo, 20 de novembro de 2011

Maven



No Util.runNerdTalks(5) falamos sobre Maven.



O Maven, é uma ferramenta para gerenciamento e automação de projetos em Java. Ele é todo baseado em XML, e muito similar ao Ant.





Download

Para fazer o download entre na página oficial, ou baixe via apt-get.



Após instalar verifique via linha de comando se está funcionando:

mvn --version



Aparecerá algo parecido como:







Exemplo Básico

O arquivo básico de configuração é o pom.xml. O pom vem de Project Object Model (POM).



Exemplo básico:

<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.runnerdtalks</groupId>
<artifactId>teste</artifactId>
<version>1.0</version>
</project>

Sendo que:
- modelVersion, é a identificação da versão do arquivo pom.xml (padrão 4.0.0)
- groupId - identificador da empresa / site
- artifactId - nome do projeto
- version - versão do projeto




Criando um projeto novo

Você não precisa digitar todo o xml caso esteja iniciando um projeto novo.



Você pode digitar por exemplo:


mvn archetype:create -DgroupId=com.runnerdtalks -DartifactId=teste -DarchetypeArtifactId=maven-archetype-webapp

Ele construirá um projeto tipo webapp



Ou ainda:

mvn archetype:generate

Assim você escolherá passo a passo as variáveis do projeto.





Adicionando dependências

Para adicionar uma dependência (um jar como o do jUnit por exemplo) a esse projeto, adiciona-se a seguinte estrutura:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>

Nesse exemplo, adicionamos o jUnit versão 3.8.1.



O Maven baixará automaticamente do seu repositório, o http://mvnrepository.com/ para sua máquina local, colocando-o no diretório .m2/repository (No Unix/Mac OS X pode-se encontrar no ~/.m2 e no Windows – C:\Documents and Settings\username\.m2 )



O .m2/repository é um repositório local, onde será armazenado todos os seus downloads. Assim se você tiver outro projeto que utilizará por exemplo o jUnit 3.8.1, o Maven não precisará baixá-lo novamente.



Mais um exemplo. imagine que você queira usar o hibernate-annotations versão 3.5.6-final. Adicionaremos em nosso pom.xml:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>
</dependency>



Mas nesse caso o hibernate-annotations também tem suas dependências, como:

org.hibernate.hibernate-core

org.hibernate.hibernate-commons-annotations

org.hibernate.javax.persistence.hibernate-jpa-2.0-api

Assim, além do próprio hibernate-annotations, ele baixará outros jars.



Principais comandos

A partir do pom.xml (que estará na raiz do seu projeto) você digita na linha de comando:

mvn clean - apaga o diretório target, e os .class

mvn compile - compila seu projeto

mvn test - roda os testes unitáros do projeto

mvn install - instala seu projeto (jar/war/etc) no repositório local

mvn deploy - envia o projeto (jar/war/etc) para um servidor remoto





Plugins

O Maven também possui vários plugins (veja mais aqui).

Um exemplo é o plugin para transformar seu projeto em um projeto Eclipse (gerando o .project)



Outros comandos
Alguns comandos interessantes:
mvn dependency:tree - Mostra a dependencia de todos os jars existentes do seu projeto
mvn eclipse:eclipse - Gera o projeto no eclipse


Projeto no Eclipse
Como o Maven já construiu o seu projeto para o Eclipse (após rodar o mvn eclipse:eclipse), você pode simplesmente importar o projeto:




Após isso não esqueça de entrar no "properties" do projeto e configurar a variável M2_REPO
Properties-->Java Build Path -->Add Variable..-->Configure Variables...-->New
Name: M2_REPO
Path: Local do ./m2/repository (No Unix/Mac OS X pode-se encontrar no ~/.m2 e no Windows – C:\Documents and Settings\username\.m2 )


Exemplo
https://github.com/AleUehara/sample-maven

Blog da Caelum - http://blog.caelum.com.br/processo-de-build-com-o-maven/

terça-feira, 25 de outubro de 2011

Git / GitHub


No nosso Util.runNerdTalks(2) falamos de várias coisas, entre elas o controle de versionamento: Git.

Ele é um pouco diferente do controle de versionamento como o SVN. Os commits são feito localmente, e só depois você faz ele no servidor principal (se for o caso).


Instalar o Git no:

- Mac OSX Lion:
1) O Git já vem instalado junto com o XCode 4 (mostramos aqui como instalar ele no MacOSX Lion.

Comandos Básicos:
- Criar um repositório local
git init 

- Baixar um repositório existente (repositorio principal)
git clone "URL do projeto" 

- Adicionar um arquivo no repositório local
git add "nome do arquivo"  

- Adicionar todos os arquivos no repositório local
git add . "URL do projeto" 

- Ver arquivos alterados (diferentes do original)
git status 

- Commit local + mensagem
git commit -a -m "first commit"

- Enviar as alterações para repositorio principal
git push origin master

- Pegar as alterações (faz merge) do repositorio principal
git pull origin master

- Fazer merge "na mão"
git mergetool



Dica: Para não enviar todos os arquivos para o repositório principal, crie um arquivo ".gitignore" e coloque os diretórios e arquivos que não deverão ser enviados "comitados". Exemplo



GitHub

O Github é um serviço onde você pode hospedar seu código usando o Git. Mais do que isso ele é um social networking para programadores.

Ele é muito fácil de usar.

Para criar um projeto novo
1) Configure seu computador a usar o Github
2) Crie um repositório no Github e siga os passos para enviar o arquivo

Baixar um projeto já existente:
git clone git@github.com:AleUehara/Calculadora.git



Dica: Se você não quer abrir seu código fonte, pode usar o Dropbox, como seu repositório principal, já que o mesmo já vem com o Git instalado.


Nossos perfis no GitHub:
Alexandre Uehara - https://github.com/AleUehara
Marcelo Miyake - https://github.com/MarceloMIYAKE
Daniel Uno -
Jorge Rocha -

domingo, 23 de outubro de 2011

Node.js

No nosso Util.runNerdTalks(1) falamos sobre, Node.js.


Node.js é voltado para evented programming no lado server, e programando em javascript. Ele roda sobre a máquina virtual Google V8 (que também é usado no Google Chrome).

Para instalar e rodar ele no:

- Mac - OSX Lion:

1) Instalar o XCode
- Entre no App Store;
- Procure por XCode;
- Clicar em Free / Install;
- Aguardar instalação...







2) Baixar fontes do Node.js;

3) Descompactar o arquivo;

4) Compilar, rodando os seguintes comandos via Terminal:
./configure
make
sudo make install


Testar
1) Criar um arquivo example.js
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http://127.0.0.1:1337/');


2) Rodar via linha de comando
node example.js




3) Resultado
Server running at http://127.0.0.1:1337/


Pode-se chamar via browser e ver o resultado também:
http://localhost:1337




Fontes:
- node.js
- NPM - um "Synaptic" para Node.js
- JSApp - rodar e testar o Node.js sem instalar em sua máquina
- howtonode - how To
- nodecasts - Videos tutoriais

quinta-feira, 6 de outubro de 2011

Java

Olá! Seja bem vindo ao Utils.runNerdTalks();!

Esse post de abertura é praticamente um Hello World, pelo menos até acostumarmos com as ferramentas do Blogger... aliás, podemos ser iniciantes ou com vários anos de experiência em programação, mas sempre voltamos a escrever programas do tipo Hello World, cada vez de uma forma diferente, utilizando novas técnicas ou linguagens... e sempre é uma alegria quando aquela porcaria funciona, por mais simples que seja o projeto! Significa um passo adiante em nosso aprendizado e abre caminhos para novas soluções... ou no mínimo permite uma linha a mais em nosso currículo!

E esse é o cenário desse blog, pretendemos conversar e discutir sobre nossas experiências e dificuldades em diversas tecnologias, e sempre que possível, acompanhado de códigos simples dentro do contexto abordado pelo post.

Para esse post, montamos o mais simples Hello World de uma das linguagens mais populares atualmente, o Java.

Ambiente de Desenvolvimento - Java

  1. Faça download do Java SE Development Kit (JDK):


  2. Execute a instalação padrão:


  3. No Windows, clique no menu "Iniciar" / "Painel de Controle" / "Sistema" / "Avançado" / "Variáveis de Ambiente" para criar ou editar as variáveis de ambiente:
    • JAVA_HOME = aponte para o diretório onde foi instalado o JDK
    • PATH = inclua o caminho %JAVA_HOME%\bin
    • CLASSPATH = inclua o caminho . na variável de ambiente

Projeto Hello World

  1. Crie um arquivo no Bloco de Notas chamado HelloWorld.java:

    public class HelloWorld {
    
     public static void main(String[] args) {
      System.out.println("Hello World");
    
     }
    
    }
    

  2. O programa será compilado através da linha de comando javac HelloWorld.java, e para execução, basta digitar java HelloWorld:




Ambiente de Desenvolvimento - Eclipse

Embora o exemplo seja a base para o desenvolvimento em Java, a grande maioria dos projetos são desenvolvidos através de uma IDE, programa que auxilia na edição, compilação, depuração e execução dos códigos-fontes. E uma das IDEs mais utilizadas no mercado é o Eclipse.
  1. Faça download do Eclipse:


  2. Descompacte o arquivo em algum local, por exemplo C:\, execute eclipse.exe e selecione um diretório para seu workspace, ou seja, local onde serão gravados seus arquivos de configuração do Eclipse e projetos:


  3. Seu ambiente está pronto:


Projeto Hello World - Eclipse

  1. Crie um novo projeto Java através da tecla de atalho Ctrl+N:


  2. Dê um nome para o projeto:

     
  3. Crie uma nova classe através da tecla de atalho Ctrl+N:



  4. Dê um nome para a classe, por exemplo HelloWorld:


  5. Preencha o conteúdo da classe HelloWorld com o código realizado no exemplo anterior:


  6. Execute o código através da tecla de atalho Ctrl + F11 e veja o resultado na aba Console: