Memnemonics fike’s Rotating Header Image

mysql

Grupo de usuário tem prazo de validade?

  

   Grupo de usuários de tecnologia, principalmente que são software livre/código aberto são bastante diversificados, pulverizados e voláteis. O Telles postou na lista que organiza o grupo de usuários brasileiro do PostgreSQL uma pequena provocação com o título "A comunidade brochou?".

    Ele assumiu como Big Kahuna a organização do Conferência PostgreSQL em 2011. (já disse que a ele que gosta muito de emoção. ;) )

    A grande questão em seu post é a motivação das pessoas no grupo de usuários. Para ajudar, eu postei umas bobagens como resposta, segue-a com uma ligeira adaptação:

  Que tal fazer algo menos penoso que as pessoas que são voluntárias se divertam?

  Fazer evento para o público grande, gerar repercussão, etc. é legal, mas fazer por voluntário e fazer exigindo a mesma qualidade de evento "corporativo" é transformar uma ação voluntária em uma ação desmotivante e tediosa.

  A questão principal em voluntários em qualquer projeto de software livre é o prazer em ser voluntário e a reconhecimento pelo que fez. Ao deixar um desses pontos de lado, principalmente o primeiro, a desmotivação em fazer é maior que a necessidade de acontecer.

voluntario1

  Particularmente, gosto de um item do Contrato Social do Debian:

"4- Nossas prioridades são nossos usuários e o software livre"

   Qual a prioridade (prazer como voluntário) de cada um com o PostgreSQL?

    Exemplos disso são meus pacotes no Debian e o patch que entrou no PostgreSQL, são atividades voluntárias que me satisfazem. Apesar de não ter mais tanto tempo, ainda faço alguma coisinha em projetos de Software Livre, isso é a minha maior motivação como um voluntário e entusiasta.

   No Catedral e Bazar  tem uma citação que reflete em como um voluntário de um projeto fica por período maior.

"18. Para resolver um problema interessante, comece achando um  problema que é interessante para você…"

   A grande questão é a motivação (algo interessante a dedicar-se) para fazer. Se não existir motivação pessoal e motivação/prioriodade/diretriz/etc… do grupo de usuário que guie as pessoas fazer ações voluntárias que sejam interessantes. Senão, serão atividades momentâneas do voluntário, dificilmente se repetirão.

voluntario2

   A ação prioritária deste grupo de usuários é realizar uma conferência todo anual?

   Uma analogia tosca é os multirões de doação de brinquedos no natal e no dia das crianças. A motivação é a entrega dos brinquedos, todo o restante (campanha p/ doar os brinquedos, triagem, etc).

   De um grupo de usuários pode ser qualquer coisa, como por exemplo, as festas de mapeamento de ruas e locais do pessoal do OpenStreetMap. O comprometimento do voluntário depende muito da motivação dele, pouco ou sem motivação não se tem ação para que mantenha a motivação de ser voluntário.

   No Catedral e Bazar analisa como o fluxo de mensagens de email na lista de discussão do fetchmail é ascendente até que a maior parte das funcionalidades que os usuários solicitaram foram contemplada. Depois, iníciou um declínio do fluxo de mensagens na lista de discussão pois as necessidades dos usuários interagirem com os desenvolvedores diminuiram e hoje em dia, poucas pessoas usam fetchmail (alguém que lê usa ainda?).

   Num passado não tão distante, existiam poucas alternativas de banco de dados com licenças abertas, hoje a concorrência é muito grande ao PostgreSQL. Desde os tradicionais MySQL, Firebird, SQLite aos em moda atualmente (NOSQL): Cassandra, Lucene, CouchDB, MongoDB e etc. O aumento de opção  de banco de dados não é ruim, é bom a diversificação de opções porém gera um reflexo aparente (não mensurei) de interesse menor ao PostgreSQL. Menos interessados,  menos voluntários, menos participantes nas listas, etc.

   Talvez devesse haver uma adaptação da visão do grupo de usuários ao cenário de banco de dados atual? Na minha opinião, sim! :)

   Bom, depois do monte de bobagem escrita acima tenho que ao menos propor algo. Uma idéia simples é reunir mensalmente em cada cidade que tem usuários de PostgreSQL num evento informal para trocar idéia, bater papo. Atividade de pouca complexidade para organizar que a maioria gosta de fazer e que pode render alguns pgday's ou voluntários para a Conferência PostgreSQL 2011. :)

  

