Revista Espírito Livre número 14 disponível para download

Caros leitores,

Está disponível para download a edição de número 14 da revista Espírito Livre.

Os tópicos mais interessantes dessa edição são:

  • A edição deste mês de maio traz em sua capa o tema amplamente difundido, confundido e polêmico: P2P. Salvação para muitos e tormento para outros, o P2P mostra que chegou para ficar, sendo usada de diversas formas, não somente para troca de arquivos entre pares, ou ainda confundida com uma tecnologia a serviço do crime;
  • Josh Bernard, que é um dos entrevistados da edição, utilizará BitTorrent para promover e distribuir sua próxima produção, uma série de TV chamada Pionner One;
  • Conversa com Andrew Resch, desenvolvedor do Deluge, um software para compartilhamento de arquivos em BitTorrent;
  • Walter Capanema comenta exatamente sobre o BitTorrent ser uma ferramenta para compartilhamento ou para pirataria, uma discussão que vai longe…;
  • Bate papo com Carlos Eduardo do Val, autor do livro Ubuntu – Guia do Iniciante, já mencionado em edição anterior. Ele fala como teve a ideia de escrever o livro, suas motivações, entre outros;
  • Conversa com Salsaman, figura conhecida já no cenário nacional/internacional por diversos motivos, entre eles ajudar no desenvolvimento do editor de vídeo LiVES;
  • Edgard Arthur Michel fala de seu projeto, o CrowdLabore que reune Crowdsourcing e Colaboração;
  • Wilkens Lenon levanta uma questão interessante sobre o software livre como paradigma da liberdade;
  • Ricardo Martiniano fala do recente protesto de comunidades Linux no Orkut;
  • Miguel Koren apresenta o OpenBravo, uma solução bastante eficiente de ERP para empresas;
  • Igor Morgado descreve um processo interessante para backups no Ubuntu, situação que rotineiramente nos envolve;
  • Conversa com David LeDuc, da ODF Alliance, que expõe muito bem estes 5 primeiros anos de ODF, um formato aberto para documentos.

Interessado? Então clique na imagem acima e faça o download!

Boa leitura a todos!

Revista Espírito Livre número 13 disponível para download

Caros leitores,

Está disponível para download a edição de número 13 da revista Espírito Livre.

Os tópicos mais interessantes dessa edição são:

  • O Projeto GNU e a Free Software Foundation: Richard Stallman foi entrevistado juntamente com Brian Gough, que também faz parte do projeto GNU e FSF;
  • Krix Apolinário, juntamente com Alexandre Oliva, Cesar Taurion, Cárlisson Galdino e Roberto Salomon trazem cada um em sua coluna, do seu jeito, excelentes contribuições;
  • Walter Capanema e Luis Henrique Silveira apresentam dois artigos apresentando aspectos jurídicos de duas situações bastante polêmicas. Capanema trata da pirataria enquanto Luis Henrique fala da nova licitação do Programa Professor Digital, amplamente coberto pelas mídias e assunto do momento;
  • Juliana Kryszczun conversou com Luciano Ramalho, desenvolvedor em Python;
  • Jomar Silva, sem papas na língua, declara a morte das suítes de escritório, mas com um enfoque bastante consciente e fundamentado;
  • Patrick Amorim fala sobre a Tecnologia PLC, que provê banda larga através da rede elétrica;
  • Filipo Tardim apresenta como fazer uma remasterização do Ubuntu, do zero;
  • Wagner Emmanoel faz um review sobre a nova edição do Ubuntu (10.04);
  • Igor Morgado traz um artigo bem interessante sobre gerenciamento de redes;
  • Francilvio Alff fala sobre gestão do conhecimento e ferramentas wiki.

Interessado? Então clique na imagem acima e faça o download!

Boa leitura a todos!

Revista Espírito Livre número 12 disponível para download

Caros leitores,

Está disponível para download a edição de número 12 da revista Espírito Livre.

Os tópicos mais interessantes dessa edição são:

  • Tema principal: liberdade na Internet, seja através da liberdade de expressão, seja no uso de softwares e alternativas;
  • Entrevista principal: Mark Surman, diretor executivo da Mozilla Foundation. Em sua passagem pelo Brasil neste mês de março para a divulgação do Mozilla Drumbeat, Mark concedeu esta entrevista exclusiva à Revista Espírito Livre;
  • Jomar Silva levanta um questionamento interessante: até que ponto a internet é culpada pelas falhas do usuário? Será que a rede tem culpa?
  • Francilvio Alff faz uma análise sobre as restrições feitas pelo dragão chinês em relação a grande rede;
  • Fernando Leme apresenta em detalhes questões sobre DRM – Digital Rights Management;
  • Walter Capanema apresenta ainda um manual de sobrevivência sobre a liberdade de expressão na Internet;
  • O sociólogo Sérgio Amadeu, já conhecido pela comunidade de software livre do Brasil, fala de como a indústria do copyright ataca a privacidade e as redes P2P;
  • Krix Apolinário estréia como nova colunista;
  • Cristiano Furtado apresenta as novidades da última versão do Ekaaty Linux, um GNU/Linux feito por mãos brasileiras e um time bem coeso;
  • Farid e Nara, figuras conhecidas nas comunidades onde se encontram designer e ilustradores, trazem um panorama sobre as ferramentas de código aberto para computação gráfica em suas várias óticas;
  • Jorge Augusto e o estreante Fernando Medeiros falam sobre empregabilidade, tema importante que precisa ser recorrentemente mencionado;
  • Leandro Leal Parente termina seu artigo sobre o Jack e Patrick Amorim também finaliza seu artigo sobre o Linux FTDK.

