DGmike

DGmike

Calma! não entre em pânico! Amanhã (talvez) tem novo post…

Você está aqui: dgmike » Arquivos para Programação

  • Home
  • Guia Rápido jQuery
  • Códigos prontos
    • PHP: Função __auloload()
    • Classe sqlsimples e sql – PHP
    • Bancos, bancos e mais bancos…
  • PagSeguro
  • Artigos
    • JavaScript (parte 1)
  • Quem é dgmike?

Até mais e obrigado pela salada

Posted in Cotidiano, Dia-a-dia, Trabalho by DGmike
Jul 16 2010
TrackBack Address.

É de conhecimento de todos os seres vivos humanóides que tudo o que tem um início tem um fim, com exceção é claro do arroz – o arroz nunca acaba, e das longas tardes de domingo que, por mais que você tente, elas não terminam. E assim como todas as outras coisas no universo, minha estadia na Visie chega ao fim.

No clássico "Guia do Mochileiro das Galáxias" os Golfinhos são a segunda raça mais inteligente do planeta

Sim, meus caros, hoje é meu último dia na família Visie. Uma empresa que tem ótimos profissionais, alguns são os melhores que eu já vi em qualquer outro lugar. Sempre tratei a visie e seus funcionários não como uma empresa e funcionários mas como uma grande equipe, talvez como um monte de piratas, onde cada um tinha um papel importante para o bom funcionamento com o barco. E caso algo desse errado, poderíamos contar uns com os outros para o der e vier. Quando ainda morava no Rio, a minha visão de empresa ideal era exatamente essa. Minha visão ainda não mudou, acho que o trabalho e o comprometimento da equipe é o mais importante para que um projeto seja um sucesso.

Neste final de ano eu completaria meus três anos de casa e vi algumas pessoas entrando e saindo da empresa e chegou a minha vez. Todas as pessoas que conhecemos alteram a nossa vida, independentemente da quantidade. Podemos aprender com os acertos e erros dos outros e adaptar o nosso aprendizado em nossa vida. Eu sou uma pessoa que gosta muito de ouvir e falar só quando é necessário. Na visie aprendi com cada pessoa que falou um “a” para mim. Não só da equipe como um todo – inclusive o pessoal de financeiro, alimentação, vendas e todos os outros setores, mas também dos clientes.

É legal ver o crescimento de profissionais como Luciano e Daniela, que chegaram com pouca ou quase nenhuma bagagem de experiência e agora pegam grandes projetos sozinhos. É legal ver a garra de um pai de família como o Fernando Sergio e inspirar-se nele para preparar a minha. É muito legal ver o Peka vivendo a vida no seu estilo único de ver o lado bom da vida. É legal pra caramba ver como o Julio lida com os problemas sempre de uma forma amena de ser, lembrando-se sempre que para tudo existe uma solução. Legal também é ver o crescimento de Zamana – meu parceiro de longas datas, começar a entender melhor JavaScript e Python e aprender novos conceitos e mesmo me ensinar novos conceitos. É legal ver como o Ricardo passou a ter mais experiência na área de front end, mesmo trabalhando há pouco tempo na visie. E é claro, é muito legal ver o Eduardo trabalhando com o seu emacs (maluco!) e ainda assim escrever ótimos códigos.

Fora o pessoal de desenvolvimento, existe a equipe que dá todo o suporte necessário para que o nosso trabalho seja bem feito. A Paloma sempre fez o seu trabalho como uma mestra e não acredito que encontrarei outra pessoa com tanta boa vontade para fazer o que ela faz, nunca deixando a peteca cair. Lana faz o trabalho mais complicado da empresa, a meu ver, e mesmo assim consegue concluir o esperado todos os meses a fio, isso deixa qualquer um orgulhoso. A Berê sempre está disposta a ajudar quem seja e a fazer mágica as mãos. Inclusive tirei a Berê duas vezes seguidas no amigo secreto, rsss… O Paradela trabalha sempre escondido, mas sei bem como o cara consegue resolver os maiores problemas de forma simples e direta, e ainda fazer faculdade.

