Posts Tagged ‘Open Source’

Mobicents: Visão Geral – parte 1

março 8, 2010

Aqui iniciamos o primeiro episódio da série de posts sobre o Mobicents. Inaugurando mais um projeto da equipe do Ensinar, formada por profissionais e ex-profissionais da Voice Technology. Nos primeiros artigos da série, iremos dar uma visão geral sobre o Mobicents. E mais uma vez contamos com a participação de vocês, leitores (as), para poder nos dá o feedback da série, fazendo sugestões, críticas, elogios, perguntas, etc. 🙂

Preparem a pipoca, pois o Ensinar Séries começa agora!

Contextualização

No mundo de desenvolvimento de sistemas, existem plataformas de desenvolvimento, cuja existência é voltada para facilitar e prover funcionalidades para que o desenvolvedor possa desenvolver o seu software.

Falando metaforicamente, poderíamos pensar que a plataforma seria como um escritório, por exemplo: um escritório de advocacia é onde advogados exercem as suas funções, e esse tem características diferentes de um escritório de uma empresa de TI.

Analisando melhor a metáfora, percebemos que cada escritório é voltado para um público específico, afinal cada escritório precisa atender as necessidades de quem o utiliza. E uma plataforma de desenvolvimento também é voltada para um público específico.

No caso do Mobicents, ele é voltado para desenvolvedores Java, que objetivam desenvolver soluções para a área de Telecomunicações, possibilitando desenvolver aplicações que tire proveito de diversos protocolos de comunicações, tais como: SIP, MGCP, JABBER, SS7, SMPP, etc. (aqui entra em cartaz a sopa de letrinhas da área de telecom). Apesar de todos os protocolos suportados, uma das maiores aplicações é o desenvolvimento de aplicações VoIP. Quem trabalha ou já teve contato com o mundo de desenvolvimento de sistemas VoIP, deve saber que desenvolver um sistema VoIP não é uma missão tão simples assim. E um dos motivos para isso é que não temos uma plataforma “padrão”/largamente utilizada, aliás, até pouco tempo atrás, nem existia uma plataforma voltada para o desenvolvimento de aplicações VoIP.

Percebendo essa necessidade e a expansão do mercado VoIP, a Redhat adquiriu um projeto iniciado por um pessoal  da Portugal Telecom,  o Mobicents.

O Mobicents é para desenvolvedores. Não tem tanta coisa pronta como no Asterisk, mas é muito melhor do que você começar a desenvolver um servidor SIP do zero. Além disso, ele parece ter sido muito bem feito.

O que é o Mobicents?

Como foi dito anteriormente o Mobicents é uma plataforma para o desenvolvimento de soluções para a área de Telecomunicações, mais precisamente para a área de telefonia VoIP.

O Mobicents é a primeira e única plataforma VoIP Open Source certificada para JSLEE 1.1 e SIP Servlets 1.1. Ele fornece um modelo de componente e um ambiente de execução robusto para as aplicações de Telecom, permitindo o desenvolvimento de aplicações de voz, vídeo e dados.

Ele traz consigo vários outros subprojetos:

  • Um servidor totalmente certificado e compátivel com o JSLEE. Ele ainda implementa algumas das funcionalidades propostas no JAIN SLEE 1.1;
  • Mobicents Sip Servlets, que implementa a JSR-289. O Mobicents Sip Servlets também disponível para ser utilizado a parte, nesta caso usando o servidor de aplicações JBoss ou o Apache Tomcat;
  • Mobicents Media Server,  que suporta tocar media, gravar e conferência em tempo real utilizando o protocolo RTP;
  • Presence Server e outros componentes reutilizáveis para facilitar o desenvolvimento de aplicações.

O primeiro episódio encerra aqui. Não se assuste com tantas siglas, iremos ao longo da série comentar sobre algumas, embora esse não seja o foco. Portanto, se quiser saber mais, acesse os links. 😀

Esta sequência de posts visa mostrar justamente o que o Mobicents é. Será criado um grupo de estudo para produzirmos conteúdo associado ao Mobicents até o dia 15 de abril.

Se nossa meta de conteúdo for cumprida, teremos uma comemoração no Hopi Hari para aqueles que colaborarem na criação do conteúdo.

Participe! Envie e-mail para ensinar@googlegroups.com, dizendo que deseja participar.