Interessado? Então clique na imagem acima e faça o download!

Boa leitura a todos!

Revista Espírito Livre número 11 disponível para download

Caros leitores,

Está disponível para download a edição de número 11 da revista Espírito Livre.

Os tópicos mais interessantes dessa edição são:

  • Matéria de capa: a computação gráfica como um aliado ao software livre;
  • Martin Nordholts, desenvolvedor do projeto Gimp, esclarece diversos pontos sobre as novas versões do popular editor de imagens;
  • Vitor Balbio é outro entrevistado, que explica com clareza seus projetos, dentre eles o Ruínas;
  • Alexandre Oliva, que participa da Free Software Foundation Latin América, concede uma entrevista esclarecendo seu ponto de vista sobre um evento bastante popular que acontece no próximo mês: o FLISOL, o Festival Latinoamericano de Instalação de Software Livre, que acontece em diversas cidades das Américas;
  • Fernanda G Weiden, da Free Software Foundation Europa, conversa sobre o Document Freedom Day, evento que acontece simultaneamente em todo o mundo;
  • Karlisson Bezerra, responsável pela famosa tirinha “Nerson Não Vai A Escola” também assina uma matéria comentando sobre a produção de tiras utilizando software livre;
  • Relsi Hur Maron continua com sua série de artigos sobre Joomla;
  • Patrick Amorim traz a primeira parte de um artigo sobre perícia forense utilizando GNU/Linux;
  • Jorge Augusto continua com seus artigos sobre empregabilidade;
  • Hailton Lemos apresenta uma perspectiva interessante mostrando como a biologia está inspirando a informática.

Interessado? Então clique na imagem acima e faça o download!

Boa leitura a todos.

A matéria de capa vem trazendo a computação gráfica como um aliado ao software livre

Revista Espírito Livre 9 disponível para download

Caros leitores,

Está disponível para download a edição de número 9 da revista Espírito Livre.

Revista Espírito Livre - Ed. #009 - Dezembro 2009

Os tópicos mais interessantes dessa edição são:

  • Tema principal: as redes sociais;
  • Conversa com Vicente Aguiar, membro da equipe do Noosfero;
  • Jomar Silva fala sobre os 10 cuidados que devemos tomar em redes sociais;
  • Luiz Eduardo fala sobre o formato SVG, apresentando suas vantagens e utilização em softwares;
  • Carlos Eduardo, o Cadunico, fala sobre a criação de tecidos no Inkscape, um software que, por padrão, utiliza o formato SVG;
  • Clayton Lobato mostra um pouco mais sobre o sistema Braille de escrita e leitura;
  • E muitos outros assuntos…

Interessado? Então acesse o link e faça o download!

Boa leitura a todos.

Dojo com Program-ME e Arduino na Globalcode – 10-12-09

Como diz o ditado: “antes tarde do que nunca” 🙂

Com um pouco de atraso vou divulgar aqui algumas informações a respeito da minha participação no Dojo com Program-ME e Arduino, que aconteceu no dia 10 desse mês (a uma semana exatamente) na Globalcode (Unidade São Paulo). Por lá tive a felicidade de encontrar um companheiro de trabalho (Alex Moraes), que também é interessado em programação, novas tecnologias e participa do grupo de Ruby da Fatec-SP.

A questão é: o que é um dojo (mais precisamente coding dojo) ?

Vou usar como referência um texto retirado da página do Coding Dojo UFSC:

Segundo o http://codingdojo.org/: “Um Coding Dojo é um encontro onde um grupo de programadores se reúne para trabalhar em conjunto em um desafio de programação. Eles estão lá para se divertir, e, através de uma metodologia pragmática, melhorar suas habilidades de programação e de trabalho em grupo.”

O Coding Dojo tem algumas regras básicas:

  • Desenvolvimento guiado por testes: Antes de fazer qualquer implementação, deve ser escrito um teste, que ao passar indica que a implementação está correta.
  • “Passos de bebê”: Se um teste não está passando, você deve escrever o código mais simples possível que faça o teste passar. Quando for escrever um novo teste para o mesmo método, escreva um teste que teste só um pouquinho a mais da funcionalidade desejada.
  • Pair programming: A programação é feita em duplas. Cada dupla tem um piloto e um co-piloto. Ambos pensam em como passar no teste atual, mas só o piloto digita. Cada par tem por volta de 5 a 10 minutos no seu turno. Quando esse tempo acaba:
    • O piloto volta para a platéia
    • O co-piloto assume o lugar do piloto
    • Um novo co-piloto vem da platéia
  • Todos devem entender: O piloto e o co-piloto devem sempre explicar em voz alta o que estão tentando fazer para solucionar o problema. Qualquer um na platéia pode pedir explicações se não entender algum raciocínio.
  • Três fases: Um Coding Dojo sempre está em alguma dessas 3 fases, dependendo do estado dos testes:
    • Vermelha: Pelo menos um teste não está passando. A dupla da vez deve se concentrar em fazer o teste passar. A platéia não deve falar nessa fase, para não atrapalhar piloto e co-piloto.
    • Verde: Os testes acabaram de ser rodados e todos estão passando. Essa é a hora de quem está na platéia dar sugestões para melhorar o código.
    • Cinza: O código foi modificado de acordo com as sugestões, mas a bateria de testes ainda não foi rodada. Deve-se evitar fazer grandes modificações no código nessa fase.

Qual o objetivo desse codingo dojo (Retirado da página de notícias da Globalcode)?


