Arquivo de Oct/2008

29 OctIntegrando o Zend Framework com o Dojo – Parte II

Nessa segunda parte do tutorial, vou exemplificar um form utilizando o Zend_Dojo_Form. Para isso, crie em seu application uma pasta chamada “forms” e salve dentro dela o arquivo Exemplo.php com o seguinte conteudo:

Código do Zend_Dojo_Form

Código do Zend_Dojo_Form

no controller que você irá chamar o form, crie a propriedade:

protected $_form;

no método Init do controller, você deve adicionar a seguinte linha de código:

Zend_Dojo::enableView($this->view);

ainda no controller o método abaixo deve ser criado:

método getForm

método getForm

Com esse código, você já terá um formulário validado tanto no serverside quanto no clientside. De uma olhada melhor depois nos filtros e no validadores do ZF, lá você vai encontrar mais opções fora essa que usei. Para visualizar o form, chame ele na ação de sua preferencia do controller com o código:

$this->view->form = $this->getForm();

No view dessa ação, você deve adicionar a seguinte linha:

<?php echo $this->form ?>

E por último, no arquivo de layout, para que ocorra a validação no momento do submit, você deve adicionar essa função abaixo da chamado do dojo:




<?php $this->dojo()->javascriptCaptureStart() ?>
function validateForm(formid) {
var form = dijit.byId(formid);
if (!form.validate()) {
alert("Verifique os campos marcados antes de continuar.");
return false;
}


return true;
}
<?php $this->dojo()->javascriptCaptureEnd() ?>

*Edit:
Atendendo ao pedido do Mozart Fazito, segue o arquivo com o post. Comi bola com essas imagens mesmo.

exemplo_zf_dojo_p2

23 OctIntegrando o Zend Framework com o Dojo

Bom, como me bati um pouco para achar boas informações sobre ZF+Dojo, resolvi escrever algo a respeito dessa integração. A princípio esse assunto será  tratado em 2 posts diferentes. Esse primeiro mostra como habilitar o dojo via zend e um próximo  irá exemplificar a criação de um formulário com o Zend_Dojo_Form. Ambos os posts serão simples e bem pequenos, pois pretendo preparar ao término de meus estudos um pequeno pdf com tudo que eu aprendi.

Esse código que vou aprensentar, foi testado com o Zend_Layout. Recomendo que você o utilize. A configuração do Zend_Layout é bem simples e os resultados são bem interessantes (mas isso já é assunto para o outro post também).

  • Instalando o Dojo

Baixe o pacote: Dojo Toolkit 1.2.0: Dojo + Dijit + DojoX e descompacte ele em sua pasta de js, dentro de public (caso esteja utilizando a estrutura de diretório do Zend_Tool). No fim você deve ter um estrutra desse tipo:

js/
   dojo/
   dijit/
   dojox/

  • Habilitando o dojo

Dentro da tag <head> de seu html, insira o seguinte código:

<?php
if ($this->dojo()->isEnabled()){
  $this->dojo()->setLocalPath('/js/dojo/dojo.js')
               ->setDjConfig(array(
                 'parseOnLoad' => true,
                 'extraLocale' => array('pt-br', 'en-us')
                 ))
               ->addStyleSheetModule('dijit.themes.tundra');
}
?>

Basicamente, esse pequeno script irá realizar o seguinte:

  1. Validar se o dojo está habilitado no ZF.
  2. Definir o caminho do script do dojo.
  3. Configurar o script para: Realizar um parse dos widgets no momendo da leitura e carregar as configurações (data, números, moeda) das regiões do Brasil e do EUA.
  4. Carregar o tema “tundra” para os widgets do dijit.
  • Adicionando código javascript

Para adicionar algum código pessoal, você deve escreve-los entre os seguintes comando do ZF:

<?php $this->dojo()->javascriptCaptureStart() ?>
//Código JS
<?php $this->dojo()->javascriptCaptureEnd() ?>

Esse método será o responsavel em adicionar todo o script na base que já está na memória para ser “printado” mais adiante.

  • Executando o Dojo

Para finalizar, você deve escrever no html tudo o que foi gerado e configurado nas linhas anteriores (e verá que mais para frente as configurações do Zend_Dojo_Form também serão escritas aqui) utilizando o comando:

<?php echo $this->dojo(); ?>

Simples não? ^^

15 OctUtilizando o Zend_Tool

Uma de minhas prioridades atuais, é me dedicar ao Zend Framework, para um novo projeto que estou participando. Pretendo começar a postar aqui todo esse processo de aprendizagem. Hoje eu fui apresentado ao Zend_Tool,  que é uma ferramenta em linha de comando que lhe ajudará a criar um projeto e tornar a inserção dos controllers mais ágil.

O Zend_Tool é uma ferramenta nova que está sendo distribuída junto com o Zend Framework versão 1.6. Ela pode ser encontrada dentro do diretório “laboratory” do arquivo compactado do framework ou pelo site: http://framework.zend.com/svn/framework/laboratory/Zend_Tool/.

  • Configurando

