O Carroceiro e o Fauno

Carroceiro no Conjunto NacionalOntem fui ao cinema assistir O Labirinto do Fauno.

Mas não vim falar sobre isso, e sim sobre a escultura gigantêsca, muito bem feita, realista e impressionante de um carroceiro descansando, sua carroça cheia de tralhas e seu cão, que plantaram bem no meio da galeria do Conjunto Nacional. Parece que a obra chama-se O Fazedor de Montanhas de Silvio Galvão.

Paulistanos, não percam. Vá até lá descobrir o que ele está segurando em sua mão esquerda, e não contente-se com esta foto.

Ah, e o filme é bem bom também. Pesado, mas bom. Vale a pena.

Freetype with Bytecode Interpreter

I am the maintainer and writer of most of the official Linux Font-HOWTO [official home], and one of its main points is to explain what is the TrueType Bytecode Interpreter.

I spent some time this morning updating the freetype package on my system [get RPMs], compiling it with support to BCI, and I took the chance to get some “before & after” screenshots of Konqueror browser accessing Google Mail with and without BCI.

Check it out. This is better than makeup ads:

Before: Original Freetype lib without BCI After: New Freetype RPM compiled with BCI
freetype4-nbci.png freetype4-bci.png
freetype1-nbci.png freetype1-bciaa.png freetype1-bci.png
freetype2-nbci.png freetype2-bciaa.png freetype2-bci.png
freetype3-nbci.png freetype3-bciaa.png freetype3-bci.png

After switching to BCI-enabled freetype, the use of Webcore fonts without anti-aliasing gives much much much better results, as you can see. Unfortunately these fonts are not free, but they are better than the popular Bitstream Vera fonts because they include hinting information.

BTW, anti-aliasing is useful in 2 situations only: if you are rendering fonts in big sizes (bigger than 13px), or if you have bad, non-hinted fonts (as Bitstream Vera) with a bad font rendering library (as Freetype without BCI support). If you have good hinted fonts and a good rendering library (as Freetype with BCI), restrict anti-alising only for big font sizes.

My Podcasts

A podcast is a blog that, in addition to text, also publishes media files. So you need a special “reader” to listen them, so people use softwares like iTunes, Amarok, iPodder to subscribe and automatically get the media.

I’m officially releasing my podcasts here, posting songs in high quality MP3 format. These are the channels, subscribe using the orange buttons below:

Enjoy.

Parafuso

Parafuso is an instrumental masterpiece by brazilian Ronen Altman, played by the Orquestra Popular de Câmara.

OPC sort of brought a globalization conscience to brazilian instrumental music, mixing together a great number of instruments and musical styles. They are in evidence in the innovative tradition of brazilian jazz from São Paulo.

If this song was a building, it would look like modern architecture: functional, beautiful, strong and light.

Enjoy.

Receita de “Apio”

Esta receita chama-se Apio porque é assim que os búlgaros — prováveis inventores do preparo — a chamam, e por falta de um nome melhor. É um prato delicioso, fácil de fazer, leve, refrescante, e quem prova quer a receita.

Apio é aipo em ladino, espanhol etc. Aipo é a raiz do salsão, também conhecido como celery. É preciso um pouco de insistência para achá-lo nas feiras do Brasil.

Há dois tipos de salsão: o branco americano, e o mais escuro (com raiz ainda branca). É deste último que se aproveita os melhores aromas, e cujas folhas e caule emprestam mais sabor a molhos etc. O salsão branco quase não tem gosto, e dele não se usa a raiz.

Ingredientes

  • 3 raizes de aipo
  • 4 ou 5 cenouras médias
  • suco de 1 limão
  • 2 colheres de sopa de azeite virgem
  • Adoçante ou açúcar
  • Sal a gosto
  • Água

Modo de Preparo

  1. Descasque as raizes de aipo. Se você encontrar lesmas no meio, por favor remova-as se você for me convidar para jantar.
  2. Lave as raizes descascadas, fatie com meio centímetro de grossura ou menos, e corte no meio as fatias grandes. Vá juntando num recipiente com água para ajudar a não escurecer.
  3. Descasque as cenouras, fatie e junte para cozinhar numa panela grande com o azeite já quente. Vá mexendo.
  4. Escorra e junte o aipo fatiado nas cenouras que já devem estar meio cozidas.
  5. Misture bem adicionando 2 copos de água.
  6. Deixe ferver por uns 15 minutos em fogo baixo.
  7. Adicione sal a gosto, adoçante (umas 20 gotas ou o equivalente em açúcar) e o suco de limão. É importante ficar levemente doce.
  8. Deixe cozinhar por mais uns 5 minutos, até diminuir bastante a água, mas não completamente.
  9. Teste a dureza do aipo e cenoura para ver se estão prontos. Se precisar de mais tempo, garanta que há sempre um dedo de água no fundo da panela.

A cenoura tem duas missões nesta receita: emprestar sua cor vibrante ao prato e tomar emprestado o aroma delicado e exótico da raiz de aipo.

Sirva frio, possivelmente como uma deliciosa entrada. Isto é uma rara iguaria.

Sobre Podcast

Uma vez perguntei a um amigo o que é um podcast, e ele disse que é um MP3. Bem, isso é tão minimalista quanto dizer que um Gaudí é um amontoado de tijolos, ou que a Internet é uma porção de bits dançantes.

Um podcast é um blog não-textual. Seu conteúdo pode ser audio e/ou vídeo, rodeado por metainformações do tipo “autor”, “entrevistado”, “banda”, “estilo”, “sumário” etc.

Como todo blog, ele tem regularidade: “episódios” no lugar de posts e assim por diante.

Você “assina” um podcast como assina uma revista, da mesma forma como assina um blog (via RSS ou ATOM). Mas como um browser é um leitor essencialmente textual, é mais comum e prático assinar podcasts usando softwares de mídia: iTunes, Yahoo! Music Engine, Amarok, etc.

Na convergência das coisas, um podcast pode ser comparado a um programa de rádio onde o próprio ouvinte decide quando e como vai ouvi-lo.

Num mundo onde tivermos banda larga no ar tão abundante e livre quanto ondas de rádio, além da memória para freqüências de estações, os rádios de nossos carros terão também a assinatura de nossos podcasts preferidos. Com ainda não chegamos a isso, temos que usar MP3 players modernos como o iPod – que tratam podcasts de forma especial – para termos essa funcionalidade.

E nesse mundo, os podcasters seremos você e eu, pessoas comuns falando diretamente para o mundo. Publicar um podcast é tão simples quanto publicar posts num blog. É inclusive algo que se pode integrar com plataformas de blogs comuns, com plugins para WordPress, etc.

Se você tem um fluxo de coisas para dizer, crie um podcast. Se você tem um fluxo de coisas para serem assistidas, crie um podcast. Se você tem um fluxo de coisas que quer que as pessoas ouçam, crie um podcast. Este último é o meu caso, sobre Jazz Brasileiro, e por isso estou juntando os pedaços e os módulos para criar um.

Andei estudando isso ultimamente, e achei importante compartilhar…

HD de 1 Terabyte, para quem ?

Vão anunciar o HD de 1 Terabyte.

Tempos atrás, fiz um estudo sobre clusters de alta disponibilidade e a certa altura levantei o sizing real de storage de aplicações de servidor. O resultado está aqui:

Sizing

Adicionando a essa lista, lembro quando a DBA de um grande e famoso supermercado online me chamou para mostrar que a RAM do servidor do DB (1.5GB) era maior que o próprio DB (1GB), que incluia lista de todos os produtos, todos os clientes, todos os carrinhos que já passaram por lá, e tabelas de controle.

Instalações oversized é algo muito comum hoje em dia porque arquitetos costumam usar sua sensibilidade de uso de desktop ao definir RAM, storage, CPU etc de um servidor.

Bem, saibam que desktop é uma das coisas que mais exige RAM, disco (em velocidade e tamanho) e CPU, porque é onde o usuário é mais sensível a atrasos no tempo de resposta (a famosa ampulheta), e tem sempre muita multimídia para aramazenar e tocar.

Aplicações de server são em geral muito mais leves, salvo algumas poucas exceções.

Um HD de 1 terabyte, hoje, faz muito mais sentido para uso pessoal do que em server. Mas é a tendência natural das coisas, e não vamos puxar o freio de mão para esse crescimento (e barateamento), não é mesmo !?

Open Source na Prática

O primeiro a propor a idéia de Open Source Software (OSS) foi Richard Stallman na década de 1970, que a formalizou, com a ajuda de alguns advogados, na famosa licença GPL.

Ninguém se interessou ou sequer ouviu falar sobre isso, até que em meados da década de 1990, tudo mudou com a vertiginosa popularização do Linux, sistema operacional OSS.

O termo popular “Software Livre” não é a melhor tradução de Open Source Software, cujo correto é Software de Código Fonte Aberto. É importante notar isso porque muitas vezes o termo é erradamente associado a idéia de não-proprietário, ou não-comercial. A verdade é que um software pode ter seu código fonte aberto mas ser comercial e/ou proprietário e vice-versa, portanto são conceitos que não devem ser confundidos.

A idéia é simples: eu escrevo um programa e você pode copiá-lo à vontade sem nem sequer me notificar. Pode inclusive modificá-lo e redistribuí-lo, contanto que também mantenha suas modificações abertas e informe qual a origem e os autores anteriores do software.

Isso não quer dizer que teremos diversas versões desconexas do mesmo software, num dado momento. Cada modificação passa por um processo muito bem organizado de aceitação ou rejeite, onde boas melhorias retornam à base e são incorporadas à nova versão do software. Na verdade, hoje, a maioria dessas contribuições não é mais feita por indivíduos, mas por empresas de tecnologia.

É comum — e errado — pensar que OSS significa a morte de todo software de código fechado. Isso não acontece porque a tendência é que as grandes inovações continuem a ser exploradas pelo modelo fechado. Imagine um mundo hipotético que ainda não conhece editores de planilhas. É natural que, ao lançar esse produto, seu inventor opte pelo modelo de código fonte fechado, para maximizar seus lucros através do total controle de sua invenção. Contudo, conforme essa invenção se populariza, desenvolve um mercado e adquire concorrentes, OSS surge como uma das formas — a mais inovadora — para repensá-la. OSS inova ao reimplementar o que outros inventaram e exploraram anteriormente. Recentemente, porém, a indústria começou a usar OSS diretamente para lançar certas inovações, justamente pelo seu poder de agregar comunidades e criar ecossistemas.

Também é comum — e errado — acreditar que se o software em si é gratuito, elimina-se por completo os gastos. Mas sempre haverá a necessidade de um suporte confiável. OSS altera o eixo do valor agregado do software, movendo-o do software em si (que não custa nada), para o serviço de suporte.

Open Source, Open Standards relacionados a TI

Em seu processo de amadurecimento, a única diferença prática entre um software OSS e outro de código fonte fechado é a ordem em que as coisas acontecem. Um fabricante comercial terá que criar estrutura e suporte regional antes de vender o produto. Já no OSS, ofertas de suporte só surgem (espontaneamente) depois que ele goza de uma boa gama de usuários. Mas seja qual for a ordem, a única coisa que garante maturidade a qualquer software ou produto é um ciclo de desenvolvimento–uso–suporte, que estimula mais desenvolvimento. Somente essa maturidade garante a aceitação do produto em empresas responsáveis. E hoje, OSSs como Linux, Apache, OpenOffice.org, Samba, e outros já gozam desse ecossistema cíclico de uma forma vasta, global e vigorosa.