Oracle compra Sun: comentários…

    Possivelmente é a notícia mais importante de 2009 até o momento, a compra da Sun pela Oracle. Depois de muita especulação sobre quem compraria a Oracle levou a Sun com um valor um pouco acima de 6 bilhões de dólares. Já deve ter muitas análise e palpites sobre o futuro, vou falar os meus aqui. :D

    Uma pulga atrás da orelha…

    O que explica uma empresa que tem uma boa arquitetura de hardware (Sparc), uma plataforma (java) para aplicações largamente usada, uma suíte de escritório (OpenOffice), um sistema de virtualização (Virtualbox), um banco de dados (MySQL), um servidor de aplicação (Glassfish), um sistema operacional (Solaris) e uma IDE de desenvolvimento (NetBeans). Além desses citados, ela tem alguns anos a frente com Computação em Nuvem  (Cloud Computing) e HPC (Computadores de Alta-Performance). Como ela saí para o mercado se oferece de porta e porta para ser comprada?

    Eu não consigo afirmar categoricamente mas a Sun nos últimos dez anos teve muito mais anos de prejuízo do que lucro (Alguém confirma?). 

    As várias compras feitas pelas Sun nos úlitmos anos foram para capitalizar a empresa para ser vendida?

    A saída de pessoas importantes da Sun do MySQL (Criadores do MySQL) e PostgreSQL (dois dos principais desenvolvedores) já eram algum sintoma do caminho que ela estava rumando?

 

    O que a Oracle comprou

    A Oracle levou uma das principais empresas infra-estrutura em ambientes corporativos, praticamente fecha toda a pilha de soluções possíveis de ser fornecida para uma empresa. poderá oferecer desde o hardware, sistema operacional até a solução de gerenciamento da empresa (ERP e etc…). Ela pode oferecer soluções para grande porte ou pequeno porte pois tem muitos produtos semelhantes para público diferentes. O público atual da Oracle vai desde empresas de alta-tecnologia(HPC) à usuários finais (OpenOffice).

 

    O que vai mudar com a compra da Sun pela Oracle?

     Essa é a mais difícil responder mas pelo histórico de IBM e a própria Oracle, os projetos em Software Livre/Código Aberto continuaram do mesmo jeito, elas terão maior aderência aos produtos dela mas não deve mudar muito. O que deve mudar a forma de relacionar com as comunidades pois a relação que Sun mantinha era controversa. Para contribuir com os projetos da Sun, você  tem que ceder seus direitos autorais para ela, alguns eram a favor pois facilita juridicamente a defesa dos projetos.  Projetos como OpenOffice tinham esse tipo de relação, porém alguns dizem que isso era perigoso pois a renúncia dos seus direitos autorais é um ato que só beneciava a Sun.

    Os projetos que Oracle contribua ou doa o código como o Kernel Linux e Brtfs, ela segue o guidelines dos projetos. Não duvidaria que o ZFS mudasse a licença e tivesse uma fusão com o Brtfs. :)

   Isso poderia acontecer com os outros projetos ou criar fundações para que o projetos tivessem autonomia maior no desenvolvimento. Um projeto como OpenOffice tendo maior autonomia maior e uma fundação sustenando o desenvolvimento deixaria mais propenso outras empresa contribuir de forma mais efetiva.

    Meu palpite é de que onde a Oracle não tem produtos fechados (software proprietário), incentivará o uso de Software Livre. Pode ser um pouco batiro para alguns mas para muitas pessoas essa estratégia não é tão clara. Fica mais claro quando observamos que a Oracle é umas das 10 empresas que mais contribuem com código no Kernel Linux, mas não vemos alguma coisa do Oracle Database (banco de dados) liberado com alguma licença livre/aberta.

    A Oracle tem muitos produtos que estão sobrepostos como JD Edwards e Peoplesoft, JRockit e Sun JVM, Weblogic e GlassFish, Oracle Database e MySQL, Solaris e Oracle Unbreakable Linux, NetBeans e Oracle JDeveloper. São produtos de boa aceitação comercial e/ou técnica.

 

   E você sysadmin, o que tem haver?

    Se você por acaso já teve que manter alguns sistemas que foram desenvolvidos pela Oralce antes de alguns dos sistemas acima serem adquiridos sabem o inferno que era/é manter coisa como: Oracle Application Server, Oracle Internet Application Server ou Oracle Internet Directory. São bem divertidos (irônico) de manter em ambientes corporativos complexos. Com os novos produtos dentro da casa ser mais fácil e documentado sustentá-los. :D

 

   E o PostgreSQL?

     Numa visita no Brasil do Bruce Momjian (líder do time de desenvolvimento do PostgreSQL) comentou que em cinco anos o PostgreSQL seria o banco de dados mais utilizado no mundo. O PostgreSQL deverá continuar com seu crescimento contínuo e linear sem grandes alterações pois a comunidade é bem forte e distribuída entre várias empresas que o apóiam.

 

    O MySQL?

    Continuará com boa penetração de mercado mas tenderá a ter menor participação pois seus projetos derivados (Drizzle, MariaDB) ocuparão quando estiverem estáveis ou coisas como CouchDB, Xapian e Lucene tenderão ocupar alguns nichos do MySQL. Mas onde o MySQL competir com o Oracle Database, provavelmente será priveligiado o Oracle Database.

 

   Observação

     A  Oracle é como qualquer outra grande empresa, contribuir para os projetos de Software Livre/Código Aberto é só uma pequena parte de suas operações, não fazem caridade. ;)