Não importando o modo pelo qual você obteve a ferramenta, você deve descompacta-la em um diretório e configurar esse caminho no include_path do php.ini para que ele fique acessível de qualquer local.

Para quem está configurando o Zend_Tool no windows, recomendo que copie o arquivo zf.bat (dentro da pasta bin) para o mesmo diretório do PHP (e certificar que o diretório esteja no path do win). Caso você tenha configurado o caminho direto no zf.php você deverá copia-lo junto.

  • Utilizando

Pronto, agora que tudo está corretamente instalado você pode executar alguns comandos. Para isso, criei uma pasta aonde você deseja que seu projeto seja adicionado e abra um terminal apontado para ela. Execute os seguintes comandos:

>> zf show version
irá retornar a versão do seu framework.

>>zf create project
Irá criar toda a estrutura do seu projeto. Lembre-se de criar um virtualhost no apache para apontar sempre para a pasta “public”.

>>zf create controller –name teste
Irá criar um controller com o nome de teste e junto com ele o script da view básica (index) com um “hello word” da vida.

É simples, mas levando em conta as primeira impressões que eu tive do framework, ele vai me poupar um grande trabalho. Espero que esse projeto continue sendo aperfeiçoado e traga mais novidades em breve. ^^

Fontes:
http://framework.zend.com
http://devzone.zend.com/article/3811-Using-Zend_Tool-to-start-up-your-ZF-Project

11 OctComo motivar um programador?

Um dos problemas que existem em empresas de desenvolvimento, ou com setores de desenvolvimento, diz repeito à motivação de seus funcionários, que querendo ou não, são a “matéria-prima” da empresa.

É claro que dinheiro e comprometimento financeiro (pagar os beneficios em dia e corretamente) é bom e todo mundo gosta, mas até que ponto vale a pena depender apenas disto para manter seu desenvolvedor? A começar que isto nem sempre acontece. Na maioria das vezes os desenvolvedores ganham bem menos do que merecem e muito menos pelo que fazem (afinal, é muito comum que eles agreguem outras funções).

Boa parte dos programadores trabalham com desenvolvimento porque gostam, porque são desafiados constantemente. Eles também gostam de estar sempre atualizados com as novidades do mundo tecnológico.

Você tem conhecimento disso? Você concede alguma fração do tempo de trabalho de seu funcionário  para ele se atualizar?

Será que é tão complicado assim para as empresas verem que um desenvolvedor motivado, não irá apenas produzir mais rápido, como também, irá desenvolver com muito mais qualidade? Ou que aquele novo framework, aquele novo navegador ou IDE poderiam ser úteis para a empresa?

  • Salário compatível

Esse é sempre um grande motivo para a desmotivação. Principalmente quando um funcionário já está a um certo tempo na empresa e ele não tem seu salário reajustado ou não vê chance de que isso venha a acontecer em um futuro próximo. Em poucos casos (já aconteceu comigo) o programador pode abrir mão de procurar outro emprego, caso exista algum fator em seu trabalho atual que fique acima do seu salário, no meu caso foi o aprendizado. Como existia algumas pessoas no meu
setor que eram mais experientes, o conhecimento que eu conseguia extrair delas compensava o salário estagnado. Então, a não ser que você tenha um “super” ambiente de trabalho, reveja o salário de seus funcionários.

  • Ambiente de trabalho

O segundo fator que pode influenciar (e muito) a produtividade de um programador é o ambiente de trabalho. Forneça um ambiente silencioso, como uma sala com poucos telefones. Programadores não precisam (na maioria das vezes) fazer contato com clientes via telefone, então não obrigue-os a isso.
Outro ponto importante é: ninguém gosta de uma sombra vigiando o que o programador faz. Tenha em mente que o programador está fazendo o seu trabalho e que ficar atrás dele para fazer pressão não vai ajudar em nada.

  • Manter-se atualizado

Tudo na vida de um programador é muito dinâmico, principalmente suas ferramentas de trabalho e as tecnologias que as envolvem. Como conseguir acompanhar todas essas mudanças se você não possui 30 minutos sequer para se manter antenado?
Hoje em dia é muito fácil conseguir isso. Por exemplo, indique um  agregador de notícias e peça ao funcionário  para que adicione os sites e blogs que ele mais visita. Dessa forma o desenvolvedor consegue se manter atualizado sem gastar muito tempo, afinal ele só vai ler na íntegra as notícias que lhe forem úteis.
Outro ítem que casa muito bem nesse tópico diz repeito aos blogs. Por padrão as grandes empresas bloqueiam blogs sem dó nem piedade, por ainda pensarem que blog é sinônimo de diário de adolescente. O detalhe é que hoje em dia muio material relevante é publicado em blog. Tomando este site como exemplo, mesmo tendo um domínio próprio eu uso um sistema de blog para postar e também o termo “blog” está na  minha url, que pode acabar sendo facilmente bloqueado por qualquer proxy. Então, permita que o seu funcionário se atualize!

  • Pesquisa e testes