Hoje, OSS tem aplicações mais maduras em infraestrutura e alguns nichos de middleware. Por sua vez, os softwares de código fonte fechado apresentam maior desenvoltura mercadológica nas funcionalidades de maior valor agregado ao negócio (ERPs, CRMs ou processos empresariais). Isso porque estas funcionalidades têm uma amplitude menor de usuários, o que inviabiliza o surgimento de suporte espontâneo — fator vital para a maturidade do OSS.

A indústria tem buscado um balanço saudável para misturar componentes fechados com OSS, a fim de maximizar o seu benefício sem abrir mão da maturidade de ponta a ponta. Prova disso é que tem sido cada vez mais comum a implantação de ERPs maduros — geralmente de código fechado — sobre plataformas abertas maduras — como distribuições Linux com suporte.

A receita para o melhor balanço é insistir no uso de Padrões Abertos. Por garantirem uma interoperabilidade fácil entre camadas abertas e de código fechado, o uso de padrões amplia as escolhas e a liberdade da empresa que compra TI para compor a melhor mistura do momento, com opções OSS e/ou de código fechado.

Love Actually

Love ActuallyPeguei na TV e assisti novamente o Simplesmente Amor. Talvez o mais belo e divertido filme que fala, como o título diz, exclusivmente sobre amor.

Podem dizer que é um filme clichezão inglês. Talvez seja mesmo. Mas é muito bonito.

Conta várias estórias de pessoas, seus amores e dores. O do primeiro ministro pela sua secretária, o do casamento desgastado, o do escritor por sua faxineira portuguesa, o do Rodrigo Santoro por sua colega de trabalho problemática, e do menino pela sua colega de escola.

A cena mais bonita é quando a Keira Knightley atende a sua porta um rapaz apaixonado por ela, que em silêncio faz uma declaração simplesmente tocante.

Geniais as cenas finais no aeroporto, lugar onde o amor é singelamente testado nos reencontros e despedidas.

Ainda neste final de semana tive uma boa surpresa com O Amor Não Sai de Férias. E a animação Flushed Away, foi menos do que esperava.

Mais Sons Inspiradores

Como fiz com o Buddha-Bar, agora foi a vez de compactar toda coleção Café del Mar em 2 CDs de MP3 para ouvir no carro.

Café del MarQuer saber? Gosto mais do Café del Mar do que do Buddha-Bar. Enquanto o último se preocupa em sobrevoar sons étnicos de todo o mundo, o Café del Mar é independente, e bem mais zen. É simplesmente delicioso adormecer com a delicadeza etérea desses sons nos ouvidos.

Há muitíssimas coisas ótimas, que remetem a imagens de jardins verdejantes e folhas de palmeiras balançando ao vento, respiração profunda, um êxtase sereno, e sempre a lembrança de que o mundo é maior do que a nossa percepção abafada pelo dia-a-dia é capaz de sentir.

Selecionei (com muita dificuldade) a Northern Lights do Lux, 8:00 AM de Lazybatusu e Adios Ayer de José Padilla, o organizador da coleção. Selecione com o botão direito para baixar e ouvir.

Ah! Tem também algumas rádios de Internet que ainda não estão 100% exploradas, mas vale a dica: Drone Zone, Space Station Soma e Groove Salad, todas no site da Soma.fm.

IBM e OpenDocument Format

A IBM apóia o uso de OpenDocument Format – o padrão aberto para documentos de escritório, e o formato usado pela suite OpenOffice.org, KOffice, Corel WordPerfect Office, e outros.

Estamos num processo interno gradativo de migração para ODF, e falamos da importância disso com governos e clientes, globalmente. Nossos produtos suportam ODF no sentido de consumir e gerar documentos nesse formato.

Uma das vozes mais conhecidas é o blog do Bob Sutor, executivo de padrões da IBM que dá muito foco para ODF. Aqui no Brasil temos o Cezar Taurion, eu e outros fazendo esse papel.

E finalmente vimos o Brasil tomando a liderança na América Latina, recomendando o uso de ODF como formato preferido para documentos do governo.

Semana passada divulgamos o seguinte press release:

Brasil incentiva a utilização do formato OpenDocument

Aliança ODF também é reconhecida por países da Europa e Ásia

São Paulo, 13 de dezembro de 2006 — A OpenDocument Format Alliance (Aliança ODF), que reúne grande número de organizações, instituições acadêmicas e representantes da indústria com o objetivo de melhorar o acesso aos documentos eletrônicos de governo, elogiou a decisão do Brasil de recomendar a ODF como o formato preferido do governo. A Aliança também parabenizou a decisão da Índia de usar a ODF em um grande órgão do governo estadual e a decisão unânime da Itália de reconhecer a ODF como padrão nacional.

A Aliança ODF expressou, ainda, seu apoio à predisposição da China, Coréia e Japão de requerer um “formato de documento internacional e baseado em padrões abertos”, além de reuniões de planejamento de TI e fonte aberta celebradas em forma conjunta anualmente pelos governos dos três países. A Polônia também foi elogiada por demonstrar sério interesse na adoção da ODF após uma reunião nacional celebrada para seu governo com grande número de participantes da indústria e organizações sem fins lucrativos.

Com a publicação da versão 2.0 do e-Ping Interoperability Framework, o Brasil se transforma no primeiro país da América do Sul que recomenda oficialmente a ODF. O quadro estabelece que todos os arquivos .xls, .doc e .ppt se encontram em transição, ou seja, que já não cumprem com suas políticas técnicas, e que a ODF é agora o formato recomendado oficialmente pelo governo do Brasil. O Instituto Nacional de Tecnologia e Informática, o Ministério da Defesa e o Governo do Estado do Paraná, no Brasil, são membros da Aliança ODF.

“2006 acaba de maneira tão auspiciosa como começou, com legiões de governos no mundo inteiro expressando verdadeiro apoio à ODF”, disse Marino Marcich, Diretor Executivo da Aliança ODF. “Parabenizamos o Brasil, a Índia, a Itália, o Japão, a Coréia, a China e a Polônia por reconhecerem a ODF, cada país a seu modo, e estamos ansiosos por ver o impulso contínuo deste movimento no ano que vem.”

Na Índia, o governo ordenou usar arquivos ODF para o escritório de impostos comerciais do governo estadual de Delhi. Além disso, a Itália se une a países como a Malásia, que têm a intenção de reconhecer a ODF como padrão nacional (consultar www.uninfo.polito.it), enquanto o Japão, a Coréia do Sul e a China pensam em usar exclusivamente formatos de documentos internacionais e baseados em padrões abertos como a ODF para reuniões celebradas por seus diretores gerais de Tecnologia e Informática, a fim de debater e promover o software de fonte aberta.

A Aliança tem crescido a mais de 400 membros em mais de 40 países, mostrando um impulso sustentado para o formato de arquivo aberto em nível mundial.

Para obter informações adicionais sobre a ODF Alliance vá para www.odfalliance.org.

Sobre a IBM
Para mais informações sobre a IBM, visite www.ibm.com/br.

Histórias de Muita Coincidência

Entre risadas e caipirinhas de saquê com lichia com amigos no Mestiço, começamos a contar experiências pessoais com coincidências impressionantes.

Algumas delas faria qualquer pessoa simplesmente desacreditar se não tivesse acontecido consigo mesmo. Selecionei algumas para compartilhar:

Estive em Paris este ano e ía para o aeroporto Charles de Gaulle de metrô — aquele tipo de transporte que tem dezenas de vagões num mesmo trêm, e por onde circulam dezenas de milhares de pessoas por dia.

Numa certa estação quem é que entra no meu vagão, bem na minha frente? A única pessoa que conhecia — mesmo que remotamente — morando em Paris: a Denise, colega de trabalho que tinha se mudado para lá.

Eram os últimos respiros da Varig e seus vôos estavam sendo cancelados. Ela também estava indo para lá, levar a filha para tentar tomar o mesmíssimo vôo. Só que no caso delas já era a segunda tentativa de tomá-lo.

Coincidência ou não, ela nos ajudou naquele enorme aeroporto e deu as dicas de com quem falar e qual ônibus tomar para ir ao terminal correto. Talvez sem a ajuda dela teríamos tido problemas.


A Adriana tem alguns irmãos. Certo dia ela estava parada num farol da Av. Rebouças e viu seu irmão Julio parado no mesmo farol, do outro lado da avenida.

A Rebouças é uma das principais avenidas da cidade, com tráfego de algumas dezenas de milhares de carros por dia.

Mas até ai tudo bem. O mais incrível é que naquele mesmo farol fechado, com a Adriana e o Julio parados naquele instante, a Bia — outra irmã — atravessava a avenida.

Qual é a probabilidade de dois irmãos se encontrarem numa avenida como essa? Qual é a probabilidade de três irmãos estarem ao mesmo tempo no mesmo lugar, numa cidade tão grande, e sem terem marcado ?

A noite, em casa, os três confirmaram que se viram naquele cruzamento.


Saí umas 22:00 do trabalho certa vez, e tomei um taxi para ir para casa. Ele passou pela Av. Paulista, que normalmente nesse horário tem muito trânsito.

Qual é a probabilidade de alguém bater o carro na Av. Paulista? Quantos acidentes acontecem alí por dia? Com certeza alguns.

Bem, o taxista foi fazer uma manobra e bateu de leve no carro da frente. Quem saiu cheteada do carro batido para reclamar? A Daniele, uma grande amiga minha. Qual é a probabilidade de um taxi em que você está bater no carro de um conhecido? E no de uma grande amiga então ?

Sua tristeza era maior do que a batida. Tinha perdido o emprego naquele dia, o carro era novo, tirado da loja dois dias antes, e sentia-se sozinha com tanta desgraça acontecendo enquanto esperava o namorado voltar da pós-graduação para consolá-la. Então ajudei ela e o pobre taxista a negociar a funilaria, dispensei o motorista, e ofereci o ombro amigo e companhia, até o namorado voltar. (Hoje ela está bem, empregada, curte boa vida e já trocou de carro várias vezes).


Uma amiga contou que uma conhecida casada viajou para a Europa, conheceu por acaso um homem alí e começou a ter um caso com ele. E voltou para o Brasil e para sua vida normal. Tempos depois o marido no Brasil viajaria para o mesmo país e iria se encontrar com o único amigo que ele tem lá: concidentemente o mesmo homem com quem ela teve um caso.


Fui a uma cafeteria tarde da noite com uma amiga que tem uma mediunidade muito forte, do tipo “I see dead people all the time”.

O lugar estava completamente vazio, e ao sentarmos ela disse que havia um espírito brincando de se esconder e aparecer bem atrás de uma coluna. Naquele momento eu só pensei que o espírito podia ser meu primo Rami. Não sei porque me ocorreu aquilo, visto que ele havia morrido uns 20 anos antes, e era um parente que não visitava com freqüência as minhas lembranças.

