O Projeto Software Livre Bahia (PSL-BA) é um movimento aberto que busca, através da força cooperativa, disseminar na esfera estadual os ideais de liberdade difundidos pela Fundação Software Livre (FSF), possibilitando assim a democratização do acesso a informação, através dos recursos oferecidos pelo Software Livre. Esta busca tem seus alicerces fundados na colaboração de todos, formando um movimento sinérgico que converge na efetivação dos ideais de Liberdade, Igualdade, Cooperação e Fraternidade.
O Projeto Software Live Bahia é formado pela articulação de indivíduos que atuam em instituições publicas e privadas, empresas, governos ou ONGs, e demais setores da sociedade. Além disso o projeto não é subordinado a qualquer entidade ou grupo social, e não estabelece nenhuma hierarquia formal na sua estrutura interna.
Tiago Bortoletto Vaz: Os maus sempre vencem, pois há neutros demais no sistema
22 de Junho de 2009, 0:00 - sem comentários aindaEste é um pensamento que me tocou há uns 5 anos, ainda de forma desorganizada, caótica, inconsistente talvez. A prática da leitura é o que mais tem amenizado minhas angústias em relação ao mundo, não pelo fato de imaginá-lo melhor, mas por melhor compreendê-lo, mesmo suas entranhas, das mais inóspitas. As cartas na mesa foram bem postas na Nossa Crise Social, seção 11.4 em Chutando o Pau da Barraca, de Marco Paulo Góes, Editora Caravansarai, que transcrevo no final deste post.
O fato é que algumas atitudes do passado já me acusavam de certa subversão, ou de certa falta de carisma pela neutralidade, ou de certa carência da tal flexibilidade moral, retórica bem encaixada pelo espirituoso lobista em Thank You for Smoking (Obrigado por Fumar). Algumas em tom de desabafo, chutando mesmo o pau da barraca, como deu-se em minha demissão publicada na web em 2005. Outras um pouco desafetuosas, por vezes vingativas, como aquela cobertura de uma palestra que não existiu em 2006. Outra, talvez manifestação mais ingênua, que fez parte da minha assinatura de e-mail por bom tempo, trecho do Rondó da Liberdade, do ilustre baiano Carlos Marighella. Eu queria dizer alguma coisa com isso, mas não sabia bem o quê:
“É preciso não ter medo,
é preciso ter a coragem de dizer.”
Pensamento recentemente renovado pelo filme Das Leben der Anderen (A Vida dos Outros):
“se você não adota uma postura você não é humano!”
Encorajado por um texto da colunista Ruth de Aquino, Revista Época, originalmente apreciada num consultório odontológico se bem me lembro. Reprodução parcial obrigatória:
“O filósofo existencialista francês Jean-Paul Sartre costumava dizer que estamos condenados a ser livres. Se acreditarmos nisso, somos livres e por isso somos responsáveis. E, se cumprimos ordens, é porque compactuamos com elas e não somos inocentes. Cumprimos ordens por medo, ambição ou convicção. Se substituímos a convicção pela disciplina cega, pela obediência burra, pela submissão incondicional, o que resta para viver?”
Finalmente consumado por Augusto Boal, quando deixou claro para o mundo que o omisso é necessariamente aliado do opressor, não há outra opção, em texto que não me vem à memória agora.
Enfim, segue a mensagem do dia, como prometido:
Posted in português“A sociedade tem por hábito classificar a bondade humana em três níveis.
Um Homem é mau: quando capaz de praticar atos que prejudiquem, malogrem, firam ou exterminem seus semelhantes. O Homem mau é inescrupuloso e tende a agir no sentido do benefício próprio, não se preocupando se este benefício venha gerar desconforto ou prejuízo aos outros.
Um Homem é bom: quando vive sua vida dentro do sistema social pertinente à época, sem atentar contra ninguém. O Homem bom é aquele que consegue sobreviver com seu próprio esforço, que trabalha e constrói sua vida e de sua família sem prejudicar semelhantes.
Um Homem iluminado: quando consegue viver sua vida em função da humanidade. O Homem que auxilia e que faz do próprio trabalho uma forma de valorizar e melhorar a vida do menos favorecido.
Os representantes do primeiro grupo são numerosos. Os do segundo, espremida maioria. No terceiro grupo, poucos são encontrados.
Os Homens que a sociedade classifica como bons, pois sustentam sua família e se esforçam para viver sem causar prejuízos aos demais, em segunda análise poderiam ser ditos neutros. Eles nada fazem para melhorar o sistema porque estão demasiadamente preocupados em cumpri-lo, dentro do estereótipo social de Homem justo. Ocupando-se em alimentar seu nicho com o dinheiro advindo do próprio suor, acreditam estar fazendo sua parte para que o mundo seja bom; afinal, se todos vivessem como ele, seria maravilhoso. Talvez, os neutros se esqueçam de que, dentro de “seu trabalho justo”, estão a serviço do injusto; que aceitando e praticando um sistema desequilibrado, colaboram para a massificação da desigualdade e da miséria.
Até que os bons gostariam de ajudar a sociedade, mas o dinheiro nunca sobra e o tempo nunca dá. Vão vivendo dentro da neutralidade, aceitando as regras e lutando por si e pela própria família, em busca de uma vida um pouco mais confortável “sem prejudicar ninguém”.
Os neutros saem do confronto, e restam apenas os maus contra os iluminados. A luta fica demasiadamente injusta: os primeiros são consideravelmente mais numerosos. E o mundo enfrenta o continuísmo. A dita evolução apenas modifica as formas de espoliação dos sem teto, sem comida e sem esperança ao longo do tempo. Um dia foi o Império, outro dia o Clero associado aos Senhores Feudais em exploração a serviçais e camponeses. Depois, a escravidão negra e indígena a serviço do luxo no período colonial. Antes, o extrativismo de riquezas da colônia para a metrópole; agora, a neo-colonização com os países subdesenvolvidos trabalhando superávit primário e déficit secundário para ostentação do superávit secundário e déficit primário dos desenvolvidos.
Ricos mais ricos, pobres mais pobres. Os maus sempre vencem, pois há neutros demais no sistema.”
– Marco Paulo Góes, em Chutando o Pau da Barraca
Carlos José Pereira: Mudanças no GCC 4.3
20 de Junho de 2009, 0:00 - sem comentários ainda.
Utilizei, no desenvolvimento do software GAIA (da minha tese de doutorado), uma biblioteca para manipulação de conjuntos nebulosos chamada FISPRO (Fuzzy Inference System Professional) , disponibilizada como software livre. Pode-se utilizar como um sistema completo, interativo, com interface gráfica em java, ou pode-se utilizar apenas as funções (API) da biblioteca, desenvolvida em C++. Em qualquer caso, no Linux, é preciso realizar a compilação da biblioteca, nada que um comandozinho "make" não resolva.
Pois bem, compilei a biblioteca em setembro/outubro do ano passado, sem problemas, programa da tese terminado, tudo beleza.
Estou retomando agora o trabalho com o programa, em especial para geração de uma versão em inglês para apresentar em um congresso. Como de lá pra cá eu zerei a máquina para trocar a versão do ubuntu (de 7.10 para 8.10), precisei agora reconstruir meu ambiente de desenvolvimento. Comecei pela biblioteca FISPRO, baixei, descompactei, ajustei o que tinha que ser ajustado, make.... e surgiu monte de warnings e erros!!! Em especial:
warning: comparison with string literal results in unspecified behaviour
warning: deprecated conversion from string constant to ‘char*’
... e erros mesmo, relacionados com o uso de funções tais como strlen, strcmp, etc...
Depois de passado o pânico e o desespero :-) mãos-a-obra para descobrir porque um programa que compilava direitinho subitamente deixou de compilar (e olha que nem mudou a versão, era exatamente o mesmo programa!).
O motivo é que em 2008 eu usava o GCC versão 4.1, e agora estou usando o GCC 4.3. Pelo que entendi, esta nova versão do GCC não trás apenas novas funcionalidades e conserto de bugs, mas também algumas mudanças intencionais em algumas formas de uso, em especial para suportar novos padrões. Na maioria das vezes, as mudanças serão imperceptíveis, porém em alguns casos elas trarão algumas dores-de-cabeça para quem estiver migrando para o GCC 4.3.
Uma dessas mudanças foi a "limpeza" realizada nos arquivos #include de forma a incluir o menor número possível de arquivos adicionais. Assim, muitos programas em C++ que não incluem explicitamente a não mais compilarão.
Essa é apenas uma das mudanças. Para uma descrição completa e detalhada, sugiro a consulta a esta página:
http://gcc.gnu.org/gcc-4.3/porting_to.html
Bem, e como resolver, sem ter que alterar o código-fonte da biblioteca?
Eu resolvi com a seguinte gambiarra: instalei, via synaptic, o GCC 4.1 (pacotes cpp-4.1 e g++-4.1). Mas não basta isso, vocẽ precisa também redirecionar o atalho "gcc" e "g++" para apontarem para a versão do gcc (e g++) que você quer usar.
Vamos ver como a coisa funciona: abra o terminal, e vá para o diretório /usr/bin. Lá, exiba os arquivos que começam com gcc:
cd /usr/binVocê vai ver algo do tipo:
ls -l gcc*
lrwxrwxrwx 1 root root 7 2009-06-20 15:11 gcc -> gcc-4.3Se você já tiver instalado o gcc 4.1, verá também:
-rwxr-xr-x 1 root root 208068 2009-01-23 17:20 gcc-4.3
-rwxr-xr-x 1 root root 198916 2008-10-26 10:12 gcc-4.1A primeira linha diz que o arquivo gcc, na verdade, é um "link simbólico" para outro arquivo, gcc-4.3. Isto significa que quando você executa o gcc, na verdade, está executando o gcc-4.3. Precisamos então, fazer o link apontar para o arquivo gcc-4.1, para utilizarmos esta versão do compilador. Isto é obtido com os seguintes comandos:
sudo rm gcc (para apagar o gcc)
sudo ln -T gcc-4.1 gcc -s (para recriar gcc, desta vez apontando para gcc-4.1)
Agora, ao pedir o diretório, você deverá ver:
lrwxrwxrwx 1 root root 7 2009-06-20 15:11 gcc -> gcc-4.1Não esqueça de fazer a mesma coisa com o g++:
-rwxr-xr-x 1 root root 198916 2008-10-26 10:12 gcc-4.1
-rwxr-xr-x 1 root root 208068 2009-01-23 17:20 gcc-4.3
ls -l g++*Para testar, use "gcc --version" (ou g++ --version).
lrwxrwxrwx 1 root root 7 2009-06-20 15:20 g++ -> g++-4.1
-rwxr-xr-x 1 root root 200836 2008-10-26 10:11 g++-4.1
-rwxr-xr-x 1 root root 212164 2009-01-23 17:17 g++-4.3
gcc (GCC) 4.1.3 20080623 (prerelease) (Ubuntu 4.1.2-23ubuntu3)E não esqueca de avisar aos desenvolvedores do código que você está tentando utilizar sobre esses problemas e mudanças. Lembre-se, colaborar com software livre não é apenas programar. Um relato de bugs e/ou problemas, é uma ajuda e tanto! (Eu já avisei a galera que desenvolve a biblioteca fispro.... :-) ).
Copyright (C) 2006 Free Software Foundation, Inc.
Mais um aviso, lembre-se de fazer este tipo de alteração com bastante cuidado, para não "estragar" o seu sistema.
Grande abraço a todas e a todos!
Carlão
Fábio Nogueira: Firefox 3.5 beta 4
19 de Junho de 2009, 0:00 - sem comentários aindaComo diria o Hannibal Lecter: “É preciso experimentar coisas novas”. Mesmo quando elas não são tão novas assim… ;)
Está no ar o Firefox 3.5 beta 4, versão esta que pode ser a última antes do lançamento oficial. Mais rápido e com novos recursos, inclusive o de localização geográfica no resultados das buscas, ele é facinho de ser instalado no Ubuntu 9.04. Para isso, basta abrir o Terminal e digitar:
sudo apt-get install firefox-3.5
Assim você instalará esta versão de testes por cima da anterior. Caso deseje manter a versão anterior, siga os procedimentos abaixo citados no blog do Hamacker:
1. Efetue o download do Firefox 3.5b4:
http://www.mozilla.com/products/download.html?product=firefox-3.5b4&os=linux&lang=pt-BR
2. Abra o Terminal e dentro da pasta onde o arquivo foi baixado, execute:
tar jxvf firefox-3.5b4.tar.bz2
3. Uma pasta chamada ‘firefox’ será criada, agora a mesma será renomeada para outro local:
sudo mv firefox /usr/share/firefox35
4. Para configurar um atalho, edite o seguinte arquivo:
sudo gedit /usr/share/applications/firefox35.desktop
5. Adicione o conteúdo abaixo, salve e feche o arquivo:
[Desktop Entry]
Version=1.0
Name=Navegador de Internet Firefox 3.5 beta 4
Comment=Navegador de Internet Firefox 3.5 beta 4
Exec=/usr/share/firefox35/firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/usr/share/firefox35/icons/mozicon50.xpm
Categories=Application;Network;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;
StartupWMClass=Firefox
StartupNotify=true
Voilà!
Agora você pode desfrutar das duas versões.. ;)
Antonio Terceiro: Oficina: Introdução a Ruby e Técnicas de Desenvolvimento Ágil
19 de Junho de 2009, 0:00 - sem comentários aindaDurante o III Encontro Nordestino de Software Livre / VI Festival Software Livre da Bahia eu fiz essa oficina, cujo objetivo era de "introduzir os principais elementos da linguagem de programação Ruby, bem como de apresentar técnicas relacionadas a Desenvolvimento Ágil de Software, como Desenvolvimento Dirigido por Testes e Refatoração". Ainda que tenha sido bastante focada na prática, eu fiquei de postar o material produzido nela.
Estou bastante atrasado com isso, mas antes tarde do que nunca:
- oficina-ruby.odp: micro-apresentação de slides que serviu mais pra nos guiar durante a oficina do que pra ter conteúdo propriamente dito.
-
oficina-ruby.tar.gz: código-fonte produzido: uma implementação bastante simples de planilha eletrônica,
com suporte a fórmulas simples como referência, soma, multiplicação e soma de intertvalo de células. Este foi o exemplo usado para praticar TDD, Refatoração e a linguagem em si.
Antonio Terceiro: meu novo blog
16 de Junho de 2009, 0:00 - sem comentários aindaDepois de bastante tempo usando o TWiki para o meu blog, estou de mudança para o Software Livre Brasil. Apesar do blog no TWiki ser muito legal e prático, eu preciso divulgar mais o Noosfero, projeto no qual eu venho trabalhando já há 2 anos, e também provar do meu próprio remédio usando o troço no dia-a-dia. Aqui também tem comentários, algo que eu e todo mundo mais que usava blog lá sentia falta
Você vai notar que todos meus posts antigos estão aqui também. Não, eu não copiei e colei todos eles. :--) Eu usei uma funcionalidade muito interessante do Noosfero, que é a de popular um blog através de um feed RSS ou Atom. Para isso, use a opção "configurar blog" no seu painel de controle, e marque a opção "Obter posts de um feed externo".
Coloque o endereço do feed no campo correpondente. Note que esse não é o endereço do blog, mas sim do seu feed RSS ou Atom! Quem estiver migrando pode deixar marcada a opção "Obter posts apenas uma vez", mas quem quiser que o Noosfero fique acompanhando o blog externo, é só marcar a opção "Obter posts periodicamente".
Pra quem está migrando, uma dica importante: certifique-se de usar um feed que traz todos os seus posts, senão apenas os posts que estão atualmente no seu feed serão importados (normalmente os últimos 10 ou 20, a depender da plataforma de blog que você usa).
Antonio Terceiro: novo blog
16 de Junho de 2009, 0:00 - sem comentários aindaDepois de bastante tempo usando o TWiki para o meu blog, estou de mudança para o Software Livre Brasil. Apesar do blog no TWiki ser muito legal e prático, eu preciso divulgar mais o Noosfero, projeto no qual eu venho trabalhando já há 2 anos, e também provar do meu próprio remédio usando o troço no dia-a-dia. Lá também tem comentários, algo que eu e todo mundo mais que usava blog aqui sentia falta.
Amadeu Junior: Meu mestrado, parte 2: solução para empacotamento
16 de Junho de 2009, 0:00 - sem comentários aindaEntendendo esse post
Esse também faz parte da série de posts sobre minhas investigações no mestrado na PUC-Rio. Esse trata em detalhe as alternativas que pesquisei como solução de empacotamento multi-plataforma e multi-linguagem para ajudar um sistema de componentes de software distribuídos a instalar pacotes de componentes com suporte à dependências externas e além ao modelo de componentes (também conhecidas na área de componentes como dependências estáticas). A decisão no mestrado foi reusar e modificar o LuaRocks para fornecer suporte multi-linguagem, foi uma ótima decisão, viabilizou toda a outra parte do trabalho que se referia à implantação de componentes propriamente dita e digamos mais academicamente importante (afinal academicamente sistema de pacotes é algo digamos POUQUíSSIMO COMENTADO!). Falar como os sistemas de pacotes podem ajudar a sanear as instalações é trivial para um linux-user, mas não para um academic-guy que só quer saber de quantas referências há para "sistemas de pacotes" ! Nesses casos a comunidade das redes de software livre dão uma lição e tanta no academic way of life. Deixemos a política nas entrelinhas ... o foco aqui é mostrar com quantos paus se faz um mestrado!Requisitos
- permitir instalação por usuário ou projetos (área compartilhada mas não global)
- possuir resolvedor de dependências externas
- permitir remoção mediante verificação de dependências = se remover X do qual Y,Z dependem então remove também Y,Z
- possibilitar reuso da instalação já existente = se a biblioteca X já está instalada a resolução de dependência de qualquer Y deve reconhecer que X já está instalada
- (idealmente) permitir sobrecarga e resolução de conflitos entre dependências que provém as mesmas interfaces/serviços
- possuir API de alto nível para automatizar a instalação (pré e pós install), remoção (pré e pós remove), resolução de dependências e reconfiguração (restart de serviços)
- permitir extensão da abstração de dependências para descrever dependências entre componentes SCS
- suportar multiplataforma, no sentido de ter compatibilidade com o gerenciamento em plataformas não-UNIX
- suportar multilinguagem, no sentido de gerenciar pacotes nas linguagens Lua, C++ e Java
- permitir uso de repositórios de pacotes
Levantamento de características
- Critérios de comparação interessantes (por zeroinstall) : http://0install.net/links.html , http://0install.net/matrix.html
Projetos muito Interessantes
- EDOS + Mancoosi
haskell
- Cabal ( http://www.haskell.org/cabal ): Cabal is a system for building and packaging Haskell libraries and programs It defines a common interface for package authors and distributors to easily build their applications in a portable way. Cabal is part of a larger infrastructure for distributing, organizing, and cataloging Haskell libraries and programs. Specifically, the Cabal describes what a Haskell package is, how these packages interact with the language, and what Haskell implementations must to do to support packages. The Cabal also specifies some infrastructure (code) that makes it easy for tool authors to build and distribute conforming packages. The Cabal is only one contribution to the larger goal. In particular, the Cabal says nothing about more global issues such as how authors decide where in the module name space their library should live; how users can find a package they want; how orphan packages find new owners; and so on.
- Discussão sobre sistemas de build e packaging: http://www.nabble.com/Version-control-systems-td18827479i80.html
- Geoffrey Clemm, Odin Build Tool : http://portal.acm.org/citation.cfm?id=77607&dl=GUIDE&dl=ACM
- Walter F. Tichy, Smart Recompilation : http://portal.acm.org/citation.cfm?id=5959&dl=ACM&coll=portal
debian
- building: dpkg-buildpackage e outros utilitários obrigam (?!) o uso de crosscompiling uma vez que pode ser difícil ter o dpkg-dev instalado em vários tipos de hosts
- install: depende de arquivos em diretórios globais, mas pode usar diretórios por usuário = isso causa conflito com a instalação global
- porte do dpkg para MS Windows : http://osdir.com/ml/linux.debian.ports.windows/2007-12/msg00001.html
- usar mingw mesmo para compilar o dpkg ou ao menos a libapt
- porte da infra-estrutura debian para Interix (SFU/SUA) - veja abaixo na seção sobre compatibilidade com Windows
- em que ponto exatamente se encontra o resolvedor de dependências? É possível reusar o parser do control e o resolvedor de dependências?
- implementar um módulo Lua frontend para dpkg semelhante a dpkg-ruby + libdpkg-ruby1.8 (depende de dpkg instalado)
- É possível tornar o parser do control e o resolvedor de dependências um módulo Lua?
- motivação cross-compiling: ter bibliotecas nativas para o windows usando o mingw para poder ser usadas junto com MSVC e ser redistribuídas com softwares windows nativos
- discussões sobre cross-compiling com mingw:
- http://lists.debian.org/debian-mentors/2006/03/msg00115.html
- http://lists.debian.org/debian-mentors/2006/03/msg00216.html
- http://wiki.njh.eu/Cross_Compiling_for_Win32
- https://dev.njh6.de/svn/njh/any2deb/
- CFLAGS="-mms-bitfields -march=i386" CC=i586-mingw32msvc-gcc LD=i586-mingw32msvc-ld
- discussao pessoal:
- dpkg-cross: renomeia nomes de pacotes no control, bem como os diretorios com nomes=nome_pacote. Exemplo: libtool.deb -- dpkg-cross --> libtool-w32-i586-cross.deb
- dpkg-buildpackage com modificação para mingw
- gera pacotes em nova arquitetura (w32-i586)
- gera pacotes prefixado em /usr/$(DEB_HOST_GNU_TYPE)
- dado que gera binários para w32-i586 então no porte do dpkg no windows precisa reconhecer esta arquitetura
- uma alternativa para não precisar fazer porte do dpkg no windows e ter um ambiente cygwin que instala e gerencia os pacotes nativos windows
- outra alternativa é fazer instalação remota (no filesystem windows) via compartilhamento samba e possivelmente precisando do schroot/chroot
nix
- suporte a MS Windows via Cygwin
- http://en.wikipedia.org/wiki/User:Gwern/Nix_Package_Manager , http://nixos.org/patchelf.html , http://nixos.org/nixpkgs.html
- hash de pacotes baseado nos arquivos fonte antes do building do pacote
- usa repositórios?
- sim, faz download a partir do nome do pacote (parecido com apt-get install)
- segurança no compartilhamento entre usuários?
- interopera com pacotes já instalados (.deb, .rpm)?
- http://nixos.org/releases/nix/nix-0.11/manual
zeroinstall
- sem suporte a MS Windows porque usa python.os.fork() e não há implementação disso para windows!
- provavelmente SFU/SUA/Cygwin resolvem este problema.
- fazer um wrapper para spawn para portabilidade : http://effbot.org/librarybook/os.htm
- http://www.python.org/doc/faq/windows/
- refatorar o zeroinstall para remover a necessidade do fork
- detalhes do empacotamento : http://0install.net/injector-packagers.html
- hash de pacotes baseado na árvore de diretório gerada pelo building do pacote
- usa repositórios?
- descentralizado e não depende de repositórios
- impede uso de repositórios?
- segurança no compartilhamento entre usuários?
- interopera com pacotes já instalados (.deb, .rpm)?
- conversor de .deb para 0install : http://0install.net/deb2zero.html
- http://0install.net/injector-using.html
- como remover um pacote?
- Currently, they can't. You (the admin) can delete directories from /var/cache/0install.net/implementations to save space (preferably not while they're being used ;-). Ideally, we should track which users have requested which programs and remove them automatically when no-one wants them anymore. (ver "questions" no link sharing)
ipkg
- TODO olhar o site e o código para ver possíveis problemas de portabilidade : http://handhelds.org/moin/moin.cgi/Ipkg
luarocks
- só coisas Lua ou não, se não então qual o nível de building possível
- permite uso dos backends: make, cmake, comando_qualquer (scons,installshield) ou module (módulos Lua)
- embora não seja concebido para instalar outros binários é possível que instale uma vez que permite uso de Makefile
- para ser compatível com autotools seria preciso definir um novo backend baseado no make atual
- Implementado um build.autotools e build.tecmake ainda preliminares, mas que são úteis para compilar pacotes como openssl, openldap, sasl
- suportar a instalação de pacotes de várias linguagens
- Natural é atribuir nomes parametrizados pela linguagem (like debian-policy to liblangXYZ) de suporte: lua, java, cpp
- Útil para os pacotes dos Componentes SCS uma vez que eles é que dependem de estar numa mesma linguagem, no caso das suas dependências externas a exemplo do openssl:
- BusAccessControl_lua.all.rock dependsOn lualdap_lua.rock dependsOn openldap.rock
- BusOiLConnector_cpp.x86.rock dependsOn liboilall_cpp.rock dependsOn lua
- MyComponent_lua.all.rock dependsOn openldap AND sasl2 AND lua
- PingPong.rockspec, PingPong_lua.all.rock dependsOn oil_lua AND scs_lua.all.rock
- Útil para os pacotes dos Componentes SCS uma vez que eles é que dependem de estar numa mesma linguagem, no caso das suas dependências externas a exemplo do openssl:
- Outra opção é estender as informações de plataforma para incluir linguagem para que o tratamento do perplatform_overrides cuide de instalar archs={*lua.x86*,*java.all*,*cpp.solaris*}
- Natural é atribuir nomes parametrizados pela linguagem (like debian-policy to liblangXYZ) de suporte: lua, java, cpp
- suportar a carga em cada contêiner
- O instalador precisa informar qual a variável de ambiente apropriada para cada linguagem afim de montar o LUA_PATH, CLASSPATH ou LD_LIBRARY_PATH de forma que o método de loading da linguagem encontre o pacote com versão especificada, bem como suas dependências.
- LUA : luarocks no ato do require já busca do manifest.repository os contextos (formando package.path e package.cpath) e assim realiza a carga
- JAVA : ClassLoader precisa receber um classpath montado com os contextos da resolução de dependências,
- C/C++ : o contêiner para realizar a carga dinâmica (dlopen) precisa montar o contexto na variável LD_LIBRARY_PATH
- reuso do luarocks.deps pela comunicação contêiner <-> exnode:installer :
self.ComponentLoader:setContext( installer:getContext(componentId,self.mylang) )
- O instalador precisa informar qual a variável de ambiente apropriada para cada linguagem afim de montar o LUA_PATH, CLASSPATH ou LD_LIBRARY_PATH de forma que o método de loading da linguagem encontre o pacote com versão especificada, bem como suas dependências.
- premake http://premake.sourceforge.net/writing_scripts
luadist
- http://luadist.sourceforge.net - LuaDist? is a cross-platform distribution of the Lua programming language that includes networked module management and deployment of source based or binary modules. Unlike projects like LuaRocks? the main focus of LuaDist? is full automatization and standalone deployment including the management of external libraries on the Linux(UNIX), Windows and Mac platforms. Uses the CMake approach to build and parse automatic dependencies.
- Muito interessante, mas:
- Permite instalação simultânea de múltiplas versões dos pacotes? Justificativa: precisamos manter instalado múltiplas versões dos pacotes Lua bem como das bibliotecas de sistema (podemos precisar da OpenLDAP? tanto na sua versão 2.1.x quanto 2.4.x).
- Permite outras formas de compilação além do CMake? Justificativa: muitas bibliotecas de sistemas podem precisar ser compiladas e provavelmente usa-se ferramentas de compilação diferentes (autotools, make personalizados, scripts personalizados, etc).
- Possui noção de árvores de instalação que permitem a gerência via arquivo de manifesto (como no LuaRocks? )? Justificativa: os arquivos de manifesto do luarocks permitem a adoção de várias árvores de instalação simultâneas (para várias plataformas, por exemplo), assim ao usar o comando do luarocks pode-se usar o parâmetro --to=/home/user/install-linux-x86_64/, por exemplo.
- É fácil manter um repositório ou mesmo usar a própria árvore de instalação como repositório? Justificativa: o LuaRocks? apresenta uma funcionalidade interessante que simplifica a gerência do repositório uma vez que basta ter na mesma árvore os pacotes src.rock ou .rock.
clickonce (MS Visual Studio)
- ClickOnce Deployment: projetos C++ - http://msdn.microsoft.com/en-us/library/ms235287(VS.80).aspx , projetos C#/J# - http://msdn.microsoft.com/en-us/library/t71a733d(VS.80).aspx
Alternativas para compilação
Hamster
- Can be used as a generic 'make replacement' for almost any project. It even contains a 'Try' method that has automake-like functionality (detecting whether some compilation would fail or succeed at build time). Support: gmake, scons, nmake. http://kotisivu.dnainternet.net/askok/hamster/
- Interessante observação dos autores (parece-me que substitui/expande bem o Tecmake): For professional work I warmly recommend SCons, a Python-based build tool that knows how to rebuild when only build parameters have changed (makefiles don't do that). Even with makefiles, Hamster takes care of header dependencies automatically (no need to list your headers, or do 'make dep'). Hamster's API derives from that of SCons, and even the original name of the project was SCons/Lua.
Scons
Compatibilidade MS Windows
- SFU --- evolução ---> SUA (SFU deve ser mantido até 2009!)
- Diferenças entre Cygwin e ServicesForUnix (SFU)
- Impacto de desempenho do SFU (usar benchmarks do shootout.alioth.debian.org)
- Introduction to Microsoft Windows Services for UNIX 3.5 : http://technet.microsoft.com/en-us/library/bb463212.aspx
- Interopsystems open source tools : http://www.interopsystems.com/community/default.aspx
- Windows Services for UNIX : http://technet.microsoft.com/en-us/interopmigration/bb380242.aspx
- SFU Warehouse : http://www.interopsystems.com/community/warehouse.aspx
- SFU Installation : http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=896C9688-601B-44F1-81A4-02878FF11778&displaylang=en
- Gerenciador de pacotes Interix (SFU) : http://www.interopsystems.com/community/pkg_install.htm
- UNIX Interoperability integrated on Windows Server >= 2003 : http://blogs.msdn.com/sfu/archive/2007/04/12/services-for-unix-vs-windows-server-2003-r2-unix-interoperability.aspx
- Blog do gerente de projeto do SUA/SFU : http://blogs.msdn.com/shan/default.aspx
- Projeto do porte de Debian para Interix (SFU/SUA) : http://www.debian-interix.net
- Bug para criação da lista oficial do porte do Debian para Interix : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=441094
- Problemas com a conta root <-> Administrator : http://gridengine.info/articles/2007/02/06/notes-about-grid-engine-on-windows
- Outras opções:
- Usar mingw (site novo, versão nova - gcc4) por ser mais simples e menos dependente das tecnologias microsoft: http://www.mingw.org , http://gnuwin32.sourceforge.net/packages/libgw32c.htm
Outros links
- http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites
- http://developer.mozilla.org/en/docs/Building_on_Windows_with_SFU_(Interix)
- http://packages.debian.org/unstable/admin/feta
- !OpenLDAP porting to MinGW
- Discussão sobre MinGW, OpenLDAP e OpenSSL
- http://www.winkde.org/pub/kde/ports/win32
- http://www.mancoosi.org/reports - projeto europeu posterior ao EDOS sobre "_developing tools for the system administrator. We pursue two main avenues: 1. Develop mechanisms that provide for rollbacks of failed upgrade attempts; 2. Develop better algorithms and tools to plan upgrade paths based on various information sources about software packages and on optimization criteria (workpackages 4 and 5)_"
Compilação openldap,openssl via mingw no MS Windows
- instala msys
- instala regex
- instala zlib
- instala perl5
- baixa openssl do cvs
- ln -s /mingw/include /usr/include
- ln -s /mingw/lib /usr/lib
- ./config --prefix=/mingw --openssl-dir=/mingw/openssl/ shared
- editar util/mklink.pl e definir symlinks_exists como FALSE para usar copia (pois symlink é dummy no MSYS)
- make
- faltando definicoes: CERT_SYSTEM_STORE_CURRENT_USER , CERT_STORE_READONLY_FLAG , CRYPT_KEY_PROV_INFO , CERT_STORE_PROV_SYSTEM_A (... a maioria deveria estar em wincrypt.h)
- versão 0.9.8h tem versão instalável: http://www.slproweb.com/products/Win32OpenSSL.html
- baixa openldap 2.4.11
Amadeu Junior: Meu mestrado, parte 1: pesquisa e temas
15 de Junho de 2009, 0:00 - sem comentários aindaEntendendo esse Post
Essa blogada estava como rascunho há bastante tempo, digamos 1 ano de 2 meses para ser exato! Nesse post eu organizei minhas pesquisas e temas que definiram meu mestrado em computação pela PUC-Rio. Acho interessante compartilhar esse conteúdo porque na academia pouco de faz de concreto para divulgar amplamente "como as coisas funcionam". Muitos projetos de pesquisa se limitam a manter privados seus meios, percalços e detalhes no entorno da produção científica. Aqui eu tento listar todas as possibilidades que estiveram e ainda fazem parte do contexto do meu trabalho de mestrado. Portanto, espero que esse conteúdo seja útil a outros que tenham interesses de pesquisa em áreas semelhantes à minha.- A dissertação do mestrado está saindo.. assim que finalizá-la, colocarei aqui no Blog !
Deployment de Aplicações Distribuídas: Reuso das Soluções de Empacotamento e Construção de um Framework
Estudos realizados
- Deployment de componentes de software : http://www.inf.puc-rio.br/~ajunior/puc/inf2545/artigos/monografia/ (monografia + slides)
- Deployment de componentes de software (continuação) : http://www.inf.puc-rio.br/~ajunior/puc/inf2556/ (monografia + slide-monografia + slide1,2,3 com apresentação dos outros artigos)
- Soluções para empacotamento : BlogDraftPostAmadeuJunior20080714122730?
- Desenvolvimento de um protótipo usando LuaRocks como solução para empacotamento : http://www.inf.puc-rio.br/~ajunior/puc/inf2102
Deployment de Software
Processo de deployment em open-source:- EDOS - Environment for the development and Distribution of Open Source software. The project aims to study and solve problems associated with the production, management and distribution of open source software packages: http://www.edos-project.org/xwiki/bin/view/Main/Publications
- Cross-Compiling for Win32 - http://www.mail-archive.com/debian-embedded@lists.debian.org/msg02526.html
- Debian GNU/w32 port - http://debian-cygwin.sourceforge.net/
- Software Testing Automation Framework (STAF) - http://staf.sourceforge.net/index.php
- Vantagens de compilar programas win32 a partir do GNU/Linux: http://www.mail-archive.com/debian-embedded@lists.debian.org/msg02530.html
- Questões a entender:
- Entender o cgwin e mingw
- Quais partes são necessárias para deployment dos pacotes ?
- Quais dependências para portar apt/dpkg/enfim para win32 ?
- Existe binding do sistema de empacotamento/desempact para linguagens dinâmicas totalmente contido?
- Identificar quais as demandas reais/perfis de desenvolvedores da parte "cross-platform", ifndef???
- Pacman : sistema de instalação básico pensado para grids com tratamento primário de versões e dependências
- LuaRocks, RubyGems, CPAN entre outras ferramentas para instalar módulos de linguagens de programação : verificar como resolver dependências e versões
- iPKG is a very lightweight package management system - http://handhelds.org/moin/moin.cgi/Ipkg
- Soluções baseada em Debian cross-compiling que parecem tangíveis para plataformas w32 com alguma adaptação (quais??):
- Nix 2006: The Purely Functional Software Deployment Model
- Uma interessante dissertação onde o autor analiza algumas dificuldades e soluções simples para cross-compiling e deploy em diferentes plataformas, compatibilizando os caminhos de compilação e linkagem dinâmica.
- Zero Install:
- What's wrong with APT? : http://0install.net/compare.html
- ROX Desktop: http://roscidus.com/desktop/home
- LuaDist
Deployment em Sistemas Distribuídos
Artigos:- Kung-Kiu Lau e Zheng Wang. Software Component Models. Software Engineering, IEEE Transactions on Volume 33, Issue 10, Oct. 2007.
- Distributed Service Deployment over Programmable Networks (2001) http://citeseer.ist.psu.edu/haas01distributed.html
- A Hierarchical Mechanism for the Scalable Deployment of Services over Large Programmable and Heterogeneous Networks (2001) - http://citeseer.ist.psu.edu/haas01hierarchical.html
- Component Search Service and Deployment of Distributed Applications http://doi.ieeecomputersociety.org/10.1109/DOA.2001.954078
- On Service Deployment on Peer-to-Peer Networks (2001) - http://citeseer.ist.psu.edu/535291.html
- Cross Compiling for Win32 - http://wiki.njh.eu/Cross_Compiling_for_Win32
- Fabio Kon, Jeferson Roberto Marques, Tomonori Yamane, Roy H. Campbell, and M. Dennis Mickunas. Design, Implementation, and Performance of an Automatic Configuration Service for Distributed Component Systems. In Software: Practice and Experience, 35(7), pp. 667-703, May 2005.
- Geoff Coulson, Gordon Blair, et al. A Generic Component Model for Building Systems Software. Lancaster University. ACM Transactions on Computer Systems (TOCS). Volume 26 , Issue 1, February 2008.
- Manolios, P., Vroon, D., and Subramanian, G. 2007. Automating component-based system assembly. In Proceedings of the 2007 international Symposium on Software Testing and Analysis (London, United Kingdom, July 09 - 12, 2007). ISSTA '07. ACM, New York, NY, 61-72.
- http://www.reactos.org/en/index.html
- Infrastructure Suite aids in distributed SOA deployment http://news.thomasnet.com/fullstory/537296
- Entendendo o porquê da abordagem por containers para desacoplamento: http://www.martinfowler.com/articles/injection.html
- OpenCCM:
- Fractal Component Model and Framework:
- Trabalhos relacionados: http://ralyx.inria.fr/2006/Raweb/jacquard/uid46.html , http://ralyx.inria.fr/2006/Raweb/jacquard/uid31.html
- Deployware - Fractal Deployment Framework : http://ralyx.inria.fr/2006/Raweb/jacquard/uid27.html
- screenshot :
- site : http://fdf.gforge.inria.fr/FDF/FractalDeploymentFramework
- Areski Flissi, Jérémy Dubus, Nicolas Dolet and Philippe Merle. Deploying on the Grid with DeployWare In 8th International Symposium on Cluster Computing and the Grid (CCGRID'08), pages 177 - 184, Lyon, France, May 18--22 2008. IEEE.
- Adage:
- CoRDAge:
- Author's page: http://www.irisa.fr/paris/web/Member-Home-Pages/view-12.html
- Project page: http://cordage.gforge.inria.fr
- Some features:
- Proposes a uniform interface to various reservation and deployment tools
- Offers generic and specific actions to different type of applications
- Shares unused reserved resources among applications of a single user
- Easy way to check for application termination
- A very preliminary prototype has been implemented and evaluated (Voichita Almasan, master thesis 2006)
- Handles interactions between OAR and ADAGE
- TakTuk: TakTuk is a tool for deploying parallel remote executions of commands to a potentially large set of remote nodes. It spreads itself using an adaptive algorithm and sets up an interconnection network to transport commands and perform I/Os multiplexing/demultiplexing. The TakTuk mechanics dynamically adapt to environment (machine performance and current load, network contention) by using a reactive work-stealing algorithm that mixes local parallelization and work distribution.
- DAnCE:
- Relacionado ao CoSMIC do Schimdt : http://www.dre.vanderbilt.edu/cosmic/html/overview.shtml
- http://www.dre.vanderbilt.edu/cosmic/html/launching.html
- OpenCOM:
- Plastik - Managing Dynamic Reconfiguration in Component- based Systems - http://www.comp.lancs.ac.uk/~geoff/Publications/EWSA05.pdf
- Gridkit:
- http://www.comp.lancs.ac.uk/~geoff/Publications/
- Cai, W., Coulson, G., Grace, P., Blair, G.S., Mathy, L., Yeung, W.K., The Gridkit Distributed Resource Management Framework, Proc. European Grid Conference, Science Park Amsterdam, The Netherlands, February 14 -16 2005, published in LNCS Vol 3470, Advances in Grid Computing, ed. Sloot, Hoekstra, Priol, Reinefeld, Bubak, http://dx.doi.org/10.1007/11508380_80, pp786-796, June 2005.
- Grace, P., Coulson, G., Blair, G., Mathy, L., Yeung, W.K., Cai, W, Duce, D., Cooper, C., GRIDKIT: Pluggable Overlay Networks for Grid Computing, Proc. Distributed Objects and Applications (DOA’04), Cyprus, Oct 2004.
- Formalização:
- Liu, Y. D. and Smith, S. F. 2006. A formal framework for component deployment. In Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (Portland, Oregon, USA, October 22 - 26, 2006). OOPSLA '06. ACM, New York, NY, 325-344
- OpenGridForum:
- GFD.127 - Configuration Description, Deployment and Lifecycle Management Working Group (CDDLM-WG) Final Report. P. Toft, S. Loughran. 2008-03-31. Referencia:
- Outlines the requirements for creating a deployment object responsible for the lifecycle of a deployed resource document: (GFD.65 : P-REC) [SCHAEFER06]
- Specification of the API used to deploy and manage configured applications document: (GFD.69 : P-REC) [LOUGHRAN06]
- GFD.127 - Configuration Description, Deployment and Lifecycle Management Working Group (CDDLM-WG) Final Report. P. Toft, S. Loughran. 2008-03-31. Referencia:
- SmartFrog: desenvolvido pela HP para grids mas com motivação semelhante
- http://www.smartfrog.org/
- Fully Distributed Service Configuration Management, DSN2007 (Dependable Systems and Networks) : http://dslab.epfl.ch/hotdep/2007/paper8.pdf
- http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/c/Cerqueira:Renato.html
- http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/k/Kon:Fabio.html
- http://www.dimap.ufrn.br/~thais/Publicacoes/
- https://twiki.grid.iu.edu/twiki/bin/view/Documentation/WebHome
- Commodity Grid Toolkits: http://wiki.cogkit.org/index.php/Main_Page
- [Emmerich,02] Emmerich, W., Distributed Component Technologies and their Software Engineering Implications, Proc. of the 24th International Conference on Software Engineering, Orlando, Florida, pp. 537-546, 2002.
- [Jasminka,04] Jasminka Matevska-Meyer, Wilhelm Hasselbring, and Ralf H. Reussne. Software Architecture Description supporting Component Deployment and System Runtime Reconfiguration. Software Engineering Group, Department of Computing Science, University of Oldenburg, Germany.
Paralelização de Componentes no SCS
Artigos:- Carvalho-Junior, F. H., Lins, R. D., Corrês, R. C., Araújo, G. A., and Silva, J. C. 2007. On the design of abstract binding connectors for high performance computing component models. In Proceedings of the 2007 Symposium on Component and Framework Technology in High-Performance and Scientific Computing (Montreal, Quebec, Canada, October 21 - 22, 2007). CompFrame? '07. ACM, New York, NY, 67-76
- Wang, N., Pundaleeka, R., and Carlsson, J. 2007. Distributed component support for integrating large-scale parallel HPC applications. In Proceedings of the 2007 Symposium on Component and Framework Technology in High-Performance and Scientific Computing (Montreal, Quebec, Canada, October 21 - 22, 2007). CompFrame? '07. ACM, New York, NY, 141-150.
- Bigot, J. and Perez, C. 2007. Enabling collective communications between components. In Proceedings of the 2007 Symposium on Component and Framework Technology in High-Performance and Scientific Computing (Montreal, Quebec, Canada, October 21 - 22, 2007). CompFrame? '07. ACM, New York, NY, 121-130.
- Bernholdt, D. E. 2007. Component architectures in the next generation of ultrascale scientific computing: challenges and opportunities. In Proceedings of the 2007 Symposium on Component and Framework Technology in High-Performance and Scientific Computing (Montreal, Quebec, Canada, October 21 - 22, 2007). CompFrame? '07. ACM, New York, NY, 1-10.
Dicas de LaTeX
Coisas Win32
- Serviços Win32 para compatibilidade POSIX : http://en.wikipedia.org/wiki/Microsoft_Windows_Services_for_UNIX
JavaBahia: JavaOne 2009 - Uma Visão Geral
15 de Junho de 2009, 0:00 - sem comentários aindaPassada mais de uma semana do término do JavaOne 2009 resolvi fazer mais um post, desta vez com uma visão geral e uma espécie de "repescagem" de coisas que eu não havia citado. O post diário é mais detalhado, mas não responde a pergunta de muitos quando voltamos pro Brasil: "como foi o evento"?- Dispositivo do ano: Netbooks! Parecia que todos estavam carregando um Netbook para twittar e verificar e-mails durante as sessões.
- Buzzword do ano: "The Cloud". Sun Cloud, ferramentas para a nuvem, codificação na nuvem, implantação (deploy) na nuvem, borrachas de nuvens como brindes.
- Orador convidado do ano: Larry Ellison. O dono da Oracle supostamente iria responder algumas das questões que todos estavam perguntando, mas ele não o fez.
- General Session inesperada do ano: Microsoft. Eles não só tinham um keynote, mas falaram de open source também.
- Estandes faltando do ano: Oracle e Google. Duas das tradicionalmente mais populares estandes no pavilhão, não estavam presentes em 2009.
- "Costume" faltando do ano: JavaOne Today. O jornal que costumavam distribuir pela manhã, resumindo o dia anterior, foi cortado fora.
- Pergunta mais feita do ano: "Vai ter outro JavaOne? Todo mundo estava querendo saber. Ninguém respondeu.
- A resposta mais dada do ano: "Nós não podemos falar sobre o assunto". Essa era a
- resposta padrão dos empregados da Sun, quando questionados sobre a fusão com a Oracle.
JavaBahia: JavaOne 2009 - 1o Dia
14 de Junho de 2009, 0:00 - sem comentários aindaA General Session de abertura do JavaOne começou com as boas vindas de John Melissinos, Chief Evangelist and Chief Gaming Officer da Sun. Uma grande expectativa pairava no ar, pois todos estavam curiosos (principalmente, acredito, os empregados da Sun) sobre o futuro da tecnologia Java agora que a Oracle adquiriu a Sun. Johnatan Schwartz não ajudou muito a esclarecer essa dúvida, mas apresentou exemplos diversos de uso da tecnologia Java junto com executivos de outras empresas. A divisão de Blackberry da e-Bay afirmou tratar Java para dispositivos móveis com extrema seriedade; apresentou uma demonstração do Zobni, uma aplicação de busca de informações de contato em redes sociais, acoplada ao programa de e-mail. Enquanto o nome era digitado, apareciam as pessoas encontradas para permitir seleção (Informação sobre desenvolvimento para Blackberry (www.blackberry.com/developer). A Sony Pictures mostrou uso de Java em Blu-ray que nos levará a uma interatividade de alto nível, em qualidade visual e funcionalidades, permitindo por exemplo que pessoas assistindo um mesmo filme possam usar a TV para conversar. Verizon Wireless e Intel basicamente ressaltaram a importãncia de Java em suas organizações, a última enfatizando os altos ganhos de performance obtidos em seus processadores mais novos, resultado também da parceria constante com a Sun. Sobre TV Digital, foi mostrada uma demo de aplicação construída com JavaFX com belos efeitos gráficos. TV e internet se misturam, pois será possível assistir um filme e ao mesmo tempo jogar um Game, ver informações sobre outro assunto (ex: esportes, bolsa de valores ou meteorologia) ou efetuar uma compra on-line. JavaFX parece ser uma boa opção, devido aos seus recursos visuais e multimídia. O Clayton Chagas, brasileiro que apresentará junto com Magno Cavalcante (RioJUG) uma sessão técnica na 6a-feira sobre o Sistema Brasileiro de TV Digital, estava ao meu lado e disse que nosso sistema ainda não prevê suporte JavaFX. Vamos acompanhar a evolução disso.
Durante essas apresentações, foram feitos 3 anúncios importantes: A disponibilização do Java SE 7 SDK, do Java EE 6 e do Java FX 1.2. Sobre essa última, a diretora de engenharia da plataforma JavaFX demonstrou um Player de Vídeo feito com JavaFX construido praticamente sem a necessidade de escrita de código "na unha", apenas arrastando e soltando componentes e estabelecendo ligações entre eles, tudo de forma visual.
É claro que não podia faltar o "pai do Java" James Gosling. Ele falou sobre o novo Java Store, uma espécie de catálogo de aplicações Java construído em JavaFX, que permitirá descobrir, comprar (caso não seja gratuita) e instalar aplicações Java de um jeito bem simples: arrastando e soltando no Desktop. Foi exibido um jogo de paciência feito por Gosling; o chefe brincou perguntando: "Você não fez isso em horário de trabalho né?". A resposta: "Você não deveria fazer esse tipo de pergunta aqui!". Em algum momento Gosling ainda lançou um "desafio", dizendo que gostaria de ver o JavaStore rodando numa TV Digital; Alguém se habilita!?. Em seguida ele e Scwhartzs convidaram o Mark Gerhard, CEO da Jagex (de Java Game EXperts!) para receber seu Duke's Award pelo jogo Rune Scape, um caso de sucesso mundial de game escrito em Java.
Em seguida, o fundador da Sun Scott McNealy foi convidado ao palco; Os 3 assistiram juntos a um divertido filme que resumiu os 14 anos de Java. McNealy estava visivelmente emocionado e fez uma espécie de homenagem a Gosling; Disse que ao ser perguntado pelo pessoal de RH (eles estavam elaboranco um programa de capacitação) sobre como definiria um líder na Sun, pensou e respondeu com uma palavra: CORAGEM. E que isso James tinha e tem de sobra, principalmente quando inventou o Java há 14 anos. Depois do tradicional "arremesso de camisetas", que deixou Gosling bastante ofegante, foi entregue outro Duke's Award para o CEO do Alice, uma solução para ensinar crianças a programarem que começa de forma gráfica e aos poucos vai introduzindo os comandos escritos. Fiquei curioso para saber mais.
Chegava, então, o esperado momento. Finalmente aparecia o Larry Ellison, CEO da Oracle, para dividir o palco com Scott McNeally (estranhamente Gosling e Johnathan se retiraram do palco rapidinho!) e falar sobre a aquisição da Sun. O " Clóvis Bornay americano" (irresistível essa comparação... olha a cara dele!) ressaltou a importância de Java ("100% das soluções Oracle são baseadas em Java ... porque Java é aberto"), JavaFX e OpenOffice (que, segundo ele, vai passar a usar JavaFX em algumas partes visuais). Sobre o que vem mais por aí ele apenas disse "se você quer saber sobre o futuro precisa olhar para o passado", pelo menos deixando a entender que não pretende dar passos para trás "fechar as portas" para essa importante comunidade criada em torno das principais tecnologias da Sun. Ele também falou que gostaria de ver dispositivos produzidos pela Sun, citando especificamente o Google Android. Vamos ver se ele se aventura nessa área. McNeally ainda deu um presente e um recado: bandeirinhas que correspondiam a 5 letras: J A V A. Scott agradeceu imensamente a tudo o que a comunidade de desenvolvedores tem feito e saiu aplaudido de pé.
O restante do dia reservei para assistir sessões, circular pelo pavilhão e conheces pessoas. Gostei muito da Castle in The Clouds: SaaS Enabling JavaServer Faces Application. Boas dicas de como criar Aplicações como Serviço usando JSF, mostrando como embutir características de customização, personalização, gerenciamento de níveis de serviço, métricas de monitoração, dentre outros. A apresentação está disponível on-line no blog do autor.
No Community Corner assisti o Juggy entrevistando a brasileira Fabiane Nardon e o alemão Tonni Epple sobre o JavaTools, espécie de catálogo de ferramentas Java hospedado no java.net que tem em seu portfólio por exemplo desde o popular Hudson, software de integração contínua, até o SuperCrud, projeto quase que individual (ainda...) do Vinicius Senger (Globalcode). Numa dessas situações inusitadas, lembrei que o Tonni Epple foi a única pessoa que eu vi na internet que escreveu um Tutorial de uso de um plugin NetBeans escrito por mim chamado DTDtoBean, para geração de código JavaBean a partir de arquivos DTD, útil para serialização/deserialização de objetos para XML e vice-versa usando frameworks como XStream, Simple (do qual Toni, assim como eu, também é fã) e Java Objects in XML (JOX). É claro que não perdi a oportunidade de conversar um pouco com ele sobre o assunto e demonstrar minha felicidade de ver que pelo menos 1 pessoa gostou do projeto. Já vale a pena!
Existem mais brasileiros blogando sobre o JavaOne. Vale a pena ver a visão deles sobre o que tem acontecido por aqui. Duas dicas:
Blog do Felipe Gaúcho (CEJUG)
Blog do Magno Cavalcante (RioJUG)
Algumas fotos do 1o dia
Rafael Gomes: Quer incrementar sua palestra? PDFCube!
14 de Junho de 2009, 0:00 - sem comentários aindaO PDFCube utiliza as APIs Poppler e OpenGL APIs para proporcionar uma interação de um cubo 3D na transição das páginas de um documento PDF.
Sendo assim temos esse resultado:
Quer uma notícia melhor? Você usa Fedora 11? Se a resposta for sim é apenas instalar o PDFCube que está ...
Rafael Gomes: AI-5 Digital
14 de Junho de 2009, 0:00 - sem comentários aindaPara quem ainda não sabe o que é a AI-5 Digital, aconselho a link abaixo:
http://softwarelivre.org/portal/carta-capital-um-novo-ai-5
Diga você também um MEGA NÃO!!!
Rafael Gomes: Blog atualizado!
13 de Junho de 2009, 0:00 - sem comentários aindaAcabei de atualizar meu blog, com ajuda no meu próprio post. Se alguém notar algum problema, por favor, me reporte! Obrigado!
Rafael Gomes: Primeira impressão do Fedora 11 (Leonidas)
13 de Junho de 2009, 0:00 - sem comentários aindaSim! Esse é o Leonidas! O Codinome do Fedora 11!
Assim, primeiro que achei que perderia muito tempo pra fazer isso, pois infelizmente o upgrade direto do Fedora 10 para o 11 não está estável ainda. Sendo assim iria precisar usar o CD.
Como ultimamente estou com o tempo reduzido por conta ...
Wille Marcel: Apresentação do GCompris no III ENSL / IV FSL-BA
12 de Junho de 2009, 0:00 - sem comentários aindaGCompris é um conjunto de aplicativos educacionais para crianças de todas as idades. Gravei o vídeo da palestra do III ENSL / IV FSL-BA em que o Frederico Guimarães apresentou o GCompris. O áudio tá bem ruim, mas acho que dá pra entender…
O vídeo também pode ser baixado no formato OGG Theora, neste link.
Site oficial do GCompris em português: http://gcompris.net/-pt-br-