Neste Dojo, os participante deverão implementar uma aplicação que simulará o antigo brinquedo eletrônico conhecido como Genius.A simulação deverá gerar as seqüências de cores usando LEDs para um jogador interagir fisicamente com aplicação através de botões coloridos para repetir a seqüencia aleatória apresentada. O algorítimo deverá então captar essas ações e identificar se a seqüência realizada pelo jogador está correta ou não.

Durante este evento, com a participação especial do Felipe de Almeida Rodrigues (Fratech, ou “cover” do Martin Fowler, rs) e pelo Alberto Spock Lemos (Dr. Spock), que participaram de um DOJO no Linguágil, você aprende aplicar TDD e Pair Programing ao revesar na escrita do código a cada 7 minutos com outros participantes. Portanto, o problema deverá ser resolvido “ao vivo”.

Participando,  voce aprende técnicas ágeis de desenvolvimento, uma linguagem de programação, conhece o Program-ME e o que é computação física.

A minha opiniao do evento

O meu interesse em participar desse minicurso veio da palestra “Robótica Open Source – Vinícius Senger & Paulo Carlos dos Santos”, que aconteceu no OpenTDC 2009, onde finalmente consegui ver ao vivo as coisas acontecendo. Planejo, em futuro próximo, adquirir um kit desses para “brincar”…rs.

Achei legal a experiência e primeiro contato com o Arduino e os meios de programação do mesmo. Os instrutores trouxeram uma nova maneira de “fazer minicursos”: não é só uma pessoa falando durante 3 horas seguidas de um assunto, sem haver interação com o pessoal. São as mesmas 3 horas de interação, diversão, mão-na-massa e descobertas de momento acerca do assunto que foi abordado. Esse foi o ponto principal: todos participaram e fizeram o minicurso! (até eu tive meus 14 minutos, como co-piloto e piloto 🙂 )

Abaixo coloco algumas fotos tiradas por mim no evento (em algumas está Alex Moraes, no seu momento “co-piloto”):

Ao final do minicurso, Felipe e Dr. Spock disseram ao público que há a intenção de serem feitos mais dojos na Globalcode, de Arduino (é claro) e de outros assuntos. Portanto aguardem mais informações.

O Dr. Spock (que também escreve em seu blog sobre Arduino) já publicou dois artigos sobre esse dojo, inclusive com o código final gerado pelo pessoal do minicurso, alcançando o objetivo do projeto. Para conferir, acesse:

Bom, por enquanto é só e agradeço desde já aqueles que deram uma passada no meu blog e fizeram a leitura.

Até a próxima e aguardem as novidades!!

Minhas impressões – Sun Tech Days 2009/2010 – Dia 1 (08-12-09)

Caros colegas,

Participei na última semana do Sun Tech Days 2009/2010, evento que aconteceu aqui em São Paulo, contando com a presença de grandes engenheiros da Sun e de ícones da comunidade Java do Brasil, e que tive o privilégio de me inscrever por um “golpe de sorte”, pois abriram-se entre o dia 02 e 03 de dezembro 200 inscrições gratuitas do evento, e tive sorte de me inscrever com sucesso 🙂


Vou disponibilizar para vocês agora um resumo de tudo o que aconteceu de acordo com a minha ótica.

Panorama 1: Para chegar até o local…

Para chegar até o local não foi as mil maravilhas no dia 08 de Dezembro…

Na madrugada/dia dessa data em SP choveu demais e tivemos um índice pluviométrico não esperado para o período, totalmente fora dos padrões. Portanto, vias principais congestionadas e o conseqüente problema do transporte público sobrecarregado. Levei quase 2h30 para chegar até o local (saída: 6h50 – chegada: 9h10!). Graças ao Google, GPS e Maps consegui encontrar o local, pois não conhecia a região e este foi meu primeiro Sun Tech Days 🙂

Panorama 2: Após a chegada

Presenciei uma organização/sinalização de locais/palestras/auditórios muito boa, fora a prestatividade dos envolvidos. Para pegar o crachá de conferencista não demorei muito tempo, além do espaço ser abrigador da chuva (acima de tudo…rs). De cara pude comtemplar as presenças do Marcelo Leal (SUN), Carlos Fernando Gonçalves (JavaNoroeste), Jorge Diz, Vinicius Senger e Yara Senger (Globalcode). Andando mais um pouco visualizei o mito James Gosling (!). Esperei mais 10 minutos até poder adentrar ao auditório principal. Nesse “meio tempo” fui visitar os estandes dos expositores, alguns como OpenSolaris, Oracle (é claro), Sun (é claro [2]) e Locaweb.

Após isso adentrei ao auditório principal para a primeira palestra do dia. Para saber sobre todos os palestrantes acesse esse link.

Boas Vindas ao Sun Tech Days – Luiz Fernando Maluf


Para dar as boas vindas ao pessoal do evento, o diretor para a América Latina da Sun Microsystems, Luiz Fernando Maluf, fez uma rápida apresentação mostrando o cenário no qual se encaixam os desenvolvedores Java (e usuários de tecnologias SUN) e como eles estão relacionados com o panorama do mercado, retorno profissional, técnico e financeiro, visando aproveitar as oportunidades que surgem no mercado de hoje: fim da crise, uso e expansão da plataforma Java pela linguagem Java (e outras) e abordagens acerca de novas tecnologias, como TV Digital, por exemplo. Agradeceu aos JUG leaders de comunidades, caravanas e o público do evento que estava presente.

Showcase de Tecnologia: Inspire-se! – Simon Ritter e Angela Caicedo

