Archive for the ‘Uncategorized’ Category

Escalando o Mysql para escritas concorrentes

Thursday, April 17th, 2008

Seguem algumas dicas do Dathan Pattishall da Flickr… enjoy it :)  

–>spread data around: federate users por shards: eles fazem um hash pelo user id para o cluster id

–>innodb não funciona com pks grandes (baseadas em strings): eles tinham uma pk que era uma url (string) e a converteram para um 64-bit number(ID) usando a função conv(substr(md5(url),0,16),16,10)

–>innodb & strings: indexar uma string em innodb ocupa muito espaço, além disso a fragmentação nas páginas prejudica a performance. A solução foi “bufferizar” as escritas - eles usam um deamon java que faz o buffer de até 4000 mensagens (transações) e as aplica serialmente usando uma única thread

–>reduza o uso de grandes strings: coloque dados históricos ou não produção em MyIsam .  A vantagem é que o Myisam mantem os dados usando 1/6 do tamanho do innodb.

Dê uma olhada no Blog do Dathan Pattishall : http://mysqldba.blogspot.com/

Conheça um pouca da rotina de quem trabalha no Google

Tuesday, April 8th, 2008

Conheça um pouco da rotina de quem trabalha na Google

No prédio de quem define o Capitalismo do século XXI, o almoço é de graça,os sofas estão a disposição para um descanso e até uma quadra de voley de praia para relaxar com os colegas…vejam o vídeo em….

http://www.truetech.com.br/webtvconsole/usuario/webtvconsole.php?

console=30&canal=19&video=652

Google Zurich

Wednesday, March 12th, 2008

google_zurich_one-thumb.jpg

BBC migra para Linux sua produção de TV

Thursday, February 21st, 2008

Devido a lentidão da gravação em fitas, a BBC resolveu migrar todo processo de geração do conteúdo que era gravado nestas fitas.

Para tal migrou para Linux, codificando seus arquivos digitais de vídeo usando ffmpeg e gravando os dados num NAS ou drive USB.

O time da BBC configurou 2 sistemas Intel dual quad-core com 4GB de RAM e 4TB de disco com sistema de arquivos XFS rodando OpenSUSE Linux.

O sistema de arquivos XFS foi o que obteve melhor performance na gravação de vídeo de alto bit-rate para o disco e inclusive um desenvolvedor open source foi contratado para desenvolver um codec DVCPRO50 para o ffmpeg que resultou em um melhor decoder do que muitos decoders baseados em hardware, de acordo com o pesquisador Stuart Cunningham, da BBC, durante palestra na linux.conf.au <http://linux.conf.au>.

PARC (Palo Alto Research Center, Inc.)

Wednesday, February 20th, 2008

Para quem não sabe o que é a PARC, segue um pequeno texto do site:

“PARC (Palo Alto Research Center, Inc.) works closely with varied enterprises and new ventures to discover breakthrough business and technology concepts that solve real needs, and transform how enterprises deliver value to customers. PARC takes an agile, multidisciplinary approach to open innovation – by bringing together physical, computer, biological, and social scientists who have the vision, expertise, and instinct to convert groundbreaking scientific findings into industrial-strength prototypes.

Incorporated in 2002 as an independent research business, PARC is celebrated for such innovations as laser printing, distributed computing and Ethernet, the graphical user interface (GUI), object-oriented programming, and ubiquitous computing. PARC is a wholly owned subsidiary of Xerox Corporation.”

Bom o motivo deste post é na verdade compartilhar o acervo da PARC de palestras, não deixa de dar uma olhada aqui

Por enquanto apenas assisti uma chamada By the Numbers: How I built a Web 2.0, User-Generated Content, Citizen Journalism, Long-Tail, Social Media Site for $12,107.09que é muito interessante. Pelo título das demais me pareceu bastante interessante o arquivo como um todo também.

Numerologia

Friday, February 1st, 2008

Uma das entregas do QUATI foi o “book de indicadores” dos processos. Hoje, este conjunto de indicadores está focado no G1, mas a idéia é que em um futuro próximo se expanda para todos os produtos. (A ferramenta para isso possivelmente será o pentaho que já mencionei num post antigo.)

Os indicadores do QUATI seguem o estilo “open source”, ou seja, estão abertos para quem quiser acessá-los. Basta ir no wiki em e escolher o mês (por enquanto só tem Dezembro e Novembro).

Agora que temos os números, vem a pergunta: pra que isto serve?

