quarta-feira, 16 de dezembro de 2009

Fwd: FW: GAMBIARRAS

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:

$(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"

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

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

Recess! Framework Uma das coisas mais fantásticas que eu me deparei na incessante pesquisa sobre Frameworks PHP. O Recess! é incrivel. Fácil, rápido, com uma porrada de excelentes recursos desde o php-apc, jQuery, tratamento de erros, RESTful e DRY desde sempre uma mão na roda, um execelente trabalho. Tanto que já me ofereci para ajudar na documentação e na tradução dela.

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

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:

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!

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!

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:

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...
.

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:

  • 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.

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+!

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
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/2207

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