Autores:

André Pantalião

Antonio Anderson Souza

Fabrício Ferrari de Campos

Revisado por:

Rodrigo Ribeiro

Fonte:

http://www.mobicents.org/products.html

http://en.wikipedia.org/wiki/Mobicents

Anúncios

Eu e o pinguim

dezembro 12, 2009

Neste post irei falar um pouco sobre a minha experiência e impressões sobre o sistema operacional Linux. Não serei nem um pouco técnico, até porque esse post é mais uma reflexão do que uma análise.

As pessoas que me conhecem, sabem que eu não sou um fanático pelo SO que tem como mascote o pinguim Tux. Também não sou um grande entusiasta do Linux, mas então qual seria a minha relação com o Linux? Acredito que no momento, sou um simples consumidor, e como todo bom consumidor sou bem crítico. 🙂

Antes, acho que é interessante, contar a minha história com o Linux, será  bem resumida:

  • O meu primeiro contato foi na faculdade, se não me engano, no terceiro semestre (no começo de 2007). Eu era totalmente leigo em Linux, e achava estranho utilizá-lo por linha de comando;
  • Ah.. na verdade o meu primeiro contato, foi quando eu usava os computadores públicos na Semasa, no centro de Santo André, mas acho que nem conta, como primeiro contato (rs), pois eu nem sabia o que era Linux (rs), só sabia que aquele SO era diferente (rs);
  • Depois aqui na Voice Technology tive um curto contato com o Linux, quando nós tivemos que fazer um teste de um script, e o ambiente de produção no qual o script era rodado era em Linux, mas precisamente a distribuição Fedora, então tive que instalar, e relembrar o que tinha aprendido na faculdade e também foi uma boa oportunidade para aprender coisas novas, como o gerenciador de tarefas agendadas crontab.
  • E por fim, veio o projeto Basix, e aí não teve jeito, foi a primeira vez que usei o Linux instalado na minha máquina mesmo, nada de máquina virtual. E a partir daí, que eu virei realmente um “consumidor” Linux. 😉

Muita coisa mudou desde 2007 até hoje, acho que posso dizer que hoje, os usuários e os profissionais de TI estão muito mais abertos a novas tecnologias, principalmente as soluções open-source.

Durante o tempo que trabalhei no projeto Basix, pude perceber o poder do Linux, e hoje, realmente acredito que ele é o futuro, e quando digo futuro, é o futuro no mundo desktop, pois em servidores o Linux já é realidade e DOMINA.

Momento caranguejo

Ao comprar o notebook, instalei o Windows XP e o Ubuntu 9.04, aí usava o Ubuntu no trabalho, e o Windows em casa, mas por causa do jogos que não rodam no Ubuntu.

O momento caranguejo, foi ao instalar o Windows 7 e tirar o Ubuntu. Confesso que gostei bastante do Windows 7, ele traz boas melhoras na usabilidade, mas ainda tinha que de vez em quando, apertar ctrl+alt+del para matar algum processo que estava travado. A instalação do Windows 7 ocorreu já quando tinha ido para outro projeto, e nesse ainda estamos definindo qual será o SO, a ser utilizado, então ainda estamos fazendo testes em Windows e Linux, mas acredito que no final iremos utilizar o Linux mesmo. 🙂

E uma das coisas que mais me incomodava no Windows 7 era ter que usar o putty, tanto que eu preferia subir uma máquina virtual com o Ubuntu, só para acessar os nossos servidores via ssh. Além disso, como os usuários de Windows sabem muito bem, esse é um mundo limitado e perigoso, usar anti-vírus também é algo muito ultrapassado (rs). No Windows, o usuário é protegido para não fazer nenhuma ação que possa ocasionar em danos no SO, o Windows é voltado para usuários comuns, e usuários que utilizam as tecnologias da Microsoft, e não era essa a minha realidade, eu não uso do Visual Studio, ou o SQL Server, todos os programas que eu uso, tem uma versão para Linux, exceto o Microsoft Office e o Fireworks, mas para esses eu posso usar uma máquina virtual. 🙂

Eu até comentei no twitter, que: ao usar o Windows eu sinto, q dei um passo para trás uahua … mas p/ trabalhar tem q ser o pinguim

Então, tomei uma decisão, instalar o Ubuntu 9.10 e “tacar fogo” no Windows 7, e fui que eu fiz. 🙂

