28 de dez de 2009

Nova versão do Virtual Set-top Box Ginga-NCL

Post publicado originalmente na SubComunidade Ginga-NCL

A Comunidade Ginga disponibilizou hoje uma nova versão do Virtual Set-top Box Ginga-NCL, máquina virtual VMWare que possui a implementação de referência do Ginga-NCL (C++) instalada e pronta para uso. Usuários de versões anteriores são recomendados a fazer a atualização.

Ginga-NCL Virtual Set-top Box v.0.11.2 foi atualizado com o novo código do Ginga-NCL (C++) v.0.11.2. O Set-top Box Virtual é uma máquina virtual VMWare com sistema Linux instalado e pré-configurado com todos os requisitos do Ginga-NCL (C++). Pode ser obtido por meio da SubComunidade Ginga-NCL, no box "Direto ao Ginga" (http://www.softwarepublico.gov.br/dotlrn/clubs/ginga/gingancl/). Lá você encontra também um "HOW-TO" com dicas para instalar e operar o Set-top Box Virtual.

Para maiores informações sobre as modificações no código do Ginga-NCL, consulte os arquivos ChangeLog presentes em cada pacote de código-fonte presente no SVN (http://svn.softwarepublico.gov.br/trac/ginga/browser). A atualização corresponde à revisão 23 do SVN, que além das novidades publicadas aqui, conta com um aprimoramentos no suporte à decodificação de dados em arquivos MPEG2 TS abertos localmente.

Comunidade Ginga
http://www.softwarepublico.gov.br/dotlrn/register?community_id=1101545&referer=/dotlrn/clubs/ginga/

SubComunidade Ginga-NCL
http://www.softwarepublico.gov.br/dotlrn/clubs/ginga/register?community_id=1160871&referer=/dotlrn/clubs/ginga/gingancl

12 de dez de 2009

Lançada a versão 0.11.1 do Ginga-NCL (C++)

Foi anunciado hoje, dia 12, a nova versão do Ginga-NCL (C++). As grandes novidades ficaram por conta do suporte a múltiplos dispositivos e a utilização de luasocket na classe TCP.

Comunidade Ginga,

Encontra-se em nosso SVN uma nova release da implementação de referência do Ginga-NCL. Em breve, as ferramentas Ginga-NCL Virtual STB e Ginga Live CD serão atualizadas para abrigar esta nova versão.

A revisão 22 do repositório corresponde à versão 0.11.1 do Ginga-NCL (C++), que possui as seguintes novas funcionalidades e evoluções:

  • Suporte a múltiplos dispositivos de exibição
  • Suporte a objetos NCL embutidos
  • Otimização no uso de recursos, incluindo a liberação de componentes
  • Manipulação de Transport Stream
  • o Suporte a Sintonizadores USB ISDB-T
  • o Avanços na manipulação do Carrossel de Objetos e Eventos de Fluxo
  • o Suporte a cadeia Normal Play Time (NPT)
  • Classe TCP da API Lua agora utiliza luasocket ao invés da libasync
  • Criado novo player TS
  • "gingalssm" agora gerencia Formatadores e cadeias temporais NPT
  • Nova arquitetura de formatadores aninhados para o suporte a objetos NCL embutidos.

Os desenvolvedores de middleware podem fazer o checkout da nova versão imediatamente, seguindo as instruções na Wiki de Desenvolvimento. E podem consultar nossa lista de pontos em aberto (TODO List) para contribuições.


Mais informações no Portal do Software Público

11 de dez de 2009

Desenhando Círculos em NCL/Lua

Implementei uma função que permite desenhar circulos com o Canvas para NCL/Lua

Função

function desenharCirculo ( X0 , Y0 , raio , mode )

function converterGrau2Rad ( x )
return ( x / 180 ) * math.pi
end

local tblPt = {}

if mode ~= 'fill' then
mode = 'frame'
end

for i=0, 360 do
local x = (raio * math.cos(converterGrau2Rad(i)))
local y = (raio * math.sin(converterGrau2Rad(i)))

if mode == 'frame' then
tblPt[i] = {}
table.insert(tblPt[i],X0 - x)
table.insert(tblPt[i],Y0 - y)
end

if mode == 'fill' then
canvas:drawLine (X0, Y0, X0 - x, Y0 - y)
end

end

if mode == 'frame' then

for i=0, table.maxn(tblPt) do

if i == table.maxn(tblPt) then
canvas:drawLine (tblPt[i][1], tblPt[i][2], tblPt[0][1], tblPt[0][2])
else
canvas:drawLine (tblPt[i][1], tblPt[i][2], tblPt[i+1][1], tblPt[i+1][2])
end

end

end


end



A chamada para a função é a seguinte:

canvas:attrColor(96, 181, 255, 255)
desenharCirculo ( 250 , 250 , 20 , 'frame' )
canvas:flush()

Parâmetros
A função trabalha com quatro parâmetros, são eles:
X0: A coordenada X do ponto central.
Y0: A coodenada Y do ponto central.
Raio: O tamanho do raio do círculo.
Mode: É o tipo de desenho que será feito. Se escolhido frame, será desenhado apenas a moldura. Se for escolhido fill o desenho será preenchido. O modo frame é utilizado como default.

Problemas
Nem tudo na vida é perfeito e esta função não seria diferente. Quando desenhamos um círculo com mode fill e raio muito grande, vemos algumas falhas. Se alguém conseguir solucionar o problema, escreva nos comentários que a função será atualizada e dado os devidos créditos. :)

9 de dez de 2009

TV Digital: Interatividade além do NCL

Texto publicado originalmente em: O Futuro é Digital

Para quem pretende iniciar os estudos para desenvolver aplicativos interativos para TV Digital, eu digo: Essa é a hora. Apesar do mercado novo, algumas empresas já estão contratando. Uma delas, a Peta5, estava até o final de novembro com duas vagas para estagiar com desenvolvimento de aplicações interativas.

Mas o que eu preciso? Apenas o NCL? Resposta: Não!

O NCL atende perfeitamente bem para o que foi proposto: sincronismo de mídias. Muitas aplicações básicas poderão e deverão ser desenvolvidas apenas em NCL. No entanto, aplicações que exijam uma interface que varie de acordo com as opções selecionadas pelo telespectador, a melhor escolha será Lua e Java.

O Ginga Java ainda não possui o mesmo nível de maturidade que o Ginga NCL/Lua tem com relação à TV Digital. É possível desenvolver interfaces dinâmicas e ricas trabalhando apenas com Lua.


Seria possível criar imagens para serem utilizadas no NCL, pois a quantidade de Regiões existentes no Brasil é fixa. Mas e quando não sabemos ao certo os dados que deverão ser apresentados?


Participo atualmente de um projeto de Educação à Distância para TV Digital. Inicialmente toda a aplicação foi escrita em NCL que chamava algumas mídias Lua que efetivamente executavam os módulos da aplicação. Depois de sete meses e aproximadamente cinco ciclos de desenvolvimento praticamente jogados no lixo, partimos para o desenvolvimento exclusivamente em Lua.

Criamos um simples NCL que seu único trabalho é iniciar uma mídia Lua. A partir deste ponto, desde a simples tarefa da apresentação do menu principal até o controle de entrada de dados a partir do controle remoto passou a ser feito em Lua. Após seis meses, nos impressionamos com os ganhos obtidos. Nossa aplicação que conta com dez módulos, já possui seis desenvolvidos.


Na pesquisa, não sabemos quantas cidades serão retornadas.


Mas é preciso atenção, nem todas as bibliotecas disponíveis para linguagem Lua fazem parte do Ginga NCL/Lua.

A linguagem Lua para TV Digital conta com quatro módulos obrigatórios:
Canvas – Permite desenhar objetos em uma mídia Lua;
Event – Permite que mídias Lua se comuniquem com mídias NCL e outros objetos externos;
Persistent – Permite exportar variáveis de ambiente entre aplicações interativas;
Settings – Permite acesso às variáveis definidas no documento NCL.

Um exemplo de biblioteca Lua que não é obrigatória segundo a norma, é o Lua Socket que da suporte para conexões TCP. Para isso, é necessário utilizar o módulo Event.

Para quem pretende trabalhar com desenvolvimento para TV Digital, está é a dica que deixo: NCL é ótimo quando a idéia é apresentar informações que não varie tanto. Mas quando precisamos apresentar dados que pode variar de acordo com as opções escolhidas pelo telespectador, Lua pode ser uma grata surpresa.

Mais informações podem ser obtidas na comunidade Ginga do portal do Software Público
.

27 de out de 2009

Rebel EFI - Mac OS X Snow Leopard em PCs

Longe dos holofotes do Windows 7, a Psystar, empresa baseada na Flórida, lançou o Rebel-EFI. O software permite que o usuário execute o Mac OS X em hardwares que não seja da Apple.

O software já está disponível em versão trial e foi testado pela Computer World que lista a falta de compatibilidade como um dos maiores problemas do Rebel-EFI.



Para saber mais
Rebel-EFI
Review Computer World

21 de out de 2009

IBM se une a Canonical

IBM e Canonical, após anunciarem pareceria para lançamento de desktops Linux na Africa, levam o acordo de distribuição para os EUA.

A idéia é ter um sistema operaional Linux com a aplicação Smart Client da IBM chamada Open Collaboration Client Solution software. Para quem se pergunta qual o real motivo desta união. A resposta é simples: Windows 7.

O custo da migração para Windows 7 para muitos usuários de PC seria em torno de U$ 2,000.00 (entre software e hardware). O Sistema Operacional Linux e os softwares IBM são mais baratos para implantação.

Para Bob Picciano, gerente geral da IBM Lotus, "as empresas precisarão avaliar os custos com migração para a próxima versão do Sistema Operacional da Microsoft, assim como gastos contra vírus e outros ataques. Elas pediram alterantivas e apresentamos o IBM Client for Smart Work".

Sendo a IBM a maior empresa de hardware dos EUA, é certo que muitas empresas optarão por não atualizarem hardware para migração ao Windows 7, continuarão a utilizar o Windows XP ou optarão por um Sistema Operacional moderno mas que funcione em seu hardware antigo. Ubuntu e IBM disponibilizarão para estes usuários uma alternativa viável ao Windows 7.

Para saber mais
Open Collaboration Client Solution software
Livre tradução: IBM and Ubuntu roll Linux for U.S desktops vs Windows 7

20 de out de 2009

Apple lança Mouse revolucionário

A Apple apresentou hoje um modelo de mouse que pretende revolucionar a maneira como o usuáro interage com o computador. O Magic Mouse, nome do hardware, além das funcionalidade tradicionais, ele conta ainda com sensores que identificam gestos realizados com um ou dois dedos.



O Magic Mouse possui conexão bluetooth e custará apenas U$69,00. O Magic Mouse fará parte dos componentes disponíveis no novo iMac.

Para saber mais
Apple - Magic Mouse

16 de out de 2009

Descubra o Google Wave


O que é?

O Google Wave é uma ótima ferramenta online de colaboração visando uma comunicação com muito mais produtividade. Pensando em funcionalidades, ele tem: rapidez; facilidades para compartilhar vídeos, documentos, imagens, mapas e rich text (texto formatado).

O Conceito de Wave?

Um Wave pode ser uma conversa ou uma mídia(imagem, vídeo, mapas ou texto formatado) onde é possível discutir e trabalhar em conjunto.
Como é possível adicionar mais de um contato ao Wave, podemos usar isso para fazer uma reunião remota, uma discussão entre amigos ou até um trabalho escolar.

Criando um Wave

1 - Clique em New Wave

2 - Selecionar os participantes do Wave

3 - Digite o seu Wave ou compartilhe uma mídia


4 - Clique em 'Done' e pronto, seu Wave foi criado!


Principais Funcionalidades

Colaboração em tempo real:
Quando você começa a escrever, as outras pessoas já conseguem ver o que você está escrevendo!

Playback:
O Playback funciona como um replay de todas as discussões de um determinado Wave sendo controlado cada passo por você. Cada 'Next' é mostrado um reply seu ou de um outro participante do Wave, informando também, além além da data, quem iniciou o Wave.

Linguagem Natural:
Modelos contextuais que fornecem sugestões e ortografia.

Gadgets:
É possível criar aplicações gadgets ou robôs para serem usados dentro do Wave e que podem ser colocadas dentro de seu site usando uma simples API javaScript.
Esses Gadgets podem ser hospedados na App Engine, que suporta Java e Python. Futuramente será possível hospedar robôs em seu próprio servidor.

Conclusão

Como podemos perceber, o Google Wave veio com tudo e promete ser uma ferramenta muito usada. Como sempre, o Google não brinca. (risos)

Durante os testes, foi percebido uma lentidão repentina. Esperamos anciosos que isso seja resolvido.

---------

Agora, se você ficou animado com o Google Wave, vai gostar dessa notícia.
O Versão Digital dará um convite* para as três pessoas que derem as melhores repostas para a pergunta "Como você utilizará efetivamente o Google Wave?". Deixe a resposta nos comentários desse post. Resultado na segunda-feira, dia 19/10 ás 17hrs.




* Mesmo o convite sendo enviado na mesma hora, o google está demorando a liberar o cadastro.

14 de out de 2009

Google Wave Notifier

O primeiro Add-on para firefox para o acesso ao Google Wave acaba de ser lançado. O Google Wave Notifier avisa sempre que existirem novas mensagens na caixa de entraga do Google Wave.

O utilitário funciona em qualquer versão do Firefox 3.x e é preciso ter uma conta no novo serviço do Google.

Para saber mais
Google Wave
First Google Wave Firefox Add-on is Here: Google Wave Notifier

1º Simpósio Brasileiro de TV Digital

Acontece entre os dias 18 e 20 de novembro de 2009 o 1º Simpósio Brasileiro de TV Digital. O evento acontecerá na Universidade do Estado de São Paulo (UNESP) no campus Bauru.

Com o objetivo de discutir a tecnologia digital, em especial, a televisão, além de sensibilizar e estimular pesquisadores, alunos, professores e profissionais, será realizado o 1º Simpósio Internacional de Televisão Digital. O evento é uma realização do Mestrado em Televisão Digital, UNESP, e será realizado em Bauru, estado de São Paulo, nos dias 18, 19 e 20 de novembro.

Tem a finalidade de discutir e analisar o potencial econômico, social e cultural da produção de conteúdos para plataformas digitais, promovendo a interação entre a academia, produtores de conteúdo e empresas tecnológicas, como espaço de desenvolvimento sustentável. É objetivo perceber os impactos desse conteúdo para as práticas de ensino a distância.

Segue a programação

18 de novembro

19h – Recepção dos participantes

19h30 – Sessão de Abertura

20h – Conferência de Abertura
“Panorama da Televisão Digital no Brasil: perspectivas e embates” – Euzébio Tresse (Consultor do Fórum SBTVD)

19 de novembro

10h – Mesa 01 :
– Comunicação, Produção de Conteúdos e Políticas Públicas: desafios para Televisão Digital no Brasil – Mauro Garcia (TV Cultura), Fernando Dias (Presidente da ABPI – TV)

14h – Mesa 02 :
– Tecnologias educacionais para a Televisão Digital – Fernando Spanhol (Diretor da ABED), Maria Teresa Quiroz (Universidade de Lima, Peru), Márcio Pereira (Canal Futura), Érico da Silveira (TV Escola / MEC)

20h30 – Mesa 03 :
– Padrão do Sistema Digital Brasileiro: convergência, interatividade em multiplataformas – Guido Lemos (UFPB), Luis Valle (Universidade de Palermo, Argentina), Fernando Bittencourt (Diretor de Tecnologia da TV Globo), Salustiano Fagundes (HXD Interactive)

20 de novembro

8h – Relatos de Pesquisa

10h – Seminário de Dissertação

12h – Almoço

14h – Grupos de Trabalho

18h – Plenária de Encerramento

Serviços Bancários pela Internet apenas com Linux

Responsável pela coluna de segurança digital do Washington Post, o jornalista Brian Krebs, recomendou a utilização de distribuições live do Linux para acesso a Internet Bancking no lugar do Windows.

Em sua coluna ele conta a história de duas empresas que perderam entre 100 mil e 450 mil dólares aproximadamente para ladrões "armados" com malwares.

O curioso é que Brian não está sozinho em suas recomendações. O Centro de Analises e Informação Compartilhada de Serviços Financeiros (livre tradução), grupo mantido por alguns dos maiores bancos mundiais, apresentou um relatório em que sugere as empresas a realizarem transações bancárias em computadores onde serviços de e-mail e navegação não sejam possíveis.

Para saber mais
Avoid Windows Malware: Bank on a Live CD
Washington Post Says Use Linux To Avoid Bank Fraud

Ubuntu One

Aplicações de sincronização de arquivos com a web não são novidades. O Dropbox funciona muito bem tanto para Linux quanto para Mac e Window. Com a chegada da mais nova versão do Ubuntu, é anunciado a inclusão do Ubuntu One.

O serviço é simples: armazenamento de dados na web. O serviço estava disponível desde a versão 9.04 do Ubuntu e agora deve ganhar mais notoriedade pois passará ser disponibilizado nativamente no Ubuntu 9.10.

O usuário terá direito a 2 GB de espaço gratuitamente. Caso deseje, poderá realizar o upgrade para 50 GB pagando o valor mensal de U$10,00.

13 de out de 2009

Lua - Strings - Parte 1

Falaremos neste post sobre manipulação de strings.

Strings devem estar entre aspas (simpes ou duplas).

local texto1 = 'Ola mundo.'
local texto2 = "Versão Digital"

Funções Báscias

string.byte()
Retorna o valor da tabela ASCII

s =
string.byte('A')
print(s)


string.char()
Retorna um caracter a partir do valor numérico da tabela ASCII.

s =
string.char(66)
print(s)


string.len()
Retorna o tamanho da string.

s =
'Programar em LUA é muito fácil.'
a =
string.len(s)
print(a)


string.lower()
Retorna um string com os caracteres maiúsculos convertidos para minúsculo

s = 'Programar em LUA é muito fácil.'
a =
string.lower(s)
print(a)


string.rep()
Retorna uma cadeia de caracteres concatenada N vezes.

s = 'Lua '
a =
string.rep(s,3)
print(a)


string.reverse()
Retorna a string invertida

s = 'Programar em LUA e muito facil.'
a =
string.reverse(s)
print(a)


string.sub()
Retorna uma substring a partir da string. É necessário informar a posição inicial e a posição final.

s = 'Programar em LUA é muito fácil.'
a =
string.sub(s,13,16)
print(a)


string.upper()
Retorna a string com os caracteres minúsculos convertidos para maiúsculo

s = 'Programar em LUA e muito facil.'
a =
string.upper(s)
print(a)

No próximo post falaremos sobre mais algumas funções para strings.

Para saber mais
Lua - Variáveis e Estruturas de Controle
Manual de Referência Lua - Strings

16 de set de 2009

Lua - Operadores

Continuando com nosso tutorial de Lua, falaremos hoje de operadores.

Operadores são classes de operações sobre variáveis ou elementos pré-definidos. Em lua nós temos quatro tipo de operadores: aritiméticos, concatenação, lógicos e relacionais. Vamos a eles.

Operadores Aritiméticos

Operadores aritiméticos são utilizados para realização de cálculos matemáticos. Os operadores válidos são: Soma ( + ), Subtração ( - ), Multiplicação ( * ), Divisão ( / ), Raiz ( ^ ) e Resto ( % ).

 

local a,b = 10, 3
print('Soma (+): '.. a + b)
print('Subtração (-): '.. a - b)
print('Multiplicação (*): '.. a * b)
print('Divisão (/): '.. a / b)
print('Raiz (^): '.. a ^ b)
print('Resto (%): '.. a % b)

 

Operador de Concatenação

O operador de concatenação permite juntar duas strings gerando uma nova string. Ele é representado por dois pontos ( .. )

 

local a,b = 'Maria', 'João'
print(a .. b)
print(a .. ' e ' .. b)

Operadores Lógicos

Operadores lógicos são operadores binários. Possui duas variáveis de entrada resultando em apenas uma variável de saída. Em Lua temos os seguintes operadores: E (and), Ou (or) e Não (not).

Para o operador and, o resultado será verdadeiro apenas se as variáveis de entrada forem verdadeiras, caso contrário o resultado será falso.

Para o operador or, o resultado será verdadeiro caso pelo menos uma das variáveis de entrada seja verdadeira. Se ambas forem falsas, o resultado será falso.

Para o operador not, o resultado será a negação da variável de entrada. Caso seja verdadeiro, o resultado será falso. Se a variável for falsa, o resultado será verdadeiro.

A seguir, temos a tabela verdade para os três operadores.

v1 v2 v1 and v2 v1 or v2 not v1
falso falso falso falso verdadeiro
falso verdadeiro falso verdadeiro verdadeiro
verdadeiro falso falso verdadeiro falso
verdadeiro verdadeiro verdadeiro verdadeiro falso
 

local a,b = false, true
print (a and b)
print (a or b)
print (not a)

Operadores Relacionais

Operadores relacionais verificam a relação entre duas expressões ou variáveis. São operadores relacionais: maior que ( > ), menor que ( < ), maior ou igual que ( >= ), menor ou igual que ( <= ), igual ( == ) e diferente ( ~= ).

local a,b = 1, 2

if a == b then
    print('a e b são iguais.')
elseif a > b then
    print('a é maior que b.')
elseif a < b then
    print('a é menor que b.')
end

Para saber mais

Lua – Variáveis e Estruturas de Controle

11 de set de 2009

Lua - Tables

Dando continuidade ao nosso tutorial de Lua, hoje falaremos de Tables.

Tables são estruturas multidimensionais que permitem o armazenamento de dados diversos.

Sua declaração é semelhante a de variáveis.

local tabela = { }

O acesso a estes valores na table é feito a partir da utilização de colchetes.

local tabela = { }
tabela[1] = ‘Carro
tabela[2] = ‘Moto
local variavel = tabela[1]
print(variavel)

Uma outra forma de atribuir valores a uma table é durante a sua declaração.

local tabela = {‘Carro’ , ’Moto’ , 3.14}

Funções Básicas

table.concat()

Concatena os ítens da tabela.

local tabela = {'amarelo','azul','vermelho'}
local var = table.concat(tabela)
print(var)

table.insert()

Insere um valor na tabela.

local tabela = {'amarelo','azul','vermelho'}
table.insert(tabela,'verde')
print(tabela[4])

É possível ainda, incluir o valor em uma posição determinada da tabela.

local tabela = {'amarelo','azul','vermelho'}
print(tabela[1])
table.insert(tabela,1,'laranja')
print(tabela[1])
print(tabela[2])

Você pode ver que um novo texto foi incluído na primeira posição da table. O texto que originalmente estava na primeira posição passou a segunda posição.

table.maxn()

Retorna o maior índice numérico positivo da tabela. Caso a tabela não possua índice positivo, será retornado zero.

local tabela = {'amarelo','azul','vermelho'}
print(table.maxn(tabela))

table.remove()

Revome da table o último elemento.

local tabela = {'amarelo','azul','vermelho'}
table.remove(tabela)
for i=1, table.maxn(tabela) do
print(tabela[i])
end

É possível ainda informar qual o índice do elemento que deverá ser removido.

local tabela = {'amarelo','azul','vermelho'}
table.remove(tabela,2)
for i=1, table.maxn(tabela) do print(tabela[i])
end

No exemplo anterior, removemos o segundo elemento da table.

table.sort()

Ordena os elementos da table

local tabela = {'verde','amarelo','azul','vermelho'}
table.sort(tabela)
for i=1, table.maxn(tabela) do
print
(tabela[i])
end

Algumas destas funções permitem a inclusão de outros parâmetros, aumentando a gama de opções, no entanto, iremos no restringir ao básico para desenvolvimento.

No próximo post, falaremos sobre operadores.

Para saber mais:

Lua - Variáveis e Estruturas de Controle

Manual de Referência de Lua - Table

Lua – Exercícios - Variáveis e Estruturas de Controle

 

  1. Fazer um algoritmo que leia um número inteiro e escreva-o se for diferente de zero.
  2. Fazer um algoritmo que leia dois números inteiros. Escreva a soma dos números se o primeiro for maior que o segundo, escreva o produto se o segundo for maior que o primeiro, e escreva um deles se os números forem iguais.

 

As respostas serão postadas na próxima quarta.

 

==  Respostas ==

1.

print('Digite um número: ')
local num = io.read('*number')

if num ~= 0 then
    print('O numero é diferente de zero.')
else
    print('O numero é igual de zero.')
end

2.

local num1, num2

print('Digite o primeiro número: ')
num1 = io.read('*number')

print('Digite o segundo número: ')
num2 = io.read('*number')

if num1 > num2 then
    print('A soma de num1 + num2 é '..num1+num2)
elseif num2 > num1 then
    print('O produto de num1 e num2 é '..num1*num2)
else
    print('Este é num1 = '..num1)
end

 

Para mais informações:

Lua - Variáveis e Estruturas de Controle

10 de set de 2009

Review: XPS-1000 da Proview – Versão 1.6.20

Recentemente escrevi um review do XPS-1000. Hoje, um mês depois da postagem, pude testar uma nova versão do middleware instalado no aparelho e preciso dizer que estou muito surpreso com a evolução entre a versão anterior e a versão atual.

O middleware disponibilizado no XPS está bem pareado com o middleware desenvolvido pela comunidade Ginga NCL. Os módulos canvas e event estão tão funcionais quanto a versão disponibilizada nos STBs virtuais.

Aplicações desenvolvidas totalmente no STB virtual tendem a rodar sem muitos problemas no XPS. Na verdade, dois problemas foram identificados. Na classe key do módulo event o tipo release não está implementado e a codificação de caracteres não permite apresentação de caracteres especiais no módulo canvas.

Segundo a RCASoft, responsável pelo desenvolvimento do middleware, a codificação para caracteres especiais funciona no XPS, no entanto, até a publicação deste post, não tive uma resposta para a aplicação teste para a verificação deste problema.

Ainda segundo a RCA, esta versão do middleware já possui a classe tcp implementada, o que permitirá a utilização do canal de retorno. Assim como a codificação de caracteres, não consegui testar e áté o momento, não tive uma resposta sobre o assunto.

Em resumo, o XPS-1000 deu um grande salto de melhoria e hoje já pode ser considerado como um bom ambiente de testes para aplicações NCLua.

31 de ago de 2009

Lua - Variáveis e Estruturas de Controle

Após o nosso primeiro post que explicava como preparar um ambiente para desenvolvimento em Lua, iremos falar hoje sobre variáveis e estruturas de controle. Variáveis Variáveis, conforme descrição do Wikipedia, é um objeto que representa valor ou uma expressão matemática. Não existem dados primitivos em Lua, portanto, ao declarar uma variável, ela poderá ser utilizada tanto para dados númericos, como texto e valores booleanos. A única exeção são tabelas que precisam ser declaradas de uma forma especial. Em Lua temos três tipos de variáveis: Globais, Locais e Table. Toda variável, ao ser declarada é determinada como global, a não ser que, seja explicitamente definida como local. Antes da primeira atribuição, uma variável possui o valor nil. Sendo assim, podemos realizar o seguinte teste:


print(variavel1)

variavel1 = 'Ola, como vai?'

print(variavel1)


Ao executar o script acima, percebemos que no primeiro print, a variável possui valor nulo. No segundo print, a variável possui o valor determinado na segunda linha. Variáveis locais tendem a existir apenas dentro do seu escopo. Sua declaração é definida pela palavra chave local. Um exemplo de declaração de uma variável local seria:

local variavel2


Uma outra forma de declarar variáveis globais e locais seria atribuindo o valor durante a declaração:


variavel3 = 'Versao Digital'

local variavel4 = 'Linguagem Brasileira: Lua'

É possível ainda atribuir valores a várias variáveis em uma mesma linha:

variavel5, variavel6, variavel7 = 'Cachorro','Gato',3.14

No exemplo acima atribuimos dois textos as duas primeiras variáveis e um valor numérico na última variável A table por ser uma estrutura especial, dedicaremos um post futuro apenas para ela. Estruturas de Controle Lua possui quatro estruturas de controle: if, while, repeat e for if A estrutura if, executa um bloco de comandos apenas se uma sentença é verdadeira. Sua sintaxe é a seguinte:

if {sentença} then

{bloco de comandos}

elseif {sentença} then

{bloco de comandos}

else

{bloco de comandos}

end

Um exemplo simples é testar se o conteúdo de uma variável maior ou menor que um determinado número.

print('Digite um numero: \n')

local var1 = io.read("*number")

if var1 > 5 then

print('var1 e maior que 5.')

elseif var1 < 5 then

print('var1 e menor que 5')

else

print('var1 e igual a 5')

end

while A estrutura while, irá executar o bloco de comandos enquanto a sentença for verdadeira. Sua sintaxe é a seguinte:

while {sentença} do

{bloco de comandos}

end

No exemplo a seguir, o bloco de comando irá ser executado enquanto o valor da variável for menor que 10.

local var1 = 0


while var1 < 10 do

print('O valor de var1 e: '..var1)

var1 = var1 + 1

end

repeat A idéia do repeat é a mesma do while, no entanto, o teste para verificação se a sentença é verdadeira é realizado após a execução do bloco de comandos, ou seja, caso a sentença seja verdadeira inicialmente, o bloco de comandos será executado pelo menos uma vez.

repeat

{bloco de comandos}

until {sentença}

Sabendo desta diferença, vamos executar o mesmo exemplo anterior, adaptado para o repeat.

local var1 = 0


repeat

print('O valor de var1 e: '..var1)

var1 = var1 + 1

until var1 > 10

Compare os dois exemplos e veja se o resultado final, apesar da semelhança das estruturas, é o mesmo. for A estrutura de controle for irá executar um bloco de comandos, enquanto uma variável de controle varia de acordo com uma progressão aritimética. Sua sintaxe é:

for {sentença} do

{bloco de comandos}

end

Um exemplo simples é a interação de uma variável dentro de um intervalo numérico e a impressão do seu valor, assim como fizemos no while e no repeat.

for var1 = 1, 10 do

print('O valor de var1 e: '..var1)

end


Durante este post, utilizamos algumas funções, que você pode não estar familiarizado, vamos a elas: print() - Esta função é utilizada para imprimir na tela o valor de uma variável ou uma string. io.read() - Esta função inclui uma pausa na execução do programa e aguarda o pressionamento de uma tecla para retomar a execução da aplicação. Os dois pontos, utilizados na maioria dos exemplos, é o operador que indica concatenação. Com isso finalizamos mais um post. No próximo post falaremos de table.



Saiba Mais


Preparando um ambiente de desenvolvimento


Manual de Referência Lua

27 de ago de 2009

Cobertura do SET 2009 – Terceiro dia

Terceiro dia do SET 2009, foi o dia com menos tuitadas, mas vamos a um resumo do principal enviado pela galera presente ao evento. Não deixem de ler as Coberturas do Dia 1 e Dia 2

Dia 3:

* A fala é de Fernando Bittencourt, da Globo. Para ele não haverá massificação sem padronização, com plataformas proprietárias. “Acho que só vai massificar se todo mundo puder oferecer um padrão. Se continuar a Samsung com o Terra a Lg com outro, não vai…”

* Samsung acha muito difícil a padronização de plataformas entre fabricantes. Podem é aceitar conteúdos através de padrões abertos.

* @DeLuca: Em resumo, a forma de fornecer o conteúdo é padrão. Como vc trabalha esse conteúdo na sua TV é que é difícil padronizar.

* “Acredito que o anúncio, em qualquer espaço, em qualquer janela, obedecerá regras que surgirão, paulatinamente”, diz advogado.

* DeLuca: #set2009 – Fernando Bittencourt diz; por convicção pessoal, acredita que o controle remoto pode ser individualizado. Se aproximar do celular.

* A Samsung não acredita que o simples acesso à internet seja indutor de venda do seu produto. “É só mais um entre muitos recursos.”

* Samsung diz que a experiência da Internet na TV é complementar.

* Como a oferta de conteúdo descontrolado (internet) vai conviver com a TV, com o broadcast, que é totalmente controlado, regulamentado?

* Luiz Fernando, da Puc-rio mostrando aplicativos interativos comunicando com multidispositivos iphone e android.

* Fabio Angeli da Record bem lembrou que um grande desafio da interatividade é o tamanho da aplicação.

Cobertura SET 2009 – Segundo dia

Continuando com um resumo das melhores “tuitadas” recolhidas sobre o SET 2009 até agora. Esse tópico, espera-se, será atualizado ao longo do dia. Não deixei de ler o resumo do primeiro dia no post abaixo.

Dia 2:

* A SET mantém um grupo de melhores práricas para TV Digital com o objetivo de levar experiências da implantação a todo o país

* Atualização dos receptores pelo ar é algo que vem sendo bastante discutido. Muitos continuam céticos. Outros pedem regras claras

* O Fórum SBTVD fará apenas a documentação da suíte de testes para interatividade. A implementação caberá a cada fabricante

* Pesquisa da Telefonica: na Am. Latina, internet ganha da TV na preferência dos jovens em todos os paises. No Brasil, 56% dos jovens preferem Internet à TV, diz Antonio Valente.

* “A tecnologia de Tv Digital rompe definitivamente com o unilateralismo que caracterizou o brodcast”

* Argentina deve adotar padrão nipobrasileiro ainda nesta semana.

* O rádio e a TV continuarão pelas próximas décadas sendo líderes no entretenimento de massa, diz a Abert.

* @ DeLuca: #set2009 – Abert responde com retórica, reforçando “a profunda crença na força da radiodifusão nacional”

* necessidade de integração do SBTVD com vídeo em Internet e TV paga, para não privar a população do melhor

* Alta definição e mobilidade gratuitos. O SBTVD partiu daí. Já foram vendidos 1,5 milhão de receptores. Mas falta divulgação

25 de ago de 2009

Cobertura do SET 2009 - Primeiro dia

Pesoal, começou hoje em São Paulo e vai até sexta, dia 28/08, a SET 2009, feira de broadcasting, cable e engenharia de radiodifusão, que trará várias exposições, discussões e painéis sobre TV Digital no Brasil. Não pude comparecer, mas vou selecionar os melhores twits sobre a feira e compilá-los aqui para vocês.

Se você está no Twitter, sugiro seguir os perfis @DeLuca (da jornalista e expert em TV Digital no Brasil Cristina de Luca), @ForumSBTVDSET09 e o oficial do evento, @broadcast_cable. As hashtags do evento são: #set2009 e #broadcast_cable.

Dia 1:

* A LG demonstra no stand do Fórum SBTVD o modelo da TV Time Machine Digital já com Ginga embutido. Ready for market.

* Qualcomm acredita que o uso da interatividade torna a oferta da TV aberta no celular ainda mais atraente, e rentável.

* Na visão da Qualcomm, a Tv aberta no celular reduz a barreira de entrada e estimula o uso do celular para as aplicações on demand.

* Oferta de TV paga pela rede celular é questão de custo de oportunidade, diz a Qualcomm. Faz uso de redes dedicadas mais vantajoso

* "Telespectador q investe em TV Digital reclama de ver conteúdo em 4:3", diz Luiz Gurgel.

* RT @ForumSBTVDSET09 Maurício de Sousa lança "TURMA DA MÔNICA P/ TV DIGITAL INTERATIVA", amanhã, às 10h, no estande Fórum

* #set2009 - É possível transmitir aplicativos diferentes, para praças diferentes, durante intervalos comerciais? A princípio, sim, dizem.

* Já é possível alterar tempo de ciclo de alguns objetos no carrossel? Sim, dizem alguns dos fornecedores. Com adaptores, via XML.

* EITV, que já tem uma implementação do Ginga-NCL, anuncia para os próximos meses a implementação com Ginga-J.

* Apresentação do Astro Play, da TQTVD. Aplicativo na ponta do emissor para controle das aplicações a serem transmitidas já está pronto para cenários de interatividade avançada e plena, com adaptação de conteúdo de diversas fontes, incluindo internet.

* A NXP, ex-Phillips, já tem uma plataforma pronta para o Ginga (a STB236). Todo desenvolvimento feito por engenheiros brasileiros.

* NXP garante: hoje já há escala para produção de conversores no país. Há plataformas internacionais facilmente customizáveis.

* Entre as próximas etapas do Ginga está o suporte do middleware pelas TVs por assinatura. Tarefa para os próximos meses.

* “O crescimento de vídeo na Internet é grande, pesquisas indicam 62% ao ano até 2013”, diz Rafael Pereira, da Globo.com.

Lua - Preparando um ambiente

Este é o primeiro da nossa série de posts sobre Lógica de Programação com a linguagem LUA. O intuito é fazer um bom material pra quem está começando. Se o FeedBack for bom, podemos aprofundar mais no "curso".

Introdução

Lua é com certeza uma das linguagens de programação mais simples para aprendizado. Leve e rápida, é ideal para a utilização em sistemas embarcados.

Com a adoção do Lua como uma das linguagens para o SBTVD e a inclusão como uma das linguagens disponíveis nos celulares com Android, a demanda por profissionais qualificados será grande, por isso temos que nos preparar.

Acompanhando as discussões na lista Lua-BR, recem criada por conta do Lua Workshop 2009, temos notado um grande apelo por tutoriais que expliquem a linguagem. Com isso decidimos escrever uma série de artigos para apresentação da linguagem. Sendo assim, vamos ao que interessa.

Preparando o Ambiente

A instalação do Lua é simples. Utilizaremos como base o Windows e a distribuição Ubuntu.

Windows
1. Realize o downlod do Lua para Windows do Site Lua Forge.
2. Execute o arquivo como um instalador padrão do Windows: Next - Next - Finish.
2.1 Ao final, o instalador dá a opção de rodar os exemplos. Se você for um autodidata, recomendo que dê uma olhada nos exemplos para começar a se ambientar com a linguagem. Não se preocupem em fazer N programinhas para se aperfeiçoar, traremos exemplos bem legais para isso.
3. Para testar a instalação, abra o prompt do DOS e execute o comando lua.

O interpretador Lua deverá ser iniciado:

Microsoft Windows XP [versão 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\luiz>lua
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
>


4. O Lua está instalado e pronto para utilização.

Ubuntu
1. Na linha de comando, execute o comando sudo apt-get install lua
2. Para testar a instalação, na linha de comando execute o comando lua.

O interpretador Lua deverá ser iniciado:


[root@gingavm ~]# lua
Lua 5.1.2 Copyright (C) 1994-2007 Lua.org, PUC-Rio
>



IDE
Para a edição dos códigos lua você poderá utilizar qualquer editor de texto. A instalação do Lua para Windows também instala o editor SciTE.

Preferimos o Geany como editor. Ele funciona tanto no Windows quanto no Linux e sua instalação é bem simples.

No Windows, basta seguir o procedimento padrão: Next - Next - Finish.

No Linux basta executar na linha de comando sudo apt-get install geany.

Hello World
Como primeiro exercício, iremos criar um Hello World. Com o Geany aberto, digite a linhas de código a seguir:

local variavel = 'Ola amigos. Estamos no Versao Digital: http://versaodigital.blogspot.com/'

print (variavel)

Na barra de ferramentas do Geany, clique no botão Executar. O resultado será esse:



Com isso finalizamos este primeiro post. Seu ambiente está configurado e funcional. No próximo post, explicaremos declaração de variáveis, atribuição de valores, estruturas condicionais e laços de repetição. Não percam!

18 de ago de 2009

A revolução será televisionada...pela TV?

Nesses últimos dias, li algumas notícias que explicam bem em que pé está a TV Digital no Brasil.

A primeira delas, muito boa, é a de que a LG lançará um modelo de Netbook com TV digital integrada, mais uma vez dentro da "família" Scarlet, que já possui modelos de televisores e celulares com recepção do sinal digital.

Tudo muito bom, mas eu daqui quero ver qual será a capacidade de recepção desses aparelhos, pois, como lembrado no blog da jornalista Cristina de Luca, os conversores atuais, embutidos ou acoplados, na esmagadora maioria das vezes precisam de uma antena UHF externa para captar o sinal aberto digital com qualidade.

De qualquer forma, a integração entre TV digital e dispositivos com acesso à internet (notes e netbooks, PCs, celulares) permitirá que a interatividade do usuário tenha um CANAL DE RETORNO, ou seja, que as ações do usuário possam ser enviadas para o transmissor da programação ou a uma terceira parte interessada.

Esse retorno, seja via internet regular ou 3G, é a chave para aplicações de compra pela TV (alô, Shoptime!), EAD, enquetes e pesquisas em geral e até a personalização da programação de acordo com o perfil do espectador.

A dificuldade de integrar esse canal de retorno nos televisores convencionais pode ser mais um motivo para que a TV digital no Brasil estoure primeiro nos celulares e computadores portáteis. A revolução será televisonada pela tv... ou pelos dispositivos móveis?

Por falar nisso, outra notícia é sobre a Portaria Interministerial 237 - que obriga, a partir de Janeiro de 2010, que cada fabricante de celular tenha 5% da sua produção local adaptada ao SBTVD.

Os produtores de celulares pedem a flexibilização dessa portaria, que prevê a perda de isenção da Lei de Informática para a produção local no caso do não cumprimento do prazo. As empresas, com dificuldades de adaptação ao SBTVD e ao Ginga, temem não cumprir o prazo e propõem que haja um incentivo aos que chegarem aos 5%, e não um corte para os que não conseguirem.

Esse pedido ainda será avaliado pelo governo. De qualquer forma, essa notícia não é boa, pois demonstra claramente que a implementação da Tv Digital no Brasil, mais uma vez, será mais lenta do que se esperava.

Mais sobre o assunto:

TV digital no celular: contraproposta ao governo (Site Convergência Digital)

Antena: o calcanhar de aquiles da TV Digital (Site Circuito, por Cristina de Luca)

LG lança netbook com TV digital integrada (Site Tele.síntese)

12 de ago de 2009

I Simpósio Internacional de TV Digital

A Comissão Organizadora do I Simpósio Internacional de Televisão Digital comunica que os prazos para envio de resumos e de artigos foram estendidos. Os resumos, de acordo com as normas disponíveis no site do evento, podem ser enviados até 17 de setembro. O prazo para envio de trabalho final (em todos os casos) passa a ser 18 de outubro.

Os aceites serão enviados em duas datas diferentes: até 17 de agosto (para aqueles que enviaram até dia 09 de agosto) e até 24 de setembro (para aqueles que enviarem até 17 de setembro).

Mais informações sobre a inscrição de trabalhos e programação completa, confira no site do evento, em www.faac.unesp.br/simtvd .

Programação Confirmada:

18 de novembro – quarta-feira (Teatro Municipal de Bauru)
19h - Recepção dos participantes
19h30 – 20h – Sessão de Abertura
20h – 21h – Conferência de Abertura - "Panorama da Televisão Digital no Brasil: perspectivas e embates" com Maurício Kakassu (Superintendente do Fórum SBTVD)

19 de novembro – quinta-feira (Auditório A1)
10h – 12h - Mesa 01: Comunicação, Produção de Conteúdos e Políticas Públicas: desafios para Televisão Digital no Brasil - Fernando Dias (Presidente da ABPI - TV)
14h – 16h - Mesa 02: Tecnologias educacionais para a Televisão Digital - Fernando Spanhol (Diretor da ABED), Maria Teresa Quiroz (Universidade de Lima, Peru), Márcio Pereira (Canal Futura)
20h30 – 22h30 - Mesa 03: Padrão do Sistema Digital Brasileiro: convergência, interatividade em multiplataformas - Guido Lemos (UFPB), Luis Valle (Universidade de Palermo, Argentina), Fernando Bittencourt (Diretor de Tecnologia da TV Globo)

20 de novembro – sexta-feira (locais a serem confirmados)
8h – 10h – Relatos de Pesquisa
16h - 18h – Grupos de Trabalho
18h – Plenária de Encerramento

Mesas temáticas e oficinas estão sendo agendadas para sexta-feira, 20, às 10h e 14h.

O evento está sendo promovido pelo Programa de Pós-Graduação em Televisão Digital: Informação e Conhecimento (UNESP - Bauru). Será realizado nos dias 18, 19 e 20 em Bauru - SP.

Contato: 014 - 3103-6168
simtvd2009@faac.unesp.br

Disney estuda impacto da publicidade digital

Reproduzo abaixo matéria da Meio & Mensagem Online, para quem não tem cadastro no site deles. Bem interessante notar que a Disney estão estudando também publicidade digital na TV.

Disney quer decifrar impacto da publicidade online

Pesquisa do grupo analisa movimentos dos olhos, batimentos cardíacos e a temperatura do corpo para identificar os formatos de publicidade digital que mais (e menos) agradam as pessoas

11/08/2009 – 17:06

A Disney conduz um estudo para monitorar a efetividade da publicidade online e aprender mais sobre como os consumidores reagem quando eles são afetados por diferentes tipos de formatos. A técnica está sendo utilizada também para identificar as reações diante da televisão, em outro estudo.

A pesquisa utiliza técnicas de monitoramento dos olhos, de modo a determinar quais peças publicitárias são relevantes e quais não são. Além do olhar, o estudo analisa outros fatores como os batimentos cardíacos, a temperatura da pele e as expressões faciais, cujos dados são gravados e analisados, de modo que a equipe da empresa possa analisar o que funciona e o que não funciona.

Dentre outras coisas, estão sendo analisados fatores como o quão pequeno o banner pode ser antes de ser ignorado, o quão bem as pessoas reagem a anúncios animados e qual o melhor local para dispor a publicidade online.

Algumas das descobertas iniciais são que os anúncios “fly out”, aqueles que aparecem próximos ao player de vídeo em um site e que podem se expandir com o simples passar do mouse, resultam no mesmo impacto do que os chamados “over-lay” transparentes, os anúncios que correm acima do conteúdo, só que com a vantagem de serem menos intrusivos.

A ideia da Disney, que é dona de propriedades como ABC e ESPN, é fornecer aos anunciantes uma maneira de mensurar o retorno obtido sob seus investimentos na publicidade online, valorizando esta mídia. Embora afetada pela recessão, a publicidade de internet nos Estados Unidos irá atingir aproximadamente US$ 25 bilhões neste ano, segundo a eMarketer, e pode chegar a US$ 37 bi em 2013.

Com informações do New York Times.

Fonte: M&M Online

11 de ago de 2009

Review: XPS-1000 da Proview

Acabei de responder a um e-mail da lista de discussão de TV Digital sobre o Set-top Box (STB) XPS-1000 da proview e decidi, a partir do e-mail, escrever esta análise.

Antes de falar sobre o XPS, vamos entender oque é o STB:

Set-top Box (STB) ou conversor é um termo que descreve um equipamento que se conecta a um televisor e a uma fonte externa de sinal, e transforma este sinal em conteúdo no formato que possa ser apresentado em uma tela.

A fonte deste sinal pode ser um cabo ethernet, (veja triple play), uma antena de satélite, um cabo coaxial (veja Televisão a cabo), uma linha telefônica (incluindo conexões DSL), ou até mesmo uma conexão de uma antena VHF ou UHF.

Fonte: Wikipedia


No caso do SBTVD, a conexão realizada é feita a partir de uma antena UHF. Sabendo disso, vamos ao que interessa.



O XPS-1000 é o primeiro STB para o SBTDV a chegar ao mercado com suporte a interatividade. O aparelho chega com o status de STB mais barato do mercado e realmente ele consegue ser feliz nesta tarefa. Em uma consulta rápida no boa dica encontramos o aparelho por R$ 299,00, no Rio de Janeiro.

O aparelho possui 3 saidas de vídeo (HDMI, Vídeo Componente e Vídeo Composto), 2 saidas de áudio (Coaxial e Ótico) mais uma porta ethernet e uma USB.

Caso o consumidor possua uma TV HDMI, terá uma bela surpresa ao abrir a caixa: o aparelho vem apenas com os cabos de Vídeo Componente.

A caixa possui ainda fonte de alimentação e uma antena que certamente deverá ser substituida caso o local onde será instalado o aparelho possua muitos obstáculos.

No meu caso, a opção pelo XPS era justamente a possibilidade de se testar aplicações interativas que só foi possível desenbolsando mais R$ 200,00 pela a atualização. No final das contas, o barato não é tão barato, principalmente se levarmos em consideração que o aparelho é instável, lento na transição de menus e o midleware instalado não está implementado em sua totalidade. Chego a dizer que não está implementado nem mesmo 25% do que está descrito na norma.

Assistência técnica hoje é inexistente, não é possível encontrar lugar que realize manutenção no aparelho no Rio de Janeiro. O suporte por e-mail é fraco e desconhece o produto. Cheguei a esperar mais de sete dias para obter uma relação de melhorias/implementações em uma atualização do firmeware.

É comum que o aparelho trave e seja necessário retirá-lo da tomada. A velha estória de sair e entrar no fusca para ver se pega.

Ao final de 2 meses o aparelho apresentou defeito e até o momento não encontramos um local que realize a assistência. Antes que alguém diga que foi azar meu, conheço casos de pessoas que tiveram problemas no aparelho após 2 semanas de uso apenas como decodificador.

A dica que fica é: para quem pretende desenvolver para TV Digital com Ginga-NCL, vale mais a pena pegar um computador que esteja encostado e instalar o Ginga-NCL que está disponível no portal do software público. Na pior das hipóteses você ganhará conhecimento.

Para saber mais:

Software Público
Ginga-NCL
Clube do Conversor XPS-1000 (Fórum técnico em eletrônica)

13 de jul de 2009

Laboratório de Integração de Software e Hardware seleciona Pesquisadores

Processo Seletivo

Julho de 2009

O Laboratório de Integração de Software e Hardware da UFSC está selecionando estudantes de graduação, mestrado e doutorado para ampliar sua equipe de pesquisa e desenvolvimento e trabalhar no projeto ALTATV, cujo objetivo é criar uma Arquitetura aberta, livre e escalável de Terminais de Acesso para o Sistema Brasileiro de Televisão Digital (SBTVD).

Em atividade desde 1985, o laboratório atua em projetos de pesquisa nas áreas de arquiteturas de computadores, sistemas operacionais e sistemas embarcados, tendo como principais focos de aplicação as áreas de automação, telefonia e TV digital. O laboratório atua em parceria com grandes empresas dessas áreas, desenvolvendo projetos de inovação tecnológica de software e hardware que as permite colocar no mercado produtos de ponta.

Candidatos interessados em trabalhar conosco devem encaminhar currículo vitae para lisha@lisha.ufsc.br. Os candidatos pré-selecionados serão convidados a comparecer ao laboratório para entrevistas previstas para a última semana de julho.

Desenvolvedor C/C++ - ênfase em Sistemas Embarcados
(Engenharia/Ciência da Computação ou similar)

Requisitos obrigatórios:
Programação C e C++ e experiência na implementação de firmware para sistemas embarcados.

Requisitos desejáveis:
Conhecimento sobre desenvolvimento de software para sistemas embarcados. Experiência em Linux Embarcado; Desenvolvimento de device drivers para Linux; Implementação da inicialização do kernel linux em sistemas embarcados; Uso de ferramentas para cross-compilação (GCC, Binutils).


Engenheiro/Projetista de Hardware - ênfase em lógica programável
(Engenharia Elétrica/Eletrônica, Engenharia/Ciência da Computação ou similar)

Requisitos obrigatórios:
Conhecimentos em eletrônica digital. Capacidade de desenvolvimento de componentes de hardware através de linguagens de descrição de hardware (VHDL, Verilog), utilizando metodologias de projeto e ferramentas adequadas (ISE/Quartus).

Requisitos desejáveis:
Programação C e C++, conhecimento em sistemas operacionais, programação de drivers. Programação System C e fluxo de projeto de circuitos integrados.


Benefícios oferecidos:

Remuneração de acordo com a tabela de bolsas CAPES/CNPq.
Bonificações por produtividade e/ou atividades em projetos de P&D.
Horário de trabalho flexível (dedicação exclusiva compartilhada com estudos).
Ambiente de trabalho com grande potencial de aprendizagem e equipe
multidisciplinar.
Contato com diversas instituições de pesquisa nacionais e internacionais.
Incentivo e valorização de características pessoais como dinamismo,
iniciativa, trabalho em equipe, flexibilidade e boa comunicação.

Mais informações: http://www.lisha.ufsc.br/

3 de jul de 2009

PUC-Rio prepara o LUA Workshop 2009



Nos dias 06 e 07 de outubro, será realizado na PUC-Rio o LUA Workshop 2009. O objetivo do evento é reunir a comunidade, discutir e divulgar a linguagem.

As inscrições deverão ser realizadas através do e-mail lua.workshop@gmail.com com a seguinte ficha de inscrição:

Lua Workshop 2009 - Formulário de inscrição
- Nome, afiliação (empresa/universidade/organização), email
- Por que você gostaria de participar do workshop?
- Se você gostaria dar uma palestra, informe título e resumo


O evento está dividido entre as seguintes atividades:
- LUA Games 2009. Um pré-evento ao SBGames 2009
- Palestra plenária com Roberto Ierusalimschy, principal arquiteto da linguagem.
- Palestra plenária com Jim Whitehead II, autor do livro World of Warchaft Programming.
- Palestras de membros da comunidade.
- Mesa redonda.

Para mais informações, acesse o site do evento. http://www.lua.org/wshop09.html.

2 de jul de 2009

OpenGinga liberado para Download

Conforme anunciado no FISL10, foi liberado esta semana a primeira versão do OpenGinga.

Esta versão é beta e destinada a "desenvolvedores avançados e com conhecimento de sistemas de middleware" como o próprio site informa.

16 de jun de 2009

Opera Unite: Vamos colocar todo o computador na Web

A Opera Software lançou recentemente a versão 10 do seu web browser. Poderia passar desapercebido se não fosse pelo fato de ter sido lançado junto o Opera Unite. A idéia é simples. Disponibilizar qualquer tipo de informação na web.

Ok. A idéia de disponibilizar qualquer informação na web não é nenhuma novidade. Mas o Opera Unite promete ser uma revolução disponibilizando não apenas informação, mas serviços também. É possível compartilhar qualquer tipo de arquivo (documentos, planilhas, músicas, vídeos) e é possível escolher se os arquivos serão públicos ou privados e quem terá acesso a estes arquivos.

Alguns serviços já foram disponibilizados:
File Sharing que como o próprio nome já diz, permite compartilhar seus arquivos;
Media Player permitirá que o usuário acesse sua biblioteca de música de qualquer lugar;
Web Server disponibilizará sites que estarão hospedados no próprio computador do usuário;
Photo Sharing permitirá compartilhar as fotos do usuário;

A idéia não é a criação de "simples" aplicações, como aconte com os add-ons do firefox e sim a criação de novos serviços por parte da comunidade.

LEIA MAIS:


Opera Unite

Opera Developer Community

Opera Unite - Youtube

Opera Unite Instructions - Youtube

15 de jun de 2009

Android suportará Ruby e JavaScript além de Lua e Python

O blog Google Open Source anunciou que o Android, plataforma para telefones móveis do Google, irá suportar Ruby e JavaScript.

Com isso o número de linguagens aumentará para cinco. O Android já possui suporte para Python, BeanShell e a linguagem brasileira Lua.


Será possível editar os scripts diretamente no celular.


O Script Mananger apresenta todos os scripts disponíveis.


Os scripts poderão ser executados interativamente ou em segundo plano como um serviço.


Terminais interativos podem ser iniciados para suporte aos interpretadores.


Os scripts poderão utilizar a interface Gráfica do Android para receber dados do usuário.

"Cultivar heresias é preservar a sanidade"

Luli Radfahrer está em alta por aqui. Tudo culpa do meu companheiro de blog Bernardo Loureiro, que "evangelizou" tanto a mim quanto ao Luiz Eduardo.

Luli é Ph.D. em comunicação digital e professor da ECA/USP. Mas, mais importante do que isso, Luli é uma voz dissonante nesse nosso mundo digital.

Autor do livro A Arte da Guerra para Quem Mexeu no Queijo do Pai Rico (só o título já valeria o preço), onde expõe o fiapo de discurso dos livros de "auto-ajuda corporativa", Luli também é um defensor do livre pensar. Algumas de suas frases mais fortes são "O perfeccionismo é maligno" e "Cultivar heresias é preservar a sanidade. Você ainda não é um ciborgue".

Não é por acaso que o discurso de Luli surja num momento em que já há pessoas repensando se toda essa velocidade e necessidade de informação, de estar up-to-date, de se adequar as cada vez mais estritas e exigentes necessidades do mercado de trabalho são saudáveis para o ser humano.

Hoje, o cliente final, o usuário, o ser humano, é fundamental e mais levado em conta em tudo que é feito. Não por acaso, estudos de usabilidade, user experience, acessibilidade, design de interface, marketing de serviço e de atendimento estão tão em voga... a concorrência é cruel, e a internet e as redes sociais amplificaram o velho "boca-a-boca". O consumidor não leva mais desaforo pra casa.

Por outro lado, o ser humano é exigido cada vez mais no seu limite. Tem que saber cada vez mais, errar cada vez menos e "se encaixar" num modelo pré-determinado de comportamento corporativo que ultrapassa o que faz no expediente (afinal, pode-se buscar pelo seu nome no Google, no twitter, no Orkut...). Será que isso não inibe nossa espontanealidade? Como ser criativo olhando 8 horas para uma tela com todos os seus sites e e-mails bloqueados pelo "infra"? Como entender o mundo sem vê-lo?

Será que para enriquecermos nossa experiência humana no século XXI, precisaremos nos tornar menos humanos?

Valorizamos e desvalorizamos o que somos todos os dias. Ao mesmo tempo. Meio esquizofrênico e bipolar isso, não?

É do que fala o Luli. Provavelmente, uma voz sonhadora e dissonante que se perderá no rolo compressor do cotidiano. O mundo não pode parar, e não irá.

Mas é também uma situação meio Matrix. As pílulas foram dadas. Qual cor você escolherá?


LEIA MAIS:

Livro de Luli Radfahrer "A arte da guerra para quem mexeu no queijo do pai rico"

luli.com.br, site do Luli Radfahrer

"O que você faz?" Uma palestra de Luli Radfahrer

10 de jun de 2009

Mashuparam os buscadores

Na música, "mashup" tem um significado um pouco diferente do termo utilizado em TI/programação.

Enquanto no nosso mundo digital mashups são aplicações web que usam conteúdos de diferentes fontes para criar um novo serviço, na música são canções feitas a partir da fusão de duas ou mais músicas.

É o que faz o BINGLE, um site que junta, numa mesma página, os resultados do Bing (sistema de busca recém-lançado, em versão beta, pela Microsoft) e do Google, lado a lado.

Além de poupar tempo de quem vai fazer buscas, é interessante para ver as diferenças de indexação entre os dois sistemas.

Por exemplo: numa busca por "Beatles", no Google os dois primeiros resultados foram o verbete da banda na Wikipedia e o site oficial beatles.com. No Bing, a busca só deu resultado em sites brasileiros, na maioria .com.br, apesar de não estar selecionada a opção "Apenas Português(Brasil)".

Talvez fosse o caso da Microsoft acessar o Bingle pra dar uma comparada...

LEIA MAIS:

Pesquise no Bingle

O que é um mashup musical (em inglês)

Mashups em aplicações web