Bom, das pessoas que passaram pela Visie posso destacar conhecimentos como corrida de F1 ou tracking. Pude ver o lado feliz de viver a vida através de um carioca que apareceu por lá. Lembro-me bem de um carinha que tinha um conhecimento grande de matemática, mas que teve que sair para concluir seu mestrado e aprendi que existe muita coisa para ver no mundo do que só o que vemos à nossa frente. Tive a oportunidade de conhecer um nerd com bagagem de conhecimento como nenhum outro que me ensinou uma forma diferente de ver o twitter. Também tive a oportunidade de ver um ótimo programador PHP que leva uma vida social muito louca (tem colegas dos mais inimagináveis possíveis, inclusive um ex-nicaraguense) e mais normal (ou anormal) que muitas outras pessoas que não se dizem nerds. Pude trabalhar ao lado de uma pessoa ímpar que teve paciência de levar o conhecimento de git para a equipe, mas que devido à distância teve que sair da empresa. No meio de tantos, gostaria de destacar os três parceiros que tive a oportunidade de trabalhar na ACSP que deixam um vazio no peito: um japonês, um pai de família e um porra-louca!

Pela empresa, ainda palestrei ao lado dos meus ídolos no CodeShow 2010. Basicamente foi no primeiro CodeShow que conheci a Visie de verdade e alguns meses depois ingressaria na empresa. Antes de entrar, já dava aula de informática, mas na Visie tive a oportunidade de lecionar de verdade, com tecnologia de verdade, para pessoas com grande porte como o pessoal do Metro-SP. Também lecionei para grandes parceiros como o Bruno Rocha, que me mostrou o vegan e ainda o linux de uma forma diferente do que eu conhecia, começava a ver linux como linux e não como ubuntu.

Como profissional, ainda tive a oportunidade de estar dentro do complexo do UOL e de outras empresas grandes, vendo como as empresas de grande porte trabalham no dia-a-dia e desenvolver os mais variados aplicativos em mais variadas linguagens e ambientes. Pude colocar a mão em bancos de dados que eu só tinha ouvido em teoria: Oracle, Postgree, Firebird, DB2, sqlite. Tive a experiência de trabalhar em pair programing com técnicas de XP e ter conhecimento do que se chama de scrum.

Em suma, dava para escrever um ótimo livro sobre todas as minhas experiências como programador/desenvolvedor da visie. Mas chega um momento no qual precisamos dar prioridades a algumas coisas – nas quais não convém falar, e como consequência precisaremos fazer escolhas.

Gostaria de agradecer ao Elcio Ferreira e ao Diego Eis pela oportunidade de trabalhar e crescer absurdamente como profissional dentro da sua empresa. Aprendendo sempre a cada palavra que saia da boca de cada um de vocês. Quando estava no Rio, um dos meus sonhos era trabalhar na Visie. Não em uma startup, ou em uma multinacional ou mesmo em uma empresa de renome nacional ou mesmo na google. Eu queria trabalhar na Visie. Eu queria trabalhar com as pessoas que me ensinaram o que é HTML, CSS e JavaScript. Obrigado por me ajudar a realizar este sonho. Saio da Visie não com raiva ou culpa ou mesmo desanimado. Saio de lá com orgulho de ter sido um funcionário da Visie.

10 Comments »
Tagged as: destino, Programação, serviço, Trabalho, trampo, vida, visie

Api de teste do meadiciona.com

Posted in Programação, php by DGmike
Jun 01 2010
TrackBack Address.

Desde que o Ederson @peka me apresentou o meadiciona.com adotei como ferramenta de gerenciamento de contas e sempre passei, nos meus e-mails e contatos, o meu perfil do programa. Mas como desenvolvedor, sempre achei que deveria existir uma maneira de conseguir resgatar esses dados de forma fácil.

meadiciona.com o seu cartão de visitas online

O meAdiciona.com é uma ferramenta desenvolvida com o intuito de facilitar sua vida. Tudo que você precisa dizer é meadiciona.com/voce.

Não aguentando mais esperar por uma API definitiva, resolvi escrever uma própria parseando o código html[bb] do meu perfil e verificando o perfil de alguns amigos, que poderiam ter menos ou mais informações diversas. Descobri também que os contatos como e-mail e texto puro são trabalhados de forma diferente no html gerado no site, sendo que o e-mail simplesmente não é gerado. Ele é passado por um protocolo de segurança não fácil de interpretar (a partir de AJAX[bb]) para que robôs (como o meu) não peguem facilmente. Decidi deixar de lado em prol da segurança do meadiciona. Então esta API não foi projetada para pegar os e-mails, ok?! :D