O que mudou

Hoje me sinto muito mais a vontade usando o Ubuntu do que o Windows, e isso tanto no trabalho quanto em casa.

Abaixo, cito algumas vantagens e desvantagens do uso do Linux, para mim:

  • Vantagens
    • Você não se preocupa com vírus;
    • Com o tempo o seu SO não perde performance;
    • Os aplicativos também travam, mas dificilmente irá travar todo o seu SO;
    • Conhecimento, a cada dia você aprende algo novo usando Linux,;
    • Conexão remota com servidores de forma leve e estável via ssh;
    • Há distribuições que oferecem uma excelente usabilidade;
    • Há aplicações muito boas, exemplos: geditvimRhythmbox, crontab, etc;
    • Você tem total controle sob o seu SO;
    • Não “perco” tempo jogando;
    • Você não precisa gastar um centavo para usá-lo e muito menos ter que utilizar seriais.
  • Desvantagens
    • Nem todas as aplicações foram devidamente testadas, na distribuição que você usa;
    • Há distribuições demais, lógico que há o lado bom e ruim disso, mas eu acho que isso prejudica a adoção do Linux;
    • As versões ficam obsoletas em um curto espaço de tempo, comparado ao Windows;
    • Atualizar a sua versão pelo próprio apt-get, geralmente, faz com que algo pare de funcionar ou tenha um comportamento estranho;
    • Drivers ainda é um problema, e depende muito da sua “sorte” e do fabricante do seu PC/note/net, para mim não foi um grande problema, pois só faltou o driver do leitor óptico (o que não faz muita diferença).

Reflexões finais

Você não precisa usar o SO X porque fulano recomenda, ou porque a maioria das pessoas usam, você tem que usar o SO que melhor atenda as suas necessidades, e esse é um dos fatores que faz que o Windows ainda domine os desktops e o Linux domine os servidores. O Windows muitas vezes já vem de fábrica (eu mesmo comprei um Windows Vista sem querer, venda casada do caramba), e há muitos usuários que apenas usam o computador para tarefas básicas, e por isso eles não vão se dar ao trabalho de instalar um outro SO, e muito menos de aprender comandos.

E para usar Linux, você tem que ter em mente, que você irá sofrer, errar, mas você irá aprender e adquirir muito mais conhecimento do que se você usasse o Windows.

E em breve eu acredito que esse post ficará ultrapassado, pois cada vez mais o nosso “desktop” está na nuvem, eu mesmo mal uso o Open Office, até porque prefiro muito mais o Office, e uso o Google Docs.

Por fim, o que eu quero deixar claro é que você não deve ser um torcedor roxo de uma distribuição ou empresa, pois isso causa uma cegueira incrível. O Windows 7 é um SO muito bom, há muitas distribuições excelentes Linux, recomendo o Ubuntu. Portanto, experimente, até porque, no mínimo você irá ganhar uma opinião em relação aquele SO, e não ficará indo na onda das pessoas, e poderá se surpreender, assim como eu me surpreendi com o Linux. 😀

MegaNão – Diga não ao AI-5 Digital

junho 25, 2009

Caros colegas,

Estou aqui no FISL 10 (Porto Alegre – RS), na palestra do Richard Stallman (FSFLA: Fundación Software Libre América Latina) e achei muito interessante o site citado pelo pessoal, sobre o MegaNao. Alguns dos ativistas do movimento estiveram presentes e houve um debate esclarecedor sobre a PL 84/99, a famosa “lei azeredo”, que priva a liberdade de compatilhamento de conteúdo, em uma maneira geral. Não deixe de se informar sobre a questão.

Outros muitos palestrantes, em cima do tema do FISL 10 desse ano (“liberdade”) citaram a liberdade de expressão por código como indispensável.

Entre no site do MegaNao e faça o apoio ao movimento, mas antes de tudo: fique esclarecido dos projetos de lei que afetam Open Source.

Até mais!

P.S.: Também publicado no Templário da Tecnologia.

Minhas impressões – OpenTDC 2009 – 17-05-09

junho 15, 2009

Amigos e leitores,

Vou escrever por meio deste post as minhas impressões do OpenTDC 2009, evento ocorrido no dia 17-05-09 na Universidade Anhembi Morumbi, local que está virando ponto de referência para os eventos organizados pela Globalcode. O evento foi voltado para desenvolvedores e entusiastas do Open Source e das tecnologias Java.