Na minha opinião a primeira utilidade é entender o que aconteceu no mês: quanto incidentes tivemos?, fomos mais rápidos no tratamento?, solucionamos quantos problemas?, fizemos mudanças mais controladas? Este “entender” não deve ser excluviso de poucas pessoas. Estes dados precisam ser comunicados e de forma que as pessoas leiam. Caso contrário será mais uma info para /dev/null . Este é mais um desafio. Se vc tiver uma sugestão, por favor, comente.

A segunda utilidade é tomar ações baseadas nestes dados e poder medir os resultados. Sendo assim, se queremos resolver incidentes mais rápido, devemos fazer uma plano para isso e depois acompanhar os resultados nos números.

Já fizemos uma primeira análise dos indicadores de novembro e dezembro e, em breve, vamos divulgá-la. Precisamos decidir como.

Regras simples

Wednesday, January 30th, 2008

Recentemente li um artigo muito interessante chamado “Strategy as Simple Rules” que fala como a estratégia de empresas bem sucedidas como Yahoo são guiadas por regras simples. Em ambientes dinâmicos com a internet isto é necessário para que a empresa possa ter a flexibilidade que precisa sem deixar de ter uma orientação forte para um objetivo comum. No artigo são citadas as quatro regras do Yahoo que são: “know the priority rank of each product in development, ensure that every engineer can work on every project, mantain the Yahoo! look in the user interface, and launch products quitely”.

O SCRUM traz esta mesma idéia para um nível mais baixo, ou seja, institui regras simples para o proceso de desenvolvimento de software que hoje é extremamente dinâmico.

Basear-se em regras simples facilita a vida de quem tem que executar, pois ele deve apenas seguir as regras e pode ter um pouco mais de liberdade na execução respeitando o que é esperado. Fazendo uma analogia nerd, a modelagem tradicional de processos seria equivalente a uma linguagem procedural , enquanto as regras simples seriam equivalentes a uma linguagem declarativa.

A pergunta é: porque não pensar em algo semelhante para os procesos de suporte de tecnologia???

Estou convencido de que esta abordagem será muito bem recebida na Globo.com. E será parte do QUATI-2 migrar os processos os modelados para um conjunto de regras simples para cada equipe. Deixando menos burocrático o processo e facilitando o aprendizado e a adoção.

Configurando suffixo no Ubuntu

Friday, January 18th, 2008

Algumas pessoas, como eu, costumava colocar nas propriedades avançadas do Windows o uso de sufixo de DNS, para que você não tenha que digitar o endereço inteiro de um host para acessá-lo. Tanto que, para acessar a glb17, nós não temos que colocar o ‘full qualified’ hostname, que seria ‘glb17.glb.com’. Mas se quiser adicionar um ou mais eu poderia sem problemas. Assim, se eu abrisse o PuTTY e fizesse ‘vignette@riosf17″, eu conseguia acesso, porque eu tinha incluido o sufixo globoi.com como search domain.

…Mas quando chegamos no linux, a lógica seria abrir o /etc/resolv.conf e colocar o globoi.com como search domain. O problema é que a cada boot, o resolv.conf acaba sendo re-escrito pelo DHCP Client quando este faz a recuperação dos dados de configuração IP. Como então configuramos para que faça do jeito que eu fazia no windows?

Simples! No Ubuntu, o serviço que sincroniza isso é o “dhcpclient”. Para configurá-lo, abra o shell e faça:

$ sudo vi /etc/dhcp3/dhclient.conf

Adicione a seguinte linha, logo depois do “request ip-address, (…)

prepend domain-name “globoi.com “;

SIM, TEM QUE TER O ESPAÇO NO FINAL. Senão ele junta o search domain recebido pelo DHCP com o seu customizado e ‘bagunça’ tudo. :)

Enfim, salve, feche. Faça o ‘reload’ do DHCP conforme o comando a seguir:

sudo /sbin/dhclient

Estratégias de entrega ágil

Monday, January 7th, 2008

Despertei para o assunto recentemente ao participar de um curso de Scrum oferecido pela empresa e ministrado por Boris Gloger, um dos papas no assunto. Em meu estudo percebo que todos os métodos de entrega ágil se apoiam em premissas básicas: entrega interativa e incremental, colaboração e melhoria contínua.

Na entrega interativa o projeto é dividido em pequenos pacotes com um cronograma de interações que dura em média 4 semanas. Algumas vantagens que a entrega interativa trás é a melhor visualização dos riscos do projeto e a impressão do cliente de que o projeto está “acontecendo”, conforme as releases são entregues.

Com a colaboração, todos os membros da equipe do projeto, principalmente o representante do cliente, participam de reuniões regulares e pontuais para facilitar a comunicação e cooperar nas interações. Importante neste quesito um espaço exclusivo e contínuo para os trabalhos regulares ( nada pior do que travar guerras por salas de reunião ).