Antes do “pai do Java” falar sua “visão futurista” da plataforma, Simon Ritter e Angela Caicedo apresentaram alguns exemplos de aplicação das tecnologias Java e Sun do momento.  As implementações e demos foram mostradas para o público.

Simon mostrou como JavaFX pode ser produtivo, gerando animações com figuras ou vídeos, para Web ou Desktop, sem escrever uma linha de código e usando apenas uma “interface amigável de arrastar, soltar, colocar botões e etc.”. No fundo é o JavaFX Platform Suite, que pode ser usado como plugin para ferramentas pagas como Adobe Photoshop, Illustrator e etc. O objetivo era mostrar a produtividade da ferramenta com o objetivo de criar aplicações RIA com pouco “trabalho” (vulgo escrita de código).

Angela Caicedo mostrou uma tecnologia que achei bem interessante: uma “lousa mágica” usando JavaFX. Se trata de uma lousa de vidro, transparente, que por trás dela havia um projetor multimídia (projetando um quadro negro, lousa) com um Wii Remote em cima captando sinais de movimento e toque feitos com uma luva (a qual ia tocando a lousa ou “escrevendo” na mesma). As respostas eram enviadas via bluetooth para um notebook que processava as coordenadas e passava para uma aplicação JavaFX. Com isso era possível relacionar na aplicação o ponto tocado e a significância disso: se era um botão ativado da aplicação que deveria abrir uma paleta de cores, se era para limpar o quadro e etc.

Esse exemplo mostrou a sinergia de algumas tecnologias, além de Java e soluções SUN, que podem gerar modelos inteligentes tão bons quanto o apresentado.

O que está acontecendo com o Java? – James Gosling


Após o showcase James Gosling subiu ao palco para o frissom dos presentes, que puderam comtemplar o “mito”. O overview de James Gosling estava relacionado com as novidades da plataforma Java: mais de um assunto foi abordado, como JavaFX, NetBeansGlassfishJava EE6 e etc.

Sobre o Glassfish foi mantido o discurso de ser o servidor de aplicação mais rápido, baixado e performático do mercado (lógico…rs). Foram mostrados “gráficos e informações comprovando”. O mesmo está a muito tempo na versão V2, mas a versão V3 (lançada no dia 10/12) terá suporte a Java EE 6. Gosling fez algumas demos mostrando um menor tempo de redeploy para as aplicações, quase instantâneo, evidenciando uma melhoria na capacidade de criação e manutenabilidade de projetos via Glassfish.

Uma das novidades mostradas pelo mesmo foi o lançamento da JavaStore, que no momento está disponível apenas para o público americano, mas que tem previsão de abrangência maior e sair da fase beta no ano de 2010.

Gosling e Tim Boudreau, especialista em Java Card, fizeram uma demo mostrando o novo suporte para contenção de aplicações Web, http e https, embarcados (um servidor web dentro de um chip!).

O NetBeans foi citado como IDE padrão e está na sua versão 6.8 com suporte a Java EE6 também (Gosling indica “jogar no lixo” o EmacsViEclipse, inclusive…rs).

No final da apresentação, e de praxe para eventos da Sun, muitos brindes foram jogados para o público (Camisas da Sun e “Dukes“).

Glassfish V3: O servidor de aplicativos de última geração – Sang Shin


Sang é um velho conhecido do Brasil e de Sun Tech Days: essa foi a sua oitava viagem ao Brasil. Ao olhar para o mesmo sabia que conhecia ele de algum lugar. Voilá! Me veio a lembrança de já ter visto um vídeo no youtube dele “dançando” em uma das edições do Sun Tech Days. Confiram abaixo e tirem suas conclusões…rs.

Alguns pontos a ressaltar da apresentação

  • O objetivo do Glassfish V3 é ser o melhor servidor de aplicações do mercado: é compatível com Java EE 6, modularizado (baseado em OSGi e usando Apache Felix), sem limites de containeres e pode rodar containeres Java ou não-Java;
  • Glassfish tem suporte a mais de 200 bundles OSGi e podem ser desenvolvidos outros mais;
  • Existem 3 tipos de bundles: relacionados a kernel, containeres ou serviços;
  • Monitoramento e gerenciamento através de console web e asadmin;
  • Facilidades de um ambiente composto por Netbeans 6.8 + Glassfish v3 + Java EE 6, tendo-se desenvolvimento e deploy de aplicações “sem dor” e com muito mais rapidez. O deploy/redeploy automático mantém sessões e informações existentes de sua aplicação, mesmo após restart do servidor.

Os demos executados durante a apresentação, e que embasavam a teoria passada, se encontram no site mantido pelo próprio Sang Shin, o javapassion.com (não acessar java.passion.com…é NSFW…rs.). Eis alguns abaixo:

No final de sua apresentação Sang convidou para subir ao palco Jerome Dochez, principal engenheiro da Sun no desenvolvimento do Glassfish, para responder algumas perguntas do público e apresentar o seu overview da nova versão.


Para os interessados, a apresentação de Sang se encontra disponível para download por este link.

JDK7: O futuro da plataforma Java – Simon Ritter


