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.

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.

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.”

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.

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.

Unbreakable Linux: Mais uma Distribuição Enterprise

A Oracle anunciou a distribuição Unbreakable Linux na semana passada. Ela será tecnicamente idêntica ao Red Hat Enterprise Linux (RHEL), com excessão da logotipagem e trademarks da Red Hat, incluindo — conforme anunciado — um suporte de preço inferior ao da Red Hat.

Unbrekble LinuxO mercado ainda não entendeu o que este passo significa, e muitos interpretaram (e celebraram) como um suporte mais amplo ao RHEL por parte da Oracle. Na verdade a Red Hat se pronunciou em seu Unfakeable Linux.

Por que copiar o Red Hat Enterprise Linux? Porque é uma distribuição muito popular e porque desde sempre foi desenhada para ser genérica, ou seja, é muito fácil tirar a logotipagem da Red Hat e colocar o seu próprio nome. O resultado é uma distribuição idêntica (bit a bit) ao Red Hat Enterprise Linux (com exceção dos logotipos), e que se comporta exatamente da mesma forma que o RHEL se comportaria ao interagir com diversos hardwares e softwares: a compatibilidade do hardware e software catalog da Red Hat é tecnicamente herdada, mas não leva o carimbo formal de certificação da Red Hat.

Essa idéia não é nova e outras iniciativas já faziam isso antes: WhiteBox, CentOS, Scientific Linux. Isso é possível graças a tecnologia Open Source chamada RPM que “documenta” numa linguagem de máquina todo o processo de compilação, integração e instalação dos softwares, a ponto de ser facilmente reproduzivel em qualquer ambiente. Já havia explicado este processo antes a partir deste slide, nesta apresentação.

Como o software é idêntico, os bugs também são herdados, e é ai que começa o problema. As iniciativas sem suporte (CentOS etc) declaravam em alto e bom som que não fornecem suporte, e por isso não tem nenhum vínculo de responsabilidade com seus usuários. Elas podem se dar ao luxo de esperar a Red Hat lançar uma atualização para só depois se atualizarem.

No caso de um contrato de suporte comercial da Oracle, ela terá um cliente impaciente do outro lado da linha que quer ter seu problema técnico resolvido. O luxo da espera não existe mais, e a Oracle terá que resolver os bugs por si só.

Na pior das hipóteses, ao longo do tempo é possível que o Unbreakable comece a divergir tecnicamente do RHEL, mesmo tendo a Oracle um desejo latente de sempre se sincronizar com o RHEL — conforme anunciado. E teremos uma terceira distribuição Enterprise forte. Foi assim que nasceram algumas distribuições, como Conectiva e Mandrake, que no começo eram basicamente uma cópia traduzida do Red Hat (não enterprise) Linux. Mas hoje o ecossistema de Linux é bem diferente do da época em que essas distribuições surgiram.

Arrisco também um palpite favorecendo uma hipótese bem melhor, onde o Unbreakable e o RHEL continuarão idênticos e sincronizados, cooperando entre sí como verdadeiros projetos Open Source. E ao longo do tempo o RHEL realizará a façanha inédita de consolidar um sabor universal de Linux corporativo. Coisa que o Linux Standard Base está longe de conseguir.

Só o tempo dirá, e é essa constante incerteza a maior inimiga de uma adoção em massa de Linux no mundo corporativo.

Cabe aqui uma salva de palmas para a Oracle que teve a coragem de inovar comercialmente sobre algo que já era tecnicamente e legalmente possível.

Migro meu Blog para o WordPress ?

Hoje sou um relativamente feliz usuário do Blogger, do Google. Mas me faltam coisas como categorizar posts, mais controle sobre os posts e comentários, etc.

Muita gente usa o WordPress, e queria saber: migro p/ o WordPress ou não ?

Vocês usam o WordPress no WordPress.com mesmo (com configurações limitadas), ou baixaram o software de WordPress.org e insatlaram no site de vcs ?

Não vi forma alguma de usar o serviço do WordPress.com e ter o blog no meu domínio. É isso mesmo ?

Tentei fazer testes de importação dos posts e comentários do Blogger, e não consegui: deu pau com mensagens estranhas. Confere ?

Onde há um diretório de templates PHP supimpas para escolher ?

Obrigado pelas dicas !

Desenvolvedores versus Programadores

Achei ótimo este ensaio comparando programadores e desenvolvedores. Está dividido nas seguintes partes:

  • Desenvolvedores são de Marte, Programadores são de Venus
  • Desenvolvedores tem algum conhecimento do escopo e do negócio
  • Desenvolvedores se preocupam com manutenções de mais
  • Desenvolvedores sabem que métodos de trabalho são mais importantes que cortadas técnicas
  • Programadores acham que a solução para todos os problemas é programar
  • Desenvolvedores procuram repetição, programadores gostam de heroísmos singulares
  • Programadores gostam de complexidade, desenvolvedores favorecem simplicidade
  • Desenvolvedores se preocupam com os usuários
  • Desenvolvedores gostam de satisfazer uma necessidade, programadores gostam de terminar
  • Desenvolvedores trabalham, programadores brincam

Quando eu faço pelestras, insisto em enaltecer a importância dos desenvolve/programadores, e como o autor, vou trocando de termo para não soar repetitivo. Vou prestar mais atenção de agora em diante.

Você, leitor, é um programador ou um desenvolvedor ?

Diga-se de passagem, vou começar a acompanhar esse blog Hacknot. Quase anônimo, ele tem uma aura de mistério atraente, e é muito bem escrito.

Suporte a EXT2 (e 3) no Windows

Assim que rebootar no Windows, vou testar este módulo de microkernel para acessar nativamente partições EXT2 (e EXT3).

Ele diz suportar tudo, menos:

  • Controles de acesso. OK, EXT2/3 usa uma nomenclatura UNIX, e posso viver sem isso enquanto estou no Windows.
  • Acesso a arquivos especiais tipo socket, named pipe e devices. OK, isso não faz o menor sentido em Windows mesmo.
  • Nomes de arquivos em UTF-8. Mas parece que suporta se o Windows estiver em modo UTF-8.
  • Impossivel defragmentar com ferramentas Windows. Vivo sem isso.
  • Bootar Windows instalado num EXT2/3. Quem faria isso ?
  • Acesso a volumes LVM. Isto é o que mais me faria falta.

Todas as outras tentativas que fiz no passado, faziam o Windows travar miseravelmente. Vamos ver o que isso faz.

Censo Populacional de Linux na br-linux.org

Acabei de votar no censo de Linux do br-linux.org

Meus votos:

  • Ferramenta de Administração do sistema: rpm
  • Ferramenta de Segurança : ssh e iptables
  • Servidor de Banco de Dados: DB2
  • Visualizador de Vídeo: mplayer
  • Programa de Audio (MP3 e similares): amarok
  • Editor de textos: kate
  • Navegador web: Firefox
  • Programa de mensagens instantâneas: kopete
  • Cliente de e-mail: GMail
  • Agregador RSS: Google Reader
  • Aplicação P2P: Azureus (BitTorrent)
  • Ambiente Gráfico: KDE
  • Ferramenta de Desenvolvimento: KDeveloper e Eclipse
  • Linguagem de programação: C, C++, Java e Shell
  • Editor de imagens: Kuickshow e Gimp
  • Suíte Office: OpenOffice.org
  • Distribuição Live CD: Knoppix
  • Distribuição nacional:
  • Distribuição para desktop: CentOS ou SLED
  • Distribuição para servidor: Red Hat Enterprise Linux
  • Site nacional, excetuando o BR-Linux: vivaolinux.com.br
  • Site internacional: ibm.com/developerworks
  • Personalidade da comunidade livre nacional: EU !
  • Personalidade da comunidade livre internacional: Bob Sutor
  • Ponto alto do software livre em 2006: A Iniciativa Elektra
  • Ponto baixo do software livre em 2006: Iceweasel – o ridículo nome que a comunidade Debian decidiu dar ao Firefox, só no Debian
  • Fórum web ou lista de e-mail:
  • Livro sobre software livre: O do Cezar Taurion sobre Software Livre
  • Grupo de usuários ou organização livre nacional:
  • Evento da comunidade:
  • Empresa atuante na comunidade livre nacional: 4Linux
  • Revista que acompanha a comunidade livre: Linux Magazine

Aspirina para a Febre Ubuntu

Nunca usei o Ubuntu, mas todo mundo diz que ele é facinho facinho de usar.

Legal. Fico feliz por ele.

Mas encontrei com um cara recentemente, bem famoso na comunidade Linux, que tem uma visão bem madura das coisas e bem antenado na história do Debian e Ubuntu. Contou que a empresa Ubuntu é do fundador da Thawte — que foi vendida a preço de ouro para a Verisign. Ai ele pegou esse monte de dinheiro e foi se divertir montando a Canonical (empresa que desenvolve o Ubuntu).

Ele apontou enormes pontos de interrogação na estratégia do Ubuntu. Tipo, como eles mandam CDs de graça pra todo mundo ao redor do mundo? Como eles dão suporte de graça bastando ligar para eles? Afinal, como eles ganham dinheiro? Etc.

Resumo da ópera, o modelo de negócio do Ubuntu como empresa é muito duvidoso, se é que tem lá um modelo de negócios.

Então para se divertir, em casa, etc, usar o Ubuntu é legal, e eu incentivo muito. Mas para usa-lo numa empresa, de uma forma responsável, de jeito nenhum por enquanto.

Eu ainda sou da linha que técnicos devem usar em casa, para aprender, uma das 2 grandes distribuições: Red Hat ou SUSE. Não quer comprar a subscrição? Não precisa. Use gratuitamente o Fedora ou CentOS para usar o sabor Red Hat, ou OpenSUSE para saborear SUSE.

Nova certificação LPI 3

Parece que a certificação LPI-3 está em vias de sair, e o Brasil vai ser agraciado como o piloto, com o Maddog aplicando as primeiras provas.

Minha sensação é que a LPI tomou um rumo meio diferente do previsto. Antes de sua confecção, a LPI-3 foi idealizada como uma certificação para arquitetos, que testaria também a capacidade de argumentar a favor de uma solução Linux, mais generalista que as anteriores — que são mais preocupadas em inquerir nossa memória sobre parâmetros obscuros de comandos obscuros, ao invés de testar a capacidade do administrador em achar saidas para situações difíceis, consultando manuais ou bons sites na Internet —, mas agora focou mais ainda para administradores de Samba e LDAP, o que é bem restrito.

Eu sou certificado LPI-2 e me considero um bom administrador Linux, mas minha carreira nunca se voltou para Samba, o que faz minhas palavras parecerem meio tendenciosas, porque se eu tentar a LPI-3 provavelmente não passo.

Na minha modesta opinião, ou a evolução da LPI tinha que começar a criar, nesse sentido de especialização, áreas de competência (uma para Samba, outra para clusters, outra para gerência de thin clients ou muitos desktops, outra para… enfim), ou manter aquela linha generalista que eu achava mais interessante.

Boa sorte aos certificantes !

PVFS, GFS e IBM GPFS

Descobri hoje o PVFS (parallel virtual filesystem). Parece ser a única coisa arquitetonicamente semelhante ao GPFS da IBM.

A característica que acho a mais atraente nesses filesystems é que pode-se monta-los com um cluster de computadores simples, desta forma:

  • Cada um deles doa parte de seu storage interno para a célula do filesystem, por exemplo, uma partição
  • Os servidores (que podem ser clientes também) são membros da célula
  • Um servidor (ou serviço) de metadata define políticas para distribuir os arquivos fisicamente pelos computadores
  • Um nó que precisa acessar com mais freqüência um certo arquivo, terá ele (ou um cache dele) em seu storage local