NOTA: Desculpem-me mais uma vez pela demora de publicação das informações (quase um mês…rs. E o mesmo se aplicará para a publicação das impressões do evento “Java@TVDigital“).

NOTA 2: Também postado no blog Templário da Tecnologia.

Panorma Geral

OpenTDC 2009

Presenciei o OpenTDC desse ano juntamente com o colega de empresa Joemir Luchetta, que também esteve no evento do ano passado. É importante ressaltar que o evento foi gratuito (como o evento Java@TV Digital ), com sorteio de muitos brindes e coffee-break. A presença de palestrantes que eu já havia visto apresentar trabalhos me deixou seguro de que o evento seria em bom nível. E não foi diferente: palestras claras, algumas com conteúdo bem técnico, outras não, e interação dos palestrantes com o público fizeram do evento um sucesso. Abaixo irei passar os pontos mais importantes dos temas abordados nas palestras. Espero que gostem.

Palestras

Abertura: Java, Open Source e a Comunidade – Yara Senger e Bruno Souza

Abertura: Java, Open Source e a Comunidade - Yara Senger e Bruno Souza

Como de praxe nos eventos organizados pela Globalcode, Yara Senger fez a vez na abertura do evento, expondo os dados relacionados a comunidade Java ( JUG’s, SOUJava, divulgação e participação em eventos e número de profissionais ). Citou também os novos canais da Globalcode, Open4Education e do evento no twitter, por onde irão circular depoimentos e promoções relâmpago relacionadas a cursos da instituição, além de anúncios de novos eventos.

Após isso adentrou ao palco Bruno Souza, o “Java Man“, trazendo uma visão do que é o Open Source, baseada em sua larga experiência com o “ecossistema” Java. A frase base de sua apresentação foi: “Open Source é a forma natural de desenvolver software em um ambiente de rede”. A “rede” no caso pode ter contatos, membros de comunidade, projetos Open Source, networking, entusiastas e etc. É desenvolvendo software em rede que se aprende e evolui-se.

Ele fez um paralelo entre o Java e o Open Source com um fotógrafo: “Como se tornar um excelente fotógrafo? O que isso tem a ver com Java”. Vendo fotos de outras fontes e tirando muitas fotos é provável que se vire um grande fotógrafo. O mesmo acontece no Java: é preciso ver muito código de outras fontes e desenvolver muito código próprio. No mundo são apenas 1/4 de 1% da população que entende software. Para ser um bom desenvolvedor, fotógrafo ou outra coisa é preciso muito estudo e dedicação. De acordo com Bruno são cerca de 10000 horas ( cerca de 8 horas por dia, todos os dias, durante 3 anos e meio! ) para formar um bom profissional. É por meio do Open Source e da relação com o usuário, que é quem mais conhece o software, que o desenvolvedor pode inovar e evoluir. O software é arte e engenharia, e não fabricado, manufaturado, ou aprendido por SW privado.

Finalizando, Bruno deixou uma dica para as pessoas que irão participar do FISL10: ocorrerá no dia 23 de junho, um dia antes do evento oficial, o Javali FISL, organizado pelo SOUJava e que irá apresentar as palestras e o conteúdo presente no JAVA ONE ( 2 a 5 de Junho ), maior evento relacionando a Java no mundo. Deixo os meus parabéns ao trabalho feito pela Yara e pelo Bruno, “universalizando” o Open Source e unindo a comunidade Java e entusiastas, cada vez mais presentes nos eventos.

Robótica Open Source – Vinícius Senger & Paulo Carlos dos Santos

Robótica Open Source - Vinícius Senger & Paulo Carlos dos Santos

Essa era uma das palestras que me interessava, pois gosto bastante de hardware (já tinha ouvido falar de Arduino pelas minhas leituras da Revista INFO; em Fevereiro foi a primeira vez que ouvi falar). No caso, a palestra se deu em ritmo de “bate-papo” (diálogo), onde o Vinicius fez o papel do interessado (aluno) e o Paulo de facilitador da informação (professor). Paulo aliás que já foi aluno e professor do CEFET-SP, lugar onde fiz minha graduação (!).

O Arduino foi apresentado como “Hardware Open Source” ligado a “Physical Computing“, ou seja, trabalhando-se com o Arduino podemos introduzir, aplicar e aperfeiçoar conceitos de eletrônica (hardware, físico) e programação (seja do microcontrolador ou de uma linguagem específica aplicada).

O Arduino trabalha em cima de progração C (para gerenciamento de bibliotecas, I/O de informações sensorias, etc.) e é auxiado pelo Processing (linguagem de programação baseada em Java com IDE, para criar ambientes gráficos e facilitar a integração com projetos eletrônicos).

Assim, fazemos a programação da placa ( via C, com uso de USB, porta serial, WiFi, ethernet…) e visualizamos o resultado por meio de um conjunto de leds, pinos de saída ligados a motores ou sensores (pressão, ultrasom, etc.), auxiliados por interface gráfica (Processing). Portanto podem ser feitos os mais diversos tipos de projetos (sensoriamento de presença, controle de motor, automação residencial, telas touchscreen…), ficando a cargo do projetista a abrangência. “Arduino na mão e uma idéia na cabeça!”.

No Brasil já existe venda de kits do Arduino (saem por volta de 50 a 100 reais os kits mais básicos), sensores (por volta de 50 reais) e “shields” (placas de extensão – breadboards, que podem dar suporte a leitura de cartões SD, rede ethernet…). Geralmente são achados no MercadoLivre. Outros projetos realcionados a Arduino estão sendo criados, como o Arduino Nano, Arduino Severino e Paperduino.

Paulo ao decorrer da apresentação foi mostrando exemplos práticos, apresentados via vídeo no telão, mostrando a aplicabilidade de projetos usando o Arduino, como robôs, acelerômetros, sensores de presença, automação residencial com protocolo X10, entre outros.

Você me pergunta: “Ué, porque todo esse lobby de hardware em um evento de programação?”. Eu particularmente gostei e torço para que mais iniciativas sejam feitas (rs). Mas, o Arduino foi apresentado porque ambos os palestrantes iniciaram um curso intitulado “Academia do Programador” na Globalcode. Usarão o Arduino como instrumento de aprendizado na programação (uso de if, else…) , mas pretendem também criar mais cursos, incentivar a criação de projetos e aumentar a comunidade Arduino. No final das contas foi uma boa iniciativa, pela introdução do tema “desconhecido e voltado para hardware” para os presentes no evento.

Arquiteturas com JSF, JBoss Seam e Spring – Vinicius Senger e Alberto “Spock” Lemos

Arquiteturas com JSF, JBoss Seam e Spring - Vinicius Senger e Alberto "Spock" Lemos

Vinicius Senger e Spock fizeram um teste do que seria apresentado por eles no JavaOne 2009, sendo assim não tinha como não ser bastante técnico o conteúdo apresentado, fora o “show de siglas”. A mesma palestra apresentada no OpenTDC foi apresentada no JavaOne, portanto vemos que o conteúdo dos eventos só vem crescendo.

A idéia principal era mostrar as muitas opções que a plataforma Java EE apresenta para elaboração de projetos, e como montar opções de solução, seja com Struts, Shale, JSF, Wicket, EJB, Spring, Seam, entre outras. Para as empresas há muitos pontos importantes a serem levados em conta, geralmente  os “+ades” (escalabilidade, disponibilidade, manutenabilidade, etc.). Se a empresa busca um projeto de cunho experimental, a arquitetura assim pode também ser; se o projeto é corporativo a arquitetura deve ser conservadora. Frameworks devem ser acoplados a um projeto com inteligência, pois “o simples é bonito e fica bom com Java EE 5”, de acordo com Vinicius.

Uma coisa importante a ser pensada é que o preço de uma arquitetura não deve ser medido apenas com o trabalho do DEV, mas também com equipes de infra, manutenção, gerenciamento, QA e aprendizado. Os principais desafios para se criar arquiteturas corporativas são:

  • Fazer Java EE componentizado, visando reuso. Isso não é fácil;
  • Ter especificação “perfeita” é sonho. Ferramentas não (em termos de uso e aplicação);
  • Usar “+AR’s” é definitivamente difícil (JAR‘s, WAR‘s, EJB-JAR‘s, EAR‘s, etc.). Procure dosar;
  • Mudanças durante o projeto, mesmo que pequenas, aumentam o custo.