Para melhoria contínua, são feitas reuniões ( retrospectivas ) com o projeto em andamento, onde ocorrem reflexões sobre sucessos e falhas. Valiosas informãções são trocadas na realização de ajustes do projeto.

Um passo para o fracasso é tentar aplicar a estratégia em múltiplos projetos sem ao menos dominar o conceito por completo. Por isso a escolha de um projeto piloto é essencial para o período experimental.

A equipe de projeto deve ter representantes de todas as áreas ( negócio, arquitetura, desenvolvimento, infra-estrutura, testes, etc. ). Esta equipe precisa estar 100% dedicada ao projeto ( dificil imaginar tal cenário ), e os membros com a cabeça “aberta” para aprender a metodologia.

Todos os representantes precisam estar próximos uns dos outros, de preferencia em uma sala exclusiva para a equipe com espaço individual privado e área comum para comunicação direta dos membros da equipe.

No planejamento da primeira interação o cliente do negócio escolhe os requerimentos que são de maior valor para o negócio, com detalhamento em alto nível de como o sistema deve funcionar ( histórias de usuário ou history points ).

Umas das principais caracteristicas da entrega ágil é a formação de equipes pequenas, porém cada membro com competência individual elevada, com alto nível técnico e comprometido a seguir o processo. Vale muito aqui a observação pessoal do gerente de projeto para manter a equipe ágil.

A colaboração intensa é nítida por exemplo em reuniões ( daily meetings ) onde o desenvolvedor define a estimativa de esforço e o cliente as prioridades.

O feedback e as decisões são imediatas ao passo que o cliente está disponível para a equipe de desenvolvimento para aprovar e validar a entrega ( adeus refactoring ).

Para as retrospectivas do projeto um facilitador neutro ( fora da equipe ) pode organizar a reflexão. Todos os membros do projeto estão em uma sala e em círculo, seguindo regras de reunião ( celular desligado, sem notebook, cada um com tempo limite de abordagem, etc ). Cada membro responde as seguintes questões: O que está funcionando bem ? Em que podemos melhorar ? Quais são os obstáculos ou problemas enfrentados pela equipe ?. Deve ser utilizado uma fatia de tempo para reflexão e resolução dos problemas indicados. A reunião termina com o facilitador registrando as ações.

Este post pode ser lido em meu blog:
http://ccasado.wordpress.com/2008/01/06/estrategias-de-entrega-agil

Como se relacionam o SCRUM e o ITIL?

Wednesday, December 19th, 2007

Depois do curso de SCRUM (muito legal por sinal) muitas pessoas me questionaram sobre o relacionamento do SCRUM com o ITIL. Resolvi escrever o que entendo até o momento.

O primeiro ponto que tem que ficar claro é que “uma coisa é uma coisa e outra coisa é outa coisa”, ou seja, SCRUM e ITIL possuem própositos diferentes e se destinam a atividades diferentes. Contudo existem pontos importantes de integração e algumas semelhanças que gostaria de colocar aqui:

  • Em linhas gerais possuem conceitos compatíveis:
    • Aproximação com negócio
    • Estabelecer processos e regras
    • PDCA (melhoria contínua)
  • Forte integração com o processo de mudanças e liberação. Proposta do SCRUM é totalmente compatível com o que esperávamos com o ITIL.
    • Sprint ~ Relase
    • Restrospective ~ Reunião pós implementação
    • Podemos ter templates e tarefas necessárias como teste e criação de um plano para a liberação, no estilo Yahoo (ver ferências)
    • Possível participação no Gerente de Mudanças na reunião com o SMM
    • Sprint só termina quando o produto está em produção e estável (muito importante difundirmos este conceito!)
  • Processo de problemas
    • Necessidade de uma interface do processo de problemas com o “Product Owner” para correção de erros
    • Constraints como condições de performance do site devem ser inseridas no backlog (não apenas user stories)
  • Processo de Incidentes:
    • Incidentes graves devem ter prioridade sobre sprints. A equipe deveria parar o sprint e resolver o incidente o mais rápido possível.
    • Grande risco de ter um volume alto de SMs vindo pessoalmente e ligando para produção e datacenter para resolver “impedimentos”. Temos que estabelecer algumas regras para o acesso ao suporte e operação, ou seja, criar nosso “ambiente seguro” para não ter problemas. O ideal é ter SLAs e somente se quebrado o cara poderia encarar como um “impedimento”.

O mais importante nesta discussão é conscientizar todo mundo das interfaces que temos que pensar desde agora. Não podemos perder a oportunidade de já nascer integrado!

Utilizei algumas referências estudando sobre isto. Aqui estão: