cObaia.net

web, nerdezas, marotices e supimpezas!

Review 2008

Uou um pouco atrasado não, para fazer um review, mas foi apenas hoje que deu tempo de sentar o traseiro gordo em uma cadeira em frente ao notebook em casa, então vamos falar de 2008, para mim um ano ótimo e ruim.

Sim as duas coisas ao mesmo tempo, vamos aos fatos:

Me formei em 2007, e 2008 abri uma empresa, a mesma faliu; (ruim)

Fevereiro de 2008 me mudei para Porto Alegre em busca de emprego, isso me deixou feliz pois achei que seria difícil arrumar emprego, e no final estava escolhendo a vaga que eu queria entre 3 empresas; (ótimo)

Resolvi ficar em Pelotas, para trabalhar na Conrad Caine, nada melhor que ficar perto da família, amigos e namorada; (ótimo)

Ingressei na pós graduação de gerenciamento de projetos; (ótimo)

Porém de março a setembro, não tive vida pós empresa, entrei em um projeto digamos totalmente atrasado, e fiquei de bombeiro tentando apagar o fogo, foi uma luta árdua, de dias dentro da empresa, finais de semana perdido, muitas dormidas em baixo da mesa do escritório, muitas noites em claro. Porém no final deu certo, ao ponto profissional foi ótimo, porém para vida social foi péssimo; Setembro ganho um desafio profissional, me deixaram um projeto a liderar, eu com idéias revolucionarias vendo, vários blogs falando que os programadores era felizes com o modo de trabalho, pensei eu, quero ser feliz também, vamos usar agile, e deixar os programadores felizes! Não foi fácil, a tentativa frustrada de aplicar Scrum, acabou quando me dei conta, que não depende de eu querer, a equipe tem que querer, e a equipe se trata de todos, não de uma pessoa, é o Dono da empresa, é o Diretor da empresa, é o “Gerente de Projeto”, é a equipe de programadores, e por último nem menos importante, o mais importante o Cliente, porém isso foi como em um projeto que pegamos as lições aprendidas, foi para mim uma ótima lição, é ótimo tentar mudar, porém temos que ter aliados, ou convencer as pessoas a serem aliadas, estou ainda na batalha, tentando mostrar o lado que vejo no movimento agile, que não faz o projeto se tornar mais fácil, porém faz o projeto ficar menos errado;

Estou morando sozinho, consegui algo que queria algum tempo, agora com 20 anos sou um cara que pago minhas contas e tomo conta de mim :D; (ótimo)

De Setembro até hoje, esta sendo dureza, o cliente definio o projeto, dentro dessas definições, veio algo como usar Drupal, banco de dados MySQL, e armazenar arquivos no MySQL.

Ponto 1: O Drupal

Não conhecia o mesmo, até conhecia tinha feito 1 trabalho enquanto cursava a faculdade, não me recordo a matéria, porém era algo ligado a TI, tinhamos de mostrar ferramentas que estavam sendo usadas coorporativamente, e me lembrei de ter lido em algum blog, que o drupal estava em alta nesse quesito, utilizado largamente nas empresas para comunicação, e criação de conhecimento com seus, blogs e outras ferramentas integradas. Porém para o projeto o drupal era totalmente desconhecido para mim, depois de alguns dias as surpresas, lembra daquele código estruturado? com querys misturadas com HTML e lógica?

É nem sempre a vida é linda, tive que aprender coisas que até o capeta dúvida, algumas magias negras que nem o javascript acredita, mas foi indo…

Ponto 2: MySQL Armazenar arquivos

Que o MySQL é um ótimo banco ninguém dúvida, que é possível armazenar arquivos todo mundo sabe, e a performance alguem sabe? Pois é, nem eu tinha conhecimento total da performance de armazenar arquivos, sendo que era totalmente contra essa prática, preferia guardar referencia, e armazenar os arquivos no file system, ou até mesmo armazenar o arquivo no banco, porém fazer cacheamento no file system, eis que o Cliente quer, porque vamos usar cluster diz o cliente, pelo que eu saiba em 1 cluster temos como definir 1 servidor de file system, ou até replicar o file system em todos os servidores, argumentos vão, argumentos vem, porém a frase que me marcou foi: “The client is the boos”, é sem dúvida o Cliente é o chefe…

Ia me esquecendo quando ao blog, que ficou meio parado durante o ano, devido a parte perdida do âmbito social, espero que agora nesse ano eu trabalhe menos, por sua vez gostaria de ganhar mais e aproveitar mais, também, eu adoro o que faço, amo programar, trabalhar com desenvolvimento de sites, e agora estou criando um paixão por gerenciamento de projetos, porém a vida social é linda, como é bom fazer 1 chimarrão e ir para a praia desfrutar do mesmo, com pessoas que você escolhe para estar do seu lado, então penso em resgatar esse ano o que perdi de vida social;

