quarta-feira, 16 de dezembro de 2009
quinta-feira, 23 de julho de 2009
NyroModal revised + validate
Depois de ficar algum tempo sem postar, correria na troca de emprego , deadlines de projetos... Bom.. segindo...
Algum tempo atrás, me deparei com uma necessidade de abrir um formulário em uma modal, até ai beleza. Chamo a div pelo nyroModal #link e já era. E a validação?
Desde que me deparei com a biblioteca jQuery.validation #link foi amor a primeira vista. Ela é bem simples de ser implementada e mais simples ainda de usar. Na verdade é configurar, ou estender, as regras e pronto, nesse exemplo eu estendo um pouco mais as funcionalidades mudando o jeito que os highlights vão aparecer. Nada muito complexo. Bom mas e a tal modal.
Quebrei um pouco a cabeça, li o manual do nyroModal várias vezes até que cheguei ao seguinte código:
Algum tempo atrás, me deparei com uma necessidade de abrir um formulário em uma modal, até ai beleza. Chamo a div pelo nyroModal #link e já era. E a validação?
Desde que me deparei com a biblioteca jQuery.validation #link foi amor a primeira vista. Ela é bem simples de ser implementada e mais simples ainda de usar. Na verdade é configurar, ou estender, as regras e pronto, nesse exemplo eu estendo um pouco mais as funcionalidades mudando o jeito que os highlights vão aparecer. Nada muito complexo. Bom mas e a tal modal.
Quebrei um pouco a cabeça, li o manual do nyroModal várias vezes até que cheguei ao seguinte código:
$(function(){ $("#legal").nyroModal({ endFillContent: function(){ $('#email').focus(function(){ $(this).val(''); }); classeErro = 'Erro'; $("form").validate({ rules:{ email_jogarNovamente:{ required:true, email:true } }, messages:{ email_jogarNovamente:{ required:'Email inválido!', email:'Email inválido!' } }, highlight: function(element, errorClass){ $(element).addClass(classeErro); }, unhighlight: function(element, errorClass){ $(element).removeClass(classeErro); }, errorPlacement: function(error, element){ error.appendTo(element.prev()); }, errorElement: 'strong', submitHandler: function(form){ $(form).submit(); } }); }); });#ficaadica
quarta-feira, 1 de julho de 2009
TDD e PHP na Prática
Excelente artigo, indispensável eu diria, sobre TDD e PHP. Ele usa uma abordagem focada no CakePHP, mas nada que seja impossível de adptar.Entenda de uma vez por todas esse conceito nem tão novo assim, mas que "tá na moda". Inclui como "instalar" o SimpleTestPHP, escrever bons testes e ser um desenvolvedor feliz :P.
Confira aqui vale a pena!
flw!
Obs.: Também gosto muito do PHPUnit, também #super-fácil e segue a mesma linha, que você pode conferir rapidamente aqui. Bom divertimento, e testes claro!
E não esqueça: "Seja maníaco por testes você também, você só tem a ganhar"
Confira aqui vale a pena!
flw!
Obs.: Também gosto muito do PHPUnit, também #super-fácil e segue a mesma linha, que você pode conferir rapidamente aqui. Bom divertimento, e testes claro!
E não esqueça: "Seja maníaco por testes você também, você só tem a ganhar"
terça-feira, 30 de junho de 2009
Banco de dados para todos os gostos
Seguindo a série, "Não blogo e resolvi colar links" :D, fica uma dica pra quem tem um sistema mas não pode/não tem tempo para estudar como funcionaria um sistema padrão para o dito negócio. Claro que a regra de negócio do sistema é, na maioria das vezes, algo único. Porém nada nos impede de usar alguma análise pré pronta, nos basearmos nelas e adpatarmos/construirmos a do sistema que estamos programando.
fica o link http://www.databaseanswers.org/data_models/index.htm
são dezenas de databases pré analizados, desde mega complexos, como um CRM inteiro até um representante da Avon(!), sim tem de tudo.
Aproveitem!
[ ]'s
fica o link http://www.databaseanswers.org/data_models/index.htm
são dezenas de databases pré analizados, desde mega complexos, como um CRM inteiro até um representante da Avon(!), sim tem de tudo.
Aproveitem!
[ ]'s
segunda-feira, 29 de junho de 2009
Gerenciamento de projetos
Bom faz um tempo que não "blogo" nada... Mas essa lista eu não poderia deixar passar, tá certo que não é lá essas coisas o post... mas a lista é boa e vale a pena. Segue um lista com os principais gerenciadors de projetos, alguns on-line outros para instalar, alguns FREE outros nem tanto :D, mas o fato que todos tem seu valor. Cada um com sua aplicabilidade, funcionalidade e dinâmica distinta. Espero que seja util. Foi escrita em colaboração com a lista PHP-brasil mas especialmente com grande contribuição do usuario vitorneves. Valeu!
http://www.learniceberg.com/
http://springloops.com/
http://developer.yahoo.com/
http://www.knowledgetree.com/
http://crowdfavorite.com/tasks-jr/
http://www.getontracks.org/
http://opengoo.org/
http://www.cynapse.com/products/cynin
http://www.activecollab.com/
http://www.streber-pm.org/
http://pbworks.com/
http://trac.edgewall.org/
http://www.basecamphq.com/
http://nokahuna.com/
http://www.jumpchart.com/
http://www.creativeprooffice.com/
http://www.lighthouseapp.com/
http://www.egroupware.org
http://verbapp.com
http://coopapp.com
http://collabtive.o-dyn.de/index.php
http://www.taskfreak.com
é isso aih... T+!
domingo, 17 de maio de 2009
Conheça os Recess! Framework

Uma amostra dos tramentos de erros....
Recess Diagnostics from Kris Jordan on Vimeo.
Você encontra mais informações e screencasts:
Site do projeto: www.recessframework.org
Ajude da documentação: http://www.recessframework.org/page/how-to-help-document-the-recess-framework
Leia o material disponível: http://www.recessframework.org/book/html/index.html
Leia, entenda, participe vale a pena!
Scrum na prática
Essa palestra é meio longa mas vale a pena cada minuto. Especialmente dedicada a quem quer entender um pouco mais da aplicabilidade desse tal scrum e conhecer um pouco sobre o Manifesto Ágil.
Confira como foi sua adoção na Globo . com.
(Segue o link pq o autour não permitiu embeds :'( ) Scrum na Globo.com - Falando em Agile
Confira como foi sua adoção na Globo . com.
(Segue o link pq o autour não permitiu embeds :'( ) Scrum na Globo.com - Falando em Agile
terça-feira, 12 de maio de 2009
Tratando retornos no PHP
Depois de quase dois meses de correria, e adptações no novo emprego, finalmente volto a postar.
Esses dias precisei manipular retornos de um JSON em um Controlador. Até aí beleza, fui direto pegar o retorno dele com json_decode, sim porque pensei que era exatamente o inverso da json_encode, que recebe um array como parâmetro e codifica em JSON.
Pois bem, pra minha noobística surpresa, a função json_decode retorna um objeto(!). Pensei comigo, ta ok retorna um objeto, mas Controlador que estou trabalhando devolve os dados como array para a view. E agora? Simples passo o segundo parâmetro da função json_decode como true. Tá mas qual é a graça, seria interessante se eu pudesse usar essa idéia e manipular os retornos de minhas funções ao meu "bel-prazer". Até para poder ter retornos dinâmicos para o mesmo dado. Ora necessito dele como array para a view, Ora com objeto dentro de outro objeto.
Pensei um pouco , googleie e cheguei no seguinte código:
O que ela faz na real, é uma função recursiva, que percorre o objeto, caso o valor também seja um objeto ela chama ela mesma e trata o próximo nível, e assim sucessivamente. Antes o meu array de teste retornava os dados assim:
Logo depois consegui o resultado esperado:
Mas fui além, queria agora que todos os retornos de meus métodos SEMPRE retornem um Objeto. Até para padronizar a saída. Sei que retornando array está padronizada, mas num array com muitos níveis fica chato de acessar ou trocar valores, por exemplo:
Achei muito melhor de acessar assim:
Qual o segredo? Usar um recurso do PHP chamado stdClass. Usada pra induzir tipos, e também para criar classes "OnTheFly", podemos usá-la para fazer uma "engenharia" reversa na função object2array() . Segue o código:
Agora podemos aplicar essa função em quaisquer retornos que quisermos e trabalhar sempre com a "notação" de objetos ( $obj->propriedade ).
E é isso, agora não tem mais desculpa pra tratar os retornos, basta convertê-los e usar a sintaxe mais apropriada.
T+!
PS.: Fica mais uma "dica da dica", caso o array seja indexado numéricamente,
acessar uma propriedade assim:
causaria um parse_error, porém nesses casos, para acessarmos a propriedade basta coloca-lá entre chaves:
Flw!
Pois bem, pra minha noobística surpresa, a função json_decode retorna um objeto(!). Pensei comigo, ta ok retorna um objeto, mas Controlador que estou trabalhando devolve os dados como array para a view. E agora? Simples passo o segundo parâmetro da função json_decode como true. Tá mas qual é a graça, seria interessante se eu pudesse usar essa idéia e manipular os retornos de minhas funções ao meu "bel-prazer". Até para poder ter retornos dinâmicos para o mesmo dado. Ora necessito dele como array para a view, Ora com objeto dentro de outro objeto.
Pensei um pouco , googleie e cheguei no seguinte código:
function object2array($object){
$arr = array();
foreach ($object as $i => $val):
$arr[$i] = (is_object($val))? object2array($val) : $val;
endforeach;
return $arr;
}
O que ela faz na real, é uma função recursiva, que percorre o objeto, caso o valor também seja um objeto ela chama ela mesma e trata o próximo nível, e assim sucessivamente. Antes o meu array de teste retornava os dados assim:
stdClass Object
(
[0] => a
[1] => b
[c] => stdClass Object
(
[0] => d
[1] => e
)
)
1
Logo depois consegui o resultado esperado:
Array
(
[0] => a
[1] => b
[c] => Array
(
[0] => d
[1] => e
)
)
1
Mas fui além, queria agora que todos os retornos de meus métodos SEMPRE retornem um Objeto. Até para padronizar a saída. Sei que retornando array está padronizada, mas num array com muitos níveis fica chato de acessar ou trocar valores, por exemplo:
$foo['abr']['lero']['some']['index'] = 2;
Achei muito melhor de acessar assim:
$foo->abr->lero->some->index = 2;
Qual o segredo? Usar um recurso do PHP chamado stdClass. Usada pra induzir tipos, e também para criar classes "OnTheFly", podemos usá-la para fazer uma "engenharia" reversa na função object2array() . Segue o código:
function array2object($array){
$obj = new stdClass();
foreach ($array as $i => $val):
$obj->{$i} = (is_array($val))? array2object($val) : $val;
endforeach;
return $obj;
}
Agora podemos aplicar essa função em quaisquer retornos que quisermos e trabalhar sempre com a "notação" de objetos ( $obj->propriedade ).
E é isso, agora não tem mais desculpa pra tratar os retornos, basta convertê-los e usar a sintaxe mais apropriada.
T+!
PS.: Fica mais uma "dica da dica", caso o array seja indexado numéricamente,
acessar uma propriedade assim:
$foo->0
causaria um parse_error, porém nesses casos, para acessarmos a propriedade basta coloca-lá entre chaves:
$foo->{0}
Flw!
terça-feira, 24 de março de 2009
PHP Jedi - Boas Práticas e Alta Performance
Mais uma dica super útil qe achei na net e merece ser postada!
quinta-feira, 12 de março de 2009
PHP RESTful
Essa é uma apresentação que catei na net sobre alguns conceitos de REST no PHP. Divirtam-se!
PHP RESTful Web Services
View more presentations from Felipe Ribeiro.
domingo, 1 de março de 2009
Meu punho na sua cara!
Calma!
Essa é uma dica pra quem curte um street figther e sempre quis fazer parte do jogo! Agora voce pode!
Entre no site do street fighter IV ,siga as instruções e pronto.
Bah realmente estou ficando velho! sou do tempo do Street Fighter II !
Esse sou eu:
Entre no site do street fighter IV ,siga as instruções e pronto.
Bah realmente estou ficando velho! sou do tempo do Street Fighter II !
Esse sou eu:

Tem até um vídeo meu, mas como outro personagem...
Divirtam-se, e postem ai seus resultados!
sábado, 28 de fevereiro de 2009
Procurando softwares em PHP?
Se você está procurando softwares em PHP, que sejam software livre / código aberto , de rápida implementação?
talvez aqui você encontre. A lista é grande. São 17 páginas de softwares livres /código aberto feitos em PHP, AJAX, JS, MySQL, Postgres, etc...
Muito bom o site...
talvez aqui você encontre. A lista é grande. São 17 páginas de softwares livres /código aberto feitos em PHP, AJAX, JS, MySQL, Postgres, etc...
Muito bom o site...
Demonstrador de softwares em PHP
Essa é pra quem gosta de "testar" aplicações em PHP antes de instalar ou então para quem procura algum software open source para alguma necessidade nova ou que esteja construindo.
o link: http://php.opensourcecms.com
apesar do nome ele não contem apenas CMS. Eis alguns destaques:
o link: http://php.opensourcecms.com
apesar do nome ele não contem apenas CMS. Eis alguns destaques:
- Collabtive: Muito bonito o design, simples e funcional.Gerenciador de Projetos,tarefas, controle de tempo,e muito mais.
- Open Cart: Um e-commerce simplificado, bonito simples.o único porem é que não foi totalmente traduzido,mas nada que a "comunidade" não possa dar uma mão! ;-)

- Concrete 5: Esse vai na onda dos aplicativos sem código fonte. É chieo de AJAX, clicks-to-edit, drag-and-drop, bonito, moderno, estável. Muito a fu! Bom para quem tem qu entregar aquele site "estático" para ontem. Vale a pena.
Existem vários outros projetos, mostrei apenas os mais "amigáveis", vai do gosto de cada um. Mas o serviço do site é muito massa!
quarta-feira, 18 de fevereiro de 2009
Office War...
Muito massa esse vídeo, diversão do inicio ao fim. Muito fera mesmo. Só não sei se o vídeo não foi feito pela fábrica das armas que eles estão usando. Queria uma daquelas!
The Great Office War from Runawaybox on Vimeo.
The Great Office War from Runawaybox on Vimeo.
terça-feira, 17 de fevereiro de 2009
Você em Mangá...
Como é uma onda do momento, não podia ficar de fora. Todo mundo está fazendo um avatar em mangá, eu também fiz o meu.
De uma olhada:
quem me conhece diz que está igual.
Faca o seu em www.faceyourmanga.com e posta aqui o resultado. T+!
De uma olhada:

Faca o seu em www.faceyourmanga.com e posta aqui o resultado. T+!
quarta-feira, 14 de janeiro de 2009
Plugins essenciais para um desenvolvimento ágil
Alguns dos plugins para o Firefox para desenvolvimento web que uso. Gostaria de deixar a dica desses plugins pois eles têm otimizado meu trabalho ao máximo e com certeza otimizarão o seu também. Alguns nem são tão importantes, mas outros são quase que obrigatórios. Experimente usá-los você não irá se arrepender.
Segue minha lista:
Cooliris Previews
Dummy Lipsum
Um texto muito conhecido para "encher-linguiça". Muito bom, basta criar os parágrafos e copiar para área de transferência.
link: https://addons.mozilla.org/pt-BR/firefox/addon/2064
FireBug
Esse é quase obrigatório para todo o desenvolvedor web que se preze. Nele você encontra debug para: javascript, CSS, HTML, tráfego http, e muito mais.
link: https://addons.mozilla.org/pt-BR/firefox/addon/1843
Gerador de CPF e CNPJ
Gera CPF e CNPJ validos com um clique. Muito útil para testar sistemas que se baseiam nesses dados.
link: https://addons.mozilla.org/pt-BR/firefox/addon/2047
HyperWords
Quem nunca se sentiu perdido com uma palavra no meio do texto? O HyperWords é um multi-tradutor em que você seleciona o texto a traduzir e com o botão direito do mouse, escolhe em qual lingua você quer traduzir. Ele também possui vários outros recursos, como o de buscar a palavra selecionada em vários sites.
link: https://addons.mozilla.org/pt-BR/firefox/addon/1941
IETab
Muito útil para testar seu layout no IEca, sem ter de abrí-lo claro. Apenas o motor do javascript não apresenta as mesmas falhas, mas mesmo assim é muito útil. Apenas usuarios do sistema operacional de redmond.
link: https://addons.mozilla.org/pt-BR/firefox/addon/1419
MeasureIt
Quem nunca perdeu um tempão acertando medidas entre elementos no seu layout? O MeasureIt cria uma régua pra você medir o que quiser em pixels. Muito útil pra não se perder tempo adicionando ou removndo pixels.
link: https://addons.mozilla.org/pt-BR/firefox/addon/539
Pencil
Uma extenção muito robusta para desenhar diagramas e telas. ideal para quem ultiliza algum sistema de tickets e precisa fazer alguma referencia com uma imagem.
link: https://addons.mozilla.org/pt-BR/firefox/addon/8487
ReminderFox
Que tal anotar um lembrete e receber um alerta direto no firefox? Util pra quem tem muitas tarefas e não dispõe de um gerenciador. Você cadastra o que quiser e quando quer que o firefox te avise.
link: https://addons.mozilla.org/pt-BR/firefox/addon/1191
Web Developer
Outro plugin obrigatório para quem trabalha com desenvolvimento web. Cria uma barra de ferramentas extras especial para desenvolvedores, com varios recursos que com certeza agilizarão seu trabalho.Entre eles eu destaco o Resize e o Populate Form Fields, duas mãos na roda!
link: https://addons.mozilla.org/pt-BR/firefox/addon/60
YSlow
Que tal um avaliador de desenpenho do teu site/sistema? o Yslow é uma ferramenta que faz isso, além de monitorar o tempo e o tamanho do trafego que seu site causa quando é aberto, ele ainda te dicas para corrigir essas falhas. Junto com o Firebug e o Web Developer formam um trio obrigatorio para quem trabalha ou pretende trabalhar com desenvolvimento web.
link: https://addons.mozilla.org/pt-BR/firefox/addon/5369
Colorzilla
Chega de tentar adivinhar os hexasdecimais usados em determinado layout. Com o Colorzilla você simplesmente clica no botão do plugin e depois em cima da cor ou então escolhe uma cor com o editor de cores do sistema operacional.
link: https://addons.mozilla.org/pt-BR/firefox/addon/271
Segue minha lista:
Cooliris Previews
Com ele você pode visualizar o site, ou uma imagem no tamanho "real" sem ter que clicar em link algum. Ideal para quem gosta de navegar sem ter que abrir varias janelas.
link: https://addons.mozilla.org/pt-BR/firefox/addon/2207Dummy Lipsum
Um texto muito conhecido para "encher-linguiça". Muito bom, basta criar os parágrafos e copiar para área de transferência.
link: https://addons.mozilla.org/pt-BR/firefox/addon/2064
FireBug
Esse é quase obrigatório para todo o desenvolvedor web que se preze. Nele você encontra debug para: javascript, CSS, HTML, tráfego http, e muito mais.
link: https://addons.mozilla.org/pt-BR/firefox/addon/1843
Gerador de CPF e CNPJ
Gera CPF e CNPJ validos com um clique. Muito útil para testar sistemas que se baseiam nesses dados.
link: https://addons.mozilla.org/pt-BR/firefox/addon/2047
HyperWords
Quem nunca se sentiu perdido com uma palavra no meio do texto? O HyperWords é um multi-tradutor em que você seleciona o texto a traduzir e com o botão direito do mouse, escolhe em qual lingua você quer traduzir. Ele também possui vários outros recursos, como o de buscar a palavra selecionada em vários sites.
link: https://addons.mozilla.org/pt-BR/firefox/addon/1941
IETab
Muito útil para testar seu layout no IEca, sem ter de abrí-lo claro. Apenas o motor do javascript não apresenta as mesmas falhas, mas mesmo assim é muito útil. Apenas usuarios do sistema operacional de redmond.
link: https://addons.mozilla.org/pt-BR/firefox/addon/1419
MeasureIt
Quem nunca perdeu um tempão acertando medidas entre elementos no seu layout? O MeasureIt cria uma régua pra você medir o que quiser em pixels. Muito útil pra não se perder tempo adicionando ou removndo pixels.
link: https://addons.mozilla.org/pt-BR/firefox/addon/539
Pencil
Uma extenção muito robusta para desenhar diagramas e telas. ideal para quem ultiliza algum sistema de tickets e precisa fazer alguma referencia com uma imagem.
link: https://addons.mozilla.org/pt-BR/firefox/addon/8487
ReminderFox
Que tal anotar um lembrete e receber um alerta direto no firefox? Util pra quem tem muitas tarefas e não dispõe de um gerenciador. Você cadastra o que quiser e quando quer que o firefox te avise.
link: https://addons.mozilla.org/pt-BR/firefox/addon/1191
Web Developer
Outro plugin obrigatório para quem trabalha com desenvolvimento web. Cria uma barra de ferramentas extras especial para desenvolvedores, com varios recursos que com certeza agilizarão seu trabalho.Entre eles eu destaco o Resize e o Populate Form Fields, duas mãos na roda!
link: https://addons.mozilla.org/pt-BR/firefox/addon/60
YSlow
Que tal um avaliador de desenpenho do teu site/sistema? o Yslow é uma ferramenta que faz isso, além de monitorar o tempo e o tamanho do trafego que seu site causa quando é aberto, ele ainda te dicas para corrigir essas falhas. Junto com o Firebug e o Web Developer formam um trio obrigatorio para quem trabalha ou pretende trabalhar com desenvolvimento web.
link: https://addons.mozilla.org/pt-BR/firefox/addon/5369
Colorzilla
Chega de tentar adivinhar os hexasdecimais usados em determinado layout. Com o Colorzilla você simplesmente clica no botão do plugin e depois em cima da cor ou então escolhe uma cor com o editor de cores do sistema operacional.
link: https://addons.mozilla.org/pt-BR/firefox/addon/271
Assinar:
Postagens (Atom)