Mas não falei nada sobre meu pensamento. Só brinquei com ela pedindo que chamasse o tal espírito para vir conversar conosco, através dela, claro. Eu não tenho o menor problema com essas coisas e acredito muito, desde que seja de fontes que me inspirem confiança.

Ela se recusou, e recomendou deixarmos ele em paz. OK.

Minutos depois ela foi ao banheiro. Quando voltou, sentou, deu um tapinha na mesa e disse: “Seguinte, o nome desse espírito é Rami.”

Meu queixo caiu porque não tinha falado nada para ela (ou seja, não foi induzido) e nós “três” passamos o resto da noite conversando sobre música (Rami era um ótimo músico) e sobre nossa família.

Não é exatamente uma história de coincidência. Mas, telepatia ou mediunidade, é algo bem além da imaginação, e foi sensacional.


Talvez há um propósito para essas coisas acontecerem. Ou talvez não. Mas uma coisa é certa: acontecimentos desse tipo nos fazem pelo menos parar para repensar o mundo. E sim, é ainda uma zona cinzenta e nebulosa para a ciência . . .Leitor, você tem histórias assim para compartilhar ?

Museu Afro-Brasil no Ibirapuera

O Parque Ibirapuera me recebeu de braços abertos ontem para uma rodada de bicicleta. É uma pérola de nossa cidade com aquelas árvores enormes e magestosas e pessoas bonitas praticando esportes.

Dei de frente com o Museu Afro Brasil lá dentro e aproveitei para conferir. É uma exposição permanente, densa e vasta, e muita bonita, com arte e cultura de todo o Brasil. De xilogravuras armoriais típicas do nordeste, ao grafite das grandes cidades do sul. De letras e poesias gravadas nas paredes, a panfletos do encontro nacional das trabalhadoras do sexo de Salvador. De arte e fotografia da cultura do Candomblé, a um horrendo esqueleto de navio negreiro. Este último ficava numa sala a parte, junto de mais fotografias e dizeres de FHC, Castro Alves e outros. Foi muito tocante.

Fiquei impressionado com as enormes fotografias de nativos africanos, suas vestimentas (ou ausência de) e rituais, de uma tal de Isabel Muñoz.

Enquanto andava pela exposição fiquei ouvindo Ulisses Rocha e seu violão solar, que caiu como uma luva para o momento. Sempre cai.

Não deixe de visitar.

Wireless iPod

AirPlay2Tentando me desfazer dos anti-sociais-fones-de-ouvido, fui na onda de comprar um transmissor FM para o iPod que ganhei de aniversário.

Para quem não sabe o que é isso, trata-se de um dispositivo que se pluga ao iPod e que transmite o que ele toca para um rádio, por ondas de FM.

Minha dica é: não perca seu tempo com isso. Testei vários e todos são ruins. Sim, você consegue ouvir no rádio o que o iPod toca, mas sempremuito chiado, e só funciona a poucos centímetros do rádio, o que não é prático.

Irritei-me e devolvi hoje para a loja.

Evento Connect and Play 2006

Connect and Play 2006Terça-feira, 12 de dezembro realizaremos o evento Connect and Play focado para desenvolvedores.

A inscrição é gratuita em www.concursoinsites.com.br, e os participantes são convidados a doar 1kg de alimento não perecível que será entregue a uma organização social e educacional.

Teremos as seguintes palestras e atividades:

  • Technical Briefing: Accelerating Global Software Delivery (Alfredo Gutierrez – Developer Relations Manager – Developer Technical Marketing)
  • Technical Briefing: SOA Governance (Randel Powell – World Wide IDR Developer Skills Team)
  • Keynote Speaker – Nosso Futuro Digital: o impacto das Tecnologias da Informação e da Comunicação (TCIs) na Vida Humana (Ethevaldo Siqueira – jornalista especializado em Tecnologia da Informação e Telecomunicações, colunista do jornal “O Estado de S. Paulo” e da Revista Veja e comentarista da Rádio CBN.)
  • Open Document Format (César Taurion – Gerente de Novas Tecnologias Aplicadas)
  • Acessibilidade (Omar Varela – Gerente do Centro de Acessibilidade IBM)
  • Minicursos: RSA e WebSphere
  • Certificações: WebSphere, SOA, XML e DB2
  • Linux Install Fest – Instalação monitorada do SUSE 10 da Novell

Teremos também a exposição dos trabalhos finalistas do Consurso IBM InSites.

Internet Music Download

It is very controversial if it is illegal or not to download music from the Internet. The law and license to use a phonogram (a CD track) is not clear for the masses, or nobody never explained it precisely.

Understand the Context

I met a professional musician once that was studying musical production in the university, and he outlined some aspects very clearly:

  1. The great recording companies provide a service for the society in this ways: finding talents, funding the production and recording of the phonogram, producing a nice CD booklet, advertising the product on TV, radio, magazines, outdoors and operating the physical distribution logistics of the CD, all of this for you to listen high technical quality music, and easy to find in a store near your home. So nothing is more fare for the recording companies to get their financial share.
  2. Because of this a recording company is, in general, the owner of the phonogram (a CD track), and not the musician or composer. That means that the company decides when, how much and how they will publish these songs (publish means to create CDs and put them in stores). The musician can’t take a phonogram on which he participated on the recording, put it on a media (CD, tape, DAT, long play, etc) and start selling it, unless he buys the rights over the phonogram, that are, in general, very expansive.
  3. The recording industry and companies are not defending the artists rights, but their own interests. In fact, many artists do not like that the recording companies say they are defending their rights.
  4. In all this commercial process, musicians share come from their authorship rights (which is small, according to some musicians I know), that comes from an independent institution, which in its turn comes from the recording company and other sources. This rule is not the same for big stars that have enough power (and agents) to negotiate better contracts with a recording company.
  5. The musician wants his art to be known and listened in the broadest way possible.
  6. Professional musicians earn more money making shows and live performances, and less in the process of selling recording company’s CDs that carry his creations.
  7. People will only pay for show tickets if the artist’s creation is good and well known.
  8. Many good artists don’t have market penetration, money or disposition to record CDs in a way that they will own the phonograms (the so called independent way). These are usually referenced as “alternatives”.
  9. Excellent musicians and beautiful phonograms can be unknown to the point it is considered not viable to give them space in a CD store shelf. Because of that it is difficult to find old recordings or the so called “alternatives” in stores: or people already changed their taste, or the number of people will buy is very small.
  10. I estimate the cost to mass produce one single CD — including the plastic, media, booklet and its artwork, authorship rights, some advertisement etc — in about US$2.
  11. I heard that the law prohibits the redistribution of phonograms (CD tracks) in a physical media (to burn a CD or tape and start selling or buying it).
  12. The Internet is not considered a physical media. So in this rationale, by law terms, it is not prohibited to use the Internet as a way to distribute music, at least for phonograms produced/recorded before the Internet era, which includes everything before around 1997. After that, phonograms started to be produced with a revised license (the law terms of what is permitted or not to do with it) that considered the Internet.

Whatever they say, to download music from the Internet takes time, comes without the booklet — which contains a lot of art and valueable information — and is controversial if it is illegal or not. On the other hand, artists and their full high-fidelity discographies have been seen in such a way that seems not rational not to download.

You should decide if you follow what the media says defending their rights — and not the artists’s —, or if you are going to give prestige to a musician and feel all its creative potential can make with your emotions.

How to Download

I opened this space for a friend to explain how to do it. This method uses the Bit Torrent technology and these are the steps to successfully use it:

  1. Download and install some Bit Torrent software as BitComet (only for Windows) or Azureus (Mac, Linux, Java, Windows). These software are free, safe, will not install spyware, virus, malware etc, and their use is completely legal.
  2. Use the www.isohunt.com website to find music by name, artist, etc. It can be used to find also other types of files. You can also search the Internet for other sites that provides “torrents”.
  3. Search, for example, for “Mozart” or “Bach“, etc. Click on these links to see a search result example.
  4. You will find complete collections and very large files, that takes sometimes days to download. The first results isohunt will show are the most active downloads, and because of that faster to download.
  5. Select the item you want, it will expand, and then click the link called “Download Torrent” to start the download.
  6. This will trigger the Bit Torrent software (BitComet of Azureus you downloaded above), that will ask you where you want to download. Choose a directory that you will remember later.
  7. Before selecting OK, you will see a list (huge if it is a complete collection) with the files included in the torrent, and you can select only the files you want, or everything.
  8. Monitor the download activity and guarantee you are downloading in a good speed. If it is constantly slow for a long time, it is usually better to cancel and search for another download.
  9. Even very fast downloads can take days to be fully retrieved if it is big.
  10. After the download finishes, if you use Linux, use Musicman to organize your retrieved files.

Be responsible and good luck.

Choosing a Linux Distribution

It is important to begin by saying that all Linux distributions, including commercial — Red Hat Enterprise Linux, SUSE, Xandros, etc — as well as non-commercial — Debian, Slackware, Gentoo, etc — are all good and are technically able to fulfill most real world needs. To choose amongst them is more related to personal taste of the people who already knows it than to functionality. But a company must think about other aspects — not only taste — to guarantee making the right strategic choice for long term benefits.

Support and Certification

All Linux distributors package, in one way or another, mostly the same set of Open Source softwares (the Kernel, Apache, Samba, libraries, Gnome, KDE, etc). But only the so called enterprise distributions include support services together with their product.

For a user, support really means:

  1. A partner available now and in the long term to transfer operational risks.
    This is the most important point. Companies don’t want to take risks — specially the Open Source risks — for themselves.
  2. Fast access to quality updates.
    Companies in general have limited resources to compile, test and apply OSS updates.
  3. Access to a large set of certified hardware (IHV) and software (ISV) vendors, and availability of pre-tested complex solutions.
    A critical part of any IT project is the support and certification connections between its components (hardware, storage, middleware, etc). The most important and valued function provided by a distributor, even more so than the embedded technology in the OS, is its ability to build ecosystems of certified Independent Hardware and Software Vendors.

Price for a License Versus Subscription Business Models

Companies that sell commercial software (as Microsoft, IBM, Oracle, etc) allow somebody to use their products only after buying the rights to. This “buyable rights” are refered to as a commercial license.

The software provided in any Linux distribution is free of charge. The developers of these softwares have licensed their work under the GPL, BSD, Mozilla Public, IBM Public or some other Open Source licenses, which grants anyone the rights to use and redistribute the software without having to pay any money.

It is a misnomer to say that you are “buying� some Linux distribution (or a license for it to be used). You can’t buy it. It is already yours, in practical terms. It is like saying a user is buying the content of some web site. There is nothing material to acquire. On the other hand this user can subscribe to a service that provides hot line support, access to updates and access to an ecosystem of interoperable certified products and solutions – the support points outlined above.

So enterprise Linux distributors (such as Red Hat, Novell, Xandros) sell these services, and not the software, because the last is free of charge.

Choosing the Best Distribution

There are two responsible and effective ways to use a Linux distribution as part of a company’s IT operations:

  1. Acquire a global commercial Linux subscription such as Red Hat Enterprise Linux or Novell SUSE Linux Enterprise Server.
    A subscription ties together the Open Source software and its global scale support, providing a stable environment for a certified ISV and IHV flourishing ecosystem.
  2. Use free distributors such as as Debian or Slackware and buy support services from an independent local company.
    Free distributions may introduce more risk due to non-global support operations, in addition to a loose integration between software and support, which leads to a weak ISVs and IHVs ecosystem.

In terms of technical flexibility and vendor choice — points that influence cost —, both options are equal. All the benefits of the second option are present in the first, while second lacks the ecosystem aspects.

Thus the conclusion is that it is more reasonable to directly acquire a product that directly ties the support to the software, than manually integrate them at the regional level.

RHEL versus SLES comparison

Companies should look at the following points, in this order, when choosing a Linux distribution to run their business applications:

  1. Which distribution vendor do I have closer commercial relationship?
  2. Who has best pricing model for the value provided?
  3. Which distribution does my technical staff have more experience with?
  4. Which distribution is supported and certified by my providers of hardware and software?
  5. If you are unsure, be responsible and use an enterprise distribution.

There are two enterprise Linux distributors that have a strong ecosystem and penetration in the market: Red Hat Enterprise Linux and Novell SUSE Linux Enterprise. They have differences that every year continue to converging and diverge. See the table for a comparison.

Other Enterprise Distributions

There are several Linux distributions with business models similar to the one adopted by Red Hat and Novell. Most well known are Ubuntu (technically based on Debian), Mandriva (Conectiva and Mandrake fusion), Xandros (also based on Debian.) They are focused on building a product that can scale globally in such a way that support services can be delivered automatically or as a self-service.

There is an intrinsic market law that seeks equilibrium by providing two options in which to choose. One option may be good (there is actually no option when only one path is available), two mature options is better, and three or more options are too much for the market to handle. It appears that the market has already defined its two mature options: Novell and Red Hat.

Even if these other enterprise distributors have better products, they’ll have to spend a considerable amount of energy developing an ecosystem of ISVs and IHVs. More than that, ISVs and IHVs will have to take a break in their operations to listen to what these new distributors have to offer.

Ecosystem is everything. A product with a good ecosystem can easily become much better than an excellent product without an ecosystem. This is probably the most important aspect a company should consider when choosing a Linux distribution.

One cannot say that a certain distribution is better than all others. When searching for a distribution one should be pragmatic in striking a balance between the distribution’s functions and how well it meets the goals of the company or specific project.

Aquecimento Global

SAIBAM, que a Terra não será mais a mesma dentro de 20 ou 30 anos.


Aumento da variação de temperaturaA Natureza não consegue rearranjar seus ecossistemas tão rápido quanto o homem tem feito a temperatura do planeta subir, através da crescente emissão de CO2 (dióxido de carbono), marca de nossa era industrial. Então, antes da maioria de nós deixar esta vida, veremos secas fustigantes, enchentes avassaladoras e extinções irreversíveis. Já começou. Espécies, geleiras e continentes inteiros sumirão do mapa.

O mais terrível não é a mudança na paisagem global, mas os impactos sócio-econômicos. Imaginem as hordas de milhões de pessoas — 6 casas decimais de desabrigados — migrando para as montanhas porque seus paises e cidades viraram parte dos oceanos Índico, Pacífico e Atlântico. Ou teremos séculos de guerras por água e m2, ou aprenderemos a viver em paz e compartilhar os recursos.

Este assunto era um rumor remoto para mim, mas é impossível não se sensibilizar com o documentário Uma Verdade Inconveniente, ainda em exibição em algumas salas de São Paulo. Os fatos relatados alí não me saem da cabeça, e é filme obrigatório para todas as pessoas.

Faça Sua Parte Para Evitar o Aquecimento Global

Mais na Web

Lembre-se: o planeta não é nosso; ele nos foi emprestado pelos nossos filhos (provérbio africano).

Receita de Kiopolo

BeringelasIsto é uma engenharia reversa bem sucedida de uma entrada típica da culinária judaica-sefaradita ou búlgara. Pode ser encontrada em São Paulo no Shoshi Delishop, no Bom Retiro (R. Correia de Melo quase esquina com a Três Rios).

Ingredientes

  • Beringelas: 4
  • Pimentão vermelho: 1
  • Alho amassado: um pouco menos de 1/2 cabeça
  • Azeite extra virgem
  • Suco de limão: 1 se for fraco, 1/2 se for forte
  • Sementes de kümmel, opcional
  • Adoçante ou açucar a gosto
  • Sal a gosto

Modo de Preparo

  1. Coloque as beringelas e o pimentão diretamente sobre o fogo das bocas do fogão sem nenhuma proteção. Isso vai dar um sabor especial ao prato.
  2. Vire de vez em quando com um pegador longo de metal, pegando a beringela sempre pelas extremidades. Toda a pele deve ficar queimada e carbonizada, praticamente se descolando da polpa, e o fruto deve se abrir em alguns pontos revelando estar mole e molhado.
  3. Espere esfriar até uma temperatura que não queime as mãos.
  4. Segure a beringela pelo cabo e remova gentilmente a pele queimada, e por último o cabo.
  5. Faça a mesma coisa com o pimentão, removendo a pele e sementes. Mais detalhes na receita de matbukha.
  6. Coloque a beringela longitudinalmente numa tábua, uma de cada vez, e com uma faca grande massere-a na transversal quebrando suas fibras. Depois pique mais até o ponto de ficar uma massa. E vá juntando todas elas num recipiente final.
  7. Pique o pimentão em pedaços bem pequenos e finos e junte no recipiente final. Ele serve mais para dar um tom vermelho esporádico à salada.
  8. Junto o alho amassado.
  9. Regue com azeite extra virgem. Regue com o limão ou vinagre. Por incrível que pareça, o azedo do vinagre desaparece e ele potencializa o sabor assado da beringela.
  10. Adicione um pouco de kümmel. Atenção para ele não dominar a salada. Ele deve funcionar como uma surpresa em algumas poucas mordidas.
  11. Misture tudo e vá experimentando, regulando o sal, vinagre e adoçante/açucar. É importante ter um sabor levemente adocicado.

Sirva frio, com pão sírio ou outro tipo de pão, como entrada ou petisco.

Kiopolo é delicioso e quem experimenta quer a receita. Eu sempre preparo esta receita quando faço matbukha, porque o trabalho é o mesmo.

outras versões desta receita na Internet.

Padrões Abertos e Linux no Desktop

Hoje a indústria usa o sistema operacional de desktop de praticamente um único fornecedor, cria aplicações gráficas 100% dependentes dele, e usa uma suite de escritório que também só funciona sobre esse mesmo sistema operacional. Ainda por cima, os documentos de formato proprietário com que o mercado usa só podem ser gerados e consumidos por essa mesma suite.

Se nossos CDs de música tocam em qualquer CD player, por que nossas aplicações, páginas da web, documentos, etc não podem ser usados em qualquer sistema operacional, plataforma de hardware, etc ?

A demora para isso acontecer reflete quão dependente dessas tecnologias proprietárias é o mercado. Isso é caro principalmente porque não há com quem negociar alternativas, e por isso essas tecnologias terão o preço que seu fornecedor quiser.

A IBM ainda está analisando o direcionamento futuro dos nossos desktops internos para funcionários. Não foi decidido entre Linux ou Vista, nem Darwin, nem BSD, nem nenhum outro sistema operacional.

Temos iniciativas internas fortíssimas para que os produtos e serviços de nossa Intranet sigam Padrões Abertos. Dessa forma, um funcionário pode escolher o sistema operacional que melhor se adequar ao seu trabalho.

Não usamos uma tecnologia proprietária de impressão remota, e sim o serviço que usa Padrões Abertos para imprimir na rede.

Não usamos uma aplicação proprietária de VPN, mas o serviço de VPN que usa Padrões Abertos.

Não temos um serviço de diretórios de uma implementação proprietária, e sim um diretório corporativo baseado no Padrão Aberto LDAP.

Não usamos documentos de formatos proprietários, que só podem ser gerados e consumidos por uma única suite de escritório, mas reforçamos o uso do novo Open Document Format, baseado em XML, introduzido pelo OpenOffice.org, que pode ser aberto em qualquer suite de escritório.

E por aí vai….

A última fronteira é a convergência gradativa dos produtos de workgroup baseados em Lotus Notes com o novo Workplace Client Technology, que implementa Padrões Abertos, e que é baseado no Eclipse (como dezenas de outros produtos da IBM).

E digo mais: as tecnologias proprietárias que usamos internamente nos nossos desktops, tivemos que adotá-las porque quando surgiu a necessidade de resolver o problema de negócio que elas resolvem, simplesmente não haviam opções que implementassem Padrões Abertos. Conforme surgem Padrões para aquele determinado problema, isso entra em pauta e a migração é estudada seriamente. Logicamente analizando custos, funcionalidades, viabilidade, etc, porque essa é a forma racional de se fazer mudanças.

Padrões Abertos. Padrões Abertos. Padrões Abertos. Essas são as palavras do momento.

Para o mundo comercial, isso é mais importante do que ter acesso ao código fonte de um software. E é algo que deve estar sempre presente na pauta de TI do CIO.

Pregamos que companhias que inovam reutilizando Padrões Abertos levam vantagem porque seus recursos são liberados para trabalhos que agregam maior valor, e porque as oportunidades do mercado se expandem à medida que os Padrões Abertos proliferam.

É o que dizemos aos nossos clientes. É o que acreditamos. E é o que fazemos.

Fiocruz no World Community Grid

World Community GridO World Community Grid é um projeto fantástico onde pessoas como você e eu doam o poder computacional ocioso de nossos PCs para ajudar a encontrar a cura do cancer e outras doenças, descobrir detalhes de proteinas humanas, fazer pesquisa genética, enfim, mastigar dados a fim de melhorar o mundo.

WCG rodando o algoritmo da Fundação Oswaldo CruzEu rodo ele no meu laptop a anos e até ontem eu estava “ajudando” a curar a AIDS. Hoje fiquei impressionado porque tudo mudou. Nossa brasileiríssima Fundação Oswaldo Cruz está usando o WCG para “achar similaridades entre proteinas de todas as seqüências de genomas dos organismos do mundo. Essas relações entre proteinas vão ajudar a inferir suas prováveis funções e estruturas, levando a novas descobertas em medicina e biologia“. Uau !

O screensaver do WCG que se instala nos PCs é um programa genérico, apto a receber um bloco de dados mais um pedaço de software capaz de processa-lo. Ele faz tudo isso sincronizado com o grid do WCG, enviando os resultados e recebendo um novo bloco para processar. O resultado é um belo e útil screensaver.

Veja esta interativa e divertida animação explicando o funcionamento de um grid computacional.

Instale o screensaver em seu computador. Está disponível p/ Linux, Windows e Mac. É muito bom saber que de alguma forma podemos ajudar essas tão importantes pesquisas.

Receita de Matbukha

PimentõesProvei matbukha (ou matbucha ou matbuha) pela primeira vez em um restaurante libanês em Abu-Gosh, uma vila árabe perto de Jerusalém.

Fiquei impressionado, e depois comprei nos supermercados de Israel matbukha pronta várias vezes. Bem, aqui não há essas coisas para vender, então achei a receita na Internet, que minha mãe traduziu para mim. Fiz e ficou muito bom.

Ingredientes

  • 2 latas de tomates pelados
  • 4 pimentões vermelhos
  • 1 pimentão verde (para variar a cor)
  • 1/2 cabeça de alho amassado
  • 1 colher de sopa de páprica doce
  • Pimenta ardida a gosto
  • 1/2 xícara de café de azeite de oliva virgem
  • Sal e açucar ou adoçante a gosto

Modo de Preparo

  1. Coloque os pimentões diretamente sobre o fogo das bocas do fogão sem nenhuma proteção e vire de vez em quando até toda a pele ficar preta e carbonizada. O fogão vai ficar sujo, mas é essa assagem que vai dar um sabor especial ao prato.
  2. Deixe-os esfriar até uma temperatura que não queime as mãos.
  3. Limpe os pimentões removendo facilmente a pele carbonizada. Muitas pessoas evitam pimentões porque os consideram de dificil digestão. Bem, é esta pele carbonizada, de pura celulose indigesta, a vilã da estória. Depois de remove-la, o pimentão é só delícia.
  4. Abra-os e remova cirurgicamente o miolo com as sementes.
  5. Lave-os cuidadosamente removendo o resto de pele e semente que ficaram grudados.
  6. O resultado parece um bife fino e grande, que deve ser cortado em pedaços quadrados de 1 ou 2cm2.
  7. Triture muito pouco os tomates pelados. Devem sobrar pedaços relativamente grandes.
  8. Junte os tomates, pimentões, alho amassado e pimenta ardida numa panela.
  9. Ferva em fogo baixo por uns 20 minutos, mexendo sempre.
  10. Pitada de açucar ou adoçante (isso é muito importante) e sal.
  11. Misture a páprica ao azeite numa xícara e junte à panela.
  12. Cozinhe devagar, com panela destampada e fogo baixo até a água evaporar e engrossar.
  13. Esfrie e espere algumas horas antes de servir, para o sabor apurar.

Matbukha se come fria, como entrada com pão sírio ou outro pão, e é deliciosa.

Linguagens de Programação na Indústria

Um artigo da eWeek relaciona algumas linguagens e os motivos pelos quais deve-se aprender cada uma delas.

Um dado interessante do artigo é o número de vagas de trabalho disponíveis no mercado, para cada skill de linguagem, extraidas de dice.com.

Coloquei em ordem crescente de número de vagas:

  1. Ruby e Ruby on Rails :: Job availabilities: 210 and 54, respectively
  2. Python :: Job availabilities: 811
  3. AJAX :: Job availabilities: 1,106
  4. PHP :: Job availabilities: 1,152
  5. VB.Net :: Job availabilities: 2,090
  6. JavaScript :: Job availabilities: 4,406
  7. Perl :: Job availabilities: 4,810
  8. C# :: Job availabilities: 5,111
  9. C :: Job availabilities: 6,164, including all derivatives
  10. Java :: Job availabilities: 14,408

Note que os números nada tem a ver com a qualidade, funcionalidade ou facilidade inerente da linguagem de programação/tecnologia. Mas os números parecem dar uma pista da presença, maturidade e ecossistema de cada uma delas no mercado.

É o que um amigo meu diz: “Tu tem que ir de megafone para a avenida Paulista as 12:30 e perguntar quem é que manja de tal tecnologia ou produto. Esse é um bom indicador de seu ecossistema.”

Colaboração e Teamwork

Growth CycleFui a um seminário sobre liderança, colaboração e teamwork.

Tirando os cliches inevitáveis, uma coisa eu gostei que foi dita: colaborar de forma eficiente e benéfica é ainda um desafio, mesmo nesta nossa era de tecnologia avançada. Bem, reconhecer o problema é o primeiro passo para resolve-lo.

Altos executivos da IBM foram questionados certa vez sobre os pontos que levam a um bom ambiente de teamwork e colaboração, que depois foram validados com a NASA (se não me falha a memória) e com a American Society for Quality (se não me falha a memória). O resultado foi este:

  1. Procurar oportunidades de colaboração no seu dia-a-dia.
  2. Considerar as conseqüências e impactos nos outros antes de agir.
  3. Estar aberto para diversidade e pontos de vistas distintos.
  4. Comunicar de formar aberta e honesta.
  5. Construir confiança e respeito mútuo.
  6. Buscar alternativas que tragam ganhos para ambas as partes.
  7. Encorajar inovação e idéias criativas.
  8. Buscar a melhor solução para o seu time na resolução de problemas.

A Mais Importante Notícia do Ano

Open Source JavaA Sun abriu o código fonte de sua implementação do Java.

Teria muitas coisas positivas para falar sobre isso, mas o Kov já disse boa parte, e o Simon Phipps também.

Faltava no mundo Open Source uma linguagem/tecnologia de desenvolvimento universal, madura, altamente padronizada com portabilidade em mente, e com ecossistema vigoroso em toda a indústria. Java tem todos estes atributos.

Essa carência, somado ao fato de Java não ser instalado automaticamente quando se instalava qualquer Linux (por questões de lincenciamento), fervilhava o idealismo da comunidade Open Source fazendo os programadores lançarem mão de outras linguagens/tecnologias que ou tem portabilidade questionável (como C, C++, por causa de suas bibliotecas), ou que ainda não se estabeleceram com maturidade, performance e ecossistema industrial (como PHP, Perl, Python, Ruby), ou ambos (como C#, Mono). O resultado na indústria é uma descentralização de skill de desenvolvimento de software de negócio.

Java entrando no cenário Open Source muda tudo isso. Será benéfico para o ecossistema de Computação Aberta, e principalmente para o de Linux como plataforma de negócio.

Minha previsão agora, é que as JVMs da IBM, Bea etc serão também abertas em breve para logo depois se fundir numa JVM/JDK única de alta performance, portável, modular, facilmente instalável, e de bem estabelecido ecossistema.

É a maior notícia do ano para TI. Talvez da década.

Google Maps Plugin for WordPress

This software will let you easily render Google Maps anywhere on your blog as a web service. It also includes code for easy integration with WordPress blogs, but what the code does best can actually be used with any other blog system or plain web page.

This plugin will let you easily create from simple maps with one marker and a text balloon, to complex multimarker maps with hypertext balloons as this page.

Installation on WordPress Blogs

Install it as any other plugin (unziping plugin files under [WORDPRESS_ROOT]/wp-content/plugins directory and activate it in WP Plugins admin tool). Then go to the Google Maps API key signup page, get an API key for your website, and install it in the plugin’s admin page under Options.

Google Maps WP admin page

Creating Simple Maps

This is the easy part.

  1. Go to Google Maps, find the spot you want to show, select Map, Satelite or Hybrid view buttons, double-click on the most important point on the map to centralized it, and define the zoom factor you want.
  2. On the left-top corner of the map, click on the “Link to this page” link, and copy your browser’s location to the clipboard. You can do the same for complex maps created on the My Maps section of Google Maps website.

    Link selection

  3. While creating the post, select the text that will be displayed on the map marker, and create a link with it.

    Select text for the map's mrker

  4. Paste the map URL on the Link URL field, and on Title write “googlemap“.

    Link creation dialog

  5. Continue editing your post and publish.

You are done. This example will render a map like this (don’t forget to click on the marker to see the balloon):

TuxThis will be a map’s marker text with an image.

Passing Parameters

You may have noticed that on the Title field above we used other commands. In fact you can use the following switches, separated by “;” to control the way the map will appear in your site.

googlemap
Instructs the plugin to transform this link into a Google Map area. If not used, the plugin will not work on the link and you’ll get a plain link to the Google Maps site.
nocontrol or nocontrols
Renders a map without the zoom and scale controls
nomarker or nomarkers
Renders a map without the marker with the information balloon.
w:SIZE_IN_PIXELS and h:SIZE_IN_PIXELS
Defines the size of the map area in pixels.
w:PERCENT% and h:PERCENT%
Defines the size of the map area relative to full width and height.

Since other plugins may use the title attribute, you can also put these commands in the rel attribute and activate this functionality in the plugin configuration dialog.

Some examples for the Title (or rel) field:

googlemap
Renders a map with controls, marker an default sizes, as specified in the plugin’s admin page, under WP Options.
googlemap;nocontrols;w:300;h:200
Renders a 300×200 map with marker but no zoom controls.
googlemap;nomarker;nocontrols;w:100;h:100
Renders a small 100×100 map without marker and zoom controls.
googlemap;nomarker;nocontrols;w:100%;h:300
Renders a maps that fills the full width available with a 300 pixels height, without markers and zoom controls.

Creating Complex Maps

This procedure requires some HTML knowledge, but will let you create maps with multiple markers, and results as good as on this post.

The proccess consists of creating a definition list (<dl> XHTML element) of a center point and markers with their text balloons.

Learn by example. Pay attention to the following complex map, and select all its markers to see the text inside their balloons:

Center of map
map
Center of São Paulo
map
Flea market
map
Traditional market
balloonless marker
map
Japanese town

It was generated by this (X)HTML code:

<dl title="googlemap;w:100%;h:400">
	<dt><a href="http://maps.google.com/?z=15&ll=-23.550887,-46.631985&om=1">Center of map</a></dt>

	<dt><a href="http://maps.google.com/?ll=-23.550592,-46.633122">map</a></dt>
	<dd><strong>Center of São Paulo</strong></dd>

	<dt><a href="http://maps.google.com/?ll=-23.547563,-46.631041">map</a></dt>
	<dd>Flea market</dd>

	<dt><a href="http://maps.google.com/?ll=-23.54535,-46.627693" title="marker">map</a></dt>
	<dd>Traditional market</dd>

	<dt><a href="http://maps.google.com/?ll=-23.54715,-46.637263">balloonless marker</a></dt>

	<dt><a href="http://maps.google.com/?ll=-23.555195,-46.635547" title="marker">map</a></dt>
	<dd>Japanese town</dd>
</dl>

So the structure must folow these rules:

  1. Create a definition list (<dl>) and put map-related commands and parameters on title= attribute as specified above.
  2. First definition term (<dt>, first green line) must contain only a link to Google Maps site, to define its center and other map parameters. The text for the link is ignored when a map is generated, so use a text like “Center of Map” so people accessing your posts outside your blog (for exemple, through feed readers) will have a clue what is this link for.
  3. The rest is a pair of terms and definitions (<dt> and <dd>) with the marker position (as a Google Maps URL) and the text on the balloon respectivelly.
  4. You can create a balloonless markers specifying only a <dt> without a <dd>.
  5. Whatever you put inside the <dd> block will appear inside the balloon. Put links, images, lists, tables, etc.

Using Google My Maps or KML and GeoRSS maps

You can use Google My Maps service to create and manage colorfull markers, paths, regions and the text inside the balloon, and simply use the “Link To This Page” link to embed the map in your page as described above.

The plugin will use the KML-exported version of your map to create the balloons, markers, regions and paths. Simply exaplained, KML is XML dialect that contains all meta information of your maps: markers positions and images, line colors, balloon texts, etc. You can create KMLs with tools like Google Earth, Goole Maps or even using a plain text editor. GeoRSS format is also supported but can’t be used for paths, regions and markers colors, only plain geographical positions.

The good news is that you can embed KML-maps from any source, and not only from Google My Maps. You can upload a KML file to your web server and pass it to the plugin to render it. Here is an example on how to do it in a more advanced way:

<dl title="googlemap;w:100%;h:400" id="my-wonderful-map-with-kml">

	<dt><a href="http://maps.google.com/?z=7&ll=-23.550887,-46.631985&om=1">Center of map</a></dt>

	<dt><a title="kml" href="http://my.server.com/spots-on-the-farm.kml">markers</a></dt>

	<dt><a title="kml" href="http://my.server.com/spots-on-the-beach.kml">more markers</a></dt>

</dl>

This example will render a map centralized on geo position -23.550887 -46.631985 and overlay it with two KML specifications: spots-on-the-farm.kml and spots-on-the-beach.kml. Note the required title=”kml” parameter that indicates to the plugin that this is KML or GeoRSS overlay and not a plain marker position.

Positioning and Style Possibilities

To have better control over the map positioning and overall look, you can manually edit the HTML code while posting, including style and class attributes. Find the <a> or <dl> tag for your link and use this examples to get some clues:

  • <a style=”float:left; width:300px; height:300px;” title=”googlemap”
    Renders a 300×300 map floating on left of the paragraph. See example.
  • <a class=”photo” style=”float:right;” title=”googlemap”
    Renders a map with default dimensions floating on the right of the paragraph, with style class photo, that in my theme defines some margins and borders.
  • <dl style=”visibility: hidden;” title=”googlemap”
    Using style=”visibility: hidden” will make the browser hide the map definititon text while loading the page. Seconds later, when the plugin renders the maps on your page, the hidden blocks will finaly appear as maps.

The HTML attributes id=, style= and class= you specify will be inherited by the generated map.

In addition, a CSS class called map will be added to all maps, and to all balloons a CSS class named balloon will be assigned. This way you can define your own style for these elements.

Troubleshooting

Some common problems people have, and solutions.

  • Map does not appears or appears on a different geo locationMake sure the Google Maps URL you are pasting is correct and complete. A correct URL must have the following parameters: ll= required to define latitude and longitude for center of the map or a marker, om= option to show or not the overview map on bottom-right, z= required to define the initial zoom factor, t= option to define if map is plain, satellite or hybrid, msid= required if you are pasting My Maps from Goole Maps website.
  • Problems with &You should not have problems with & chars being modified by the WordPress editor. If so, it means you are working with complex maps. Yes, WordPress WYSIWYG editor sucks a little bit. So if you are working with complex maps, you should switch to the plain text editor. You can’t just open the post editor in WYSIWYG and select the plain text editor after that. The mess was already done. You will have to edit your profile under Users->Your Profile and deselect the “Use the visual editor when writing” options when you edit that post. Once it is saved you can reselect it again.
  • Grey area instead of markers, or simply don’t have markersGoogle Maps API uses a lot of CSS style to render its maps on your page. This problem is caused by a conflict between CSS needed by Google Maps and your page or theme defined style. Use Firefox’ DOM inspector to drill down into your document structure until you find the markers XHTML nodes. Then switch to CSS Style Rules mode on the inspector, then select a rule that was defined by your theme, on the top-right box, then delete “background-” related properties on the bottom-right box, one by one, until the marker appears. This will indicate you which property you have to delete from your theme’s or own style.css file.
  • Problems displaying the map on IE7

I still don’t know what is the problem here. I rarely use Windows nor IE, so I can’t reproduce it. This is probably caused by the same CSS conflict above. If you can correctly see the map on this page with IE7, indicates that the problem is specific to your page and related stylesheets. You must debug your CSS styles.

No WordPress ?

If you use other blogging systems, or just want a simple way to create maps on your pages you can still take advantage of this plugin.

Download the plugin, unzip, install its content somewhere on your server accessible from the web. Then edit the HTML source of the pages you want to render maps, find the <head> block, and include the following code inside of it:

<!-- Google Maps Plugin (begin) -->
<!-- http://avi.alkalay.net/2006/11/google-maps-plugin-for-wordpress.html -->

<!-- Google Maps API -->
<script src="http://maps.google.com/maps?file=api&v=2.x&key=MY_API_KEY" type="text/javascript">
</script>

<!-- Google Maps Plugin logic -->
<script src="http://my.site.com/path/to/plugin/googlemapsPlugin.js" type="text/javascript"></script>

<!-- Google Maps Plugin initialization -->
<script type="text/javascript">
	//<![CDATA[

	MapPluginInit(
		/* Default maps width  */          500,
		/* Default maps height */          300,
		/* Use rel instad of title? */     false);
	//]]>
</script>

<!-- Google Maps Plugin (end) -->

Change the red parts to fit your needs. Every page containing the above block will be able to render simple and complex maps as described.

About

This plugin was inspired on Macdiggs Google Maps plugin, but was completely redesigned, rewritten, has much more functionality, made more user friendly, has cleaner code and is more standards oriented. The former Macdiggs’ plugin will not receive updates anymore so this is the plugin you should be using.

Instalando Java e Eclipse em Linux

permalink Porque Java com Linux ?

Nos primórdios das tecnologias, todas elas nasciam proprietárias porque seus criadores queriam explora-las ao máximo, por serem todas novidades.

Depois da popularização do PC, e mais ainda, da Internet, fabricantes começaram a se reunir ao redor de Padrões Abertos para criar uma rede de valor onde todos — fabricantes e usuários — acabam ganhando.

Os Pilares do e-businessExistem hoje inúmeros Padrões Abertos, mas os que se destacam são os seguintes:

  • HTML
    É a representação universal de interfaces com usuários. Hoje qualquer usuário de computador sabe usar um browser e navegar através de um hipertexto. HTML, ou melhor ainda, hoje, DHTML ou AJAX, é o padrão aberto para aplicações interagirem com usuários.
  • XML
    Antes de XML, não havia um padrão aberto amplamente aceito que permitisse qualquer aplicação falar com qualquer outra aplicação, mesmo de fabricantes diferentes. XML se tornou a base dos Web Services e Arquitetura Orientada a Serviços, que traz o benefício da integração de processos, com parceiros, clientes e fornecedores.
  • Java Enterprise Edition
    Java é a tecnologia escolhida por toda a indústria para transformar processos de negócio em software. É o Padrão Aberto para se escrever aplicações. Antes de Java, desenvolvedores usam diversas linguagens, sem uma metodologia universal de programação e sem nenhum padrão de bibliotecas de alto nível. JEE (Java Enterprise Edition) é um padrão de biblioteca com métodos universais para aplicações de negócio.
  • Linux
    É o sistema operacional escalável e multiplataforma para rodar tudo isso. É o componente aberto que faltava para ligar a lógica de negócio com padrões abertos de HW.

Essas quatro tecnologias juntas provém tudo que um desenvolvedor precisa para criar suas aplicações de negócio.

permalink Java comparado a C/C++, PHP, Perl e Python

Cabe ao desenvolvedor escolher a linguagem/tecnologia certa para a aplicação certa. Não só os aspectos tecnológicos devem ser levados em conta, mas também aceitação no mercado, aderência a padrões, reputação, política de atualização da tecnológica, prontidão para uma aplicação de negócios, etc.

  • C é uma linguagem criada para desenvolver sistemas operacionais, ou algoritmos de baixo nível, quase no nível da máquina, e é nesse nível que essa linguagem se sai melhor. C++ surgiu a alguns anos trazendo orientação a objetos, mas ambas linguagens falharam em padronizar suas semânticas e, principalmente, bibliotecas multiplataforma abertas, e de uso genérico. A não ser que você esteja escrevendo sistemas operacionais, ou bibliotecas de acesso a hardware, uma linguagem mais prática que C ou C++ deve ser escolhida para desenvolver sua aplicação de negócio.
  • PHP é uma linguagem/tecnologia desenhada para criar páginas web dinâmicas. Seus programas são geralmente mesclados com código HTML e equivale a JSP e ASP. É muito usada e provou seu valor, porém tem pouca penetração no mundo corporativo e de aplicações de negócio (de fabricantes de SW), e por isso pouco suporte da indústria para que a tecnologia evolua como um padrão. Então, por ser um investimento de risco, dificilmente uma grande empresa vai escolher PHP como tecnologia estratégica para a confecção de suas aplicações críticas, mesmo porque PHP é mais madura somente para aplicações web.
  • Perl é abreviação de Practical Extract and Reporting Language, que sugere ter sido criada para manipular texto. A linguagem e suas bibliotecas cresceram para muito além disso, e há hoje quem a use para fazer grandes sistemas. Porém isso é considerado um exagero de uso, pois os programas são interpretados em tempo de execução, o que acarreta performance limitada, e é de fato desenhada para automatizar tarefas de sistema operacional. Python, apesar de ser mais moderna e poder ser compilada, não foge muito deste escopo também. Além disso, ambas ainda não conseguiram uma aceitação comercial madura, e, não representando um investimento seguro a longo prazo, ainda não tem sido escolhidas como estratégicas para a fábrica de SW de uma empresa, ou para um sistema complexo e de missão crítica.

Em contrapartida, a tecnologia Java tem as seguintes características:

  • Atingiu um nível de maturidade e aceitação de toda a industrial que o torna um investimento seguro quando da escolha de uma plataforma de desenvolvimento de aplicações de negócio.
  • Evolui de acordo com as decisões de um comitê independente chamado Java Community Process, onde empresas e indivíduos votam igualmente para a aceitação de uma novidade. São integrantes ativos do JCP empresas como IBM, Apache Software Foundation, Dolby Laboratories, JBoss, SAP, Oracle, Nokia, Sony, etc. Lista completa em http://jcp.org/en/participation/members.
  • Toda a indústria respeita as decisões do JCP, evitando o surgimento de derivados (forks) de comportamento diferente.
  • É um grande polo tecnológico, tendo somente .NET como seu polo oposto e concorrente (e ainda imaturo de certa forma).

permalink Instalando Java Em Linux

Há muitas formas de instalar a JVM em Linux, mas há somente uma forma correta: usando RPM através do repositório JPackage.

permalink Sobre Repositórios de RPMs

A instalação de um pacote RPM pode falhar se outro pacote precisa ser instalado antes. Isso é conhecido como o inferno das dependências.

Para resolver este problema a comunidade criou ferramentas de instalação de pacotes como o Yum e o APT, que, junto com os metadados oferecidos por um repositório de RPMs, liquidam este problema calculando tudo que é necessário fazer para instalar certo pacote, atualizando automaticamente pacotes já instalados, ou instalando novos, tudo para satisfazer as dependências do pacote que o usuário deseja instalar.

Um repositório é um site na web que contem vários RPMs e metadados de interdependências sobre esses pacotes, que são usados por ferramentas como yum e apt-get.


permalink
O projeto JPackage e seu Repositório de RPMs

jpackage logoO JPackage é um repositório de RPMs de alta qualidade de softwares relacionados a Java. É uma comunidade de pessoas que empacotam em RPM as JVMs mais conhecidas do mercado, bem como softwares Java populares como Tomcat, Eclipse, Jakarta, etc.

A primeira pergunta que surge depois que dizemos isso é: “Mas as JVMs da Sun, IBM, etc já não são disponibilizadas em RPM ?�? Sim, mas cada fornecedor empacota como bem entende, sem seguir nenhum padrão de diretórios ou do sistema operacional. E essa despadronização faz a tecnologia como um todo ser mais difícil de usar.

O Projeto JPackage resolveu isso definindo uma organização de diretórios que permite multiplas JVMs, e lugares padronizados para arquivos JAR, WAR, EAR, etc. O JPackage inovou simplesmente aplicando os conceitos do Filesystem Hierarchy Standard — um padrão aberto dos mais importantes para Linux — aos softwares Java.

O resultado é tão bom, que a Red Hat, SUSE, Mandriva e outros adotaram o padrão JPackage de empacotamento e diretórios para tudo que se refere a Java em suas distribuições (RHEL, Fedora, SLES, SLED, OpenSUSE, NLD, Mandriva, etc).

permalink Problemas do JPackage

O JPackage tem uma diretriz de fornecer em seu repositório somente RPMs de softwares livres. Por isso, softwares que não tem licenças livres estão lá somente como RPMs-fonte, que não são tão simples de se instalar, mas mesmo assim promovem a organização e a qualidade do JPackage. Entre esses softwares estão a própria JVM, que vamos demonstrar sua instalação agora.

permalink Inicializando o JPackage em seu sistema

Antes de instalar qualquer RPM oferecido pelo JPackage, você precisa configurar as ferramentas que acessam e instalam os pacotes automaticamente no seu sistema.

Nos nossos exemplos, vamos usar o Fedora Linux com YUM. Pode-se optar pelo apt-get ao invés do YUM, ou de outra distribuição Linux ao invés do Fedora. No caso do Red Hat Enterprise Linux ou CentOS, o processo é idêntico.

permalink Tenha o YUM ou apt-get no seu sistema

No caso do Fedora 4, RHEL 4 ou CentOS 4, já temos o YUM instalado no sistema, e só teremos que configura-lo.

No caso de outro Linux, você pode testar se estas ferramentas estão instaladas simplesmente executando o comando yum ou apt-get.

Se você finalmente concluiu que não as tem, encontre-as aqui:

Nos nossos exemplos, vamos usar o Yum.

permalink Configure o YUM para usar o repositório JPackage

Basta instalar um arquivo de configuração no diretório /etc/yum.repos.d/ desta maneira:

bash# cd /etc/yum.repos.d/
bash# wget http://www.jpackage.org/jpackage.repo

Edite o arquivo jpacakge.repo que você acabou de baixar habilitando e desabilitando os canais de RPMs específicos para seu sistema. Por exemplo, no nosso Fedora Core, garantimos que os canais jpackage-generic e jpackage-fc contém a linha “enabled=1�?.

permalink Instale o primeiro pacote

O pacote jpackage-utils deve estar instalado para começar usar o repositório. Nas últimas versões das distribuições populares, ele já está instalado. Nesse caso é boa idéia atualiza-lo.

Para fazer isso:

bash# yum install jpackage-utils   # No caso de não estar instalado ainda.
bash# yum update jpackage-utils    # Para atualiza-lo.

permalink Instalando a Máquina Virtual Java (JVM)

Esta é uma das partes mais difíceis porque por questões de licensa o Projeto JPackage não tem permissão para prover o RPM pronto para ser instalado de softwares que tem licensa restrita. É o caso de todas as JVMs comerciais. O JPackage provê o pacote fonte que a partir dele pode-se construir fácil, porém manualmente, o RPM instalável. E vamos demonstrar isso aqui.

permalink JVM da IBM

Seguimos estes passos:

  1. http://www.jpackage.org
  2. Procuramos e baixamos o nosrc.rpm da JVM da IBM. A última vez que olhamos estava em http://mirrors.dotsr…./java-1.5.0-ibm-1.5.0.2.3-3jpp.nosrc.rpm
  3. Consultamos o pacote para descobrir de onde se baixa a JVM da IBM com o comando rpm:
    bash# rpm -qpi java*nosrc.rpm
    Name        : java-1.5.0-ibm               Relocations: (not relocatable)
    Version     : 1.5.0.2.3                         Vendor: JPackage Project
    Release     : 3jpp                          Build Date: Tue 15 Aug 2006
    Install Date: (not installed)               Build Host: tortoise.toronto.redhat.com
    Group       : Development/Interpreters      Source RPM: (none)
    Size        : 395165271                        License: IBM Binary Code License
    Signature   : (none)
    Packager    : Thomas Fitzsimmons
    URL         : http://ibm.com/developerworks/java/jdk/linux/download.html
    Summary     : IBM Java Runtime Environment
    Description :
    This package contains the IBM Java Runtime Environment.

    e descobrimos que devemos procurar na URL marcada.

  4. Fomos para http://ibm.com/developerworks/java/jdk/linux/download.html, nos registramos, escolhemos baixar a SDK 1.5 (que é a versão do RPM) em formato tar-gzip (tgz). Tivemos que baixar também a biblioteca javacomm do mesmo lugar. No fim copiamos tudo para o diretório de fontes para RPMs assim:
    bash# cd /diretorio/onde/baixei/SDK
    bash# cp ibm-java2-sdk-50-linux-i386.tgz /usr/src/redhat/SOURCES
    bash# cp ibm-java2-javacomm-50-linux-i386.tgz /usr/src/redhat/SOURCES

    No SUSE, copie para /usr/src/rpm/SOURCES.

  5. Construimos os pacotes finais com este simples comando:
    bash# cd /diretorio/onde/baixei/nosrc.rpm
    bash# rpmbuild –rebuild java*nosrc.rpm

    e vimos uma série de coisas acontecendo: é a construção do pacote.

  6. Quando terminou, encontramos todos os pacotes gerados em /usr/src/redhat/RPMS/i386. Instalamos todos assim:
    bash# cd /usr/src/redhat/RPMS/i386
    bash# rpm -Uvh java*ibm*rpm

    e a JVM da IBM está instalada.

O padrão JPackage definiu que a JVM deve ser a soma de uma série de sub-pacotes, todos com nome padronizado, e os que geramos neste exemplo são:

java-1.5.0-ibm-1.5.0.2.3-3jpp.i386.rpm A JRE mínima. É o pacote básico que você deve instalar.
java-1.5.0-ibm-alsa-1.5.0.2.3-3jpp.i386.rpm Suporte a arquitetura de audio ALSA do Linux.
java-1.5.0-ibm-plugin-1.5.0.2.3-3jpp.i386.rpm Java Plugin para os browsers Mozilla e Firefox. Não obrigatório.
java-1.5.0-ibm-devel-1.5.0.2.3-3jpp.i386.rpm O compilador Java e a SDK. Instale-o se você vai programar em Java.
java-1.5.0-ibm-src-1.5.0.2.3-3jpp.i386.rpm Fontes de programas em Java, para estudo e teste.
java-1.5.0-ibm-jdbc-1.5.0.2.3-3jpp.i386.rpm Driver JDBC genérico para o unixODBC genérico. Não é necessário se você vai usar o driver JDBC de seu banco de dados.
java-1.5.0-ibm-demo-1.5.0.2.3-3jpp.i386.rpm Alguns programas demo. Não é obrigatório.
java-1.5.0-ibm-javacomm-1.5.0.2.3-3jpp.i386.rpm Java Communications API para Linux.

No JPackage há modelos de empacotamento (src.rpm) das JVMs da IBM, Sun, BEA e Blackdown. Para instalar qualquer uma delas, você terá que construir o RPM como demonstramos aqui.

A diferença entre elas está no nome do RPM (“ibm�?, “sun�?, “blackdown�?), e você pode ter instalado em seu sistema JVMs de vários fornecedores simultaneamente. Os RPMs de todos os fornecedores, segundo o padrão JPackage, obedecem esta mesma convenção de nomes de sub-pacotes.

permalink Instale Outros Softwares Java que Não Tem Fonte

Será necessário instalar outros RPMs sem fonte para usar corretamente outros pacotes populares do JPackage. Tentanto instalar o tomcat, verificamos que ele necessita do JTA, que é uma API de transações.

Então repetimos os conceitos do passo anterior:

  1. Começamos em http://jpackage.org
  2. Procuramos e baixamos o nosrc.rpm da JTA. A última vez que olhamos estava em http://mirrors.dotsrc.org/jpackage/1.6/generic/non-free/SRPMS/jta-1.0.1-0.b.4jpp.nosrc.rpm
  3. Consultamos o pacote (ou as infos sobre o pacote em jpackage.org) para descobrir de onde se baixa a JTA, com comando rpm, e descobrimos que precisamos procurar em http://java.sun.com/products/jta/.
  4. Desta vez, tivemos que baixar dois ZIPs: o de classes e o de documentação. E copiamos ambos para o diretórios de fontes de RPM
    bash# cd /diretorio/onde/baixei/JTA
    bash# cp jta*-classes.zip jta*-doc.zip /usr/src/redhat/SOURCES
  5. Construimos os pacotes finais e instalamos os RPMs gerados:
    bash# cd /diretorio/onde/baixei/nosrc.rpm
    bash# rpmbuild –rebuild jta*nosrc.rpm
    bash# cd /usr/src/redhat/RPMS/noarch
    bash# rpm -Uvh jta*rpm

    E a JTA está instalada.

permalink Instalando outros Softwares Java pelo JPackage

Neste ponto, você já tem o repositório JPackage configurado no seu sistema, e a JVM de sua escolha instalada conforme ditam os padrões FHS de diretórios do Linux.

Agora é muito fácil instalar qualquer outra aplicação, biblioteca ou JAR disponível no JPackage, representado pelo nome do pacote na lista a esquerda em http://www.jpackage.org.

Para instalar ou atualizar um pacote, bastam os seguintes comandos respectivamente:

bash# yum install [nome do pacote]    # Para   instalar.
bash# yum update [nome do pacote]     # Para atualizar.

O YUM, usando os metadados do repositório, vai resolver todas as dependências, baixar tudo que for necessário, e instalar os pacotes.

permalink Exemplo: Instalando o Apache Tomcat

O Apache Tomcat é um servlet container, que se integra ao webserver e permite a criação e execução de aplicações web feitas em Java (servlets).

Para instalar o Tomcat, segundo nosso exemplo anterior, basta:

bash# yum install tomcat5

Após resolver todas as dependências, o YUM determinou que para instalar o Tomcat, seria necessário instalar também vários módulos do Jakarta, Axis, módulos de XML, etc. E tudo foi automaticamente baixado e instalado num mesmo passo.

permalink Instalando o Eclipse

O Eclipse foi a princípio uma poderosa ferramenta de desenvolvimento de aplicações, ou IDE.

Desde a versão 3, ele foi reestruturado para ser um “servidor de aplicações�? de desktop. Ou seja, se tornou o que chamamos de Rich Client Platform — ou RCP — que é uma base genérica que provê a infraestrutura padronizada que qualquer aplicação de desktop precisa. O IDE então passou a ser uma aplicação, um plugin, do RCP. O IDE Java está no JPackage com o nome de eclipse-jdt, e para instala-lo, basta:

bash# yum install eclipse-jdt

Como sempre, todos os outros módulos necessário para estes componentes serão automaticamente selecionados e instalados.

O ícone do Eclipse deve aparecer no menu inicial, pronto para ser usado.

Campanha de Natal

Criançada felizNatal em Embu GuaçuTenho orgulho de minha amiga Helena Bonilha, promotora de justiça de Embu Guaçu (periferia de São Paulo). Trabalhando pelo social, ela organiza todo ano uma campanha em favor das crianças e adolescentes abrigados nos cinco orfanatos da cidade.

Criançada felizQualquer pessoa pode contribuir com um “kit” contendo uma peça de roupa, um par de calçados e um brinquedo. Para participar basta entrar em contato com ela — helenabtl@yahoo.com ou 11-9997-7896 — para pegar os dados da criança a ser contemplada (número do sapato, tamanho da roupa, etc). Quando o kit estiver pronto, basta avisa-la que ela arranja uma forma de mandar buscar o kit.

Criançada felizEla mesma faz a entrega (trata-se de uma doação anônima) no dia em que o orfanato marcar a festa de Natal. Mesmo assim ela avisa as datas da festa para o doador poder comparecer se quiser, e ver os sorrisos de alegria.

Depois ela sempre manda fotos como estas, que foram tiradas em outros anos.

Vale a pena. Faz bem ao coração e à alma.

Curtindo a Vida em São Paulo

Um colega que está se mudando para São Paulo me pediu umas dicas de lugares para levar sua namorada. Mandei esta lista para ele:

  1. Insalata (Al. Campinas, perto da Estados Unidos)
    É bonito, descoladinho e tem todos os tipos de comida, com destaque a ótimas saladas.
  2. Sargento (Al. Pamplona)
    Vai lá só para comer a saladona, que é ótima e sustenta. Peça a pequena.
    Ou então aproveite as massas que estão entre as melhores de SP.
  3. Nello’s (R. Antonio Bicudo entre R. Pinheiros e Artur de Azevedo)
    Barato, tradicional e ótimo. Peça a panzanella de entrada, e depois castigue uma massa. Eu adoro.
  4. Piratininga Bar (R. Wizard, na Vila Madalena)
    É aquele bar que te falei para marcar gol. É bonito, tem piano e sax ao vivo, e uns petiscos sem vergonha. Tem que chegar cedo pq é pequeno, e tenta ficar na parte superior, perto do piano. Tem o Pira Grill ao lado que é mais para comer, e é menos romântico.
  5. Acrópoles (fica em alguma rua do Bom Retiro)
    É um restaurente grego supertradicional e simples. É interessante pq nos finais de semana o Bom Retiro é um bairro morto, com todas as lojas fechadas mas as pessoas bombam na frente do restaurante (mas sempre tem lugar). Um bom programa é ir na Pinacoteca de manhã e depois almoçar lá, que é perto. Pode-se também ir comprar roupa feminina no bairro (vc vai ter que ter paciência) de sábado (até as 12:00, pq depois tudo morre) e depois castigar o grego.
  6. Restaurante do Museu da Casa Brasileira (Av. Faria Lima quase com a Av. Cidade Jardim)
    Este lugar é lindo. O negócio é ir lá domingo umas 10:00 da manhã, assistir o concerto de jazz de graça, dar uma volta no museu (que é pequeno) e ficar para o almoço. Tem um jardim bonito e o restaurente fica de frente para ele. Vale mais pelo programa do que pela comida.
  7. Jardim Aurélia (Rua Tabapuã, 838, no Itaim)
    É um restaurante grande que comprou todas as casas de uma vilinha, então as mesas ficam meio a céu aberto. Self-service de tudo, e a noite vira uma pizzaria razoável.
  8. Sorveteria Ofelê (Al. Lorena com Bela Cintra)
    Dá uma passeada nos Jardins, e toma um sorvete nessa melhor sorveteria de São Paulo.
  9. Senzala (Pça Pan Americana)
    Retaurante tem-de-tudo, com algumas mesas a céu aberto, e vista p/ a praça. Eu gosto do sanduiche de atum, que é bem servido e bom.
  10. Speranza (Av. 13 de Maio quase esquina com a Brigadeiro Luiz Antonio, embaixo do viaduto)
    A melhor pizzaria de São Paulo. Tem que pedir a pizza de marguerita que é inacreditável.
  11. Maha Mantra (Fradique Coutinho perto do Galinheiro)
    O melhor restaurante vegetariano do mundo. É muito barato e é boa opção também para os carnívoros.
  12. Deli Paris (R. Harmonia com Wizard, na Vila Madalena, perto do Piratininga)
    Boulangerie francesa com café da manhã self-service bom, barato e descolado. Dá para almoçar lá tb, tipo quiche com salada etc.

Para os vegetarianos, tenho esta lista de todos os restaurantes VGs de São Paulo.

Picnic em Vinhedo

Local do Parque da Represa em VinhedoFez um dia de sol no último feriado e decidimos fazer um picnic num belo lago que descobrimos numa outra viagem, em Vinhedo.

Enchemos o isopor com frutas e água e caimos na estrada. É um parque municipal chamado Represa II que tem pedalinho e barco de passeio, e a vista do outro lado da água é um morro de selva preservada.

Caminhando para o leste há um lago menor, pouco visitado e foi muito agradável sentar lá e ver a revoada de pássaros.

Havia uma casa abandonada depois do lago e decidimos ir ver, atravessando uma picada no meio do mato. Parecia ser uma velha casa de fazenda, com curral etc, mas caindo aos pedaços.

MacacosEncontrei no chão umas gordas vagens de jatobá que não exitei em abrir para comer. É uma fruta intrigante: sua polpa é verde, envolve os caroços e é totalmente seco ao ponto de parecer um pó, que quando colocado na boca forma uma massa que gruda. É como comer farinha, só que de sabor perfumado e doce.

Na volta para o lago principal havia um bosque onde macacos do tamanho de esquilos eram alimentados pelos biscoitos e picolés das crianças. Ofereci jatobá, mas nem deram bola.

Foi um passeio muito agradável que se pode encaixar numa tarde, incluindo a ida e volta para São Paulo.

Gaia Gourmet Vegetariano

Finalmente consegui almoçar no Gaia, marcando um almoço informal com o pessoal do trabalho.

A marioria dos restaurantes vegetarianos são self-service-coma-a-vontade com buffet de saladas e quentes, bem normal. O Gaia não. Lá as porções vem naqueles pratos bem montados e bonitos dos restaurantes mais elegantes.

E não é só visual. É tudo muito saboroso, muito bem temperado.

Eu por exemplo pedi um panqueca de ricota com risoto de quinua e abóbora, de sabores inusitados. Alguns pediram a outra opção: fusili al dente marinado com vegetais. Olhei a massa que não parecia prometer muito, mas que me disseram que estava ótima. Não resisti e provei também, e me surpreendi.

O Gaia Gourmet Vegetariano é um presente para São Paulo. Levaria lá até aqueles amigos gourmets mais carnívoros. E além de tudo, não é caro: R$15 por pessoa.

Entrou na lista dos meus restaurantes preferidos.

Soleil Theme for WordPress

Soleil screenshot

The Soleil theme for WordPress was based on the original creation and colors by designer Carrie Petri for other blog systems. I just mixed the PHP code and some technical ideas thowards what a blog system should be.

Althought it looks really good, Soleil is way more than eye candy. It is unique due to this main features:

  1. Localized on demand
    The blog generic control strings will appear in visitor’s language that he set on his browser. Also, all blog-specific strings as category names, post titles and personal links may have hooks for personal localizations. See bellow how to activate this feature.
  2. Widgetized sidebar
    Soleil provides all its sidebar content as widgets. If you use the WordPress Widget Plugin, you’ll be able to visually rearrange the sidebar and also visually use more widgets from a vast network of developers.
  3. Very friendly to feed readers
    Every aspect of a Soleil blog provides clear and intuitive links and icons to its feed version. Categories archive pages, comments, list of categories on the sidebar, etc. Browse my blog to see what I’m talking about.

All artwork was completely redrawed in CAD systems and in OpenOffice.org Draw to improve images quality. The vector files are included.

Other benefits of this theme are:

  1. Shiny and vibrant colors, thanks to Carrie.
  2. Certified to work on Firefox 2, IE 6 and Konqueror. This gives a clue it will look good in any other browser.
  3. Efficient, yet well balanced use of the entire screen.
  4. Intuitive icons for reply, trackback, blog, post and category feeds, etc.
  5. Clear visual separtion between each post, each comment, etc.
  6. Shows number of comments in evidence.
  7. Direct links to post and comment editing (for administrator only).
  8. Includes a style for printing that hides parts of the page irrelevant to this media.
  9. Provide list of links with icons to popular feed readers.

Download the theme archive, unzip it in your [WORDPRESS_ROOT]/wp-content/themes directory, and select it in the Presentation tab of your WordPress admin interface. Organize the sidebar widgets (if you use the recomended Widgets Plugin) on the admin interface, Presentation -> Sidebar Widgets.

Soleil Predefined Style Classes

Soleil provides some CSS classes that I heavily use in my posts:

photo
To be used on image tags. Add margins, padding and a slim border. Use it like this:

<img class="photo" style="float right" …
command
From the docbook series and for technical writers, renders a computer command in evidence. Use it like this:

<span class="command">ls -al</span>
programlisting and screen
From the docbook series and for technical writers, renders a box with special fixed size font as a computer output or programlisting. Adds scrollbars if content is too wide, to not breake your layout. Usage:

<pre class="programlisting"> 
	// sourcecode of a program 
	code { 
		Some code 
	} 
</pre>

or

<pre class="screen"> 
	bash$ ls -al 
</pre>
filename
From the docbook series and for technical writers, renders a filename in evidence. Use it like this:

<span class="filename">/bin/kdb</span>
xmlbutton
An XML button maker, the one very popular on blogs etc. To get a button like My XML button, use as:

<a class="xmlbutton" href="http://someplace">My XML button</a>
articleinfo
Creates a nice may-be-floating box for you to show some information about the post. The box will appear in evidence but outside the stream of the text. See an example on this post. Usage:

<div class="articleinfo" style="float: right">Some info about this article.<div>

You should also use <h4> as the header for subtitles inside posts.

Displaying Links Correctly on Sidebar

Many blogs that use Soleil have their links looking bad on their sidebar. To fix this, you should go to your blog admin interface, select Links->Link Categories and edit each link category’s properties in a way that each item will be wrapped into an HTML <li> tag.

For example, my blog categories have Before Link: <li> and After Link: </li>

Soleil Localization and Internationalization

Soleil’s default language is english, and is currently localized to portuguese.
To localize Soleil to you language, go to soleil/languages and copy the theme-pt.po (portuguese language) file to theme-YOURLANGUAGECODE.po and edit it to fit your language needs. The file format is very intuitive and it contains all generic messages the theme uses.

You can also localize your blog specific strings as your category names, blog name, blog description, and even some posts titles. For this you have to edit personal-YOURLANGUAGECODE.po in the same way.

To compile a .po file, on Linux do this:

bash$ msgfmt -c -v -o theme-YOURLANGUAGE.mo theme-YOURLANGUAGE.po 
bash$ msgfmt -c -v -o personal-YOURLANGUAGE.mo personal-YOURLANGUAGE.po

The .mo files must be located under soleil/languages/ while the .po don’t have to be under your blog installation, live them in your PC only.

To activate on demand localization based on visitor’s prefered language, ensure your wp-config.php file contains this:

define ('WPLANG', substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));

Enjoy.