Entrevista com Leandro Dutra: Arquiteto de Dados

   Estava precisando recomendar a contratação de um Arquiteto de Dados para uma instituição e estava faltando uma base mais sólida para sustentar a proposta de contratação. Decidi perguntar para o Leandro Dutra que é Arquiteto de Dados e no fim acabou virando uma bela de uma entrevista. Obrigado Leandro pela disposição em responder as perguntas. :)

   Na entrevista, usamos AD para Arquiteto de Dados e DBA para Administrador de Base de Dados.


1 – O que é um Arquiteto de Dados?

    A pessoa responsável pela arquitetura e administração dos dados de uma organização.
No caso, a arquitetura envolve desde a arquitetura de sistemas de bases de dados até a modelagem dos dados e sua manutenção; e a administração seria mais especificamente a manutenção dos modelos e dicionários de dados.

2 – Qual a interação de um Arquiteto de Dados e um DBA? Ou é a mesma coisa?

    Muitas vezes, em organizações menores ou menos estruturadas, a administração de dados é efetuada pelo Administrador de Bases de Dados. Mas normalmente, o DBA deve se ocupar da administração diária dos bancos de dados físicos e seu conteúdo, efetivamente uma administração dos Sistemas Gestores de Bases de Dados. Enquanto o AD deve se ocupar do projeto das bases de dados e sua estrutura lógica, não se envolvendo diretamente nos aspectos físicos.

3 – Com essa afirmação, é possível supor que o AD seria o chefe de DBA (vou manter a sigla por enquanto…)?

    Não, eles colaboram em níveis hierárquicos similares. Imagine um novo sistema.  O arquiteto de dados será responsável pelos aspectos lógicos, principalmente a modelagem da estrutura da base; o DBA participará do projeto físico, como questões de distribuição, processamento e armazenamento. Um não trabalha sem o outro, e enquanto o projeto lógico deveria teoricamente determinar o físico, restrições tecnológicas podem (embora indesejável) determinar aspectos do lógico.

4 – Como você afirmou acima, as vezes o DBA acaba executando algumas funções que estariam com AD, no Brasil tem mercado para um Arquiteto de Dados?

    Ainda restrito e subvalorizado, mas tem.  Empresas que têm na informação seu principal meio de trabalho costumam contratar ou formar um quando amadurecem.  Bancos, empresas de informação de crédito, seguradoras e até corretoras de seguros, mesmo fornecedores de programas (é o caso de meu empregador atual).

    É verdade que há retrocessos, como o advento da terceirização; assim, há o caso de uma multinacional fabril que terceirizou a mão de obra, de modo que a mesma vaga, que antes percebia determinada quantia CLT, hoje percebe a mesma quantia mas em regime PJ, sem correção significativa. Outro fator detrimental é o foco em produtos, não em conceitos e processos.  Assim, a mesma multinacional já deixou de contratar ótimos candidatos por falta de experiência em determinada marca de ferramenta de administração e diagramação, sendo que o candidato em questão tinha experiência suficiente em mais de uma ferramenta completamente equivalente.

    Resumindo, ainda é um mercado bastante imaturo, o que leva a situações como as recomendações do AD serem vencidas por meras impressões e preconceitos de pessoas sem experiência com dados, opinando simplesmente do ponto de vista de vícios de programação por exemplo.

5 – Então é possível afirma que para um Arquiteto de Dados não é necessário ter conhecimento em vários banco de dados?

    Em princípio não.  Entretanto, devido à imaturidade de vários SGBDs — citem-se por exemplo, mas não exaustivamente, suporte deficiente a tipos de dados em Oracle, MS SQL Server, Sybase e MySQL, e problemas graves de desempenho e consistência neste último —, muitas vezes é conveniente que o AD possa compreender essas especificidades e trabalhar com o DBA e os desenvolvedores para adaptar a arquitetura e o modelo de dados às circunstâncias tecnológicas.


6 – Não citou o PostgreSQL, ele é um boa referência para quem quer iniciar uma carreira como AD?

    Uma das melhores, no mesmo nível do IBM DB2.  São os SGBDs que têm o melhor suporte tanto ao padrão ISO SQL:2003 (o 2006 ainda não se fez sentir no dia-a-dia) quanto ao modelo relacional — ambos com restrições, mas ainda assim superiores a todos os concorrentes mais óbvios. Entretanto, sendo uma área de atuação eminentemente lógica, recomenda-se, mais que determinados SGBDs, o futuro AD tenha um bom domínio tanto do modelo relacional, quanto de outros aspectos da teoria da gestão de bases de dados, e inclusive do padrão ISO SQL:2003 em si.  As referências padrão, pela atenção que dão aos aspectos lógicos, são as obras de Christopher J DATE, embora polêmicas em vários aspectos que chegam a suscitar reações apaixonadas contra e a favor de vários praticantes de prestígio.


7 – Esse é um ponto interessante, pois reflete em alguns aspectos teóricos que envolvem o DBA. Um AD necessariamente deve ser um DBA também?

    Não necessariamente.  Entretanto, justamente devido a todas as restrições tecnológicas atuais, é interessante que o AD tenha a capacidade de adaptar-se a circunstâncias, o que pode ser facilitado se ele tiver tido alguma experiência com aspectos físicos, seja como DBA, programador, analista de sistemas, SysAdmin…

    Isso lhe dará mais empatia com posições eventualmente divergentes na negociação de projetos de arquitetura de dados e modelagem, e possibilidade de dialogar com os problemas físicos reais ou imaginários freqüentemente trazidos por outros profissionais.


8 – Pensando que uma empresa irá contratar uma consultoria para área de banco de dados, o que a mesma economizará contratando um Arquiteto de Dados ao invés de ter somente DBA´s?

    Nem tudo na vida são economias.  Embora o principal foco do AD não seja monetário, porque o resultado do seu trabalho dificilmente &
eacute; mensurável nesses termos, há muitos erros de projeto caros que podem ser minorados pela presença de um AD, ou pelo menos de um DBA com preocupação pelos aspectos lógicos. Por exemplo, um dos aspectos do trabalho do AD é a normalização, que evita duplicação de dados que normalmente torna o desenvolvimento do sistema como um todo, mesmo na fase de programação, mais complexo, frágil, lento e arriscado, podendo também gerar custos de manutenção e operação como freqüentes anomalias de atualização, consumo exagerado de recursos de sistema, problemas de escalabilidade &c.

    Um exemplo foi uma operadora de telecomunicações brasileira que tinha um consultor ao custo de ao menos nove mil dólares por mês (valor mínimo cobrado pela consultoria, possivelmente muito mais naquele caso específico) para resolver casos de inconsistência de dados.  Além desse gasto muito simples e mensurável, essas inconsistências geravam grandes problemas de insatisfação de clientes.  Não é difícil imaginar alguns desses problemas tornando-se questões mesmo de relações públicas, no caso de uma operadora de serviços públicos.

    Há que se considerar também a questão da eficiência: embora alguns DBAs possam desempenhar funções de AD com razoável competência, será um uso ineficiente do recurso humano, que perderá foco em sua função tradicional sem realmente se concentrar na de AD. O outro lado da moeda é que, devido ao baixo nível intelectual de muitas equipes de desenvolvimento impedi-las de compreender questões lógicas de conseqüências não inteiramente óbvias e imediatas, o peso da opinião de um DBA praticante pode ser maior que a de um AD.  Entretanto, uma equipe com esse problema certamente terá muitos outros problemas igualmente óbvios e imediatos.