Simon Ritter trouxe um overview para o público com as novidades do JDK7. Os pontos mais relevantes escrevo abaixo:

  • JDK7 está pronto, aberto e em constante desenvolvimento pela comunidade, o JSE7 ainda não está pronto e precisa de alguns pontos para ser resolvido (no JCP);
  • Sobre a linguagem as mudanças são: annotations on java types (JSR308); Project coin e modularidade (JSR294). Vale lembrar que todas as mudanças estão aprovadas;
  • Sobre o core: Projeto Jigsaw (a JSR294 impacta tanto no core quanto na linguagem. Modularidade = Jigsaw); atualização em concorrência e collections (JSR166); novas API’s a respeito de IO (NIO2);
  • Suporte a linguagens dinamicas (da vinci machine project) e Garbage G1 são bem importantes e de grande relevância também;
  • Uma das mudanças interessantes foi o uso de números binários de forma declarativa (int b = 0b01010101, binary b = 0X09AB), separação de grupos de números long por underscore (Long l = 9_938_827_122) e Switch usando string;
  • Gerenciamento automático de recursos: cláusulas try/catch que sempre precisam de um finally para fechar algum recurso (alguma_coisa.close) agora não mais precisam. A JVM gerencia isso (!);
  • Multi catch (2 cláusulas de exceção com o mesmo tratamento): talvez possa voltar no JDK7;
  • Invoke Dynamic bytecode (JSR292).

Sobre o projeto Jigsaw, em particular:

  • O JDK é grande, muito grande (só no JDK6 temos 47 pacotes toplevel e mais de 4000 classes), um problema em relação a tempo de download de pacotes e tempo de startup de algumas aplicações, por se usar bibliotecas demais;
  • Há dificuldade de se criar uma “plataforma fina, concisa e leve”, principalmente para dispositivos mobile dos dias de hoje, por exemplo. Para isso foi criado o projeto Jigsaw.
  • Já existe um projeto  de OpenJDK baseado no JigSaw;
  • A intenção de “código modular” é criar código limpo e bem direcionando para uso, criando uma não dependência de código e uso de bibliotecas entre programadores (commiters) ou código implantado em cliente, não dando propósito a erro. Os módulos terão versionamento, portanto você poderá definir no seu código qual a versão do módulo que você vai querer usar na sua aplicação.

Nessa versão foi bastante pensado nas mudanças a serem feitas, para não cair no erro do assert (java 1.4) e enum  (java 1.5), fato que “quebrou muitos códigos” antigamente. Simon reiterou que “trabalhar mudando e adaptando java é realmente pesado”.

O Lançamento final do JDK está marcado para Setembro de 2010. A plataforma Java tende a fica mais poderosa e abrangente, sem dúvida.

Ginga, Lwuit, JavaDTV e você – Dimas Oliveira & Tamir Shabat


Dimas Oliveira é um grande conhecido da comunidade Java no Brasil quando o assunto é TV Digital. Referência, esteve presente no Profissão Java, Java@TV Digital e OpenTDCTamir Shabat, especialista em desenvolvimento com Lwuit e TV Digital foi palestrante no Java@TV Digital. Em todos esses eventos eu estive presente e vocês podem acompanhar os posts pelos links anteriores (o Java@TV Digital ainda hei de escrever). Nesse Sun Tech Days a apresentação de ambos foi um “compilado” do que já tinha sido apresentado nesses eventos. Abaixo algumas informações dessa apresentação:

  • Perspectiva de no próximo ano termos 25 milhões de tv’s ligadas ao sinal digital, ou seja, é uma oportunidade palpável e direta para desenvolvedores gerarem aplicações, sendo que no ano que vem o Ginga estará mais maduro e a disponibilidade de set-up-boxes tende a ser maior;
  • Histórico da TV Digital não é de hoje: desde 2005 há desenvolvimento;
  • Para que já conhece Java é preciso aprender cerca de 8% a mais de Java para desenvolver para TV Digital;
  • TV interativa = TV + aplicações (não é simplesmente um browser com acesso a internet na TV);
  • Locais de estudo: Forum SBTVDjavatv-developers.


No final da apresentação Tamir mostrou uma demo, usando NetBeans + Lwuit (for TV Digital), de uma aplicação interativa para TV Digital baseada em uma aplicação real que a Rede Globo estaria disposta a usar. Um set-up-box foi usado para demostrar ao vivo os exemplos de interatividade desta aplicação.

Ajuste no desempenho do GC – Simon Ritter


Simon baseou-se para sua apresentação em 4 pontos:

  • Opções para a JVM da Sun;
  • Garbage collector;
  • Garbage first;
  • Dicas para tunning do GC.

No início foi exposta a evolução do gerenciamento de recursos, onde antigamente o desenvolvedor era responsável por alocar e desalocar memória (em C: malloc and free; em C++: new and delete). Hoje no Java só é preciso criar os objetos (“new”). A JVM se encarrega de gerenciar a memória (Garbage Collector).

Basicamente temos 3 tipos de opções, quando gerenciamos o GC:

  • Standard options:  todas plataformas;
  • -X options: não são aplicáveis a todas as plataformas;
  • -XX options: -não são aplicáveis a todas as plataformas e podem precisar de privilégios adicionais para usá-las.

Para maiores detalhes, favor consultar a documentação da Sun.

As dicas mais importantes passadas pelo Simon foram:

  • multi processos e cores criam objetos novos (todos tentam acessar o eden ao mesmo tempo): Solução: -XX:TLABSize=size-in-bytes ou -XX:ResizeTLAB;
  • Serial: indicado para maioria das aplicações para desktop;
  • Paralelo: indicado para maquinas com multiplos cores e bastante memória;
  • “JVM ergonomics”: comece usando -XX:+UseParallelGC e -XX:+UseAdaptiveSizePolicy;
  • Rode a opção -server;
  • As opções -XX:MaxGCPauseMillis=n e -XX:GCTimeMillis=n podem performar, mas não são garantidas;