Isso garante paralelismo, porque todos os membros acessam um único filesystem lógico que na verdade é uma núvem espalhada por todos os nós. E garante performance, porque coloca o dado (ou arquivo, ou parte dele, ou um cache) mais perto de quem mais precisa dele no momento.

Em contrapartida, o GFS da Red Hat é centrado no storage físico (geralmente externo), ou seja, não implementa esse conceito de nuvem espalhada pelos membros do cluster. Ele está mais preocupado em administrar o acesso físico simultâneo ao storage.

Dando uma rápida olhada, o PVFS me pareceu precisar ainda de uma polida. Seus comandos são feios, e configuração não muito intuitiva e não bem integrada ao sistema operacional, mas é Open Source. O GPFS por outro lado é um produto maduro, já usado nos maiores clusters computacionais do mundo mas é pago.

Acompanho esse mundo de filesystems desde a época do AFS (bela arquitetura mas muito complexo), passando pelo DFS (mais complexo ainda), Coda (vapourware), Inter-mezzo (vapourware), até os de hoje. Eles tem potenciais muito interessantes em aplicações de grandes escritórios distribuidos e de clusters de alta performance. Aqui na IBM, internamente temos algumas células AFS, mas gradativamente estamos migrando para uma nova arquitetura batizada de GSA (Global Storage Architecture), baseada em GPFS, mas acessível por Samba, NFS, etc.

Debian versus Mindshare Vigoroso para Linux

Eu só posso concordar com o que o Thiago Vinhas escreveu em seu artigo.

Não estou muito próximo do projeto Debian, mas meu feeling sobre ele é que ele está se auto-canibalizando. Antropofagia pura.

Se o único objetivo dos membros do projeto é se divertir criando um sistema operacional, seu produto só acabará sendo usado para diversão, em casa ou em laboratórios. Não inspira confiabilidade e “flor-que-se-cheire” a longo prazo. Sem isso, empresas (com dinheiro no bolso) nem chegam perto dele.

Escondendo marcas já consagradas como o Firefox e Thunderbird só para exagerar essa liberdade que as pessoas não entendem – mas que elas já tem – ajuda a destruir uma marca e mindshare coeso que Linux como um todo pode criar. Ai eles é quem perderão a liberdade de trabalhar com o que gostam: Linux.

O foco do projeto Debian parece ser única e exclusivamente a religião.
E eu acredito que o melhor balanço está no equilíbrio entre religião e razão – coisa que distribuições que se propuseram a trabalhar com as pressões do mercado, como Red Hat e Novell, fazem muito melhor.

E lembrem-se: leis mercadológicas só dão espaço para duas opções. Um é pouco, três é demais.

Longa vida a quem sabe balancear as coisas.

Converting YouTube to MPEG or iPod

In the end of this proccess you’ll have an .mpg file on your local disk, generated from an Internet-only YouTube URL.

First make sure you have ffmpeg (video encoding and decoding tools) and lame (MP3 audio encoding and decoding tools) softwares and dependencies installed on your system. You will also require the youtube-dl scripts that downloads the actual YouTube video.

In a Red Hat or Fedora system you can install it from Dag or Livna RPM repositories, with a simple yum command:

bash# yum install ffmpeg lame youtube-dl

Then you get to the YouTube video page you want to download. In this example we’ll use the Heist video, the first Linux ad from IBM, that has http://www.youtube.com/watch?v=DO9ZWDaLLxA as its URL.

I’ll use youtube-dl this way:

bash$ youtube-dl -t http://www.youtube.com/watch?v=DO9ZWDaLLxA

And I saw it connecting to YouTube several times and downloading the video. In the end, I found a big file named the_heist-RRZyz1vXkPE.flv in the current firectory, which is the video file.

Now lets convert it into MPEG with ffmpeg:

bash$ ffmpeg -i the_heist-RRZyz1vXkPE.flv -acodec copy -sameq heist.mpg

-acodec copy will cause ffmpeg to copy the audio from input to output file, while -sameq causes the output video quality to be the same as the source, but output file will be very big. For YouTube videos, you can use -b 320000 instead of -sameq to get smaller file sizes.

I saw ffmpeg taking some time to convert, and in the end I got the heist.mpg file which I was able to confortablly play in any MPEG aware video player, as mplayer.

If you want to convert the video file into MP4, which is the format supported by iPod Video players, you just change the extension:

bash$ ffmpeg -i the_heist-RRZyz1vXkPE.flv -acodec copy -b 320000 heist.mp4

Ffmpeg will take care to use the maximum screen size available from the source (the .flv file) so the converted file will be as hi-fi as YouTube let be (not too high really).

Enjoy your video.

Evento Linux e Rational em Florianópolis e Curitiba

Desta vez estaremos levando o já consagrado evento IBM developerWorks Live ! para Florianópolis e Curitiba.

É a chance de técnicos aprenderem com técnicos dos laboratórios IBM, Red Hat e 4Linux, casos reais e usos avançados de tecnologias como Linux, Eclipse, Samba, Xen, Clusters de Alta Disponibilidade, e outras ferramentas Open Source e Rational para desenvolvimento e gerência de projetos.

Confira a agenda, datas e locais abaixo, e venha ver nossas apresentações !

Florianópolis, Santa Catarina, 16 e 17 de outubro
O evento IBM acontecerá dentro do Simpósio Brasileiro de Engenharia de Software e de Banco de Dados, no Hotel Majestic na Av. Beira Mar Norte. Como estaremos atrelados ao SBES/SBBD, será um evento pago. Mais informações aqui, e agenda IBM aqui.

Agenda do dia 16 de outubro – Linux

09h00

Possibilidades de Linux com Desktops e Servidores (Avi Alkalay – IBM)

09h45

Virtualização em Linux com Xen (Rodrigo Missiagia – Red Hat)

10h30

Break

11h00

OpenLDAP, PAM e Gerência de identidade com Linux (Francisco Saito – 4Linux)

12h00

Pausa para Almoço

11h45

Linux na IBM (Avi Alkalay – IBM)

12h30

Pausa para Almoço

14h30

Alta Disponibilidade com Linux (Rodrigo Missiagia – Red Hat)

15h15

Migrando a Infraestrutura para Samba com Linux: estudo de caso da CEAGESP (Francisco Saito – 4Linux)

16h00

Break

Agenda do dia 17 de outubro – Padrões Abertos e Ferramentas de Desenvolvimento Open Source

09h00

Introdução – Padrões Abertos, Open Source, Apache Derby/IBM Clouscape (Eric Long and Jeff – IBM)

10h30

Break

11h00

Apache Geronimo/IBM WebSphere Application Server Community Edition, Desenvolvendo Aplicações com Ferramentas Open Source, Além do Open Source/Standards – Próximos Passos (Eric Long and Jeff – IBM)

12h30

Pausa para Almoço

14h30

Overview – Desafios em Distribuição de Softwares, Process and Portfolio Management – Rational Portfolio Manager and Method Composer (Cheryl and Kevin – IBM)

16h00

Break

16h30

Análise e Requerimentos – Rational Req Pro, Qualidade de Software – Rational ClearQuest e Testes Funcionais, Gerência de Mudança e Configuração – Rational ClearCase, Rational ClearQuest, Rational Build Forge, Call to action/Resources (Cheryl and Kevin – IBM)

Curitiba, Paraná, 19 e 20 de outubro
O evento acontecerá na PUC-Paraná, Rua Imaculada Conceicao, 115 – Prado Velho, Auditorio Maria Montessori. Evento gratuito. Inscrição aqui ou pelo telefone 0800-707-4837 opção 1, ou ainda mandando um e-mail para pwisv@br.ibm.com.

Agenda do dia 19 de outubro – Padrões Abertos e Ferramentas de Desenvolvimento Open Source

08h30 Registro

09h00

Introdução – Padrões Abertos, Open Source, Apache Derby/IBM Clouscape (Eric Long and Jeff – IBM)

10h45

Break

11h00

Apache Geronimo/IBM WebSphere Application Server Community Edition, Desenvolvendo Aplicações com Ferramentas Open Source, Além do Open Source/Standards – Próximos Passos (Eric Long and Jeff – IBM)

13h00

Pausa para Almoço

14h00

Overview – Desafios em Distribuição de Softwares, Process and Portfolio Management – Rational Portfolio Manager and Method Composer (Cheryl and Kevin – IBM)

15h45

Break

16h00

Análise e Requerimentos – Rational Req Pro, Qualidade de Software – Rational ClearQuest e Testes Funcionais, Gerência de Mudança e Configuração – Rational ClearCase, Rational ClearQuest, Rational Build Forge, Call to action/Resources (Cheryl and Kevin – IBM)

Agenda do dia 20 de outubro – Linux

08h30 Registro

09h00

Possibilidades de Linux com Desktops e Servidores (Avi Alkalay – IBM)

10h00

Break

10h30

Virtualização em Linux com Xen (Rodrigo Missiagia – Red Hat)

11h15

OpenLDAP, PAM e Gerência de identidade com Linux (Francisco Saito – 4Linux)

12h00

Pausa para Almoço

13h30

Linux na IBM (Avi Alkalay – IBM)

14h15

Alta Disponibilidade com Linux (Rodrigo Missiagia – Red Hat)

15h00

Break

15h30

Migrando a Infraestrutura para Samba com Linux: estudo de caso da CEAGESP (Francisco Saito – 4Linux)


Esperamos você lá !
Qualquer dúvida, por favor escreva um comentário neste blog, ou mande-me um e-mail.

Samba to use Elektra for configurations

Read here before it goes broad in Slashdot.

Gerald (Jerry) Carter, Samba’s core developer and architect, initiated a Google SoC project to elektrify Samba. The project was successfully completed by Mingwang with Jerry’s mentorship. “Longer term, we (Samba) have to come to an agreement about (…) How (and to what degree) do we support legacy systems that want to continue to the the smb.conf text file. This is a pretty big shift for us. And although everyone agrees that we must have programmatic access to out configuration data from within Samba, we have to chart the course to get from where we are today to where we want to be 6 months down the road.” – said Jerry on the Elektra list while also showed a kdbedit screenshot of an elektrified Samba.

Open Source Geeks Should Read This

The title of that article is Why we won’t be talking about Open Source in the future, by an analyst called Clay Ryder, and I think is provides an insightfull and pragmatic perspective of how Open Source should be looked at by the business world. It perfectly feets what I use to say and present in events.

Here are some quotes:

While there are religious devotees who believe that the most important role of Open Source is to bankrupt Microsoft, there are many who are not on the Redmond attack squad, however, that talk about Open Source as if it remains somehow discrete, or fundamentally different than other software.

…the reality is that from a bits and bytes perspective, open source software is no different than any other. It is code that runs on the machine and hopefully solves a problem and delivers value to the end user. The development model and the pricing model vary, as do issues related to intellectual property and ownership, but at the end of the day it is just software.

Open Source software is making the same demands on the marketplace – these technologies are priceless, therefore stop trying to make money them, but instead invest those same dollars in adding value on top of the priceless technology. As a result, freely distributable, standards based, basic technology will be a given, let’s learn innovate on top of it, where the real value, and may I add, margins, will be found.

This kind of article may appeal to clients who are skeptics about Linux fanatics.

System Rescue Without a Password

So you lost your Linux root password.

No panic. There is a way to reset it:

  1. Turn the computer on and pay attention.
  2. When the bootloader (GRUB or LiLo) screen appears, select the partition you want to fix the password.
  3. Do not boot it yet. Go into edit mode for this partition.
  4. In the end of the kernel boot parameters line, include this init=/bin/bash.
  5. Then boot the partition.
  6. You will see a very fast boot. And right after the pure kernel initialization you’ll receive a root command line. If you try to change a password at this time (with the passwd command), you’ll get a message that means you don’t have write permissions on the filesystem.
  7. So you’ll have to put your system in a read-write state whit this commands:
    bash# mount /proc
    bash# mount -o remount,rw /
  8. All set. Now use the passwd command to change the root password.
  9. Now type the following: sync; sync; exit. Then reset the system.

Note: If the computer has a BIOS or Bootloader password that you don’t know, you won’t be able to use this technique.

The idea here is to change the default program that is executed to setup all the OS environment, right after the kernel initialization. By default it is /sbin/init, and what we did above is to change it to /bin/bash — a regular shell prompt, a command line.

My IT Presentations

Here are some presentations that I created and use to deliver in IBM events.
Most charts include speaker notes. They are all in Use OpenOffice.org Open Document Format (ODF).
I rarely use the full presentations, I select the best charts according to the audience.

I am also founder of the Elektra Initiative, and produced an Elektra Presentation that members of the community use to deliver in Linux events.

See also the articles I have written.

Software como indicador de desenvolvimento socioeconômico

Jorge Sukarie Neto, presidente da ABES, nos enviou um estudo encomendado ao IDC, sobre o mercado brasileiro de software.

Cruzei alguns dados do estudo com a população dos respectivos paises, e deu isso:

Brasil
Australia
Canada
Italia
França
População
186.405.000
20.155.000
32.268.000
58.093.000
60.496.000
Volume de SW (US$ bi)
7,23
16,2
17,9
16,9
36,8
Volume per capita (mi)
38,78
803,77
554,73
290,91 608,3

Ou seja, mesmo com uma população quase dez vezes maior que a desses países (que não são tão expressívos assim), o Brasil consome e produz software dezenas de vezes menos que eles.

Parece-me que software é um tipo de indicador de desenvolvimento social.

Das duas uma: ou o Brasil está realmente bem atrás, ou pirateia-se muito por aqui. Ou das duas, as duas são afirmações corretas.

ODF e OpenXML: ecossistema, sorte e poder

A sorte está lançada entre ODF e OpenXML.

O que vale mais?

Um padrão universal e em franco crescimento de aceitação, mas ainda pouco usado, resultado do melhor capital intelectual aberto que a Internet é capaz de fabricar, ou um formato fechado de documentos, com política de royalties, e amarrado ao produto mais usado desse segmento?

Por outro lado, se meus CDs tocam em qualquer CD player, porque MEUS documentos vão funcionar somente em UMA suite de escritório? CD (e sua independêndia do CD player) está para música, assim como ODF (e sua independência de suite de escritório) está para documentos.

Quando tivermos o resultado dessa interessantíssima briga, os mais emotivos dirão que foi sorte de um e azar do outro. Mas não tem nada a ver com isso, e sim com poder de construir ecossistemas de cada um desses polos.

Ecossistema é tudo.

Mas paixão e vontade de realizar vem em segundo lugar. E essas forças movem montanhas. E ecossistemas.

Inline Blogger.com Comment Form

  • WARNING: This script is not being supported anymore since I moved to a much better blogging system with WordPress.

If you don’t want your blog visitors to be redirected to blogger.com website just to write a comment for your post, you are in the right place.

This page will show you how to include a comment form directly into your post page, just as you can see in this very page, bellow. After installing this solution in your blogger.com blog you’ll feel an instant increase in the number of comments people write for you, because a comment form right in the face of your visitor is way more intuitive and inviting tsule with nowadays blogger.com interfaces, and stepped out from a hack status into a clean, functional and well documented solution.

PLEASE, write a comment here, including a link to your blog so people can know who else is using this solution.

PLEASE, do not make test in this post. PLEASE, leave it for real comments or support questions. PLEASE, use this post to test the form.

Installing

  1. Download this script and make it available somewhere on your website, for example from the URL http://my.website.com/resources/bloggerCommentForm.js (this is the URL we’ll use in our examples).
  2. Edit your blogger.com template and look for the end of the HTML header marked by the </head> tag.
  3. Right before the header ending include the following piece of code in a way that everything will look like:
    <ItemPage>
    <script type="text/javascript" xsrc="http://my.website.com/resources/bloggerCommentForm.js"  >
    </script>
    
    <script type="text/javascript">
    // Lets configure the comment form a little bit
    
    // Include some style
    commentFormStyle();
    
    </script>
    </ItemPage>  </head>
  4. Now you’ll have to place a call to a JavaScript method that will render the form. Scroll down and look for the section on your template that renders the comment. It starts with a <div id=”comments”> tag. This code should be included right after it:
    <a name="postcomment"></a><h4>Write a Comment</h4>
    
    <script type="text/javascript">
    commentForm('<$BlogItemCommentCreate$>');
    </script>
  5. Save your template and republish your blog.
  6. Visit one of your posts page, see if the form appears, and try posting some different comments as different users.

Configuring the Form

You can configure the form, specialy for internationalization, in a very clean way without having to change the code. For example, look how it looks in a brazilian portuguese blog post.

  1. For that, edit your template again and look for the script initialization part you just included in the <head> section.
  2. You can define some JavaScript variables that will define the form language and other parametrizations. Copy and paste these defaults to start translating:
    <script type="text/javascript">
    
    // Lets configure the comment form a little bit
    
    // Include some style
    commentFormStyle();
    
    // General parameters
    var labelWidth = 80;
    var bloggerFormActionURL="http://www.blogger.com/login-comment.do"
    var confirmBeforePost = true;
    
    // Language defaults
    var bloggerUserLabel = "Blogger.com user";
    var otherUserLabel = "Other";
    var customUserLabel = "Name or nickname: ";
    var urlLabel = "URL: ";
    var anonLabel = "Anonymous";
    var rememberLabel = "Remember Me";
    var postedByText = "Posted by";
    var commentButtonText = "Post Comment";
    var previewButtonText = "Preview";
    var previewWindowTitle = "Comment Preview";
    var confirmText = "Post this comment?";
    var boldButtonText = "B";
    var italicsButtonText = "I";
    var linkButtonText = "Link";
    var linkPrompt = "Link Text:";
    var urlPrompt = "Link URL:";
    var quoteButtonText = "Quote";
    var quotePrompt = "Use your mouse to select the text"+
    " in the comment you want to quote.n"+
    "Then press the quote button.";
    </script>

Additionally, you may want to change the target links in your template to make them point visitors to the comment form in the post page. For example, I have the following piece of code in my template that renders each post footer:

<p class="post-footer">
<em><$BlogItemDateTime$></em> |
<a xhref="<$BlogItemPermalinkUrl$>"
title="permanent link">permalink</a>
<BlogItemCommentsEnabled>
<a class="comment-link"
xhref="<$BlogItemPermalinkUrl$>#postcomment"><$BlogItemCommentCount$>
comments</a>
</BlogItemCommentsEnabled>
<BlogItemBacklinksEnabled>
<a class="comment-link"
xhref="<$BlogItemPermalinkUrl$>#links"  >links to this post</a>
</BlogItemBacklinksEnabled>
<$BlogItemControl$>
</p>

This script is free and licensed under the LGPL.
Enjoy.

High Availability Linux Clusters

Here is a light document, in the form of a presentation, to help IT architects or sales people to understand High Availability Clusters with Linux:

  • How it works
  • Components needed to build HA clusters
  • Replication
  • SCSI and Fiber Channel considerations
  • Reference architectures
  • Clustering of popular products
  • Sizing guides
  • etc

Start here and follow the links to browse it, download PDF or the original Use OpenOffice.org (ODF) file.

There are also excelent presentations and tutorials in the Linux-HA Project website.

Baixando Música da Internet

É muito controverso se é ilegal ou não baixar música da Internet. A lei e licença de uso do fonograma (faixa de um CD) ou não é clara ou ninguém nunca explicou isso direito.

Permalink desta parte Entenda o Contexto Primeiro

Outro dia conversei com um músico profissional que fazia faculdade de produção musical, e ficaram claros alguns aspectos:

  1. As grandes gravadoras prestam um serviço para a sociedade desta forma: encontrando talentos, patrocinando a produção e gravação do fonograma, produzindo um encarte bonito, divulgando o produto na TV, rádio, revistas, outdoors e novelas, e depois operando a logística de distribuição física do CD, além de em paralelo investir na própria evolução da tecnologia do CD, tudo isso para você poder ouvir música de alta qualidade técnica, e fácil de encontrar na loja perto da sua casa. Então nada mais justo que as gravadoras serem remuneradas por todo esse trabalho.
  2. Por isso, em geral a gravadora é dona do fonograma, e não o músico ou compositor. Isso significa que é ela quem decide quando, quanto e como vai publicar as canções (publicar significa prensar CDs e por nas lojas). O músico não pode pegar o fonograma, gravar um CD e sair vendendo, a não ser que ele compre os direitos sobre o fonograma, que são em geral muito caros.
  3. As gravadoras não estão defendendo os direitos dos artistas, mas seus próprios interesses. De fato, muitos artistas não gostam que as gravadoras digam que estão defendendo os direitos deles.
  4. Nesse processo todo, os músicos ganham os direitos autorais (que segundo alguns músicos que conheço, é pouco), que recebem de uma instituição independente, que por sua vez vem da gravadora e de outras fontes. Essa regra não vale para estrelas que tem poder (e agentes) para negociar contratos melhores com uma gravadora.
  5. O músico quer que sua arte seja conhecida e ouvida o máximo possivel.
  6. Músicos profissionais ganham mais dinheiro em shows e performances ao vivo, e menos em venda de CDs das gravadoras, que levam a sua obra.
  7. Pessoas só vão prestigiar os músicos num show (e pagar ingresso) se sua obra for boa e conhecida.
  8. Muitos bons artistas não tem penetração no mercado, dinheiro ou disposição para gravar um CD independente. Esses são os chamados “alternativos”.
  9. Excelentes músicos e lindos fonogramas podem ser pouco conhecidos ao ponto de ser comercialmente inviável dar-lhes espaço numa concorrida prateleira de loja de discos. Por isso é dificil encontrar gravações antigas ou as chamadas “alternativas” nas lojas: ou as pessoas já mudaram de gosto, ou há pouquíssimos compradores. A situação é pior para as gravações que são ao mesmo tempo antigas e alternativas.
  10. Eu estimo o custo de 1 CD — incluindo o plástico, encarte, trabalho artístico, pagamento do direito autoral, veiculação etc — em menos de R$5.
  11. Ouvi dizer que a lei proibe a redistribuição de fonogramas em meio físico (gravar um CD ou fita e sair vendendo ou comprando).
  12. A Internet não é considerada um meio físico. Por isso, nesse raciocínio, não é proibido usar a Internet como meio de distribuição de música, pelo menos para fonogramas produzidos/gravados/publicados antes da era Internet, o que inclui tudo antes de mais ou menos 1997. Depois disso, fonogramas começaram a ser produzidos com uma licença (os termos legais que definem o que é permitido ou não fazer com o fonograma) revisada que incluia a Internet — junto com CDs piratas, fitas caseiras, etc — como um meio ilícito de distribuir música direta e livremente.

Seja como for, baixar música da Internet leva tempo, vem sem o encarte — que conté muita arte gráfica e informações valiosas e é controverso se é ilegal ou não. Por outro lado, já foram vistos artistas e suas discografias completas disponíveis ao ponto de parecer irracional não baixar.

Você decide se vai seguir o que a mídia diz defendendo seus interesses — e não a dos artistas —, ou se vai prestigiar um músico e sentir tudo o que seu potencial criativo pode fazer com suas emoções.

Permalink desta parte Como Baixar: Método Fácil

Há diversos blogs em que amantes da música publicam albuns completos para serem facilmente baixados através de serviços como RapidShare, 4Shared, Badongo, etc. São geralmente albuns antigos, raros, que não se acha em lojas. Coisa de colecionador.

Os albuns vem geralmente comprimidos no formato RAR, que é um tipo de ZIP, e é necessário o software da Rar Labs para descompacta-los.

Segue uma lista de alguns blogs:

Na barra lateral desses blogs há sempre uma lista de links para outros blogs similares, então este método é de difícil procura, mas de fácil download. O método de BitTorrent abaixo é de procura mais fácil, mas de download mais complexo.

Permalink desta parte Como Baixar: Método Mais Eficiente, com BitTorrent

Abri espaço neste blog para um conhecido relatar como se faz. Este método usa a tecnologia Bit Torrent e estes são passos para usa-la com sucesso:

  1. Baixe e instale algum cliente Bit Torrent como o BitComet (só para Windows) ou o Azureus (Mac, Linux, Java, Windows). Estes softwares são seguros, não instalam spyware nem virus, e seu uso é totalmente legal.
  2. Use o site www.isohunt.com para procurar músicas por nome, artista, etc. Ele pode ser usado também para procurar outros tipos de arquivos. Você pode também procurar na Internet por outros sites the provem “torrents”.
  3. Procure por, por exemplo, “Mozart” ou “Bach“, etc (clique nesses links para ver um resultado de busca do exemplo).
  4. Você vai encontrar coleções completas de artistas, etc e arquivos muito muito grandes, que as vezes demoram dias para baixar. Os primeiros resultados que ele mostrar são os downloads mais ativos, e por isso mais rápidos para baixar.
  5. Selecione o ítem que você quiser, ele vai se expandir, e então clique no link chamado “Download Torrent” para começar a baixar.
  6. Isso vai disparar o programa de Bit Torrent (BitComet ou Azureus acima), que vai te perguntar onde você quer gravar o download. Escolha um diretório que você vai lembrar depois.
  7. Antes de dar OK, você pode ver a lista (enorme, se for coleção completa) de arquivos que serão trazidos, e pode selecionar para baixar só os arquivos que te interessam, ou tudo.
  8. Monitore a atividade do download e garanta que você está baixando em boa velocidade. Se estiver constantemente muito lento (pode haver períodos de maior lentidão), é melhor cancelar e procurar outro download.
  9. Mesmo baixando muito rápido, um download grande pode demorar dias para se completar.
  10. Depois de terminar o download, se você usa Linux, use o Musicman para organizar seus MP3.

Seja responsável e boa sorte !

Software Livre sem excesso de filosofia

Saiu hoje no Estadão uma matéria quase sarcástica sobre Richard Stallman, criador do conceito de Software Livre, lá nos idos dos anos 70.

Sem suas idéias visionárias, sua postura radical, e sua seriedade jurídica, coisas como Linux não existiriam, e Padrões Abertos seria um conceito ligeiramente diferente do que é hoje. Richard Stallman é um cara que mudou o mundo, e suas idéias sobre Software Livre passaram a ter um dimensão maior a ponto de abraçar toda a criação artística, ciência e cultura humana via o Creative Commons (veja este video, e depois este para entender tudo), descendente direto do Software Livre. Tudo em prol de uma cultura livre.

Mas os anos passam, o mundo gira, e parece que ele se afogou num mar de idealismo: para ele, se o usuário não consegue ler e alterar o código fonte do software, ele é prisioneiro desse software. Talvez ele esqueceu que poucas pessoas sabem ler código fonte de um programa de computador, e dessas, a maioria — eu incluso — não tem o menor interesse em lê-lo, muito menos alterá-lo. Estamos mesmo é interessados na liberdade que um software nos dá para vivermos melhor a nossa vida.

Um software que não provê exatamente a funcionalidade que o usuário quer não precisa necessariamente ser mudado por ele. Ou será trocado, ou a pessoa irá de adaptar, porque afinal computador é burro e só sabe fazer aquilo, e ser humano é inteligente.

Software Livre virou moda, mas isso não significa que tudo quanto é SL é bom e resolve os problemas das pessoas e das empresas. Estas por sinal tem se sofisticado cada vez mais a ponto de precisarem de soluções de software mais complexas e mais inovadoras. E essas coisas são geralmente mais encontradas no software de código fonte fechado.

Então quando Software Livre e quando software comercial ?

A resposta é buscar um bom balanço entre ambos com esta fórmula:

  1. Divida a TI de uma empresa em camadas que vão da mais infraestrutural (storage, servidores, SOs – como Linux) até o mais alinhado aos processos de negócio (aplicações de negócio e internas, ERPs, CRMs etc).
  2. Quanto mais infraestrutural, mais afinidade terá com SL, e quanto mais alinhado ao negócio, mais afinidade terá com o de código fonte fechado.

A pirâmide de TI

A explicação do porquê dessa divisão é longa e está na minha apresentação.

Linux, sendo só um SO, tem enorme afinidade com a infraestrutura, e por isso é uma opção excelente para essa camada.

Entre esses dois polos fica o tal do Middleware, que começa a ter boas opções no mundo livre, concorrendo de frente com produtos da IBM. A regra geral é ir sempre de Middleware comercial porque tem suporte e nível de serviço, que provê paz de espírito. A excessão fica para aplicações departamentais não-críticas nos casos onde o cliente sabe muito bem o que está fazendo com um middleware SL.

O que realmente importa para uma empresa que se preocupa com seu TI é usar produtos, software, hardware que seguem Padrões Abertos – não importando se o código é aberto ou não -, porque só isso é capaz de dar acesso a um mercado competitivo, que provê flexibilidade e poder de escolha – que implica em preços mais baixos.

Developers for Increased Openness Ecosystem

I’m proud to say that Rogério Oliveira, IBM Brazil General Manager, said a phrase that I keep saying inside IBM for at least 4 years.

If we build relationships with our customer’s development teams, we’ll be able to detect opportunities at least 6 months earlier than when talking only to customer’s IT infrastructure teams

Rogerio Oliveira, IBM Brasil General Manager

Development teams role in the IT environment of some customer is to be the closest point to the line of business a technology provider like IBM can and should effectively reach.

The Best Linux Distribution

Check this presentation to business and technical people about Linux Distributions. There is an article outlining the same topics that can work as a transcript for this presentation.

The topics included are:

  • What makes a Linux distributions to be what it is
  • The ingredients for success and for market failure
  • Core technologies inside a distribution
  • Important points to consider when choosing “the best distribution”
  • What “support” is, its importance, and what customers should really look for when considering comercial support for a Linux distribution
  • High level comparation between Red Hat Enterprise Linux and SUSE Linux Enterprise Server in flavor, standards adherence and stability
  • Highlights on other non-comercial distributions as Fedora, OpenSUSE, Debian, Slackware etc, and the weak-ecosystem ones as Mandriva, Ubuntu, etc
  • Colorful details about how Linux distributions work with and package Open Source software
  • The new generation of “semi”-comercial distributions

Availability:

Check also an interview I gave in a Linux World event right after presenting this:

Segurança em Software de Código Aberto

  • — Quem acha que software de código fechado é mais seguro? – perguntou o palestrante.

Uns poucos gatos pingados levantaram a mão.

  • — E quem acha que software de código aberto é mais seguro?

Outros poucos ouvintes acreditavam que essa última era a afirmação verdadeira.

Mas a esmagadora maioria ficou passiva, sem saber o que responder.

Senhoras e senhores, estamos diante de um dos maiores dilemas da TI pós-Internet. É assunto para horas de discussão na mesa do bar, que tem grande chance de dar em nada, se for tratado de forma religiosa. Mas vamos tentar ser frios, relembrar algumas histórias e não nos perder em crenças infundadas.

 

Tudo gira em torno de segurança por ser (código) público versus segurança por ser fechado. A comunidade de programadores de código aberto tem a cultura do mérito e respeito, então é natural que seus membros tomem mais cuidado ao programar. Além disso, é comum o trabalho de um ser revisado e auditado pelo outro. Outra vantagem é a velocidade com que correções são escritas. Foi o caso de um problema descoberto na implementação TCP/IP de qualquer sistemas operacional, em 1996. A correção para Linux foi publicada em 20 minutos, enquanto que para outros sistemas demorou 2 dias úteis. Há dezenas de casos semelhantes.

Mas aqui vale um ponto de atenção: o sistema operacional Linux é um caso muito especial de software de código aberto, simplesmente porque ele é muito usado e tem um ecossistema enorme de programadores e empresas interessadas em sua estabilidade e progresso. Em outras palavras, ele tem uma infinidade de observadores, e isso não é verdade para qualquer software livre. Ou seja, só quando um software aberto usufrui de muitos usuários e desenvolvedores é que terá pessoas cavando e corrigindo problemas rapidamente em seus fontes.

O modelo de código fonte aberto de desenvolvimento de software não é uma garantia de segurança. Contudo, softwares livres populares como o Linux, Apache, Samba e muitos outros tem tido seus códigos examinados por vários especialistas de segurança.

Por outro lado, software de código fechado tem a garantia de que ninguém pode vasculhar falhas em suas entranhas. Ironicamente também garante que se o fabricante decidir implanatar um backdoor, ninguém poderá encontra-lo. E foi exatamente o que aconteceu quando a Borland liberou o código do Interbase: eles esqueceram de remover um trecho do código que abria um backdoor de administração. Foi descoberto e removido assim que outros começaram a olhar seu código fonte, e motivo de vergonha para a Borland.

Outro aspecto é que certas coisas são muito difíceis de desenvolver corretamente quando somente poucas pessoas tem acesso ao código fonte. É o caso de boa criptografia e de protocolos de comunicação seguros. Só uma densa auditoria multicultural e independente pode analisar a fundo cada detalhe do código.

No âmbito de ferramentas de segurança, o mundo livre dispõe de uma lista sem fim de coisas como OpenSSL, OpenSSH, PAM, PKI, OpenLDAP, Tripwire, Kerberos, SELinux, etc, todos possuidores de um forte ecossistema de usuários e desenvolvedores.

 

O pensamento saudável para essa questão é que software aberto e fechado tem vantagens e desvantagens que muitas vezes se completam. Nenhum modelo é garantia de segurança, mas ter o código aberto dá pelo menos a chance de um certo software poder ser auditado. Além de que uma falha detectada pode ser corrigida por qualquer pessoa a qualquer hora, e não ser tratada como “característica do software” que o fabricante não acha que deve corrigir.

A fórmula do sucesso, para balancear custos e benefícios, tende a usar software livre nos elementos mais infraestruturais do data center, enquanto que software fechado vai melhor nas camadas relacionadas a lógica de negócio, sempre abusando do uso de padrões abertos para garantir a interoperabilidade. Um exemplo prático desse bom balanceamento é rodar seu ERP corporativo (de código fonte fechado) sobre um sistema operacional de código fonte aberto, mas que tenha suporte comercial no mercado, como Linux.