De que adianta um programador que pode ler notícias e se manter atualizado se ele não possui tempo para testar e aprender mais sobre essas novas descobertas?
Lembre-se, o programador também possui vida social, ele não pode simplesmente abrir mão desses momentos.
Foram em horas de dedicação própria dentro do ambiente de trabalho que surgiram algumas das principais ferramentas do Google. É um momento em  que o funcionário está desligado de seus problemas e está com sua criatividade a todo vapor. Isso, mais um vez, é bom para todos. O desenvolvedor aprende algo novo (que ele pode levar para frente ou não), relaxa (mesmo que momentaneamente) e pode ter certeza que ele irá abrir ainda mais sua mente, visualizar um ou mais ponto de vista para algum problema.

Por que isso é bom para empresa? Porque você terá um funcionário ainda mais motivado, atualizado e que poderá aplicar toda esta empolgação descoberta para a solução de problemas. Permita que o seu funcionário tenha a chance de aprender durante o seu período de trabalho.

Essas são apenas quatro dicas simples, que podem ajudar a melhorar a auto-estima dos desenvolvedores, mesmo dos que trabalham em uma empresa pequena.
Algumas horas de atenção semanal ao seu programador, dando a oportunidade para que ele evolua vale bem mais do que as horas em que ele passa procurando alguma válvula de escape.

Quem sabe esse post ajuda a mudar a vida de alguém.

^^

09 OctPreconceitos tecnológicos

Hoje vou falar de algo que já me incomodou bastante: O “Preconceito tecnológico”. Comigo sempre acontecia de virar o rosto para alguma tecnologia simplesmente por não ter gostado do escopo inicial, por ter alguma implicância sem sentido ou simplesmente por ela ser muito diferente do que eu já estava acostumado. Procure por qualquer flamewar em algum fórum a respeito da “melhor” linguagem de programação e perceba os ânimos exaltados.

Eu sempre fui muito chato com isso, mas hoje em dia não sou mais. E o que eu tenho a dizer? Perca esse preconceito enquanto ele ainda é apenas uma semente! Você não precisa defender sua linguagem preferida de corpo e alma só porque alguém não gosta dela, com isso você só vai criar uma intriga boba ou perder de aprender alguma coisa interessante. Veja alguns exemplos do que já aconteceu comigo a esse respeito:

PDF
Sempre achei o PDF uma mídia estranha e chata, por precisar de programas de terceiros para visualizar e criar. Simplesmente abominava. Até que, um belo dia eu tive que refazer todos o módulo de relatórios e estatísticas de um sistema, para passar a gerar as saídas em PDF e não mais em HTML. A partir desse dia o PDF passou a ser minha mídia preferida de leitura e para trocar documentos via email.

Java
Nunca gostei de java porque tudo que eu precisava ou testava nele era sempre muito lento, muito pesado(deixo claro que na grande maioria das vezes sempre funcionavam). Mas eu não gostava de ter que ficar instalando a máquina virtual e todas essas coisas. Em quesito linguagem, nunca gostei porque sempre preferi as facilidades e “artificios” que o PHP nos permite. Hoje em dia, com uma máquina bem melhor, com versões novas do java, eu já gosto bastante dele e até chego a ficar feliz quando encontro algo feito em java (portabilidade). Sobre a linguagem, até já cogitei a idéia de aprendê-la, mas nunca me esforcei muito para começar.

Python
Tá aí outro exemplo completamente sem sentido. Sempre odiei python e nunca soube o porque (na época eu defendia o PHP com unhas e dentes, deve ser isso). Mas depois de gastar apenas algumas horinhas lendo sobre a linguagem e tentando aprender o básico, percebi que eu estava enganado. É uma linguagem muito poderosa e extremamente simples. Avancei mais no meu aprendizado, apesar de fazer alguns bons dias que não brinco com ele, mas pretendo voltar meus estudos em breve.

Ruby
Esse preconceito eu quebrei recentemente, mais precisamente quando comecei a aprender python, pois percebi que muito dos materiais ou pessoas sempre faziam ligações entre uma linguagem e outra. E o que eu estava fazendo? Não tinha nem idéia de como python funcionava e eu já estava tomando suas dores. Esse eu cortei na raiz =) Hoje é a linguagem que eu considero como “a próxima da lista”. Só pretendo me aprofundar um pouco mais em python, para depois me aventurar por esse mundo e saber em qual das duas devo apostar minhas fichas.

Esses são apenas alguns exemplos que já aconteceram comigo. Mas a lista é muito grande, “Windows x Linux”, “IE x Firefox”, “vi x emacs” e até o mais recente “Firefox x Chrome” (que diga-se de passagem eu adorei).

Que tal você tentar, nem que por uma única vez, dar uma chance para o seu “concorrente” sem criar intrigas? Pode ser que você perceba que está perdendo uma grande oportunidade. E no mais, aprender algo novo é sempre muito bom!

^^

SEO Powered by Platinum SEO from Techblissonline