Para usar, basta requisitar a URL http://util.dgmike.com.br/meadiciona/[perfil].json. Hoje estou liberando apenas JSON e não pretendo liberar outra forma por enquanto, já que esta me serve com bastante tranquilidade. Veja como é fácil pegar essa informação via PHP[bb].

1
2
3
4
5
6
7
8
9
10
11
12
13
$saida = file_get_contents('http://util.dgmike.com.br/meadiciona/dgmike.json');
$perfil = json_decode($saida);
if ($perfil->r) {
    echo '<h3>'.$perfil->data->nome.'</h3>';
    echo '<p>'.$perfil->data->desc.'</p>';
    foreach ($perfil->data->servicos as $servico) {
      if (!$servico->url) continue;
      echo "<a href='{$servico->url}' style='float:left; width: 190px; height:35;text-align:center'>";
      echo "<img src='{$servico->img}' title='{$servico->title}' height='32' />";
      echo "</a>";
    }
    echo '<br style="clear:both;" /><small>Powered by <a href="http://meadiciona.com/dgmike">meadiciona.com</a></small>';
}

O código de como usar a API do meadiciona.com não oficial está disponível no gist do github, caso você queira passá-lo adiante. O resultado está logo abaixo, com o meu perfil, é claro!

Michael Granados (dgmike)

Falar de mim é como falar de você, só que um pouco diferente…


Powered by meadiciona.com

3 Comments »
Tagged as: api, biblioteca, código, dica, meadiciona, php, Programação, simples, solução, Tutorial

CodeShow: cobras versionadas

Posted in Dia-a-dia by DGmike
May 26 2010
TrackBack Address.
Este post possui um microformato do tipo hCalendar Amanhã a humilde empresa onde trabalho irá realizar um evento… não “um evento”, mas “o evento”. O CodeShow é o evento mais esperado por amantes de desenvolvimento de websites – designers ou programadores. Eles verão as cobras do desenvolvimento criando uma aplicação web ao vivo. O evento acontecerá aqui no espaço Apas, R. Pio XI, 1200 São Paulo, SP BRA. Facinho de chegar.
Python, linguagem dos feras!

Sim, python é um tipo de cobra e também o nome de uma linguagem de programação muito poderosa.

Para quem não sabe, o CodeShow teve sua primeira versão em 2007, quando eu ainda não era funcionário da #visie. Lá, o Diego Eis e o Elcio Ferreira mostraram como fazer um aplicativo web2.0, uma biblioteca online.

Este ano, faremos o novo campus online (diga-se de passagem que o campus online foi o meu segundo projeto em python[bb]) com recursos de programação e desenvolvimento ágil. Falaremos como é a parceria entre designer e programador, como é trabalhar em equipe, o que fazer para não ter dores de cabeça. Tudo mostrando, ao vivo, como uma aplicação deve ser montada e publicada.

Funcionará assim: teremos o inicio do projeto, mostrando como a aplicação deve ficar, exibiremos as ferramentas que serão usadas: Git, HTML5, web2py e MongoDB entre outras. Depois faremos uma pausa e iremos para o coffe break – a melhor parte. Conselho: faça um bom networking. Eu entrei na empresa logo após o primeiro CodeShow. Se quiser, vamos bater um papo sobre PHP[bb], Padrões de codificação, python, html5, pagseguro ou é claro, sobre os episódios clássicos do chaves/chapolin. (“Pepe! Já tirei a vela!”).

Logo após o coffe, os programadores irão para uma sala e os designers para outra. Pergunta: Posso estar nas duas salas ao mesmo tempo? Acho que não, mas tente… talvez a força esteja com você. Lá teremos o desenvolvimento em si. Como teremos programadores em apenas uma sala, poderemos não nos importar com termos técnicos que normalmente designers não entenderiam, como “pedra, papel, tesoura, lagarto, spock“.

No final do dia, iremos juntar as duas “equipes” para finalizar o projeto. E então enviar por ftp para o servidor publicar o novo campus online. O evento é um apoio do PagSeguro e demonstraremos, na prática, como implementar essa ferramenta usando python.

No twitter