Sobre GC e escolhas de Design:

  • Serial (-XX:+UseSerialGC);
  • Paralelo (-XX:+UseParallelGC). Para Tuning: -XX:UseParNewGC  e -XX:ParallelGCThreads=n, onde n é o número de CPU’s;
  • Concurrent (-XX:+UseConcMarkSweepGC). Para Tuning: -XX:ParallelCMSThreads=n, onde n é um quarto do número de CPU’s ; -XX:CMSInitiatingOccupancyFraction; -XX:+CMSIncrementalMode (off); -XX:+CMSIncrementalDutyCycle=n% (indicado n=50));
  • Stop the world;
  • Compacting (-XX:+UseParallelOldGC);
  • Non compacting;
  • Coping.

Sem dúvidas o G1 terá melhorias consideráveis para performance e foram mostrados exemplos de diagramas de alocação de memória com as respectivas legendas. Para saber mais, faça o dowload de um paper da Sun sobre o G1, por esse link.

Programação JavaFX para dispositivos móveis – Angela Caicedo


A apresentação foi bastante técnica e com muitos exemplos de código e demos. Foi uma sessão voltada para desenvolvedores que já conhecem a plataforma JavaFX e a plataforma de desenvolvimento de dispositivos móveis. Em resumo foi passado:

  • Introdução a MIDlets, MSA e JavaFX Mobile;
  • Conceitos de Mobile RIA , MVC, “stage e scene” e construção de UI’s;
  • Migrando aplicações de JavaFX desktop para JavaFX mobile;
  • Melhores práticas de performance;
  • Mobile samples e adição de mídias;
  • Demos.

A idéia central é: existem várias aplicações e modos de aplicar JavaFX para mobile devices, e essa é uma tendencia do mercado.

É preciso saber trabalhar com Java Micro Edition,  MIDP e aplicações e Wireless Toolkit (JavaME SDK). Algumas API’s de Java são essenciais: java.lang e java.io, além das específicas para desenvolvimento mobile: java.microedition. Com isso você consegue criar, editar, compilar, debugar, empacotar, testar e fazer deploy de aplicações (ou seja, tudo…rs).

O ambiente indicado para isso: Netbeans 6.8 + WTK (Wireless Toolkit) 2.5.2/JavaMe SDK 3.0.


Em termos de desenvolvimento:

  • Java ME MSA platform (JSR248 – Mobile Service Architechture). Essa é a base e dá suporte a tudo: audio, vídeo, camera, SIP, bluetooth, etc;
  • Para construir aplicações  de UI no MSA use API de alto nível (MIDP 2.0 widgets): é fácil, rápido e tem a beleza nativa de UI;
  • Há outras API’s disponíveis: JSR226 (SVG Tiny 1.1), JSR184 (3d graphics API) e OpenGL, por exemplo;
  • JavaFX mobile cria RIA para mobile;
  • Ao invés de trabalhar com aplicações de media (gimp, photoshop), passar as imagens para o MIDP  e só depois portar para o celular, agora você pode usar qualquer ferramenta de media (gimp, photoshop, adobe), passar pelo editor de media do JavaFX e portar isso para JavaFX mobile direto ou trabalhar via Netbeans para depois portar;
  • Modelo MVC pode ser implementado: Model (dados e sua lógica), View (Rich UI) e Controller (regras de processamento).

Para maiores detalhes e exemplos: http://javafx.com/samples

Linguagens de criação de scripts: opções para a JVM – Simon Ritter


Finalizando o primeiro dia (ufa!) o lema foi: Languages everywhere. Para o JDK7 é imprescindível saber o poder das linguagens dinâmicas e as mudanças que elas trarão. No caso são 4 que se destacam, ou melhor, são as que realmente são levadas em conta: Groovy, Ruby, Scala e Clojure.

Mas porque o número excessivo de linguagens? Liberdade de escolha e diferentes linguagens resolvem problemas de tipos diferentes. Java + todas elas + JVM : muitos poderes! (domain specific languages).

Abaixo um resumo de cada uma delas:

GROOVY

  • Linguagem OO;
  • Sintaxe é muito similar a Java, além de ser compacta e concisa;
  • Groovy herda classes Java e implementa interfaces Groovy ;
  • Permite closure e sobrecarga de operadores (-, +, * ou /), uma “máxima” das linguagens de script;
  • Integração com Java via JSR223;
  • Use groovy quando precisar de novas features que Java não tem pois os códigos se aproximam muito;
  • Meta object protocol – MOP (provê comportamento dinâmico para groovy);
  • Livro indicado: Groovy in Action (Dierk Konig).

RUBY

  • Imperativo, funcional e reflexivo (suporta muitos paradigmas programacionais);
  • Excelente suporte a metaprogramação e reflexão;
  • Suporte a continuação (“congela” um ponto e pode voltar a um anterior);
  • Tudo em ruby é objeto;
  • Tudo é chamada de método (obj.fred é o mesmo que obj.send(:fred));
  • Métodos podem ser invocados com ou sem parênteses.

SCALA

  • Puramente orientada a OO e tudo é objeto;
  • Scala não permite overload do operador true;
  • Array index é acessado por () e não [];
  • Não tem pré ou pós incremento (i++ ou ++i);
  • Arrays são mutáveis (ao contrário de Java);
  • Scala não suporta membros staticos (usar singletons no caso!);
  • Scala não requer construtor (pode ser definido implicitamente num código anonimo e se quiser fazer overload pode usar this).

CLOJURE

  • Modelada em Lisp;
  • Linguagem functional;
  • Funções são stateless;
  • Todos os dados são imutáveis;
  • Tem algumas complicações pois é uma linguagem onde se deve conhecer “onde se colocar as chaves, parênteses, ou chaves”.