Outro ponto bom, foi o despertar pela leitura, agradeço muito a feira de livro desse ano, me resgatou a paixão por ler livros não técnicos, des de Julho se não me escapa, já foram vários livros, e agora virou até mania adquirir livros, eita vício bom, espero que continue ao longo de 2009.

Por oras, era isso, desejo tudo de bom para todos, nesse ano de 2009, que trabalhe bastante, mas não esqueça da vida social, é difícil consilhar os dois lados, porém se conseguirem chegar perto de uma harmonia perfeita, vai ser ótimo, pois um acaba ajudando o outro. No mais, saúde e sucesso para todos, e valeo por estar lendo esse mero site, de um cara que não sabe escrever muito bem, porém tem sede por conhecimento e compartilhar o mesmo.

Livro sobre Agile Scrum e XP

Está agora traduzido um ótimo livro sobre gerenciamento de projeto ágil, onde aborda sobre o processo de uma empresa Suéca, passou ao implementar XP e Scrum na mesma.

Uma das coisas que mais dificultam para quem está començando no agile é o fato de não haver nenhum manual dizendo exatamento o que você deve fazer. Você tem que experimentar e continuamente adaptar o processo até que ele se encaixe na sua situação específica.

Este livrooferece a voc6e um ponto de início, através de um conto detalhado sobre como uma empresa sueca implementou Scrum e XP com um time de aproximadamente 40 pessoas e como ele continuamente melhoraram seu processo ao longo de 1 ano.

Sob a liderança de Henrik Kniberg eles experimentaram diferentes tamanhos de time, diferentes tamanhos de sprint, diferentes definições para “feito”, diferentes formatos para o product backlog, diferentes estratégias de testes, diferentes modos de realizar demonstrações, diferentes modos de sincronizar múltiplos times de Scrum, etc. Eles também experimentaram práticas XP - diferentes modos de fazer builds contínuos, programação em par, test driven development, etc e também omo combinar tudo isso com Scrum.

As restrições de seu time podem ditar formas diferentes de configuração das práticas (e até mesmo comprometimento), mas aqui está um exemplo de como alcançar o processo de “melhoria contínua” que fará seu processo ágil o melhor para você.

Descrição retirada do site InfoQ.

O download pode ser feito aqui, basta se registrar no site InfoQ.

Entendendo o mascote elefante do PHP

Papai noel trouxe de presente o CakePHP 1.2

É verdade, papai noel, não esqueceu dos programadores PHP e trouxe direto do forno, o CakePHP 1.2 versão final.

Algumas das funcionalidades dessa versão, pode ser vista aqui.

Parabéns pra equipe Core do CakePHP e vida loga a esse ótimo framework!

Drupal hook_theme()

O Drupal por ser um CMS e largamente utilizado, possuí um sistema de temas,, ou seja, é possível trocar toda a camada de visão do drupal, assim como algumas funções do drupal que retornem html, podem ser implementadas dentro do tema, para fazer uma substituição do resultado final.

Tendo isso em conhecimento, os módulos, normalmente necessitam retornar algum resultado, seja ele o que for ( HTML, XML, RSS…), e uma maneira de possibilitar os temas sobrescreverem os resultados é implementando em seu módulo o hook_theme(). Seu uso é super simples:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function newspaper_theme() {
	return array(
    'newspaper' => array(
          'template' => 'newspaper',
          'arguments' => array('newspaper' => NULL),
	   ),
     'newspaper_archive' => array(
        'template' => 'newspaper_archive',
        'arguments' => array('newspapers' => NULL)
	   ),
     'newspaper_block' => array(
        'arguments' => array('path' => NULL),
        'file'  => 'newspaper.theme.inc',
	   ),
	   'teaser_block' => array(
	       'arguments' => array('path' => NULL),
	       'file' => 'teaser.theme.inc',
	   ),
     'teaser' => array(
         'arguments' => array('teaser' => NULL),
         'template' => 'teaser',
     )
  );
}

Como pode ser visto sua implementação é super simples, definimos o nome dos temas que queremos, no exemplo temos, o array newspaper. Nesse array, recebe outro array com algumas definições:

  • Arguments: Os argumentos que a função de tema tem que receber, por exemplo: theme(’newspaper’, 23);
  • File: Indicamos onde está implementada a função tema, por exemplo:
    file: newspaper.theme.inc e no arquivo temos a função theme_newspaper()
  • Template: Se passa 1 template, quando desejamos usar um arquivo de template, para exibir os resultados, salva o nome do template, tem que ser igual ao dado no theme.

Com o hook_theme, implementado e as funções de temas criadas, ou os templates, é possível ter diversos resultados, e dar visão as funcionalidades do seu modulo, sem perder a flexibilidade de sobreposição, ou seja continua sendo possível alterar a forma de exibir.