quarta-feira, 29 de dezembro de 2010

Retrospectiva 2010

A vida é composta por diversos ciclos: horas, dias, semanas, meses, anos... e a cada ciclo é natural que façamos planos e retrospectivas e, naturalmente, buscamos melhorar e conquistar novos objetivos e formas de superar os problemas e situações que não dependem da nossa vontade.

Este ano foi muito importante para o Brasil por diversas razões: aumento da confiança nacional em relação à crise internacional, eleições, ascenção total das redes sociais para as corporações, Copa do Mundo e planejamento para 2014, reaquecimento do mercado de trabalho para TI, finalização do processo da Sun/Oracle e muitas definições em relação ao futuro da plataforma Java, entre outros milhares de fatos importantes.

Cada empresa reagiu diferentemente em relação a tudo isto, e qual foi a forma que nós da Globalcode encontramos para superar os desafios dos últimos anos ?

Nossa estratégia de crescimento não é vertical, não buscamos o crescimento apenas da Globalcode transformando-se em uma mega corporação, mas sim o crescimento horizontal, plural, junto com diversas outras empresas e pessoas, criando um ecossistema comercial onde todos juntos ficamos muito mais fortes.
Globalcode, V.Office, Season, Divus, YouAndWe, Destaque Capacitação, Grupo Fernão Gaivota, Adekz, Catho, Lambda3, LinuxMall, Microsoft, Adex Gráfica, Anhembi Morumbi, Unicsul, WTV, SoaExpert e todas as outras empresas que estiveram conosco em 2010!
São 12 Unidades Globalcode espalhadas por diversas cidades e estados do Brasil onde potencializamos o talento de outras pessoas e empresas que representam nossos treinamentos. Da mesma forma criamos novos treinamentos em parceria com outras pessoas e empresas de forma que ganhamos amplitude sem perder profundidade, distribuindo os novos treinamentos para toda a rede de parceiros Globalcode.

O mesmo conceito foi aplicado aos eventos da Globalcode, que não são mais realizados no singular, mas sim em conjunto com muitas empresas, em um modelo onde todos crescem. O sucesso do The Developer's Conference 2010 foi um grande marco, definitivamente um rito de passagem do modelo de negócios no singular para o plural.

Vale a pena conferir algumas realizações e conquistas marcantes para nós da Globalcode em 2010.


Retrospectiva Globalcode
Iniciativa Open4Education

A iniciativa Open4Education é um dos mais importantes pilares da Globalcode e fez parte da nossa história desde o inicio. Por isto, resolvi fazer uma retrospectiva especial para Open4Education, que em 2010 ficou muito mais Open através das transmissões, vídeos e parcerias!
Blog Globalcoders

O Blog Globalcoders, também é uma amostra do poder do coletivo, do plural, o resultado da competência de diversos instrutores e autores que colaboraram na difusão do conhecimento e da informação em mais de 120 posts.

Vale a pena conferir os 10 posts mais acessados, o que não quer dizer que são os melhores ou mais importantes, apenas uma forma de classificação e reconhecimento.
Fica aqui nosso sincero agradecimento a todos os colaboradores do blog, e esperamos que o Globalcoders tenha ainda muito mais posts em 2011.


Vídeos, Vídeos e muito mais vídeos!
A disponibilização dos vídeos foi uma das maiores conquistas da Globalcode em 2010, foram mais de 30 vídeos disponibilizados este ano, e ainda tem muito mais para 2011!

Vale lembrar que tudo isto foi possível graças à parceria com a WTV, que além de fazer a transmissão dos eventos em alta qualidade em tempo real também fez a edição e a disponibilização dos vídeos!

Vale a pena ver de novo!

Top 10 vídeos Profissão Java
Top 5 - Vídeos The Developer's Conference 2010
    Iniciativa ElétronLivre

    A iniciativa ElétronLivre foi uma das grandes conquistas da Globalcode em 2010, foram muitas realizações, criações e novidades.
    Confira a Retrospectiva 2010 Elétron Livre!

    Yara Senger
    http://twitter.com/yarasenger
    http://twitter.com/globalcode
    http://twitter.com/open4education

    Usando OAuth com aplicações Android

    Ola pessoal,

    A alguns dias atrás a Ana publicou aqui no blog um excelente post sobre o uso da api Twitter4J com autenticação OAuth, e que tenho que dizer que já recorri a ele várias vezes essa semana. O post da Ana já nos dá uma noção do funcionamento do OAuth e mostra que não é nenhum bicho de 7 cabeças, basta entender o fluxo.

    E então, essa semana eu resolvi fazer uma aplicação Android que se comunica com o Foursqure, e para isso teria que usar o OAuth. E após percorrer alguns blogs, documentações e exemplos, consegui fazer a autenticação funcionar corretamente em meu celular. E agora estou dividindo essa experiência com todos vocês, e para isso fiz um post onde mostro de forma detalhada como fazer isso na sua aplicação Android.

    O post tem o título de "Usando OAuth com aplicações Android" e já está disponível no meu blog. Espero que aproveitem.

    Abraços
    Neto Main

    terça-feira, 28 de dezembro de 2010

    Python, NoSQL e a tal da independência

    Para quem tem acompanhado as discussões e notícias sobre NoSQL, sabe que não é mais uma promessa para o futuro, e sim uma realidade.
    E o framework web mais conhecido e utilizado do mundo Python(a.k.a Django) não poderia deixar esta onda passar.
    O Django foi criado em outra época, em outro contexto e nasceu com a idéia de funcionar junto a bancos relacionais.
    Porém com o advento dos bancos não relacionais, portar sua aplicação Django de um paradigma para outro é uma tarefa nada simples:
    • Não há possibilidade de reutilizar as instruções SQL
    • Geralmente você tem de gerenciar seus índices manualmente
    • Gerenciamento de seus relacionamentos, já que não conta com joins
    • e muitos outros problemas...
    E neste cenário é que nasceu o Django non-rel, um 'port' do framework Django porém tendo re-implementado sua ferramenta de ORM para funcionar com bancos de dados não relacionais. Sendo assim você continua tendo todas as ferramentas fornecidas pelo framework(ORM, Admin, URL Routing, Template, Managers, Cache, User, Session, etc, etc, etc..) porém funcionando em um banco de dados não-relacional(ou NoSQL se preferirem).
    Ele possui módulos/projetos internos para resolver algumas diferenças entre os dois mundos, como por exemplo o django-dbindexer, que se responsabiliza pelas não normalização do seu banco e também pelos JOINs.
    Outro módulo importantíssimo, e responsável pela 'independência' citada no título, é o projeto djangoappengine, que como o nome diz, é responsável por implementar as diversar funcionalidades do Django tendo o Google AppEngine como backend. Com este projeto você pode desenvolver sua aplicação sem se preocupar em 'estar amarrado' ao GAE, pois o código será portável para outra plataforma(seja uma outra plataforma PaaS, ou sua própria).
    Ao fazer o download do django-nonrel e seus módulos aqui você vai encontrar um projeto de teste pronto para ser executado no GAE.
    -Rafael

    terça-feira, 21 de dezembro de 2010

    Discussão sobre frameworks no JavaOne Brasil 2010

    Já se passaram quase 2 semanas que o JavaOne 2010 Brasil aconteceu e ainda estamos colhendo bons frutos deste evento. Agora está disponível o áudio exclusivo da discussão que aconteceu no dia 08/12 sobre frameworks web. A discussão foi moderada pelo Vinicius Senger (@vsenger) e contou com a participação especial do Arun Gupta (@arungupta). Também tivemos a contribuição de membros das comunidades e empresas, tais como, Serpro, Wdev, Caelum, SouJava, Oracle e outros. Os seguintes frameworks e tecnologias foram discutidos e comentados: JavaEE6, JSF, Wicket, GWT, Demoiselle, ADF, VRaptor, Spring MVC e outros.

    Vale a pena conferir!
    Segue o áudio na íntegra:



    By Spock
    Twitter @drspockbr
    http://blog.spock.com.br/
    http://linkedin.spock.com.br/
    http://www.springbrasil.com.br/

    quinta-feira, 16 de dezembro de 2010

    Uma forma de usar Twitter4J com OAuth

    Já faz bastante tempo que escrevi um post sobre como enviar tweets através de uma aplicação Java usando a biblioteca Twitter4J e de lá para cá tivemos algumas atualizações e uma delas foi o fato de não ser mais possível usar autenticação básica como eu coloquei de exemplo.

    Hoje eu vi a Yara citar no Twitter este meu post como exemplo de uso e responderam a ela que não funcionava mais assim, então resolvi pesquisar e colocar aqui no blog a solução que encontrei.

    Buscando na internet, encontrei rapidamente este artigo em inglês no blog da EMC, e como está bem explicado, peço licença ao autor Nileesha Bojjawar para colocar aqui traduzido para o português e compartilhar com vocês.

    Neste texto, além de mostrar como autenticar usando OAuth, também dá a dica de como registrar uma aplicação para editar a timeline de uma conta do Twitter. Vamos ao passo a passo então:

    "...

    Crie uma conta no Twitter
    Crie a conta do Twitter que você quer usar da sua aplicação. No exemplo eu usei uma conta de teste que eu criei.

    Registre a aplicação
    Faça login no Twitter e registre uma nova aplicação com twitter neste link.

    Assim que tiver registrado a aplicação, você pode editá-la e vê-la da sua conta do Twitter, através da página settings -> connections.

    Por favor, note: para que este exemplo funcione, você tem que selecionar Application Type como “Client”. Application Type como “Browser” espera que você tenha um website com um servlet call-back para o qual o Twitter possa enviar o token de acesso.

    Obtenha ConsumerKey e ConsumerSecret
    Você receberá a ConsumerKey e ConsumerSecret nesta página. Você pode armazenar isto de forma persistente, para simplicidade, você pode usar um arquivo de properties.

    Obtenha Access Token e Access Secret
    Para usar OAuth a aplicação deve usar o login do Twitter usando uma Access Token. Obter a access token e a token secret é um processo que se faz uma única vez para cada ConsumerKey e ConsumerSecret e todos estes valores podem ser armazenados juntos num mesmo arquivo.
    A maioria dos exemplos que encontramos por aí usam um call-back Servlet/URL para conseguir o token. Eu pessoalmente acho que isto é demais, criar um call-back Servlet só para obter os Access Tokens. É mais fácil obter isto usando uma aplicação cliente e armazená-los. O código cliente de exemplo está aqui:
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import twitter4j.Status;
    import twitter4j.Twitter;
    import twitter4j.TwitterException;
    import twitter4j.TwitterFactory;
    import twitter4j.http.AccessToken;
    import twitter4j.http.RequestToken;
    public class OAuthSetup {
      /**
       * @param args
       */
      public static void main(String args[]) throws Exception {
          // The factory instance is re-useable and thread safe.

    Twitter twitter = new TwitterFactory().getInstance();

    //insert the appropriate consumer key and consumer secret here

          twitter.setOAuthConsumer("ZDuEJCn23jw3NuFcElaqw",
              "OkhinXH6EaymMUzlfbq0xWrablNBkUwfz7eLDPxmwk");
          RequestToken requestToken = twitter.getOAuthRequestToken();
          AccessToken accessToken = null;
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          while (null == accessToken) {
            System.out.println("Open the following URL and grant access to your account:");
            System.out.println(requestToken.getAuthorizationURL());
            System.out.print("Enter the PIN(if aviailable) or just hit enter.[PIN]:");
            String pin = br.readLine();
            try{
               if(pin.length() > 0){
                 accessToken = twitter.getOAuthAccessToken(requestToken, pin);
               }else{
                 accessToken = twitter.getOAuthAccessToken();
               }
            } catch (TwitterException te) {
              if(401 == te.getStatusCode()){
                System.out.println("Unable to get the access token.");
              }else{
                te.printStackTrace();
              }
            }
          }
          //persist to the accessToken for future reference.
          System.out.println(twitter.verifyCredentials().getId());
          System.out.println("token : " + accessToken.getToken());
          System.out.println("tokenSecret : " + accessToken.getTokenSecret());
          //storeAccessToken(twitter.verifyCredentials().getId() , accessToken);
          Status status = twitter.updateStatus(args[0]);
          System.out.println("Successfully updated the status to [" + status.getText() + "].");
          System.exit(0);
        }
    }
    Quando você executa este código, com as ConsumerKey e ConsumerSecret corretas, você receberá uma Authorisation URL na console, como abaixo:

    Open the following URL and grant access to your account:
    https://twitter.com/oauth/authorize?oauth_token=trVYjyf0r1jeuildLedHSSQMKmdKXdDEfI5ffiuQmcM
    Enter the PIN(if aviailable) or just hit enter.[PIN]:

    Pegue esta URL e cole-a no browser e permita o acesso.Em seguida, o Twitter te dará um número de pin, que você deve copiar e retornar para sua aplicação e digitar no prompt.

    Open the following URL and grant access to your account:
    https://twitter.com/oauth/authorize?oauth_token=trVYjyf0r1jeuildLedHSSQMKmdKXdDEfI5ffiuQmcM
    Enter the PIN(if aviailable) or just hit enter.[PIN]:6829121

    A aplicação vai então gerar seu token e tokenSecret como a seguir:

    Open the following URL and grant access to your account:
    https://twitter.com/oauth/authorize?oauth_token=trVYjyf0r1jeuildLedHSSQMKmdKXdDEfI5ffiuQmcM
    Enter the PIN(if aviailable) or just hit enter.[PIN]:6829121
    119319081
    token : 119319081-Q3l4OThX7LDHkd6voqI6sZ1oDCJsvcCxavXhVZjK
    tokenSecret : 6ypMga7IL8fR7zH2BBLBdIt5VlYuCLb2d1Orco1bqI

    Persista estes dados em algum arquivo properties ( como você persiste e assegura isto é sua escolha )

    Tudo que este código faz é
    • Criar uma instância da classe Twitter
    • Setar a OAuth Consumer nesta instância
    • Gerar uma authorisation URL que você deve colar no browser e permitir acesso da sua conta do twitter para a aplicação
    • Isto te dará um número de pin, que você tem que digitar no código cliente em execução
    • Então vai gerar suas access token e access token secret que você pode ou não persistir
    Faça login pela a aplicação registrada e envie seus tweets
    A última coisa a fazer é usar este OAuth Login para enviar tweets da sua aplicação. A instância do Twitter para enviar tweets pode ser criada como segue:
    private Twitter twitter;
    twitter = new TwitterFactory().getInstance();
    twitter.setOAuthConsumer(consumerKey, consumerSecret);
    AccessToken accessToken = new AccessToken(twitterToken, twitterTokenSecret);
    twitter.setOAuthAccessToken(accessToken);

    Espero que seja útil.

    ..."

    Bom, esta foi a tradução que fiz, espero que tenha ficado razoável, que tenha dado para entender pelo menos.
    Não se esqueça que precisa ter o Twitter4J no classpath para funcionar, é só baixar o jar neste link.
    Para complementar, vou colocar abaixo a classe completa de teste que usei como se fosse a aplicação que registrei na minha conta do Twitter:

    import twitter4j.Twitter;
    import twitter4j.TwitterException;
    import twitter4j.TwitterFactory;
    import twitter4j.http.AccessToken;

    public class TwitterTester {

    public static void main (String[] args){
    String consumerKey = "ZDuEJCn23jw3NuFcElaqw";
    String consumerSecret = "OkhinXH6EaymMUzlfbq0xWrablNBkUwfz7eLDPxmwk";
    String twitterToken = "119319081-Q3l4OThX7LDHkd6voqI6sZ1oDCJsvcCxavXhVZjK";
    String twitterTokenSecret = "6ypMga7IL8fR7zH2BBLBdIt5VlYuCLb2d1Orco1bqI";

    Twitter twitter = new TwitterFactory().getInstance();
    twitter.setOAuthConsumer(consumerKey, consumerSecret);
    AccessToken accessToken = new AccessToken(twitterToken, twitterTokenSecret);
    twitter.setOAuthAccessToken(accessToken);

    try{
    twitter.updateStatus("Testando...");
    System.out.println("Tweet enviado!");
    } catch(TwitterException e){
    System.out.println("Erro ao enviar o tweet");
    }
    }

    }


    []s

    Ana Abrantes
    twitter.com/anabrant

    quarta-feira, 15 de dezembro de 2010

    Aventuras com SpringRoo no mundo real

    Há alguns dias entregamos a primeira fase de um Projeto desenvolvido utilizando o Spring Roo. Nesse post vou compartilhar essa experiência.


    O Projeto
    Primeiro detalhe, só pra variar, o tempo bem escasso. A idéia era disponibilizar o sistema funcionando em 2 semanas. As funcionalidades eram bem simples, alguns CRUDS, um deles um pouco maior  com alguns relacionamentos e validações mais chatas, várias opções de pesquisa/filtros e relatórios.

    A equipe
    Nesse projeto era bem pequena, 2 desenvolvedores.

    Porquê o Spring Roo?
    Meu primeiro contato com o Roo foi no TDC2009, na palestra do Rod Johnson e logo depois com o Renato Bellia no Casual Class sobre Spring Plataform.

    Finalmente chegamos a tão desejada "alta-produtividade" no desenvolvimento Java corporativo! Será? Penso que produtividade vai bem além de uma ferramenta e/ou metodologia, são vários os fatores que influenciam, mas não quero falar sobre isso aqui.

    Imparcial e sem falsas ilusões fiquei bem curioso pela simplicidade com que o Roo trata as tarefas burocráticas na infra-estrutura de um projeto Java, que sempre foi alvo de muitas críticas. Outro ponto que chamou minha atenção foi a possibilidade de, caso fosse conveniente, desligar o Roo e continuar trabalhando e evoluindo o sistema.

    Além das funcionalidades da ferramenta, o fator decisivo na escolha do Spring Roo foi a arquitetura/estrutura gerada por ele com: Spring MVC, JPA/Hibernate, Spring Security. Tecnologias aderente a linha adotada em outros projetos na empresa. O Roo entrou em cena com o papel de propulsor.


    Desenvolvimento
    No início do projeto a versão disponível do Spring Roo era 1.1.0.M1. De lá pra cá várias melhorias foram feitas até a 1.1.0 GA. Naquele momento o plugin do GWT do Roo estava bem imaturo, ainda em processo de desenvolvimento e, então, pra evitar o risco não usamos. A estratégia na camada view foi seguir uma linha mais clássica Java para Web, desenvolvimento com JSP e Custom Tags do Spring Web, e claro com Spring MVC 3.0.

    Ainda sobre a camada view, outra feature que ainda não existia no Roo era o suporte nativo a JSON para REST, adotado na atual versão. Resolvemos o JSON sem stress, usando algumas funcionalidades do Spring MVC 3. O Ajax no front-end foi resolvido com framework JavaScript Dojo, adotado pelos componentes do Spring Web para algumas perfumárias. O Dojo deixou a desejar, enfrentamos alguns problemas de compatibilidade do JS com IE, por isso em alguns pontos usamos o JQuery, que sem dúvida alguma é o meu prefererido!

    A curva de aprendizado do Roo é bem curta, em poucas horas definimos todo modelo de entidades, as Controllers, pesquisas e o esqueleto das Views, tudo pelo shell. Usamos o STS tornando a integração do shell com IDE bem transparente, além de contar com todas peculiaridades para os produtos Spring.


    Conclusão
    O principal objetivo: entregar o projeto atendendo a expectativa do cliente no prazo esperado, foi alcançado!

    O Roo realmente acelera o desenvolvimento, resolve muitas picuinhas chatas e o melhor de tudo: gera código bom, fácil de compreender e avançar, com todo aparato de testes, uma arquitetura enxuta e consistente. Conhecer um pouco sobre AOP, ou melhor AspectJ, pode facilita a compreensão do que está rolando por trás da cortina.

    Dois pontos que merecem uma maior atenção seriam  o cuidado com relacionamentos mais avançados entre entidades (Scaffold) e a organização das buscas. Vou descrever mais detalhes disso em outro post.

    Gostei bastante do Roo, pretendendo continuar usando em projetos com características diferentes, maiores e mais complexos.


    Documentação do Roo.
    Posts sobre o Roo aqui no Globalcoders.
    Um pouco mais da minha experiência com o Roo.


    []s
    Eder Magalhães
    www.yaw.com.br
    twitter.com/youandwe
    twitter.com/edermag

    Fechando o 2º ano do Ensino Médio com chave de ouro: Programação, Arduino, Automação e Cloud Computing



    No início do ano (2010), mais precisamente em março, fiz um post sobre a introdução da Academia do Programador no Ensino Médio da Escola Fernão Gaivota, e agora ao término do ano apresento um projeto desenvolvido pelos alunos intitulado "CodeHome".

    A Escola Fernão Gaivota realiza um evento anual intitulado “Fernão de Portas Abertas”, que tem como objetivo apresentar projetos desenvolvidos pelos alunos para toda comunidade. O projeto desenvolvido pelos alunos da Academia do Programador (Bianca, Caroline, Catarina, Leticia, Natália, Symon e Wesley) consistia na construção de uma casa de madeira com teto solar sensível a luminosidade controlado pelo Program-Me e pela placa Tomad@.

    Programação do firmware
    Mesmo antes da montagem da casa o firmware foi desenvolvido pelos alunos da Academia do Programador. Para a realização da programação, a turma foi divida em grupos e o programa escolhido foi o que conseguiu atender as necessidades do problema proposto, que consistia basicamente em fazer a utilização do sensor de luminosidade do Program-Me para controlar o motor, realizando a abertura e o fechamento do teto da casa.

    A primeira versão do firmware apresentada pelos alunos continuava acionando o motor no sentido da abertura do teto mesmo com teto aberto e vice-versa. Este problema foi solucionado mantendo o estado do teto em uma variável booleana. O código final pode ser visto no site da "CodeHome".

    A montagem do "hardware"


    Falando do "hardware" da casa, podemos dizer que a “arquiteta” foi a Professora Christina, que além de projetar a casa, providenciou o trabalho de corte das madeiras e me orientou sobre a montagem. Na montagem os alunos estavam meio ressabiados com o martelo e trabalharam colando as paredes da casa e a maioria dos pregos “sobraram” para o Professor Adilson e para mim, que acabei martelando o dedo no processo.

    Depois da montagem da estrutura da casa, a Professora Christina voltou para orientar os alunos
    sobre o acabamento que foi realizado com massa corrida e tinta. Nesta hora teve início da montagem do teto propriamente dito, com ajuda providencial do Professor Márcio para a montagem da engrenagem e da cremalheira.

    Ponte H controlando o motor do teto solar
    O circuito utilizado para a realização do controle do motor DC, responsável pela abertura e fechamento do teto solar da casa foi baseado no artigo, do Jose Luiz Sanchez Lorenzo no blog da Elétron Livre, Ponte H de relés com Progra-Me e Placa Tomad@.

    O firmware sofreu alguns ajustes finos após a montagem, como a configuração do tempo de funcionamento do motor e a sensibilidade do sensor de luminosidade de acordo com o ambiente.

    Então no dia 16/10/2010 houve a apresentação do projeto no evento “Fernão de Portas Abertas” (Álbum no Facebook), no qual uma luminária no estilo Luxo (mascote da Pixar) fazia o papel do Sol. O tema norteador do evento foi “Sustentabilidade” e uma casa com teto solar sensível a luminosidade estava totalmente em sintonia com a proposta geral do evento.

    Cloud Computing: Alunos do Ensino Médio nas nuvens

    Porém o trabalho não parou por aqui, pois com o lançamento do 1º Concurso para alunos Globalcode: Google AppEngine, três alunas (Caroline, Letícia e Natália) aceitaram o desafio e se propuseram a desenvolver um site, intitulado "CodeHome" e a inscrevê-lo no concurso. No site podemos ver entre outras coisas, o código fonte do firmware, fotos da montagem, vídeo da casa em funcionamento, fechando com chave de ouro este projeto, que acredito foi muito proveitoso para todos os envolvidos.

    Que venha 2011!

    terça-feira, 14 de dezembro de 2010

    JavaOneBrasil 2010

    O JavaOneBrasil foi sensacional, muito networking, palestras de alta qualidade, uma oportunidade maravilhosa de encontrar muitos amigos.
    É verdade que houveram alguns problemas, salas lotadas e filas muitas longas, mas muitos problemas foram rapidamente corrigidos ou amenizados. Diversas palestras foram repetidas no terceiro dia. Ficou claro que a comunidade está sendo ouvida, e certamente teremos um JavaOneBrasil muito maior e muito melhor em 2011.

    Gostaria de agradecer principalmente a Daniela Berthe e Sharat Chander, ambos da Oracle,  não apenas pelo profissionalismo que demonstraram desde o inicio, mas também pela forma que nos receberam e pela rapidez com que trabalharam na resolução dos problemas.

    O primeiro dia do evento foi praticamente um aquecimento, entendendo o evento, o público do evento, reconhecendo as salas e as pessoas, com poucas palestras e muitos keynotes!


    Quiosque da Globalcode no JavaOneBrasil
    Além de participar do comitê de seleção de palestras tivemos a oportunidade corporativa de apoiar o evento com campanhas de divulgação na Globalcode, newsletter, twitter, e pudemos participar do evento com um quiosque no mesanino do JavaOneBrasil, foi excelente!
    Fizemos diversos sorteios de kits da LinuxMall e de pendrives Globalcode e exposicão das invenções e projetos da iniciativa ElétronLivre, liderada pelo Vinicius Senger.



    Algumas palestras dos instrutores no JavaOneBrasil
    Veja algumas fotos das palestras do Vinicius Senger, Raphael Adrien e Dr. Spock (Alberto Lemos) e Danival Calegari, todas estavam lotadas e foram repetidas no último dia do evento.


    Infelizmente não consegui tirar fotos de todas, mas se você tiver fotos das palestras do Julio Viegas ou do Thiago Vespa, ou outras, por favor nos envie!

    Veja algumas apresentações disponíveis:


    Discussão sobre Frameworks
    O Vinicius, Bruno Borges, Maiko Rocha e muitos outros twitteiros vinham discutindo muito sobre os frameworks JavaEE. O Vinicius convidou o Arun Gupta e Maiko Rocha e eles confirmaram, a discussão foi aberta e transmitida na quarta-feira as 19h, e literalmente "fechamos" o JavaOne, risos. Foi um dos melhores momentos do JavaOneBrasil!

    Eu adorei, foi totalmente paz e amor. Cada um falando das vantagens do seu, ao invés dos defeitos dos outros.  Valeu Bruno Borges, sem seus tweets não teria discussão nenhuma!


    Networking
    Além de tudo isto, o networking foi sensacional. Tive a oportunidade de conversar um pouco com Danny Coward, com quem fiz uma entrevista publicada na JavaMagazine alguns anos atrás. Além do trabalho na comunidade Java ele toca violino, e ganhou um concurso recentemente e irá fazer uma apresentação como solista como uma orquestra em São Francisco. Da pra acreditar ?

    Finalmente tivemos o prazer de conhecer pessoalmente o Arun Gupta (veja o blog com a cobertura do JavaOneBrasil)) , Sharat Chander, Daniela Berthe,  os colegas do Maranhão, Piaui, Campinas, Goiania, Rio de Janeiro, Uberlândia, São José dos Campos e tantas outras cidades! Impressionando, a comunidade Java Brasileira estava muito bem representada, pessoas de muitos outros estados!

    O Vinicius foi convidado pelo  Terrence Barr para fazer um podcast sobre OpenSource Hardware e SunSpot, que deverá ser publicado em breve! O Arun Gupta e o Roger Brinkely também estão preparando muitos outros podcasts e vídeos.

    TV Digital
    O tema TV Digital Interativa também recebeu muito destaque, pessoal saindo super empolgado das palestras do Dimas Oliveira/Oracle e do Aguinaldo Boquimpani /TQTVD (com quem também fiz uma entrevista publicada na edição 72 da JavaMagazine).

    Um detalhe interessante: a TQTVD estava com expondo o StickCenter no segundo andar, junto com as salas de palestras do JavaOne, na área de desenvolvedores, não no sofisticado pavilhão de expositores! Conheci pessoalmente a Cláudia e Andréa e tivemos uma verdadeira aula particular com o Aguinaldo, e a platéia foi aumentando a medida que eles foram mostrando os "stickers" (widgets) similares as aplicações do iPhone/Android.

    Você escolhe os programas que quer instalar na sua TV. Havia algumas opções de jogos, e também widgets de gigantes como UOL, Banco do Brasil, Walmart, G1 e outros.  Este é um modelo de negócios onde participam emissora, desenvolvedor e fabricante do middleware.

    Ficamos muito animados com os planos de disponibilização do set top box para desenvolvedores a curto prazo.


    Uma reflexão sobre o SouJava
    Como sempre o Bruno Souza (JavaMan) organizou um encontro de grupos de usuários que superou muito as nossas expectativas, com uma sala praticamente lotada de líderes de grupos de usuários do Brasil inteiro, e diversas pessoas interessadas em criar novos grupos!



    O SouJava participou ativamente do JavaOne, não apenas durante o evento, mas na concepção do evento, influenciando a decisão de abrir o processo de submissão de palestras, no suporte e interação com os palestrantes internacionais durante todo o evento, na resolução de alguns problemas em tempo real, nos happy hours, com diversas palestras e até com a participação do mascote oficial dos JUGs, o Juggy na sessão com Arun Gupta!

    Eu ouvi/li algumas críticas em relação a lista de palestras aprovadas, ou reprovadas. E até mesmo algumas criticas um pouco injustas a Oracle, como se ela tivesse aprovado ou reprovado as palestras, digo injusta pois a responsabilidade total foi do comitê, e acho importante isto ficar claro pra todos.

    Particularmente, achei que as palestras foram muito boas, e conversando com muitas pessoas durante o evento, achei que o feedback técnico foi ótimo e as críticas foram mais relacionadas ao operacional.

    Mas, isto tudo me fez lembrar amigo Reza Rahman, membro do JCP nas JSRs JSF 2 e JavaEE6, que bem resumidamente: "É fácil criticar o JavaEE , mas tente tira-lo do tabuleiro e imaginar como seria o jogo sem ele...".

    Acho que a mesma coisa serve para o comitê de avaliação de palestras. Como seria o JavaOneBrasil sem o comitê de avaliação de palestras ? Ou seja, toda a grade montada pela Oracle, como era o Sun Tech Days?

    Eu acredito que foi realmente uma conquista podermos submeter e aprovar palestras para o JavaOneBrasil. E o SouJava participou desta conquista, e tem sido fundamental para crescimento e melhoria não apenas da comunidade Java Brasileira, mas também da comunidade internacional : Java.net, OpenJDK, divulgação dos projetos Brasileiros, e na organização de eventos JustJava, Café Brasil, Abaporu, É Dia de Java, FISL, Campus Party, Sun Tech Days e agora, JavaOne Brasil!

    Com certeza aconteceram muitas outras coisas bacanas que eu gostaria de compartilhar, principalmente os happy-hours, jantares e bate-papo informais.

    JavaOneBrasil já deixou saudades!

    Mais uma vez gostaria de agradecer toda a equipe da Oracle pela receptividade durante o evento!

    Yara Senger
    http://twitter.com/yarasenger

    quarta-feira, 1 de dezembro de 2010

    Vídeos do TDC2010 São Paulo publicados

    O The Developer's Conference 2010 foi realmente inesquecível, muitas tribos juntas discutindo tecnologias, metodologias, testes, problemas e soluções. O evento de três dias recebeu mais de 1700 inscrições.

    Todas as palestras que foram apresentadas no auditório principal da Universidade Anhembi Morumbi foram gravadas e transmitidas ao vivo, graças à parceria com a WTV e todos os patrocinadores, coordenadores, apoiadores e palestrantes que autorizaram a gravação das palestras!

    Já são 8 paletras disponíveis, e estamos disponibilizando 4 novos vídeos por semana!

    A internet oferece conteúdo abundante, não é difícil achar coisas boas, o dificil é achar tempo para assistir ou ler o bom conteúdo que está disponível. Como disse o amigo Bruno Souza (JavaMan) o melhor livro seria aquele que viesse com tempo para ler!

    Mas, o profissional de TI precisa estar continuamente estudando, reciclando, aprendendo, por isto, por mais difícil que pareça achar um tempinho para assistir, procurando direito... você encontra! Aproveite o conteúdo!

    Palestra Palestrante(s) Link
    Abertura (sexta, 20/8) Yara Senger (Globalcode)
    Testabilidade Wanderlei Souza (UOL)
    Criando uma aplicação Web em 5 passos em 5 minutos com Spring Roo Alberto Lemos, dr.Spock (Globalcode)
    Turbinando o JBoss - 10 dicas para tunar seu JBoss Application Server 5 Bruno Rossetto (Red Hat)
    noSQL: Perdas & Ganhos Mauricio De Diana
    Novidades do ASP.Net MVC 3.0 e jQuery 1.4 Victor Cavalcante
    Oracle vs Google. O que o OpenJDK tem a ver com isso? Bruno Souza (o JavaMan)
    Mão na massa: aprendendo a soldar, criar placas, corroer e fabricar placas no seu escritório Paulo Carlos dos Santos e Vinicius Senger

     The Developers Conference 2010, um evento organizado pela Globalcode

    É isso ai, um abraço!

    Participe, colabore, divulgue! Seja Open4Education você também!
    Yara Senger
    http://twitter.com/yarasenger