O Java EE hoje está OK em muitos pontos (EJB 3.0, JSF, JMS), mas em outros não (questões de modularidade e alguns frameworks). Partindo desse princípio tivemos o nascimento de dois frameworks, Spring e JBoss Seam. O Spring nasceu como alternativa ao Java EE, e o Seam nasceu como modelo de integração dos próprios componentes Java EE. O Seam tem foco em Web 2.0 e promove alguma integração com framework; o Spring tem foco em integrar com outros frameworks e algum com Web 2.0. O antagonismo continua quando falamos de uso em servidores: muitas empresas rodam Spring em diferentes servidores. Poucas empresas rodam Seam em servidores diferentes de JBoss.

Após esse panorama bem abrangente e técnico Spock começou a abordar as soluções envolvendo Java EE, componentes e frameworks, sendo o centro da apresentação. Foram 5 modelos apresentados, com suas vantagens e desvantagens:

  • Java EE básico;
  • Java EE + EJB;
  • Spring;
  • Seam;
  • Seam + Spring.

Como a palestra era prevista para 50 minutos (tempo oficial que eles teriam no JavaOne), e eles só tinham 45 minutos disponíveis (fora 10 a 15 minutos de atrasos de palestras anteriores) fora o horário de almoço atrasado, ficou um pouco “corrido” o conteúdo apresentado nos tópicos de soluções e alguns pontos foram omitidos. Gostaria de especificar melhor os itens acima, mas o tempo e a abrangência não possibilitou. A apresentação não foi ainda disponibilizada no site da Globalcode, nem no site do JavaOne. Quando estiver disponível atualizo este post com a informação.

Para finalizar, o panorama do futuro do Java foi dado com base no Java EE 6, usando JSF 2.0, Web Beans e EJB 3.1. A especificação do Java EE 6 e as próximas serão cada vez mais “puras” e o uso de Spring com Java EE 6 será maior. Fora a omissão de alguns pontos relacionados as soluções, muito pelo tempo disponível, o conteúdo e desenvoltura dos palestrantes agradou.

Adotando Agile: o caminho das pedras – Cláudio Teixeira

Adotando Agile: o caminho das pedras - Cláudio Teixeira

Cláudio Teixeira trouxe um panorama bem legal das metodologias ágeis, muito pela sua experiência com desenvolvimento e arquitetura de projetos em Londres, onde a “onda ágil” está atuante a muito mais tempo. Para se entender melhor porque há novidades em termos de metodologia, foi feita a seguinte pergunta: “Qual a motivação para um novo approach?”. Resposta: “Projetos falham” (em todos os níveis). Com base nisso, e sabendo que o cliente é exigente, é imprescindível fazer com que os projetos sejam rápidos (em termos de tempo), pois a reposta do cliente é rápida e as chances de errar diminuem.

Peguemos como exemplo o RUP. O RUP busca a “perfeição no processo” (o bom é inimigo do ótimo). Onde era implementado RUP? Em sistemas governamentais e exército dos EUA (alto custo e baixa tolerância a falhas), sendo fortemente apoiado a contratos. Para esse cenário não poderia ser diferente.

Com o “boom da Web” e os “Startups! de empresas” houve uma alta demanda de software, mudando o foco para confiança na empresa e menos em contrato e “burocracias”. Se o RUP fosse adotado teríamos planejamentos proféticos e “quadrados” (muitos manuais e cronogramas de processos). Fora que as “metodologias tradicionais” não mostram a “saúde” do projeto (Gráficos ROI e Waterfall não são suficientes). Nesse panorama pensou-se em dois confrontamentos:

  • Funcionalidades X Utilização: quanto mais rápido o feedback do cliente final melhor (faz-se apenas o necessário);
  • Desenvolvimento de software X Manufatura: custo e tempo são essenciais. Podem ser iguais ou não.

Todo esse cenário motivou algumas pessoas (do meio empresarial) a criarem algo novo, mas que fosse compatível com a situação do mercado e desse opção de aproveitar a demanda deste. Daí nasceu a expressão “ágil”, o manifesto ágil e a criação da Agile Alliance. Em nível de metodologia ágil temos 3 tipos de aplicação do processo:

1. Extreme Programming (“XP – O processo dos geeks”):

  • Feedback rápido e simples;
  • Entregas incrementais;
  • “Abraça” mudanças;
  • Código de alta qualidade.

2. SCRUM (“O processo da sala de guerra”):

  • Processo promove acerto e erro;
  • Feedback rápido;
  • Entrega em pequenas iterações;
  • Saúde do projeto vísivel (gráficos Burndowns);
  • Gerente não é comando controle, mas facilitador.

3. Lean: Processo de desenvolvimento da Toyota e tem raízes do SCRUM. Não muito conhecido no Brasil.

As desvantagens dos 3 são (nem tudo é perfeito…):

  • Não funciona com equipes “júnior”;
  • O cliente deve estar “100% disponível”;
  • Adiciona muitas práticas novas para as equipes;
  • O processo é fechado e deve ser seguido a risca;
  • A história do “porco e o frango” (comprometidos e envolvidos).

Qual usar? Scrum ou XP? Scrum gerencia melhor os processos, mas XP fornece melhores práticas (TDD, Unit Tests…). Melhor usar os dois!

E como adotar? Há dois caminhos: Consultoria externa ou “in house”. Se a escolha for a segunda há algumas dicas:

  • SCRUM é mais fácil de adotar;
  • Estude Lean também;
  • Escolha um projeto piloto;
  • Educação para o pessoal de negócio é necessária.

Foi com certeza uma das melhores palestras do evento. O palestrante passou muito bem o conteúdo e foi bastante claro, fora as doses de humor, necessárias depois do almoço (rs).

Java e TV Digital – Dimas Oliveira

Java e TV Digital - Dimas Oliveira

As palestras e a participação do Dimas nos eventos já virou marca de atenção ao conteúdo falado e muitas perguntas ao final da palestra. Não foi diferente dessa vez. Ele praticamente deu algumas dicas e panorama sobre TV Digital com Java, material de referência, Ginga, especificações, etc. Abaixo irei enumerar em tópicos:

  • Compartilhe seu conhecimento e credite as fontes (um “lema” do próprio Dimas. Sempre repetido em suas apresentações);
  • Divulgou uma previsão de venda de 230 milhões de set-top boxes em 5 anos. Mercado de atuação haverá, e muito;
  • Java é um “ecossistema”, formado de usuários e desenvolvedores. Procure sempre saber o que os usuários necessitam;
  • Mostrou fotos do primeiro teste com Ginga no Brasil: ano de 2005 na Paraíba. Pertencemos a “vanguarda” da tecnologia relacionada a TV Digital no mundo;
  • SBTVD é inovação nacional;
  • Em 2012 o Brasil será o segundo maior mercado emergente em TV Digital;
  • TV interativa (TV + aplicações controlando áudio e vídeo) irá necessitar de profissionais e aplicações em Java;
  • Ginga-J faz parte dos padrões mundiais de TV Digital;
  • Java DTV é uma API/especificação Java para TV digital, Ginga-J contém Java DTV e é uma parte do Ginga. O Ginga (NCL/LUA & J) é o middleware;
  • Quem tiver mais curiosidade pode ler a especificação do Java TV (JSR 927);
  • Ginga integra widgets lwuit para melhorar a interface gráfica;
  • As padronizações devem ser seguidas para qualquer operadora;
  • Para quem deseja aprender sobre TV Digital: a curva de aprendizado é de 5% a 8% a mais de conhecimento Java.

Palestra esclarecedora, apesar de já ter visto muitas dessas informações em eventos anteriores (Profissão Java e Java@TVDigital). Ao fim dela, e na saída para o coffee-break, muitos participantes se aglomeraram na frente do palco para fazer perguntas a Dimas. Para quem deseja saber mais sobre TV Digital pode mandar um email para “tvdigital-subscribe@soujava.dev.java.net” e participar da lista de discussão do SOUJava, sendo que o próprio Dimas faz parte.

Painel: Java FX, Adobe Flex e GWT – Éder Magalhães, Maurício Leal e Rafael Nunes

Painel: Java FX, Adobe Flex e GWT - Éder Magalhães, Maurício Leal e Rafael Nunes

Esta última palestra do evento não era para ser um painel (“disputa” de qual a melhor) entre as 3 tecnologias ligadas a RIA, mas um comparativo do que elas podem fornecer. Java FX foi apresentada por Maurício Leal, GWT por Éder Magalhães e Flex por Rafael Nunes.

Sobre Java FX:

  • Rich clients estão mudando o jogo. É preciso ter mais clientes ricos, onipresentes e “projetados” pelo desenvolvedor. FX é a solução;
  • É preciso “extender” RIA em diversas telas. Java FX é a plataforma para criar e entregar RIA;
  • Gera aplicações únicas e completas para desktop, mobile e outras. É portável para qualquer dispositivo;
  • Runtime poderoso e desacoplamento da aplicação do browser;
  • A aplicação é independente do browser, pode ser arrastada para “fora” do mesmo;
  • Coisas a serem construídas com Java FX: vídeo player, efeitos 3D, Java Applets, etc. Todos podem ser “arrastados” para fora do navegador;
  • Existe plugin para Photoshop e Illustrator;
  • Curva de aprendizado rápida: 1 semana.

Sobre GWT:

  • Suporte a Web interativa (RIA);
  • Navegação rápida, agradável e fácil;
  • Produtividade na construção e manutenção de aplicações Web;
  • Web leve: HTML + CSS + Ajax;
  • Para fazer uso de GWT é preciso ter uma equipe com experiência em Java;
  • Ideal para quem conhece Swing;
  • MVC só com código Java;
  • Constrói aplicações Ajax c/ Java (voltada a Open Source);
  • Widgets (componente de uso de interface) que podem ou não ser customizados;
  • Compila código Java em JavaScript;
  • “Esconde” a complexidade do Ajax;
  • Resolve incompatibilidade de browser;
  • Suporta recursos do Java 5;
  • Chamadas são assíncronas e acessadas por GWT RPC (servlet) ou HTTP (retorna XML,JSON e/ou JSNI e é solução para REST ou WebService).

Sobre Adobe Flex:

  • Baseado em linguagem de marcação (MXML);
  • SDK Open Source;
  • Action Script (linguagem de programação orientada a objeto);
  • A proposta é fazer front ends;
  • Flex Builder (“Eclipse” para Adobe Flex): no Windows é pago, mas é completo; no Linux é gratuito, mas tem menos funcionalidades disponíveis;
  • É preciso ter Flash Player para rodar aplicações Flex ou Air (rodam em desktop);
  • Multiplataforma;
  • Curva de aprendizado suave;
  • Independe de backend (Java, PHP, outras);
  • No segundo semestre sairá a versão 4 (!);
  • Depende de fornecedor, runtime e IDE paga. Exige mais poder do cliente;
  • Integra com WebServices e gera cliente automático através de WSDL;
  • HTTP Service (XML ou JSON);
  • Integração AMF: BlazeDS e GraniteDS para Java (depende do backend);
  • Frameworks: Cairngorm, Pure MVC, Mate Flex, Swiz;
  • Flex Unit para testes unitários;
  • Case de sucesso: tour de Flex & flex.org/showcase.

Qual a melhor? A que melhor se aplica pra você, seu projeto e sua realidade.

Conclusão

Foi mais um evento importante do qual pude participar e adicionar conteúdo ao meu portifólio de conhecimento. O nível dos palestrantes, temas e assuntos abordados ficaram de acordo com a atualidade. Mais de 300 pessoas estiveram presentes no OpenTDC 2009. E o mais importante e motivo de parabéns a equipe da Globalcode: tudo isso gratuito. Portanto, indico fortemente a ida de pessoas interessadas em Java e outras tecnologias a esses eventos. Para os interessados na programação do evento ou mini-bio dos palestrantes, favor acessar o link do evento. Para acesso as fotos do evento, inclusive as deste post, podem acessar o Picasa da Globalcode.

Pontos positivos

  • Nível, conhecimento e desenvoltura dos palestrantes;
  • Networking e acesso a informações;
  • Gratuito.

Pontos negativos

  • Atraso nas duas primeiras palestras, motivo pelo qual impactou na apresentação da terceira, e quiçá, mais importante palestra do evento, pois era modelo daquilo que seria apresentado no JavaOne 2009.

Espero que vocês, caros leitores, tenham gostado da leitura de minhas impressões, coletadas durante o evento. Fiquem à vontade para comentar, criticar ou complementar. E aguardem a publicação das minhas impressões do Java@TVDigital, evento também organizado pela Globalcode e de boa repercussão.

Até a próxima!