O TDC 2014 – São Paulo será realizado de 5 a 9 de agosto e terá 36 trilhas (TV Digital, Android, Startups, Java, Arquitetura, etc) no Anhembi Morumbi e, como novidade, vários workshops na sede da Globalcode, inclusive de Raspberry PI e IoT com o Vinicius Senger.
A trilha de TV digital está bem bacana e está sendo coordenada por um grande amigo meu, o Carlos do Java Noroeste e por mim. Vamos ter palestras com aplicativos da Record, TQTVD, TV Aparecida, especialistas renomados na área de TV digital no Brasil e pela comunidade de desenvolvedores.
Para participar é só fazer a inscrição no site. Simultaneamente, vai ter um outro evento legal que é o TDC4Kids para crianças programarem com Scratch, Minecraft e IoT. Para ter uma ideia do porte do evento, essa é a lista de alguns patrocinadores: Amazon, Oracle, Stackoverflow, SAP, PayPal, Google, StackOverflow, JetBrains e Liferay.
A gente se fala lá!
]]>Eu estarei por lá, principalmente no dia 11, onde teremos uma trilha de TV Digital. Compareça!
]]>[sourcecode language=”java”]package org.gvlabs.sbtvd.ui;
import com.sun.dtv.lwuit.Button;
import com.sun.dtv.lwuit.Graphics;
import com.sun.dtv.lwuit.Image;
/**
* Animated Button
*
* @author Thiago Galbiatti Vespa
* @version 1.0
*/
public class AnimatedButton extends Button {
private int speed = 50;
private Image[] animaImgs;
private int currentImage = 0;
private long lastInvoke;
private boolean forward = true;
private boolean backAndForth = true;
private boolean loop = true;
private boolean disableLoop = false;
/**
* Default constructor
*/
public AnimatedButton() {
}
/**
* Get array of images
* @return array of images
*/
public Image[] getAnimaImgs() {
return animaImgs;
}
/**
* Set array of images to be animated
* @param animaImgs array of images
*/
public void setAnimaImgs(Image[] animaImgs) {
this.animaImgs = animaImgs;
if (animaImgs != null && animaImgs.length > 0) {
this.setIcon(animaImgs[0]);
}
}
/**
* Get animation speed is ms
* @return animation speed
*/
public int getSpeed() {
return speed;
}
/**
* Set animation speed in ms
* @param speed animation speed
*/
public void setSpeed(int speed) {
this.speed = speed;
}
/**
* Back and Forth animation
* @return true if is a back and forth animation
*/
public boolean isBackAndForth() {
return backAndForth;
}
/**
* Set back and forth animation value
* @param backAndForth
*/
public void setBackAndForth(boolean backAndForth) {
this.backAndForth = backAndForth;
}
/**
* Is loop?
* @return true if is a loop animation
*/
public boolean isLoop() {
return loop;
}
/**
* true = loop, false = one animation
* @param loop
*/
public void setLoop(boolean loop) {
this.loop = loop;
}
public boolean animate() {
if (disableLoop)
return false;
long current = System.currentTimeMillis();
if (current – lastInvoke > speed) {
lastInvoke = current;
if (forward) {
currentImage++;
} else {
currentImage–;
}
if (currentImage >= animaImgs.length) {
if (!loop) {
disableLoop = true;
return false;
} else if (!backAndForth) {
forward = true;
currentImage = 0;
} else {
forward = false;
currentImage = animaImgs.length – 1;
}
} else if (currentImage < 0) {
forward = true;
currentImage = 0;
}
return true;
}
return false;
}
/* (non-Javadoc)
* @see com.sun.dtv.lwuit.Button#paint(com.sun.dtv.lwuit.Graphics)
*/
public void paint(Graphics g) {
g.drawImage(animaImgs[currentImage], getX(), getY());
}
}
[/sourcecode]
Para utilizar é só atribuir o conjunto de imagens para o método setAnimaImgs e registrar a animação no formulário, por exemplo: form.registerAnimation(animatedButton);
]]>Muito obrigado pessoal!
]]>Logger was not initialized. GeneralSettings: Could not load properties from file ./config/share.properties
É só executar o seguinte comando na máquina virtual do emulador:
[sourcecode language=”bash”]touch /usr/bin/AstroBox/bin/config/share.properties[/sourcecode]
Dessa maneira a mensagem de erro irá sumir e os logs de erros serão exibidos no console. Após essa alteração, você deverá ter a seguinte saída:
Creating logger: LEVEL_ERROR
Problema resolvido!
]]>Acesse o site: https://www.astrodevnet.com.br, realize o cadastro e faça o login. Escolha a opção AstroBox, Download e faça o download do AstroBox. No mesmo site, faça o download do Manual do Usuário e siga as instruções descritas no arquivo para montagem da máquina virtual contendo o Ubuntu + o emulador da TQTVD.
]]>O primeiro passo é inserir um pendrive no seu computador. Digite: dmesg no terminal para saber em qual é o device. No meu caso (pendrive de 2GB) apareceu o seguinte nas últimas linhas:
[sourcecode language=”bash”]
[39858.172559] sd 10:0:0:0: Attached scsi generic sg3 type 0
[39858.175660] sd 10:0:0:0: [sdc] 3911616 512-byte logical blocks: (2.00 GB/1.86 GiB)
[39858.177408] sd 10:0:0:0: [sdc] Write Protect is off
[39858.177412] sd 10:0:0:0: [sdc] Mode Sense: 65 44 09 30
[39858.178402] sd 10:0:0:0: [sdc] No Caching mode page present
[39858.178406] sd 10:0:0:0: [sdc] Assuming drive cache: write through
[39858.182402] sd 10:0:0:0: [sdc] No Caching mode page present
[39858.182405] sd 10:0:0:0: [sdc] Assuming drive cache: write through
[39858.183040] sdc: sdc1
[/sourcecode]
Dessa forma eu sei que o meu device é /dev/sdc. Caso o seu pendrive tenha alguma partição (no meu caso tem: sdc1) o Ubuntu irá montá-la automaticamente. Nos próximos comando substitua o sdc para o valor correto em sua máquina. Para “desmontar” (no bom sentido), digite:
]]>Junto com a novidade do centésimo post, nesse mês, vieram várias outras. Realizei um apresentação de TV Digital no Java One 2011, junto com o Carlos Fernando Gonçalvez e foi muito legal. Fui convidado para o Community Keynote do evento onde pude demonstrar a força da comunidade Java como membro do JavaNoroeste e a integração da TV Digital com o JHome para controle de equipamentos e automação residencial pela televisão. As fotos do evento e vídeos do Community Keynote, podem ser encontradas nesses links:
Outra coisa bacana é o surgimento de um novo podcast do qual faço parte: o Pizza Com Café. A ideia surgiu da necessidade de reuniões mensais para troca de informações, mas por falta de tempo resolvemos realizar uma pizzada e gravar um podcast e dessa forma surgiu o Pizza com Café. Já temos uma gravação feita e em breve o podcast entra no ar!

Além dessas notícias, consegui tirar a certificação Oracle Certified Master, Java EE 5 Enterprise Architect. É uma certificação muito difícil e me senti obrigado à prestar após o anúncio da Oracle que para tirar essa certificação iria ser necessário realizar cursos oficiais Oracle como pré-requisito. Como eu já tinha a primeira fase (prestei beta), resolvi prestar as outras duas etapas restantes. Consegui passar logo de primeira, o que me deixou bastante feliz, já que pra mim essa é a prova mais difícil de tecnologia Java, pois envolve teoria, prática, muito conhecimento e experiência.
Obrigado à todos que contribuíram para todas essas realizações
Agora é só aguardar pelas novidades de 2012!
]]>