Para quem quiser, pode acompanhar a hashtag #codeshow para saber o que está acontecendo no evento. Se quiser, fique à vontade para me seguir.

    No Comments yet »
    Tagged as: banco de dados, codeshow, Design, evento, eventos, javascript, Programação, python, Tecnologia, trampo, twitter, visie, web

    IcePHP agora é IceBaby

    Posted in Dia-a-dia by DGmike
    Nov 09 2009
    TrackBack Address.

    Sei, o projeto está um pouco deixado de lado, mas este ano tem sido muita correria e nos momentos de desespero o CodeIgniter tem sido o meu framework padrão. Acontece que fiz uma busca na internet e encontrei um projeto chamado Internet Communications Engine – ICE, que faz parte da familia ZeroC e suporta PHP. Para não haver confusão, decidi trocar o meu humilde projeto de framework. Agora ele deixa de se chamar Ice e passa a se chamar Ice-Baby, em homenagem a uma música que gosto pra caramba do Vanilla Ice.

    http://www.youtube.com/watch?v=h4v5MeJ5fVg

    Na minha última palestra (PHP Minas) eu apresentei um microframework e ele me serviu de rascunho para o novo Ice-Baby. Talvez mantenha alguma coisa do Banco de dados do antigo Ice, mas provavelmente tudo irá mudar.

    Alguns conceitos de MVC devem ser abstraidos quando você for usar o framework já que ele não exige uma estrutura lógica como a maioria dos frameworks por aí. Ao invés de você ter que pensar URL com arquivo, com classe e com método e assim por diante você deve pensar em mapear uma ou mais URLs e direcioná-las para a classe desejada. O método que ele irá usar é o método no qual o usuário chegou na página (get/post). Simples, né?! E os parâmetros, você decide o que é parâmetro também :D Veja um exemplo de código de como sua aplicação pode ficar:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    <?php
    require_once('appropriate/app.php');
     
    app(array('^.*$' => 'Welcome'));
     
    class Welcome {
      function get() {
        print 'Hello from Bahamas!';
      }
    }

    Sim! Você consegue escrever uma aplicação com apenas dez linhas de código.

    No momento estou me concentrando a escrever a parte do Framework que conversa com o banco de dados (Models e seus resultados). Quem quiser acompanhar o desenvolvimento da ferramenta, pode acompanhar no github, dessa vez vai!

    Quem quiser, pode usar outro framework enquanto o Ice-Baby não sai do Beta. Recomendo o Vórtice, Spaghetti e CodeIgniter. Os motivos pelos quais eu escolhi estes frameworks para indicar e não outros? Liberdade! Eu gosto de escrever código da forma que eu quiser sem ter que aprender muito para começar a usar uma ferramenta.

    2 Comments »
    Tagged as: desenvolvimento, desenvolvimento ágil, framework, ice, ice-baby, icephp, php, Programação

    Verifique o retorno automático, sempre!

    Posted in pagseguro, php by DGmike
    Oct 07 2009
    TrackBack Address.

    Você já deve ter ouvido falar no Retorno Automático de dados do PagSeguro. Com ele você consegue sincronizar os dados de sua loja com os dados em suas transações no PagSeguro. O que é interessantíssimo pois com ele não precisamos ficar verificando cada e-mail que chega do PagSeguro e atualizando o nosso banco de dados.

    ** nota: Que fique claro que neste POST falo sobre carrinho próprio

    Basicamente, uma aplicação funciona assim: Você monta uma compra e grava-a no seu banco de dados. Tomemos como exemplo duas chupetas doces no valor de R$ 3,40. Isto gerará uma compra no valor de R$ 6,80. Então, com isso montamos um formulário de pagamento que fará um POST para o PagSeguro.

    Quando fizer isso, use um código de referencia para essa compra, se você usa auto_increment no seu banco de dados fica a dica para usar esse campo como código único, mas você pode gerar um número único baseado na data/hora atual mais um número aleatório. Em PHP você pode usar o método uniqid para isto.

    O seu formulário ficará mais ou menos assim:

    1
    2
    3
    4
    5
    6
    
    ...
    <input type="hidden" name="referencia" value="codigo_unico_de_compra" />
    ...
    <input type="hidden" name="valor" value="340" />
    <input type="hidden" name="quant" value="2" />
    <input type="hidden" name="descr" value="chupeta doce" />

    O que acontece?

    Quando o comprador efetuar uma ação na compra, se você configurar e ativar uma URL de retorno automático no seu painel do PagSeguro, você receberá todos os dados da compra, inclusive o status da compra. A URL que você configurar como retorno automático é a mesma para a qual o usuário será redirecionado após o termino da transação no PagSeguro, seja ela emissão de boleto, pagamento via cartão de crédito ou débito ou mesmo transação entre contar PagSeguro.

    Assim, você pode usar o código de referencia para saber a qual compra você vai atualizar. Mas, se é a mesma URL, como eu sei quem é o retorno automático? O retorno automático é um POST, a volta do usuário é GET. Um código bem simples em PHP para atualizar se assemelha bastante a este:

    1
    2
    3
    4
    5
    6
    7
    
    <?php
    if ($_POST) {
      $compras = new Compras;
      $compras->get($_POST['Referencia']);
      $compras->set('status', $_POST['StatusTransacao']);
      die('Esta mensagem somente sera vista pelo robo do PagSeguro.');
    }

    Simples, né?! Mas o mundo não é perfeito, ainda mais na internet, então devemos nos prevenir de crackers (hackers malvados =P ). Imagine se eu efetuo uma compra e não pago. Então crio um formulário apontando para a URL de retorno à qual fui redirecionado com o StatusTransacao como Aprovado? Sim caro leitor, a pessoa efetua a compra sem pagar.

    Pensando nisso, o PagSeguro fez um robôzinho onde você pode verificar se quem mandou o POST realmente foi ele. Funciona assim: Ao receber o POST, envie um POST para o robô e leia a saída. É como se você escrevesse um formulário direcionado para a URL de verificação de POST do PagSeguro e visse a página, ela deve aparecer como um arquivo de texto escrito VERIFICADO ou FALSO, caso os dados não batam com os dados contidos no PagSeguro.

    Mas, para que a segurança seja maior, você deve enviar junto com todos os dados do PagSeguro os campos “Comando” com o valor “Verificar” e o campo “Token” com o código gerado no painel de controle do PagSeguro. Se você não enviar esses valores, o PagSeguro retornará FALSO, afinal, ele também verifica se você é você usando esse token que só você e o PagSeguro conhecem.

    Em PHP você pode usar cURL para verificar esse POST, o código não é tão complicado de implementar assim. Apenas deve verificar que a URL do robô é https e que você está enviando um POST, então flags especiais devem ser usadas. Se você quiser, também pode usar a biblioteca PHP para PagSeguro desenvolvida pela visie que já faz essa verificação para você, apenas precisando que você faça a sua função como se não precisasse verificar nada.

    A grosso modo, podemos alterar o nosso código para o seguinte:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    define('TOKEN','código gerado no painel de controle do PagSeguro'); # Aqui vai seu Token
    include('retorno.php'); # Incluindo o arquivo da biblioteca
    
    function retorno_automatico ( $VendedorEmail, $TransacaoID, 
      $Referencia, $TipoFrete, $ValorFrete, $Anotacao, $DataTransacao,
      $TipoPagamento, $StatusTransacao, $CliNome, $CliEmail, 
      $CliEndereco, $CliNumero, $CliComplemento, $CliBairro, $CliCidade,
      $CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) {
        # E aqui, o nosso código
        $compras = new Compras;
        $compras->get($_POST['Referencia']);
        $compras->set('status', $_POST['StatusTransacao']);
        die('Esta mensagem somente sera vista pelo robo do PagSeguro.');
    }

    Ok, nosso mundo mudou bastante, colocamos proteção para o nosso cracker e ele vai ter um pouco mais de trabalho. Mas ainda temos um problema, quer dizer, uma solução… que gerou um problema: firebug.

    Como todos nós estamos carecas de saber, o formulário que enviamos ao PagSeguro é um html normal que pode ser alterado de diversas formas, inclusive alterar os valores. Então, imaginemos o seguinte ambiente: você tem uma loja onde o usuário compra uma máquina de lavar por R$ 1.200,00. Para aproveitar mais ainda, ele compra três máquinas. Então ele chega no checkout e altera o formulário final para 5000, ou seja, R$ 50,00. Então ele pagará muito mais barato pela máquina, certo? Certo!

    Certo?! Como assim?

    Sim, ele vai pagar mais barato, porque burlou o sistema, cabe a você ter tino e devolver o dinheiro do infeliz. Mas calma! Você não precisa verificar todas as contas na mão para saber se a pessoa está burlando o sistema. Basta você conferir o valor do POST de retorno com o valor da compra.

    Lembra que gravamos a compra no banco antes de enviar o comprador para o PagSeguro usando um código único? Coloque também o valor total da compra. Quando você receber o POST do retorno automático, verifique o valor da compra pois se a pessoa alterar o valor do input com a firebug (ou similar) o sistema saberá que não é válido. Veja como fica o nosso código.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    define('TOKEN','código gerado no painel de controle do PagSeguro'); # Aqui vai seu Token
    include('retorno.php'); # Incluindo o arquivo da biblioteca
    
    function retorno_automatico ( $VendedorEmail, $TransacaoID, 
      $Referencia, $TipoFrete, $ValorFrete, $Anotacao, $DataTransacao,
      $TipoPagamento, $StatusTransacao, $CliNome, $CliEmail, 
      $CliEndereco, $CliNumero, $CliComplemento, $CliBairro, $CliCidade,
      $CliEstado, $CliCEP, $CliTelefone, $produtos, $NumItens) {
        # E aqui, o nosso código
        $total = 0;
        foreach ($produtos as $produto) {
          $total += ($produto['ProdValor'] * $produto['ProdQuantidade']) + $produto['ProdFrete'] + $produto['ProdExtras'];
        }
        if ($total == $compras->total) {
          $compras = new Compras;
          $compras->get($Referencia);
          $compras->set('status', $StatusTransacao);
        }
        die('Esta mensagem somente sera vista pelo robo do PagSeguro.');
    }

    Simples assim! Apenas pegamos todos os produtos e somamos o produto de seus valores pelas suas respectivas quantidades, aliado aos valores extras e de frete. Quanto mais campos você verificar no retorno automático, melhor. Mas não exagere pois poderá falhar em alguns casos. Por exemplo você pode enviar um e-mail para o PagSeguro e a pessoa decidir pagar com outra conta (da esposa ou da empresa, por exemplo).

    4 Comments »
    Tagged as: explicação, pagamento, pagseguro, php, Programação, retorno automático, segurança, tutoriais, Tutorial
    Next page »

    Categorias

    • Cotidiano  (132)
      • Amigos  (16)
      • Dia-a-dia  (33)
      • Diversão  (18)
      • Games  (1)
      • Não categorizado  (26)
    • Design  (15)
      • Ilustração  (6)
      • Imagem  (8)
      • Inspiração  (5)
      • Vetorial  (5)
    • eventos  (10)
      • PHP Conference  (3)
    • flash  (4)
    • Navegadores  (22)
      • Chrome  (6)
      • extensions  (11)
      • Firefox  (18)
      • Internet Explorer  (6)
    • pagseguro  (13)
    • Programação  (106)
      • CSS  (20)
      • html  (7)
      • javascript  (36)
        • jQuery  (7)
        • yui  (2)
      • php  (44)
        • icephp  (4)
      • plugin  (3)
      • python  (5)
      • sql  (9)
      • tableless  (18)
      • wordpress  (2)
      • xHTML  (23)
    • Tecnologia  (70)
      • Semântica  (16)
      • Tutorial  (25)
      • video  (8)
        • video-tutorial  (5)
      • Windows  (4)
    • Trabalho  (33)
      • cases  (4)

    Tags

    ajax artigo banco de dados biblioteca blog browser classe CSS data Design Dia-a-dia dinheiro evento eventos Firefox framework google html icephp internet Internet Explorer javascript jQuery loja mysql opera pagseguro palestra php plugin Programação python retorno automático simples site solução sql tableless Tecnologia Trabalho Tutorial twitter visie web wordpress

    Arquivo

    SlideSare

    Últimos Posts

    • PagSeguro – Gravando log com ASP
    • Vá com calma
    • Vírgula em html5 e css3
    • Youtube e HTML5, agora ficou mais fácil
    • Novo emprego!

    Tags

    ajax artigo banco de dados biblioteca blog browser classe CSS data Design Dia-a-dia dinheiro evento eventos Firefox framework google html icephp internet Internet Explorer javascript jQuery loja mysql opera pagseguro palestra php plugin Programação python retorno automático simples site solução sql tableless Tecnologia Trabalho Tutorial twitter visie web wordpress

    Conteúdo

    • Artigos
      • JavaScript (parte 1)
    • Códigos prontos
      • Bancos, bancos e mais bancos…
      • Classe sqlsimples e sql – PHP
      • PHP: Função __auloload()
    • Guia Rápido jQuery
    • PagSeguro
    • Quem é dgmike?
    PagSeguro Powered by WordPress | “Blend” from Spectacu.la WP Themes Club