A “sacada” é estar por dentro do JDK7 que vai dar suporte a linguagens dinâmicas de forma mais aberta (InvokeDynamic bytecode – JSR292).

Conclusão do dia 1

Como não podia deixar de ser, uma “avalanche” de informação…rs. Apesar de já ter visto muitos dos termos apresentados em outros eventos, sempre é bom revê-los por outras pessoas e com outras explicações. O primeiro dia foi de bom grado para mim, até uma camisa da Sun eu ganhei 🙂 . E a volta para casa mais tranqüila…rs.

Amigos leitores, essa foi a primeira parte do meu relato desse evento. Agradeço desde já os que deram uma passada por aqui e publicarei o mais breve possível a parte 2 da história.

Até logo!

VI – O fantástico editor de textos

Esse texto foi retirado do site Viva o Linux, e é uma ótima referência para usuários Linux e desse poderoso editor de textos (“pau pra toda obra” :)). Aproveitem as dicas abaixo!

Resolvi escrever este guia depois de vastos anos de experiências com este fantástico editor de textos, o qual tornou-se o meu preferido dentre tantos outros. Outra coisa que me motivou bastante foi devido ao fato de sempre haver um número expressivo de dúvidas na sessão de perguntas. Espero que o mesmo contribua para o aprendizado de todos.

O VI é um dos editores de texto mais populares em sistemas de tipo Unix/Linux. Apesar da sua ergonomia muito limitada, este editor é fantástico, com ele é possível fazer coisas inacreditáveis. Muitos usuários do mundo Unix/Linux preferem optar por outros editores devido sua complexidade, como joe, elvis, nano, pico, mcedit, emacs etc. Vale ressaltar que este artigo não tem como finalidade levantar nenhuma discussão quanto a preferência dos usuários com relação aos outros editores de textos.

Um pouco de história

O programa foi criado por Bill Joy em 1976 para o BSD. O nome VI é uma forma abreviada para visual. Em 1991 foi lançado o editor vim, uma derivação melhorada do vi (o nome vim é abreviação para Vi IMproved, ou Vi Melhorado). Ele está presente em quase todas as distribuições Linux, oferecendo mais recursos que seu antecessor.

Usuários do editor Emacs, que também surgiu em 1976, acabam sempre gerando discussões com usuários mais assíduos do vi por questões de gosto pessoal, apesar de que o padrão Unix exige a presença do editor vi, o que o torna mais disseminado.

Como é pequeno e leve, pode ser colocado dentro de disquetes para ser utilizado em manutenção ou mesmo usado em situações em que há pouco recurso computacional.

Fonte: http://pt.wikipedia.org/

Guia de comandos

Sintaxe para executar o vi:

$ vi nome_do_arquivo

Uma vez carregado, poderão ser executados os seguintes comandos dentro do vi.

Comandos básicos:

  • :wq – Salva o arquivo e sai do editor
  • :w nome_do_arquivo – Salva o arquivo corrente com o nome especificado
  • :w! nome_do_arquivo – Salva o arquivo corrente no arquivo especificado
  • :q – Sai do editor
  • :q! – Sai do editor sem salvar as alterações realizadas

Comandos de inserção:

  • i – Insere texto antes do cursor
  • a – Insere texto depois do cursor
  • r – Insere texto no início da linha onde se encontra o cursor
  • A – Insere texto no final da linha onde se encontra o cursor
  • o – Adiciona linha abaixo da linha atual
  • O – Adiciona linha acima da linha atual

Comandos de movimentação:

  • Ctrl+f – Move o cursor para a próxima tela
  • Ctrl+b – Move o cursor para a tela anterior
  • H – Move o cursor para a primeira linha da tela
  • M – Move o cursor para o meio da tela
  • L – Move o cursor para a última linha da tela
  • h – Move o cursor um caractere a esquerda
  • j – Move o cursor para a próxima linha
  • k – Move o cursor para linha anterior
  • l – Move o cursor um caractere a direita
  • w – Move o cursor para o início da próxima palavra (Ignora a pontuação)
  • W – Move o cursor para o início da próxima palavra (Não ignora a pontuação)
  • b – Move o cursor para o início da palavra anterior (Ignora a pontuação)
  • B – Move o cursor para o início da palavra anterior (Não ignora a pontuação)
  • 0 – Move o cursor para o início da linha atual
  • ^ – Move o cursor para o primeiro caractere não branco da linha atual
  • $ – Move o cursor para o final da linha atual
  • nG – Move o cursor para a linha n
  • G – Move o cursor para a última linha do arquivo

Comandos de busca:

  • /palavra – Busca pela palavra ou caractere em todo o texto
  • ?palavra – Move o cursor para a ocorrência anterior da palavra
  • n – Repete o último comando / ou ?
  • N – Repete o último comando / ou ? , na direção reversa
  • Ctrl+g – Mostra o nome do arquivo, o número da linha corrente e o total de linhas

Comandos de substituição e deleção:

  • x – Deleta o caractere que esta sob o cursor
  • dw – Deleta a palavra, da posição atual do cursor ate o final
  • dd – Deleta a linha atual
  • D – Deleta a linha a partir da posição atual do cursor ate o final
  • rx – Substitui o caractere sob o cursor pelo especificado em x(é opcional indicar o caractere)
  • Rx – Substitui a palavra sob o cursor pela palavra indicada em x
  • u – Desfaz a última modificação
  • U – Desfaz todas as modificações feitas na linha atual
  • J – Une a linha corrente a próxima
  • s:/Linux/Unix – Substitui a primeira ocorrência de “Linux” por “Unix”
  • s:/Linux/Unix/g – Substitui a ocorrência de “Linux” por “Unix” em todo arquivo

