Com o advento da versão 1.8.0 do Zend Framework algumas mudanças no Zend_Loader serão necessárias quando for utilizado o autoload.
Até então nós habilitávamos o Zend_Loader no bootstrapper para usar o autoload da seguinte forma:
Zend_Loader::registerAutoload();
Com o código acima, todas as classes incluindo as que utilizassem a estrutura de namespaces do ZF seriam inclusas no pelo autoload no ato da criação de sua instância desde que estivessem no include_path, porém, esta maneira está deprecated e com isso algumas mudanças são necessárias para que seu código continue funcionando em versões futuras e não receba um notice nas versões atuais.
O que mudou ?
Foi criada uma nova classe chamada Zend_Loader_Autoloader que implementa algumas novas funcionalidades e facilita a inclusão de bibliotecas externas à nossa aplicação. Para utilizarmos, basta criarmos uma instância dela no bootstrapper conforme o exemplo abaixo e pronto.
Como assim?
Antes de mostrar o código vamos entender como a coisa funciona:
Ao criar uma instância da classe Zend_Loader_Autoloader no bootstrapper o ZF registra a regra de autoloading com spl_autoload e assim o processo é automatizado.
Quando a instância é criada, o ZF já busca pelas classes dos namespaces Zend_ e ZendX_ automaticamente, porém qualquer classe adicional não será encontrada.
Mas antes de resolver isso segue o código que deve ser escrito para habilitar o autload para Zend_ e ZendX_:
// Inicializa o autoloader padrão para Zend_ e ZendX_
$autoloader = Zend_Loader_Autoloader::getInstance();
// Inicializa o autoloader padrão para Zend_ e ZendX_
$autoloader = Zend_Loader_Autoloader::getInstance();
Beleza. Agora vamos configurar para que outras classes sem namespace sejam incluídas pelo autoload (lembrando que elas devem estar no include_path).
// Inicializa o autoloader padrão para Zend_ e ZendX_
$autoloader->setFallbackAutoloader(true);
Fácil demais não é?
Agora supondo que você crie o seu próprio namespace e por exemplo crie suas próprias classes usando herança e extendendo classes do próprio ZF.
Quando eu faço isso eu normalmente uso o prefixo Base_ para o meu namespace, então, para colocar este namespace no autoload eu faço assim:
// Registra o namespace Base_ no autoloader
$autoloader->registerNamespace('Base_');
Tranquilo, certo?
Bem, lembra de um post que coloquei aqui a algum tempo atrás que mostrava como integrar outras libs com o autoload do ZF? Naquele caso foi integrando o ezComponentes com o ZF.
Bem, esquece tudo aquilo porque aquilo já não nos pertence mais. Agora nós devemos fazer assim:
$autoloader->pushAutoloader(array('ezcBase', 'autoload'), 'ezc');
Concluindo
Apesar de ter havido uma quebra de compatibilidade com versões anteriores estas modificações foram bem legais porque facilitam no nosso dia-a-dia e com isso nossa produtividade aumenta.
Ainda existem outros aspectos que poderiam ser abordados mas que não julguei importantes para o post, como retornar todos os namespaces registrados, excluir um determinado namespace do autoloader e etc.
Outro ponto que achei bacana nesse novo objeto é que nós podemos modificar as configurações de autoloading em outros locais diferentes do bootstrapper como por exemplo num controller.
Espero que gostem da dica.
Abraços.
Artigo retirado do blog do Adler Medrado
segunda-feira, 15 de junho de 2009
quarta-feira, 15 de abril de 2009
Script de confirmação de data
Bem , ja fazia algum tempo que eu estava pensando em estudar ajax (já que é uma tendência para web) , e como todos que conhecem ajax sabem , javascript é imprescindível , pois ajax não é nada mais do que uma metodologia baseada em javascript , daí tive que começar do basicão do javascript (ja que as únicas coisas de javascript que eu sabia eram simples alerts) , e no meio dos meus estudos entrei em um apêndice de tratamento de datas em javascript ,e após a construção do meu primeiro scrip q confirmação de data resolvi postá-lo aqui , pois eu mesmo no trabalho ja precisei desse tipo de script e tive que recorrer a sites de terceiros em busca do mesmo. Só lembrando que para acessar a função basta criar uma página html com 1 link "[a]" e chamar a função usando algum evento, Ex: [a onclick="mostraData();"]Clique aqui para mostrar a data[/a].
Lembre-se de alterar os colchetes "[]" por tags "<>" , pois o sistema do blog reconhece como html e não mostra o código fonte corretamente se eu deixar como tags.
Segue o código :
data.js
/*
*
* Criado por Ciro Rodrigues Galvão Junior
* em 15/04/2009
*
*/
function mostraData(){
// instanciando o objeto date , para podermos manipular os métodos de data.
var data = new Date();
// Obtendo o dia , mês e ano.
var dia = data.getDay();
var mes = data.getMonth();
var ano = data.getFullYear();
//Criando array com os nomes dos dias da semana.
var diasDaSemana = new Array(
'Domingo' , 'Segunda-feira' , 'Terça-feira' , 'Quarta-feira' , 'Quinta-feira',
'Sexta-feira' , 'Sábado');
//Criando array com os nomes dos meses do ano.
var mesesDoAno = new Array(
'Janeiro' , 'Fevereiro' , 'Março' , 'Abril' , 'Maio' , 'Junho' , 'Julho' ,
'Agosto' , 'Setembro' , 'Outubro' , 'Novembro' , 'Dezembro'
);
//chamando o alert para exibir os dado coletados.
alert("Brasília - " + diasDaSemana[dia] + ", " + data.getDate() + " de " +
mesesDoAno[mes] + " de " + ano);
}
Lembre-se de alterar os colchetes "[]" por tags "<>" , pois o sistema do blog reconhece como html e não mostra o código fonte corretamente se eu deixar como tags.
Segue o código :
data.js
/*
*
* Criado por Ciro Rodrigues Galvão Junior
* em 15/04/2009
*
*/
function mostraData(){
// instanciando o objeto date , para podermos manipular os métodos de data.
var data = new Date();
// Obtendo o dia , mês e ano.
var dia = data.getDay();
var mes = data.getMonth();
var ano = data.getFullYear();
//Criando array com os nomes dos dias da semana.
var diasDaSemana = new Array(
'Domingo' , 'Segunda-feira' , 'Terça-feira' , 'Quarta-feira' , 'Quinta-feira',
'Sexta-feira' , 'Sábado');
//Criando array com os nomes dos meses do ano.
var mesesDoAno = new Array(
'Janeiro' , 'Fevereiro' , 'Março' , 'Abril' , 'Maio' , 'Junho' , 'Julho' ,
'Agosto' , 'Setembro' , 'Outubro' , 'Novembro' , 'Dezembro'
);
//chamando o alert para exibir os dado coletados.
alert("Brasília - " + diasDaSemana[dia] + ", " + data.getDate() + " de " +
mesesDoAno[mes] + " de " + ano);
}
terça-feira, 7 de abril de 2009
Trabalho Freelance: Quanto cobrar?
Estava meio em dúvida sobre como cobrar pelos meus serviços freelancers , e resolvi dar uma olhada na net pra ver como o pessoal fazia pra colocar preço nas suas aplicações, quando achei esse post que achei interessante e ja estou usando nos meus serviços.
Cobre muito caro e perca a oportunidade. Cobre muito pouco e você pode acabar se arrependendo e isso pode culminar em um resultado inferior. Então qual a melhor maneira de tarifar um projeto freelance, ganhar o trabalho e deixar você e seus clientes felizes?
Seu preço-base
Pra começar, você precisa acertar sua base de ganhos por hora. Qual o mínimo de dinheiro que você precisa pra cobrar pra cobrir suas despesas sem fazer lucro em cima? Isso, amigo freelancer, é seu preço-base. Assim que você estabelecer uma base e começar a entender quer receber um centavo a menos seria ruim (um projeto de prejuízo) vai ficar mais fácil de determinar quanto de lucro você quer fazer. Logo, isso vai fornecer um seguro viável para seus projetos e pode ajudar a colocar um preço no seu trabalho no mercado competitivo atual.
Acima de tudo, definir um preço-base é sobre ser honesto consigo mesmo. Se você não for razoável quanto ao valor que quer cobrar de um cliente, você apenas estará enganando a si mesmo e no final das contas pode acabar se queimando.
Chegando a esse preço-base requer um pouco de cálculo e um pouco de adivinhação. Quantas horas por semana você crê que vai trabalhar em um projeto? Pegue o mínimo em dinheiro que você precisa pra sobreviver e divida por esse número de horas. Por exemplo, se você precisa de R$ 500,00 ao mês pra pagar o aluguel e pode trabalhar apenas 6 horas por dia, 5 dias por semana durante quatro semanas (um mês), isso seria igual a R$ 500/120h = R$ 4,16 por hora para sobreviver.
Lucrando
Quanto cobrar?Lucrar não é cobrar um preço absurdo do cliente. Lucrar é um prêmio pelo seu trabalho que contribuiu com o crescimento do negócio ou empresa do seu cliente. Adicionalmente, considere que seu trabalho é diferente dos outros. Ou seja, seu atendimento ao cliente é melhor, você é mais rápido que os outros freelancers ou talvez a qualidade do seu produto final é maior que os de outros competidores.
Lucro é simplesmente uma porcentagem adicional ao seu preço por hora. Essa porcentagem pode ser qualquer uma, mas você precisa se justificar para que seja realista. Claro, você poderia tentar ganhar 100% acima do seu preço, mas o freelancer que decide ir por essa rota está em sério perigo de diminuir seu lucro a longo prazo.
Sempre conte como você é único ou seus serviços como freelancer são top de linha. Você não precisa estar entre os top 3% do seu campo para ser único - um dos pontos positivos pode ser seu atendimento ao consumidor ou que você termina seus projetos antes de qualquer um. Por serviços especiais assim, você pode aumentar seu lucro um pouco mais já que está oferecendo algo que nenhum outro pode oferecer.
Quanto tempo pode demorar esse projeto?
O ingrediente final que precisamos adicionar á fórmula é um cálculo preciso do número de horas necessárias para completar o projeto. A chave para descobrir quanto tempo você vai demorar é fazer um briefing com seu cliente.
Um briefing serve não só para definir o que o seu cliente quer feito, mas também para ficar de olho no que pode ser feito, como pode ser feito e como estabelecer regras para que seu cliente não decida mudar tudo na última hora. Um briefing deve estabelecer claramente o que o cliente quer. Assim, você pode definir quanto vai cobrar pelo que está escrito no documento. Se o cliente decidir mudar algo ou pede por algo extra que não está incluso no documento, então o freelancer têm todo o direito de cobrar a mais pelo trabalho extra.
Tendo um briefing em mãos, você já vai poder calcular o tanto de horas que vai demorar pra ser finalizado (assumindo que você saiba como fazer tudo que foi pedido). Conhecer todo o escopo do projeto vai resultar em uma forma mais precisa de cálculo de tempo.
Agora temos seu valor-base, sua porcentagem de lucro e o número de horas que vai demorar para finalizar um projeto. Está na hora da…
Fórmula mágica
Preço-base + Lucro + Tempo de duração = Preço ideal
Vamos usar como exemplo os dados anteriores. Você vai trabalhar por R$ 4,16 a hora e vai lucrar 10% (+ R$ 0,41/h). Ou seja, estará ganhando R$ 4,57/hora. Supondo que o projeto vai demorar dois meses para completar. Seis horas ao dia, durante dois meses (tirando os finais de semana e supondo que não haja feriado durante esses dois meses), serão um total de 240 horas. Logo, R$ 4,57/h x 240h = R$ 1096,80. Pra não ficar valores quebrados assim, vamos arrendondar para R$ 1100,00.
Mas, peraí. Isso é óbvio, não é? Não. Muitos freelancers lá fora, quer sejam escritores, designers, programadores ou músicos continuamente falham em criar regras de trabalho quando o assunto é cobrar o projeto adequadamente.
Freqüentemente (e isso é verdade para novos freelancers) existe uma tendência de cobrar um preço abaixo do mercado; talvez pelo fato de que não têm idéia de quanto devem cobrar, talvez porque eles estão tão preocupados com adversários em potencial e acham que quanto menor o preço, melhor o preço, mas muito mais freqüentemente é porque eles não acertaram seu preço base, o lucro que querem ganhar em cima e o número de horas que vai demorar para completar um projeto.Crie seu próprio preço-base e lucro e nunca ofereça um preço para um trabalho que seja menos do que você precisa pra sair sem prejuízo. Faça essas coisas básicas e seu preço sempre estará certo!
Fonte
Cobre muito caro e perca a oportunidade. Cobre muito pouco e você pode acabar se arrependendo e isso pode culminar em um resultado inferior. Então qual a melhor maneira de tarifar um projeto freelance, ganhar o trabalho e deixar você e seus clientes felizes?
Seu preço-base
Pra começar, você precisa acertar sua base de ganhos por hora. Qual o mínimo de dinheiro que você precisa pra cobrar pra cobrir suas despesas sem fazer lucro em cima? Isso, amigo freelancer, é seu preço-base. Assim que você estabelecer uma base e começar a entender quer receber um centavo a menos seria ruim (um projeto de prejuízo) vai ficar mais fácil de determinar quanto de lucro você quer fazer. Logo, isso vai fornecer um seguro viável para seus projetos e pode ajudar a colocar um preço no seu trabalho no mercado competitivo atual.
Acima de tudo, definir um preço-base é sobre ser honesto consigo mesmo. Se você não for razoável quanto ao valor que quer cobrar de um cliente, você apenas estará enganando a si mesmo e no final das contas pode acabar se queimando.
Chegando a esse preço-base requer um pouco de cálculo e um pouco de adivinhação. Quantas horas por semana você crê que vai trabalhar em um projeto? Pegue o mínimo em dinheiro que você precisa pra sobreviver e divida por esse número de horas. Por exemplo, se você precisa de R$ 500,00 ao mês pra pagar o aluguel e pode trabalhar apenas 6 horas por dia, 5 dias por semana durante quatro semanas (um mês), isso seria igual a R$ 500/120h = R$ 4,16 por hora para sobreviver.
Lucrando
Quanto cobrar?Lucrar não é cobrar um preço absurdo do cliente. Lucrar é um prêmio pelo seu trabalho que contribuiu com o crescimento do negócio ou empresa do seu cliente. Adicionalmente, considere que seu trabalho é diferente dos outros. Ou seja, seu atendimento ao cliente é melhor, você é mais rápido que os outros freelancers ou talvez a qualidade do seu produto final é maior que os de outros competidores.
Lucro é simplesmente uma porcentagem adicional ao seu preço por hora. Essa porcentagem pode ser qualquer uma, mas você precisa se justificar para que seja realista. Claro, você poderia tentar ganhar 100% acima do seu preço, mas o freelancer que decide ir por essa rota está em sério perigo de diminuir seu lucro a longo prazo.
Sempre conte como você é único ou seus serviços como freelancer são top de linha. Você não precisa estar entre os top 3% do seu campo para ser único - um dos pontos positivos pode ser seu atendimento ao consumidor ou que você termina seus projetos antes de qualquer um. Por serviços especiais assim, você pode aumentar seu lucro um pouco mais já que está oferecendo algo que nenhum outro pode oferecer.
Quanto tempo pode demorar esse projeto?
O ingrediente final que precisamos adicionar á fórmula é um cálculo preciso do número de horas necessárias para completar o projeto. A chave para descobrir quanto tempo você vai demorar é fazer um briefing com seu cliente.
Um briefing serve não só para definir o que o seu cliente quer feito, mas também para ficar de olho no que pode ser feito, como pode ser feito e como estabelecer regras para que seu cliente não decida mudar tudo na última hora. Um briefing deve estabelecer claramente o que o cliente quer. Assim, você pode definir quanto vai cobrar pelo que está escrito no documento. Se o cliente decidir mudar algo ou pede por algo extra que não está incluso no documento, então o freelancer têm todo o direito de cobrar a mais pelo trabalho extra.
Tendo um briefing em mãos, você já vai poder calcular o tanto de horas que vai demorar pra ser finalizado (assumindo que você saiba como fazer tudo que foi pedido). Conhecer todo o escopo do projeto vai resultar em uma forma mais precisa de cálculo de tempo.
Agora temos seu valor-base, sua porcentagem de lucro e o número de horas que vai demorar para finalizar um projeto. Está na hora da…
Fórmula mágica
Preço-base + Lucro + Tempo de duração = Preço ideal
Vamos usar como exemplo os dados anteriores. Você vai trabalhar por R$ 4,16 a hora e vai lucrar 10% (+ R$ 0,41/h). Ou seja, estará ganhando R$ 4,57/hora. Supondo que o projeto vai demorar dois meses para completar. Seis horas ao dia, durante dois meses (tirando os finais de semana e supondo que não haja feriado durante esses dois meses), serão um total de 240 horas. Logo, R$ 4,57/h x 240h = R$ 1096,80. Pra não ficar valores quebrados assim, vamos arrendondar para R$ 1100,00.
Mas, peraí. Isso é óbvio, não é? Não. Muitos freelancers lá fora, quer sejam escritores, designers, programadores ou músicos continuamente falham em criar regras de trabalho quando o assunto é cobrar o projeto adequadamente.
Freqüentemente (e isso é verdade para novos freelancers) existe uma tendência de cobrar um preço abaixo do mercado; talvez pelo fato de que não têm idéia de quanto devem cobrar, talvez porque eles estão tão preocupados com adversários em potencial e acham que quanto menor o preço, melhor o preço, mas muito mais freqüentemente é porque eles não acertaram seu preço base, o lucro que querem ganhar em cima e o número de horas que vai demorar para completar um projeto.Crie seu próprio preço-base e lucro e nunca ofereça um preço para um trabalho que seja menos do que você precisa pra sair sem prejuízo. Faça essas coisas básicas e seu preço sempre estará certo!
Fonte
segunda-feira, 30 de março de 2009
Vinte e cinco dicas de performance para PHP
Esta é uma compilação de material traduzido de algumas pesquisas feitas no google.
- se um método pode ser static, declare-o como static. Isso irá aumentar a performance umas 4 vezes.
- echo é mais rápido do que print
- utilize o unset nas suas variáveis para liberar memória (bons tempos em que todo mundo sabia programar em C
.. “free your mallocs”)
- não use require_once()
- utilize o caminho absoluto na hora de dar os includes, assim o PHP não perde tempo tentando resolver o caminho.
- str_replace é mais rápido do que preg_replace porém strtr é umas 4 vezes mais rápido do que str_replace
- utilizar @ para suprimir os erros é muito lento.
- habilite o mod_deflate no apache
- feche a sua conexão com o banco se você não irá mais utilizá-la (mas não fique abrindo e fechando toda hora!)
- $row['abc'] é 7 vezes mais rápido do que $row[abc]
- não use funções dentro de um laço, como por exemplo, for ($x=0; $x <> porque count() vai ser executada em todo ciclo do laço. Utilize: for ($x=0, $c=count($array); $x < $c; $x++).
- Incrementar uma variável global é duas vezes mais lento do que incrementar uma variável local
- acessar um atributo de um objeto ($obj->atributo++, por exemplo) é 3 vezes mais lento do que acessar uma variável local
- incrementar uma variável local não inicializada é 9-10 vezes mais lento do que se ela tivesse sido inicializada.
- aspas simples são mais rápidas que aspas duplas
- uma aplicação que faça cache dos scripts php vai aumentar a performance entre 25 e 100%.
- utilize cache sempre que possível. SEMPRE! (claro que isso tem um onus, mas estamos falando apenas em performance aqui)
- Se quiser testar o tamanho de uma string, utilize isset ao invés de strlen. Por exemplo: if (!isset($foo{5})) echo “foo eh mto pequeno!”;
- nem tudo precisa ser OO. Métodos e objetos tendem a consumir muito mais memória.
- não converta toda estrutura de dados em classes. Utilizar arrays é muito mais rápido.
- se você possui funções que demandam muito tempo de execução cogite transforma-las em uma extensão em C.
- habilitar o mod_gzip pode economizar em até 80% o tráfego de dados. Sua largura de banda agradece.
- evite usar SELECT *. Isso dificulta a manutenção e gasta tempo desnecessário de processamento para descobrir os campos e obter os valores do banco
- use switch ao invés de um monte de ifs
- json é mais rápido do que xml.
segunda-feira, 10 de novembro de 2008
quinta-feira, 2 de outubro de 2008
Aprenda a programar em Java de graça pela web e com material da sun.

JEDI (Java Education and Development Initiative) é uma iniciativa para desenvolvimento e educação JAVA a distância. Onde o aluno terá ao seu dispor manuais, slides de apresentação das aulas, provas, exercícios e material de referência e vídeo-aulas. Contando ainda com os softwares, o treinamento de instrutores, o acesso a suporte e a lista de discussão da comunidade.
Acesse http://www.dfjug.org/DFJUG/jedi/index.jsp e bons estudos!
quarta-feira, 1 de outubro de 2008
Configurar o Java no Firefox (LINUX)

É muito simples fazer essa junção, porém pra quem está começando agora, eu sei que complica bastante (pois eu mesmo ja sofri pra fazer isso! :p).
Basta criar-mos um link simbólico da lib libjavaplugin_oji.so que se encontra na pasta de plugins do java, para a pasta de plugins do firefox, da seguinte maneira:
ln -s /opt/jdk1.6.0_10/jre/plugin/i386/ns7/libjavaplugin_oji.so /opt/firefox/plugins/libjavaplugin_oji.so
Após feito esse processo é só reiniciar o firefox e voilá!
Seu java estará configurado pra rodar no firefox.
Ressaltando que /opt/jdk1.6.0_10 é o diretório onde o meu java se encontra instalado, vc deverá mudar esse diretório de acordo com a instalação do java na sua máquina, e o mesmo vale para /opt/firefox , que é onde o firefox está instalado na minha máquina.
Assinar:
Postagens (Atom)