9 – Para finalizar, dicas rápidas para quem quer trabalhar como AD?

1) Concentrar-se num sólido conhecimento conceitual;
2) Abstrair problemas específicos de SGBDs, mesmo que depois sejam necessárias adaptações;
3) Desenvolver uma visão ampla, que contemple desde as regras de negócio (== restrições de integridade) até questões de desempenho e manutenção da aplicação.

Certificação PostgreSQL, agora deve ser oficial

   As pessoas sempre perguntam porque o PostgreSQL não tem uma Certificação Oficial. Sentindo que essa demanda está mais presente alguns desenvolvedores iniciaram as discussões sobre uma Certificação Oficial PostgreSQL, Joshua Drake postou na lista de discussão Advocacy do PostgreSQL o início do debate.

   É muito provável que siga o caminho da BSD Certification na parte em que a comunidade se organizou para criar a Certificação. Continuo não gostando da idéia de certificação, ela dificilmente consiguirá mensurar a qualidade de um profissional, mas ter uma certificação pode abrir portas mas isso não quer dizer que é consegue manter as portas abertas. Um membro ativo de um grupo de usuário é mais fácil mensurar sua qualidade analisando respostas de listas de discussão, reportes de erro, tradução, patches, etc. Aí vem os questionamentos…

- Porra, o mercado não é assim do jeito que você fala, os caras querem diploma. Como eles irão saber se você sabe?

   Quem disse que o cara que tem certificação sabe realmente do produto/solução?

- Ele estudou para passar!

   Sim, a maior parte estuda o tal de Actual Test, especializado em certificações. Logo terá muitas pessoas que passarão na certificação PostgreSQL estudando as respostas do Actual Test, você fará duas ou três perguntas mais técnicas e a pessoa não conseguirá responder, parecido com algumas pessoas com certificação OCA (Oracle Certified Associate) como cachorro saber miar.

   O mercado de TI  é viciado em soluções proprietárias e seus modelos de negócio, não tenho ilusão que isso mudará rápido, mas terá mais espaço e valor aqueles que realmente entende mais de um produto/solução baseado no seu conhecimento

   Se for levar a sério certificação para banco de dados, pode basear-se no padrão SQL-ANSI 2003, os banco de dados em Software Livre/Código Aberto já tem muitas funções implementadas. Teria uma Primeira Certificação fortemente baseada no que os principais bancos livres (PostgreSQL, MySQL e Firebird) tem implementado da SQL-ANSI 2003 e ter Certificações mais avançadas específicas para cada Banco de Dados. Este seria um modelo interessante da certificação BSD, unir os Banco de Dados Livres em torno de uma certificação, os benefícios gerados favoreceriam eles perante a concorrência com os Banco de Dados Proprietários.

  Ok, pronto para a pancadaria. :)

Comparativo das diferentes implementações SQL

A linguagem SQL tem diversos dialetos ou seja, diversas implementações da suas especificações como linguagem. As especificações mais atuais estão num conjunto chamado SQL:2003 que praticamente todos os banco de dados ainda não implementaram por completo.

Uma das tarefas difíceis para quem desenvolve aplicações é em qual base de dados irá desenvolver: Oracle, MySQL, PostgreSQL, DB2, Firebird, etc. Recentemente,  Troels Arvin escreveu em seu site um comparativo entre os banco de dados mais populares, no seu site a comparação é padrão SQL, PostgreSQL, DB2, MS SQL Server, MySQL e Oracle. Leitura mais que recomendada. =)