Os Melhores Podcasts de Tecnologia para Desenvolvedores

Post excelente escrito pelo André Faria Gomes. Muito bom mesmo! Podcasts sem dúvida são um dos meios mais indicados para adquirir conhecimento em tecnologia, ainda mais quando você está antenado no que Martin Fowler, Kent Beck, Rod Johnson entre outros estão falando. Retirado do andrefaria.com.

Um dos maiores problemas da sociedade moderna é a dificuldade de locomoção diária, a maioria das pessoas passa horas em seus carros, ou em meios de transporte públicos para irem de lugar a outro. Há alguns anos atrás quando morava na zona norte de São Paulo e trabalha na zona sul, essa era minha realidade. Uma vez que naquela época passar por isso era inevitável procurei formas de fazer com esse tempo pudesse de alguma forma torna-se produtivo, foi então que comecei a ouvir à podcasts.

iPod FM radio remote por dan taylor
iPod FM radio remote por dan taylor

De acordo com a Wikipedia, Podcasting é uma forma de publicação de arquivos de mídia digital (áudio, vídeo, foto, etc.) pela Internet, através de um feed RSS, que permite aos utilizadores acompanhar a sua atualização. Assim, é possível o acompanhamento e/ou download automático do conteúdo de um podcast.

Neste post apresentarei os podcasts aos quais escuto e os episódios principais para que você ouça. Sugiro que você utilize o iTunes para inscrever-se nos podcasts e sincronizar com seu iPod.

Desenvolvimento Ágil

por pcalcado
por pcalcado

Podcast da ImproveIt

por Vinícius Teles
http://improveit.com.br/podcast
Português

AgilCast

Por AgilCoop
http://agilcoop.incubadora.fapesp.br/portal/agilcast
Português

Agile Toolkit Podcast
http://agiletoolkit.libsyn.com
Inglês

ThoughtWorks Podcast

http://www.thoughtworks.com/what-we-say/podcasts.html
Inglês

Open Source

FLOSS Weekly

por Leo Laport, Jono Bacon e Randal Schwartz
Inglês

Java

HorecaExpo - Java por bramloquet
HorecaExpo – Java por bramloquet

JavaPosse

Por Tor Norbye, Carl Quinn, Dick Wall e Joe Nuxoll
Inglês
http://www.javaposse.com

Java Technology Insider

Inglês
http://www.javaworld.com/podcasts/jtech

Grails Podcast

Por Glen Smith e Sven Haiges
http://grailspodcast.com

Ruby

Ruby on Rails por Andrew*
Ruby on Rails por Andrew*

Rails Envy

Por Jason Seifer e Gregg Pollack
Inglês
http://railsenvy.com

Rails Podcast

por Geoffrey Grosenbach
Inglês
http://podcast.rubyonrails.com/

Rubiverse Podcast

Por Mike Moore
Ingles
http://rubiverse.com

JavaScript

jQuery Podcast

Português
http://blog.jquery.com/2009/11/13/announcing-the-official-jquery-podcast/

Gadgets

GeekBrief TV

por Cali Lewis
Inglês
http://www.geekbrief.tv

Software

Desk por Guillermo Esteves
Desk por Guillermo Esteves

Pragmatic Podcasts

por Pragmatic Bookshelf
Inglês
http://www.pragprog.com/podcasts

Software Engineering Radio

por Software Engineering Radio
http://www.se-radio.net
Inglês

Elegant Code

por Elegant Code Community
http://elegantcode.com
Inglês

Google Developer Podcast

http://code.google.com/p/google-developer-podcast/downloads/list
Inglês

Hearding Code

http://herdingcode.com
Inglês

Tecnologia

IT Conversations

http://itc.conversationsnetwork.org
Inglês

net@Night

por Amber MacArthur e Leo Laport
http://www.twit.tv/natn

Twit – This Week in Tech

por  Leo Laporte, Jeff Jarvis, Baratunde Thurston, e John C. Dvorak
http://www.twit.tv/twit

MacBreak Weekly

por Leo Laporte, Don McAllister, Paul Kent, and Andy Ihnatko
http://www.twit.tv/mbw

This Week in Google

por Leo Laporte, Gina Trapani, Jeff Jarvis e Mary Hodder
http://www.twit.tv/twig

SitePoint Podcast

inglês
http://www.sitepoint.com/podcast

Empreendedorismo e Negócios

37 Signals Podcast

por 37 Signals
Inglês
http://37signals.com/podcast

Max Gehringer (CBN)

por Max Gehringer
Português
http://cbn.globoradio.globo.com/servicos/podcast/NOME.htm

Mundo Corporativo (CBN)

por Heródoto Barbeiro
Português em Áudio
http://cbn.globoradio.globo.com/servicos/podcast/NOME.htm

The Startup Success Podcast

http://startuppodcast.wordpress.com
Inglês

TED Talks

por TED Talks
Inglês
http://www.ted.com

Revista Espírito Livre número 8 disponível para download

Caros leitores,

Está disponível para download a edição de número 7 da revista Espírito Livre.

Revista Espírito Livre 8

Os tópicos mais interessantes dessa edição são:

  • Comunidades e Movimentos Livres: Como as comunidades de software livre se manifestam? Como se apresentam diantes da rede? Será que ao constituir uma comunidade tudo será mil maravilhas?
  • Entrevista principal: Jon “Maddog” Hall;
  • Entrevista com Danilo Rodrigues, do Projeto Robótica Livre.

Interessado? Então acesse o link e faça o download!

Boa leitura a todos.