Não sei a quanto tempo está disponível, mas a está lá no site da Adobe a documentação oficial do ActionScript 3.0 (Programming ActionScript 3.0) em português.
Confiram online, PDF.
Programação e Linux.
sexta-feira, 19 de dezembro de 2008
quinta-feira, 18 de dezembro de 2008
Qual linguagem de programação você prefere?
Dando continuidade ao post anterior, gostaria de fazer uma pesquisa. Dado que muitos programam em várias linguagens, se eu pedisse para você fazer um programa para mim, qual linguagem você iria preferir de cara?
Eu estou falando da primeira linguagem que vem a sua cabeça. Em qualquer projeto a primeira linguagem que vem a minha cabeça se chama C, mas dependendo do que se pede, eu troco para python, perl, java, php, ... Mas justamente eu quero saber a que, num mundo perfeito, seria a primeira que você escolheria.
quarta-feira, 17 de dezembro de 2008
Montar partições dos discos do vmware
As vezes você precisa só de um arquivo dentro de uma máquina virtual e não quer ligar o vmware para fazer isto, ainda bem que a vmware disponibiliza os comandos necessários:
Vá até a pasta da sua máquina virtual e procure pelo arquivo *.vmdk (disco virtual do vmware). Achando o arquivo agora é só usar o vmware-mount, aqui vão uns exemplos:
listar partições do disco:
sudo vmware-mount -p
Montar a partição 1 em /mnt
sudo vmware-mount 1 /mnt/
Listas as partições montadas:
sudo vmware-mount -L
Desmontar a partição montada em /mnt
sudo vmware-mount -d /mnt/
O vmware-mount vem com o vmware.
Vá até a pasta da sua máquina virtual e procure pelo arquivo *.vmdk (disco virtual do vmware). Achando o arquivo agora é só usar o vmware-mount, aqui vão uns exemplos:
listar partições do disco:
sudo vmware-mount -p
Montar a partição 1 em /mnt
sudo vmware-mount
Listas as partições montadas:
sudo vmware-mount -L
Desmontar a partição montada em /mnt
sudo vmware-mount -d /mnt/
O vmware-mount vem com o vmware.
Marcadores:
disco virtual,
linux,
montar,
vmdk,
vmware,
vmware-mount
terça-feira, 16 de dezembro de 2008
Programador velho, linguagem nova: Leia um bom livro [Era: utilidades do java]
Me considero programador em apenas 4 linguagens: Perl, C, Java e Python, nesta ordem de aprendizado. Em todas estas, além de gostar e ter escrito muito código nelas, eu as acompanho vendo suas novidades, suas tendências, seus padrões, sua filosofia e participando de alguma lista.
Para muitos amigos meus programadores, Java é horrível, concordo em vários pontos, mas só pude ter uma opinião concreta quando aprendi mais sobre ela e após isto considero java uma linguagem com muitas idéias legais. Contudo Java definitivamente não é, e nunca vai ser, minha linguagem preferida, não a odeio como outros programadores, também não a defendo como ela sendo o estado da arte como muitos dos seus programadores fazem, deixei de ser xiita.
Mas figuras como estas, são no mínimo muito engraçadas: "Por que java é útil?"
De http://www.danilocesar.com/blog/2008/11/26/porque-java-ainda-e-util/
Não gosto deste livro, já o li, para mim o melhor livro de java, apesar de antigo (Java 5.0), é o Learning Java da O'Reilly. É essencial que um programador saiba programar em uma linguagem seguindo sua filosofia, o da O'Reilly faz isto, o da Deitel não.
É horrível ver um programador C fazer programas em Python como se fosse C.
Aqui vai meu apelo: Se você realmente quer aprender uma linguagem de programação nova, leia um bom livro sobre ela e participe da comunidade, só porque já sabe programar, não garante que você vai fazer um programa bom em outra linguagem.
Aproveitando, linguagens que já programei/estou programando e gostei/estou gostando: haskell, scheme, mxml+actionscript (junto, não separado). Linguagens que já programei/estou programando e não gostei/continuo não gostando: php, tcl/tk, C++.
Para muitos amigos meus programadores, Java é horrível, concordo em vários pontos, mas só pude ter uma opinião concreta quando aprendi mais sobre ela e após isto considero java uma linguagem com muitas idéias legais. Contudo Java definitivamente não é, e nunca vai ser, minha linguagem preferida, não a odeio como outros programadores, também não a defendo como ela sendo o estado da arte como muitos dos seus programadores fazem, deixei de ser xiita.
Mas figuras como estas, são no mínimo muito engraçadas: "Por que java é útil?"
De http://www.danilocesar.com/blog/2008/11/26/porque-java-ainda-e-util/
Não gosto deste livro, já o li, para mim o melhor livro de java, apesar de antigo (Java 5.0), é o Learning Java da O'Reilly. É essencial que um programador saiba programar em uma linguagem seguindo sua filosofia, o da O'Reilly faz isto, o da Deitel não.
É horrível ver um programador C fazer programas em Python como se fosse C.
Aqui vai meu apelo: Se você realmente quer aprender uma linguagem de programação nova, leia um bom livro sobre ela e participe da comunidade, só porque já sabe programar, não garante que você vai fazer um programa bom em outra linguagem.
Aproveitando, linguagens que já programei/estou programando e gostei/estou gostando: haskell, scheme, mxml+actionscript (junto, não separado). Linguagens que já programei/estou programando e não gostei/continuo não gostando: php, tcl/tk, C++.
Marcadores:
c,
humor,
java,
linguagens novas,
livros,
piada,
programação,
programadores,
python
Como Rotacionar a Tela no Linux
No linux (se sua placa/driver suportar) é possível rotacionar a tela dinamicamente uso o xrandr, quando você tem uma tela touchscreen, é perfeito.
Primeiro veja se é possível via xrandr -q:
iuri@cego:~$ xrandr -q
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1024 x 768
VGA disconnected (normal left inverted right x axis y axis)
LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm
1024x768 60.0*+
800x600 60.3
640x480 59.9
TV connected (normal left inverted right x axis y axis)
1024x768 30.0
800x600 30.0
848x480 30.0
640x480 30.0
iuri@cego:~$
A linha (normal left inverted right x axis y axis) diz que é possível mudar entre 'normal', 'inverted' (180 graus), 'left' (90 graus anti-horário) e 'right' (90 graus horário).
Como rotacionar 90 graus, anti-horário:
xrandr -o left
Como rotacionar 90 graus, horário:
xrandr -o right
Como inverter a tela:
xrandr -o inverted
Como voltar ao normal:
xrandr -o normal
O próximo passo seria criar atalhos para poder fazer isto sem usar o terminal, quem sabe um aplicativo para o gnome.
O xrandr pode ser usado para mudar a resolução, configurar um display externo, mas isto é assunto para outro post,
Primeiro veja se é possível via xrandr -q:
iuri@cego:~$ xrandr -q
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 1024 x 768
VGA disconnected (normal left inverted right x axis y axis)
LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 304mm x 228mm
1024x768 60.0*+
800x600 60.3
640x480 59.9
TV connected (normal left inverted right x axis y axis)
1024x768 30.0
800x600 30.0
848x480 30.0
640x480 30.0
iuri@cego:~$
A linha (normal left inverted right x axis y axis) diz que é possível mudar entre 'normal', 'inverted' (180 graus), 'left' (90 graus anti-horário) e 'right' (90 graus horário).
Como rotacionar 90 graus, anti-horário:
xrandr -o left
Como rotacionar 90 graus, horário:
xrandr -o right
Como inverter a tela:
xrandr -o inverted
Como voltar ao normal:
xrandr -o normal
O próximo passo seria criar atalhos para poder fazer isto sem usar o terminal, quem sabe um aplicativo para o gnome.
O xrandr pode ser usado para mudar a resolução, configurar um display externo, mas isto é assunto para outro post,
domingo, 14 de dezembro de 2008
Passando parâmetros para o NetConnection.connect, vídeo que não seja de uma webcam e problemas para iniciar o red5 nesta semana na red5
Esta semana na lista Red5 rolou:
- Gongmyung Lee perguntou sobre como transmitir vídeo via Red5 de uma fonte que não seja câmera.
- Daniel Schweighöfer queria saber como ler no red5 os parâmetros passados NetConnection.connect
- Sean O´hara não estava conseguindo fazer o red5 iniciar automaticamente no seu mac.
DJango, eric3, flex, tinypy e gtk nesta semana na python-brasil
Esta semana na lista python-brasil rolou:
- Daniel F. Menezes queria saber como traduzir as mensagens do django para português.
- lorenzo_brazuna queria saber como instalar o eric3 no windows.
- Eduardo pediu informações de como integrar o python com o flex.
- Houve relato sobre as implementações do python: CPython, Jython, PyPy, tinypy...
- Ivanildo Filho não estava conseguindo fazer com que as janelas gtk criadas no glade-3 apareçam na tela.
Conexão 3g, áudio secundário, backup de bookmarks, Sunsix e wubi nesta semana na ubuntu-br
Esta semana na lista ubuntu-br rolou:
- Idélcio Filho está tentando compartilhar uma conexão 3g da Tim Web com seu iPhone usando uma rede ad-hoc no linux.
- Hugo Leandro queria saber como selecionar o segundo áudio de um filme no Totem.
- Ksatrya_Linux não estava conseguindo instalar a rede wireless do notebook HP pavilion dv5-1002nr e pediu ajuda a lista.
- Elcio Marques dos Reis perguntou sobre como fazer um backup dos bookmarks do firefox.
- Luciana comprou um computador que veio com a distribuição Linux Sunsix instalada e apresentou uma série de dificuldades ao usar este sistema, resolveu então pedir ajudar a lista ubuntu-br.
- Lucas Souza queria migrar o /home para uma partição separada.
- Lucas Pereira Caixeta instalou o ubuntu no windows via wubi e queria as vantagens e desvantagens.
- Marcio Novelli queria saber como separar o áudio de um arquivo de vídeo.
Fullscreen e screencasts nesta semana na flexdev
Esta semana na lista flexdev rolou:
- thiagobloomfield tinha dúvidas porque ao colocar um aplicativo flex em fullscreen o teclado não funcionava.
- Marco Catunda pediu sugestões para fazer screencasts em flv.
Marcadores:
flash,
flex,
flexdev,
flv,
fullscreen,
resumo,
screencast,
teclado
sexta-feira, 12 de dezembro de 2008
Simulando uma webcam no linux
Recentemente tenho brincado com o Red5 principalmente para fazer streaming e precisava ver como ele se comporta transmitindo de uma webcam, mas tem um problema: eu não tenho câmera no meu computador. Em setembro eu havia achado o projeto AVDL (Another Video Loopback Device), que simulava um dispositivo de vídeo como uma webcam ou uma placa de captura, mas na época ele não funciona com Flash. Hoje eu entrei no site novamente e ele agora (v. 0.1.4) funciona comFlash (maravilha).
Ele é um módulo de kernel e precisa ser compilado, então é necessário ter as ferramentas de compilação, no ubuntu para instalar basta:
Você precisa agora alimentar a "webcam" com algum vídeo, é importante que o vídeo esteja em um formato (e resolução) que a "webcam" entenda, mas isto pode ser feito com transcodificação usando o mencoder (apt-get install mencoder):
Ele é um módulo de kernel e precisa ser compilado, então é necessário ter as ferramentas de compilação, no ubuntu para instalar basta:
apt-get install build-essential linux-headersBaixe o código fonte (http://allonlinux.free.fr/Projets/AVLD/src/avld_0.1.4.tar.bz2) e descompacte com:
tar xjf avld_0.1.4.tar.bz2entre no diretório:
cd avld_0.1.4compile e instale:
make && sudo make installÉ preciso adicionar o driver ao kernel para poder usar:
modprobe avld width=320 height=240Desta forma acima, ele cria o dispositivo com resolução de 320x240.
Você precisa agora alimentar a "webcam" com algum vídeo, é importante que o vídeo esteja em um formato (e resolução) que a "webcam" entenda, mas isto pode ser feito com transcodificação usando o mencoder (apt-get install mencoder):
mencoder -nosound -ovc raw -vf scale=320:240,format=bgr24 \Agora é só usar.
-of rawvideo -o /dev/video0 <ARQUIVO>
Marcadores:
avld,
dummy video,
fake webcam,
flash,
mencoder,
red5,
webcam
sexta-feira, 5 de dezembro de 2008
Android 1.0 agora roda em Nokia N810
Depois do Neo Runner (OpenMoko), agora é a vez de outro dispositivo que já roda linux, o Nokia N810 também rodar o Android.
Segundo o Linux Devices, o porte apenas está no início, para que os aplicativos rodarem de fato no N810, os desenvolvedores querem agora prover suporte ao Android Debug, consertar um crash constante do sistema e habilitar o recarregamento da bateria quando em corrente elétrica. O porte ainda não permite acesso a internet devido ao driver fechado do chip WiFi do N810, mas eles planejam ou habilitar o chip WiFi ou permitir acesso por USB.
Em julho uma versão pré-release do Android já havia rodado no N810.
Clique aqui para acessar o artigo sobre o porte (em inglês).
Esta notícia veio em boa hora, estou pensando em comprar um dispositivo ultra móvel para poder hackear um pouco, alguns podem não saber, mas eu sou (também) desenvolvedor para sistemas embarcados, só que desde abril de 2008 não mexi mais com isto. Estava pensando em comprar um N810, mas o maemo já funciona 100% nele, não teria muito espaço para mim, mas que tal colocar o android em pleno funcionamento nele?
N810 é um produto da Nokia, uma das maiores fabricantes de celulares do mundo, entretanto não é um celular, é um tablet pc ultra portátil.
Android é uma plataforma de desenvolvimento aberto para celulares que roda em cima de linux e é patrocinada pelo google.
No início da semana, o Linux Devices anunciou que um grupo de hackers portou o Linux para iPhone e que o próximo passo é o Android (Corrigindo erro, obrigado Leonardo Saraiva).
Esta semana também foi anunciado durante o IP Communications Brasil 2008 que o Android foi portado para o Freerunner (OpenMoko)
Segundo o Linux Devices, o porte apenas está no início, para que os aplicativos rodarem de fato no N810, os desenvolvedores querem agora prover suporte ao Android Debug, consertar um crash constante do sistema e habilitar o recarregamento da bateria quando em corrente elétrica. O porte ainda não permite acesso a internet devido ao driver fechado do chip WiFi do N810, mas eles planejam ou habilitar o chip WiFi ou permitir acesso por USB.
Em julho uma versão pré-release do Android já havia rodado no N810.
Clique aqui para acessar o artigo sobre o porte (em inglês).
Esta notícia veio em boa hora, estou pensando em comprar um dispositivo ultra móvel para poder hackear um pouco, alguns podem não saber, mas eu sou (também) desenvolvedor para sistemas embarcados, só que desde abril de 2008 não mexi mais com isto. Estava pensando em comprar um N810, mas o maemo já funciona 100% nele, não teria muito espaço para mim, mas que tal colocar o android em pleno funcionamento nele?
N810 é um produto da Nokia, uma das maiores fabricantes de celulares do mundo, entretanto não é um celular, é um tablet pc ultra portátil.
Android é uma plataforma de desenvolvimento aberto para celulares que roda em cima de linux e é patrocinada pelo google.
No início da semana, o Linux Devices anunciou que um grupo de hackers portou o Linux para iPhone e que o próximo passo é o Android (Corrigindo erro, obrigado Leonardo Saraiva).
Esta semana também foi anunciado durante o IP Communications Brasil 2008 que o Android foi portado para o Freerunner (OpenMoko)
quinta-feira, 4 de dezembro de 2008
Plataforma Flash e Open Source
Em minha busca por fazer um serviço de streaming de vídeo de sucesso, pensei no porquê do youtube ser um sucesso? Acredito eu porque ele é feito em Plataforma Flash. Recentemente, o fato do Joost ter sido portado para flash comprova minha idéia.[1] [2]
Segundo a Adobe, o Flash está instalado em 98% dos computadores com acesso a internet, isto quer dizer que o Flash, é, de fato, padrão de mercado.
Por que o Flash é tão popular? porque ele é pequeno e instala fácil, ao abrir um endereço que contenha Flash, a maioria dos Browsers web orientam você a instalar o plugin e isto não demora muito já que o runtime do Flash é muito pequeno (de 1MB a 4MB) em comparação a outras teconologias que permitem streaming (media player, vlc, java...).
O simples fato do usuário "não precisar instalar nada" é perfeito para fazer do meu serviço de streaming (ou qualquer outro serviço baseado em Flash) um sucesso de uso.
Sempre procuro alternativas Open Source para todas as tecnologias que uso, não ia ser diferente com o Flash e aqui está meu relato.
Servidores de streaming e de aplicações RIA.
Red5
Para quem não conhece o Red5, ele é a melhor versão aberta do Flash Media Server (pago, código fechado), contendo a maioria dos recursos dele. O Red5 permite (entre outras coisas) que uma aplicação Flash utilize de recursos de streaming, tanto broadcasting (enviar conteúdo multimídia), quanto subscribing (receber conteúdo multímidia), ao vivo (live streaming) ou gravado (on demand).
Com o Red5 você pode fazer um youtube ou um justin.tv (yahoo live também). Mas Red5 não faz só isto, ele permite fazer aplicações RIA complexas. Veja por exemplo o red5phone, ele é um softphone feito em Flash, quer ligar de graça? apenas abra o browser e ligue, não precisa instalar nada. A riqueza de aplicações possíveis com o Red5 me motivou a estudar Flex e ActionScript.
lighttpd, php e FLV Streaming
O Red5 não é único jeito de fazer streaming para Flash, para criar um clone do youtube (video on demand) basta extender o protocolo HTTP de um servidor web através de um módulo dentro do próprio servidor web (como o mod_flv_streaming do lighttpd) ou simplesmente fazendo um script em das linguagens suportadas pelo servidor (como este em php). Em outra hora eu faço um post de como fazer isto aqui.
python e AMF
A comunicação entre o Flash Player e o servidor remoto é feita por AMF e o Red5 não é sua única implementação Open Source. O AMF é protocolo binário, objetos e dados são serializados neste formato, o que aumenta a performace, chegando a ser 10 vezes mais rápido do que os protocolos baseados em texto como XML-RPC e SOAP. PyAMF é uma implementação em python deste protocolo que pode ser facilmente integrada ao Django ou TurboGears.
Outras implementações de AMF podem ser achadas aqui.
Geração de conteúdo, Compiladores e IDE's
Agora que eu já defini a tecnologia, como vou fazer para gerar meus aplicativos em Flash? Eu sou um usuário Linux, então precisa funcionar no Linux também. Uma das primeiras ferramentas que utilizei foi o haXe.
Haxe
O haXe é uma nova linguagem que se parece muito com ActionScript 2 (veja aqui as diferenças) e suporta a API do Flash antiga (ActionScript 2), quando a API nova (ActionScript 3). Ele permite criar código compatível com as versões 6 a 10 do formato da Flash Runtime, o SWF.
O haXe no entanto, não possui uma API para gerar interfaces de usuário (widget toolkit). Para isto, temos de usar o Flash IDE (pago, não aberto, somente windows e mac), SwfMill (Baseado em uma linguagem XML, Open Source) ou uma API de terceiros como a AsWing (muito parecida com o swing do java).
Flex
Em fevereiro de 2008, a Adobe lançou o Flex SDK como open source, o Flex consiste da linguagem de marcação MXML para criar a interface gráfica e da linguagem de script ActionScript para realizar a interatividade. A documentação do Flex pode ser encontrada aqui.
IDE's para desenvolvimento
O Flex Builder (gratuito para estudandes, não aberto, somente windows e mac, linux em alpha) além de entender MXML e ActionScript, permite criar interfaces gráficas em um editor WYSIWYG, não existe ainda (novembro/2008) nenhum equivalente Open Source com os mesmos recursos.
A melhor IDE open para desenvolvimento é a FlashDevelop. Ela suporta as linguagens ActionScript 2, ActionScript 3, MXML and haXe e os compiladores Flash CS3 (pago, não aberto, somente windows e mac), Flex SDK (código aberto), Mtasc (obsoleto, código aberto) e haXe (código aberto). Possui interface amigável, geração de código, complementação de código, suporte a documentação, instrospecção de binários e etc. A FlashDevelop só tem um problema, apesar de ser feito .Net só funciona em Windows.
IDE's para Animações
O Ajax Animator permite fazer animações online diretamente do browser, seu código fonte é aberto e pode ser baixado por qualquer um.
Gnash e Flash Runtime
Gnash é um projeto que busca criar um Flash Runtime totalmente aberto, figurando como uma alternativa ao Adobe Flash Player (gratuito, não aberto). Gnash suporta a maioria dos recursos do SWF 7 e alguns do SWF 8 e 9. Apesar de não implementar todos os recursos presentes no player da Adobe, o Gnash permite extender as classes do ActionScript. Entre as extensões disponíveis estão o suporte a mysql e a acesso a disco, as extensões são desabilitadas por padrão por óbvias razões de segurança.
Futuro da plataforma
Em maio de 2008, o Open Screen Project tornou as especificações do SWF e do FLV disponíveis sem restrições. As especificações dos protocolos Flash Cast e AMF também ficaram disponíveis por conta deste projeto. O código fonte da máquina virtual ActionScript já havia sido aberto em novembro de 2006 com o lançamento do projeto Tamarin, que incluiu a especificação byte code do ActionScript. Flex SDK, que já é open source desde fevereiro de 2008, completa a lista das iniciativas de abertura da Adobe até agora.
Apesar do lançamento do Open Screen Project, as especificações da platarfoma Flash continuam incompletas, detalhes como o protocolo RTMP e o codec de vídeo Sorenson Spark não foram revelados. Além disso, a Adobe parece não ter planos em tornar todo o código fonte da plataforma Flash aberto, softwares como o Adobe Flash Player e Flex Builder continuam com o código fonte fechados. A principal alternativa ao Flash Player, o Gnash, permanece incompleto, entretanto desde que o SWF é um formato aberto, o Gnash deverá ter uma qualidade muito superior no futuro próximo já que os desenvolvedores podem agora implementar a especificação oficial do SWF.
Outros projetos Open Source não mencionados
IDE:
Lista do osflash.org
Documentação de referência
Flex 3:
Contribua para esta lista
Segundo a Adobe, o Flash está instalado em 98% dos computadores com acesso a internet, isto quer dizer que o Flash, é, de fato, padrão de mercado.
Por que o Flash é tão popular? porque ele é pequeno e instala fácil, ao abrir um endereço que contenha Flash, a maioria dos Browsers web orientam você a instalar o plugin e isto não demora muito já que o runtime do Flash é muito pequeno (de 1MB a 4MB) em comparação a outras teconologias que permitem streaming (media player, vlc, java...).
O simples fato do usuário "não precisar instalar nada" é perfeito para fazer do meu serviço de streaming (ou qualquer outro serviço baseado em Flash) um sucesso de uso.
Sempre procuro alternativas Open Source para todas as tecnologias que uso, não ia ser diferente com o Flash e aqui está meu relato.
Servidores de streaming e de aplicações RIA.
Red5
Para quem não conhece o Red5, ele é a melhor versão aberta do Flash Media Server (pago, código fechado), contendo a maioria dos recursos dele. O Red5 permite (entre outras coisas) que uma aplicação Flash utilize de recursos de streaming, tanto broadcasting (enviar conteúdo multimídia), quanto subscribing (receber conteúdo multímidia), ao vivo (live streaming) ou gravado (on demand).
Com o Red5 você pode fazer um youtube ou um justin.tv (yahoo live também). Mas Red5 não faz só isto, ele permite fazer aplicações RIA complexas. Veja por exemplo o red5phone, ele é um softphone feito em Flash, quer ligar de graça? apenas abra o browser e ligue, não precisa instalar nada. A riqueza de aplicações possíveis com o Red5 me motivou a estudar Flex e ActionScript.
lighttpd, php e FLV Streaming
O Red5 não é único jeito de fazer streaming para Flash, para criar um clone do youtube (video on demand) basta extender o protocolo HTTP de um servidor web através de um módulo dentro do próprio servidor web (como o mod_flv_streaming do lighttpd) ou simplesmente fazendo um script em das linguagens suportadas pelo servidor (como este em php). Em outra hora eu faço um post de como fazer isto aqui.
python e AMF
A comunicação entre o Flash Player e o servidor remoto é feita por AMF e o Red5 não é sua única implementação Open Source. O AMF é protocolo binário, objetos e dados são serializados neste formato, o que aumenta a performace, chegando a ser 10 vezes mais rápido do que os protocolos baseados em texto como XML-RPC e SOAP. PyAMF é uma implementação em python deste protocolo que pode ser facilmente integrada ao Django ou TurboGears.
Outras implementações de AMF podem ser achadas aqui.
Geração de conteúdo, Compiladores e IDE's
Agora que eu já defini a tecnologia, como vou fazer para gerar meus aplicativos em Flash? Eu sou um usuário Linux, então precisa funcionar no Linux também. Uma das primeiras ferramentas que utilizei foi o haXe.
Haxe
O haXe é uma nova linguagem que se parece muito com ActionScript 2 (veja aqui as diferenças) e suporta a API do Flash antiga (ActionScript 2), quando a API nova (ActionScript 3). Ele permite criar código compatível com as versões 6 a 10 do formato da Flash Runtime, o SWF.
O haXe no entanto, não possui uma API para gerar interfaces de usuário (widget toolkit). Para isto, temos de usar o Flash IDE (pago, não aberto, somente windows e mac), SwfMill (Baseado em uma linguagem XML, Open Source) ou uma API de terceiros como a AsWing (muito parecida com o swing do java).
Flex
Em fevereiro de 2008, a Adobe lançou o Flex SDK como open source, o Flex consiste da linguagem de marcação MXML para criar a interface gráfica e da linguagem de script ActionScript para realizar a interatividade. A documentação do Flex pode ser encontrada aqui.
IDE's para desenvolvimento
O Flex Builder (gratuito para estudandes, não aberto, somente windows e mac, linux em alpha) além de entender MXML e ActionScript, permite criar interfaces gráficas em um editor WYSIWYG, não existe ainda (novembro/2008) nenhum equivalente Open Source com os mesmos recursos.
A melhor IDE open para desenvolvimento é a FlashDevelop. Ela suporta as linguagens ActionScript 2, ActionScript 3, MXML and haXe e os compiladores Flash CS3 (pago, não aberto, somente windows e mac), Flex SDK (código aberto), Mtasc (obsoleto, código aberto) e haXe (código aberto). Possui interface amigável, geração de código, complementação de código, suporte a documentação, instrospecção de binários e etc. A FlashDevelop só tem um problema, apesar de ser feito .Net só funciona em Windows.
IDE's para Animações
O Ajax Animator permite fazer animações online diretamente do browser, seu código fonte é aberto e pode ser baixado por qualquer um.
Gnash e Flash Runtime
Gnash é um projeto que busca criar um Flash Runtime totalmente aberto, figurando como uma alternativa ao Adobe Flash Player (gratuito, não aberto). Gnash suporta a maioria dos recursos do SWF 7 e alguns do SWF 8 e 9. Apesar de não implementar todos os recursos presentes no player da Adobe, o Gnash permite extender as classes do ActionScript. Entre as extensões disponíveis estão o suporte a mysql e a acesso a disco, as extensões são desabilitadas por padrão por óbvias razões de segurança.
Futuro da plataforma
Em maio de 2008, o Open Screen Project tornou as especificações do SWF e do FLV disponíveis sem restrições. As especificações dos protocolos Flash Cast e AMF também ficaram disponíveis por conta deste projeto. O código fonte da máquina virtual ActionScript já havia sido aberto em novembro de 2006 com o lançamento do projeto Tamarin, que incluiu a especificação byte code do ActionScript. Flex SDK, que já é open source desde fevereiro de 2008, completa a lista das iniciativas de abertura da Adobe até agora.
Apesar do lançamento do Open Screen Project, as especificações da platarfoma Flash continuam incompletas, detalhes como o protocolo RTMP e o codec de vídeo Sorenson Spark não foram revelados. Além disso, a Adobe parece não ter planos em tornar todo o código fonte da plataforma Flash aberto, softwares como o Adobe Flash Player e Flex Builder continuam com o código fonte fechados. A principal alternativa ao Flash Player, o Gnash, permanece incompleto, entretanto desde que o SWF é um formato aberto, o Gnash deverá ter uma qualidade muito superior no futuro próximo já que os desenvolvedores podem agora implementar a especificação oficial do SWF.
Outros projetos Open Source não mencionados
IDE:
- OpenDialect (código aberto, linux/windows/mac)
- HaxeVideo (código aberto, linux)
- Milenia: The 64 Kbyte Flash Media Server (código aberto, linux, windows, mac)
Lista do osflash.org
Documentação de referência
Flex 3:
- Adobe Flex 3 Developer Guide: PDF; inglês; tutorial; oficial; para quem não quer usar o Flex Builder.
- Adobe Flex 3 Programming ActionScript 3: PDF; inglês; tutorial; oficial.
- Saiu a tradução dele: Tutorial Oficial de ActionScript 3.0 em português
Contribua para esta lista
Marcadores:
actionscript,
flash,
flash media server,
flash player,
flex,
flv,
fms,
gnash,
haxe,
lighttpd,
mxml,
opensource,
red5,
red5phone,
ria,
streaming,
video on demand,
vod
quarta-feira, 26 de novembro de 2008
o IP mais cool de toda a internet
Visitando o blog de Isaac Clerencia descobri o ip mais cool de toda a internet e ele é 69.69.69.69:
Olhem:
iuri@cego:~$ host 69.69.69.69
69.69.69.69.in-addr.arpa domain name pointer the-coolest-ip-on-the-net.com.
iuri@cego:~$
Não é legal?
Olhem:
iuri@cego:~$ host 69.69.69.69
69.69.69.69.in-addr.arpa domain name pointer the-coolest-ip-on-the-net.com.
iuri@cego:~$
Não é legal?
Marcadores:
coolest ip on the net,
domain name,
humor,
ip
sábado, 25 de outubro de 2008
Atualizando para o Ubuntu 8.10 RC1
Ontem atualizei o meu ubuntu do 8.04 para o 8.10 (Intrepid) RC 1 e não foi tão traumático, se alguém quiser fazer segue a receita (que também serve para atualizar para qualquer ubuntu devel).
Estas instruções servem para atualizar qualquer Ubuntu para a última (próxima) versão ou para a versão em desenvolvimento (utilizando opção -d, veja mais abaixo como).
IMPORTANTE: FAÇA ISTO VIA CONSOLE (CTRL+ALT+F1), pois durante a atualização, o X é reiniciado diversas vezes.
Vá para o console e logue-se como root:
sudo -s -H
Após isto instale:
aptitude install update-manager-core
Em seguida chame o instalador com a opção -d (atualizar para a versão devel):
do-release-upgrade -d
OBS: Se você está usando o ubuntu 8.04 e o ubuntu 8.10 já saiu, não utilize a opção -d, faça apenas:
do-release-upgrade
NOTA: Para saber a versão do seu ubuntu faça:
lsb_release -a
Agora é só esperar, no meu caso foram 1104 MB de download e 8 horas de processo (conexão de 300K).
No screenshot deste post, estou usando a nova função do ubuntu, o guest login.
Boa sorte e postem aqui suas experiências.
O que este ubuntu tem de novo?
quinta-feira, 21 de agosto de 2008
Slides palestra de 'Python no Celular' CeSOL
Ontem dia (20/08/2008) fiz minha palestra no CESOL, sobre python e Series 60, Mostrei como usar os recursos disponíveis no celulares Series 60 da Nokia usando Python como linguagem
No primeiro momento eu falei sobre python, nokia, symbian, a implemetação do python para o Series 60.
Após isto iniciei a parte dinâmica (slides 22 e 23) da palestra onde eu abria um console remoto (meu computador conectado no console python do celular) e fazia pequenos scripts para usar as funcionalidades do celular usando apenas python. O meu roteiro desta parte segue abaixo:
No primeiro momento eu falei sobre python, nokia, symbian, a implemetação do python para o Series 60.
Após isto iniciei a parte dinâmica (slides 22 e 23) da palestra onde eu abria um console remoto (meu computador conectado no console python do celular) e fazia pequenos scripts para usar as funcionalidades do celular usando apenas python. O meu roteiro desta parte segue abaixo:
############################
# Abrir tres terminais
# Ligar o rfcomm
sdptool add --channel=2 SP
sudo rfcomm listen rfcomm2 2
####
# ir no celular e ativar o console bluetooth
#####
# Abrir o minicom em outro terminal
minicom
#######################
# no terceiro terminal
# procurar dispositivos
sudo hcitool scan
######################################
# DENTRO DO MINICOM
######################################
# PYTHON
# Coisas basicas
import os
# nome do os
os.name
# diretorio atual
os.getcwd()
os.listdir(u"e:\\")
# mostrar a hora atual
import time
time.ctime()
################################3
# SMS
# enviar um sms
import messaging
messaging.sms_send('08584166618', u'Somente um teste')
# receber um sms
import inbox
i = inbox.Inbox()
# receber sms
def my(msgid):
print msgid
i.bind(my)
########
# Aqui vai aparecer uma mensagem com o numero (copiar para abaixo)
# entao mostrar a mensagem
i.content(1049305)
i.address(1049305)
i.time(1049305)
# formatar para o tempo correto
from e32db import format_time
format_time(i.time(1049305))
#########
# Ligar para alguem
import telephone
telephone.dial('88752334')
telephone.hang_up()
#########################
# Agenda
import contacts
# mostrar contatos:
db = contacts.open()
for i in db:
print db[i].title
# adicionar um contato
c = db.add_contact()
c.add_field(u"first_name", value=u"CESOL")
c.add_field(u"last_name", value=u"UFC")
c.add_field(type=u"mobile_number", value=u"2008")
c.commit()
# Mostrar os contatos
for i in db:
print db[i].title
# Mostrar meu contato
c
c.id
db[c.id]
for e in c:
print e.type, e.value
# exportar um vcard
vcards = db.export_vcards([c.id])
# gravar o arquivo
filename = u"e:\\test.vcf"
f = open(filename, "w")
f.write(vcards)
f.close()
# PEDIR PARA LIGAR O BLUETOOTH
# enviar para alguem da plateia
# sudo hcitool scan
from e32socket import *
cel1 = "00:17:E3:F9:D6:D3"
#cel1 = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(cel1)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)
# apagar o contato
del db[c.id]
# Mostrar os contatos
for i in db:
print db[i].title
# reimportar o contato
db.import_vcards(vcards)
###########################
# Parte grafica (fazer um aplicativo)
# mexer no celular
# fazer um hello world
from appuifw import *
# desenhar o hello world
t = Text()
t.set(u"Hello python")
app.body = t
# como ninguem ta vendo, vamos tirar um screenshot da tela e enviar para alguem
import graphics
pc = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(pc)
image = graphics.screenshot()
filename =(u'e:\\pic001.jpg')
image.save(filename)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)
# enviar para eu mesmo
# ligar o bluetooth obex server
# fazer funcao para realizar screenshot e enviar para alguem
def ss(to='00:09:DD:50:0C:C5'):
phone = bt_obex_discover(to)
image = graphics.screenshot()
file =(u'e:\\pic001.jpg')
image.save(file)
bt_obex_send_file(phone[0], phone[1].values()[0], file)
#ss()
###
# Desenhar um retangulo
# mexer no celular
from random import randrange
app.body = canvas = Canvas()
color = randrange(0xffffff)
canvas.rectangle((0, 0, 100, 100), fill=color)
# enviar para eu mesmo
ss()
# desenhar uma seta de mouse
x,y = 20,20
arrow = [(0,0), (0,10), (2,8), (4,12), (6,11), (4,7), (7,7)]
canvas.polygon([(x+dx,y+dy) for dx,dy in arrow], 0, 0xffffff)
# enviar para mim mesmo
ss()
###################
# Camera
import camera
image = camera.take_photo()
# enviar para alguem
filename =(u'e:\\pic001.jpg')
image.save(filename)
cel1 = '00:17:E3:F9:D6:D3'
# cel1 = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(cel1)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)
# fazer um sistema de monitoramento?
# usar gprs/internet
#################
# Arquivo de audio?
import audio
filename = u"e:\\audio.wav"
s = audio.Sound.open(filename)
# gravar
s.record()
# parar
s.stop()
# tocar
s.play()
# fechar
s.close()
enviar para alguem
cel1 = '00:17:E3:F9:D6:D3'
# cel1 = '00:09:DD:50:0C:C5'
phone = bt_obex_discover(cel1)
bt_obex_send_file(phone[0], phone[1].values()[0], filename)
# apagar o arquivo
os.unlink(filename)
# Fazer um Servico jornalistico?
quarta-feira, 20 de agosto de 2008
Mouse bluetooth no linux
Eu não sabia que era tão fácil, mas no ubuntu para conectar um mouse bluetooth a ele basta abrir um terminal e digitar:
sudo hidd --connect <bd-addr>
O BD-ADDR pode ser obtido via comando:
sudo hcitool scan
Lógico que só foi isto porque o bluez já está configurado na minha máquina.
Mais informações podem ser obtidas em: http://gentoo-wiki.com/HOWTO_use_a_bluetooth_mouse
e
http://ubuntuforums.org/showthread.php?t=87919
sudo hidd --connect <bd-addr>
O BD-ADDR pode ser obtido via comando:
sudo hcitool scan
Lógico que só foi isto porque o bluez já está configurado na minha máquina.
Mais informações podem ser obtidas em: http://gentoo-wiki.com/HOWTO_use_a_bluetooth_mouse
e
http://ubuntuforums.org/showthread.php?t=87919
quinta-feira, 14 de agosto de 2008
Redimensionando uma imagem do xen
É fácil redimensionar um disco usado pelo xen quando se usa LVM, agora se são arquivos de imagem (*.img)?
Pode-se fazer isto usando o dd.
Vou mostrar como exemplo como aumentar uma partição ext3 em 15 GB:
dd if=/dev/zero bs=1M count=15000 >> /var/xen/fedora.img
Agora é só rodar o programa de redimensionar o sistema de arquivos.
ef2fsck -f /var/xen/fedora.img
resize2fs -f /var/xen/fedora.img
OBS: Use blocos de 1M (parâmetro bs=1M), você pode enfrentar problemas com valores muito altos
OBS2: Tenha certeza de que a imagem a ser redimensionada está fora de uso.
Pode-se fazer isto usando o dd.
Tenha certeza de que a imagem a ser redimensionada está fora de uso.
dd if=/dev/zero bs=1M count=15000 >> /var/xen/fedora.img
Agora é só rodar o programa de redimensionar o sistema de arquivos.
ef2fsck -f /var/xen/fedora.img
resize2fs -f /var/xen/fedora.img
OBS: Use blocos de 1M (parâmetro bs=1M), você pode enfrentar problemas com valores muito altos
OBS2: Tenha certeza de que a imagem a ser redimensionada está fora de uso.
Assinar:
Postagens (Atom)