DGmike

DGmike

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

  • Alice Andrade
  • Rafael Zamana
  • 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?

Listas definitivas

Posted in Semântica, html by DGmike
Oct 28 2008
TrackBack Address.

Vamos falar um pouco de listas em xHTML. No mundo do html existem três tipos de listas: ordenadas, desordenadas e definição. Devemos usar cada uma com base em seus fundamentos. É assim que implantamos a semântica no html, não se preocupe se a lista aparece estrana no seu layout, o CSS é seu amigo e vai reestruturar a lista como você desejar. Também não se preocupe com os itens que aparecem antes de cada item, eles também podem ser trocados via CSS.

Os tipos diferentes de listas que podemos ter em HTML

Os tipos diferentes de listas que podemos ter em HTML

Para realizarmos estas listas usamos as tags OL, UL, LI, DL, DT e DL.

Desmistificando…

As listas desordenadas são utilizadas quando ela não deve ser utilizada na sequência em que  foi passada, sendo assim podemos efetuar as ações de uma determinada lista em qualquer ordem que ela continuará fazendo sentido. Para esta lista, usamos a tag UL, que em inglês, é o resumo de “Unordened List“. Sendo assim, para cada item da lista usamos a tag LI, que seria o resumo de “List Item” em inglês.

Um código de exemplo, mantendo o que estou falando é:

<ul>
<li>Catar as roupas</li>
<li>Varrer o chão</li>
<li>Cozinhar o almoço</li>
</ul>

O mesmo ocorre com as listas ordenadas, a diferença é que elas devem ser executadas ou lidas nessa determinada ordem, senão o sentido da lista pode mudar completamente, ficando inintendível. Um belo exemplo de lista ordenada é quando nos deparamos com o índice de um livro: que tem uma ordem a ser seguida.

Para este tipo de lista usa-se a tag OL que é uma abreviação para “Ordened List” em inglês. E para cada item, assim como em listas desordenadas, usa-se “List Item“, ou seja, LI.

<ol>
<lt>Tire as penas da galinha</li>
<li>Coloque-a na panela fervendo</li>
<li>Adicione água até cobrir ela por inteiro</li>
<li>Cozinhe por 30 minutos</li>
</ol>

Estas duas são as listas mais comuns no nosso dia-a-dia, mas ainda temos as listas de definição. As listas de definição são separadas para escrever itens com seus respectivos detalhes. A lista de definição mais comum que encontramos hoje é o dicionário, mas podemos nos aproveitar dessa lista de diversas formas. É muito interessante quando quisermos descrever uma série de itens, como os cômodos de uma casa ou vários itens de uma loja virtual.

Para uma lista de definição, usamos a tag DL, ou seja, “Definition List” e para cada item a tag DT que em inglês, é uma abreviação para “Definition Term“. Para os detalhes desse termo, a tag DD é quem se encarrega dessa tarefa, ela significa “Definition Description“.


<dl>
<dt>Lista</dt>
<dd>relação ordenada de nomes ou de quaisquer objectos que tenham de ser inventariados</dd>
<dt>Música</dt>
<dd>arte e ciência de combinar harmoniosamente os sons</dd>
</dl>

Algumas notas: Podemos ter mais de uma descrição para um mesmo termos, assim como dois ou mais termos podem ter a mesma descrição. Você pode fazer os agrupamentos como desejar, logo pode colocar dois ou mais DDs em sequência, assim como dois ou mais DTs em sequência. Outra forma de uso, menos comum, é o log de um chat, onde o termo é o nick do usuário e sua descrição são as mensagens enviadas por ele.

<dl>
<dt>Centro</dt>
<dt>Meio</dt>
<dd>ponto que se encontra a igual distância de todos os pontos da circunferência ou da superfície da esfera;</dd>
<dd>ponto que divide ao meio as rectas que, por sua vez, dividem a figura geométrica em duas partes iguais;</dd>
<dd>o meio de qualquer espaço;</dd>
</dl>

2 Comments »
Tagged as: definição, desordem, html, itens, list, listas, ordem, Semântica

Cidades e Estados em Javascript

Posted in eventos, javascript by DGmike
Oct 04 2008
TrackBack Address.

Uma das dúvidas mais comuns para quem está começando ajax é criar uma função que chame os estados e cidades nacionais. Sempre tenho que explicar uma serie de coisas como objeto httpRequest ou mesmo um mínimo de jQuery.

Pensando nos programadores do Brasil, desenvolvi este script de selects de estado e cidades do Brasil

Pensando nos programadores do Brasil, desenvolvi este script de selects de estado e cidades do Brasil

Pensando nisso, resolvi escrever uma biblioteca que resolva este problema, além de estar disponível em uma única URL (JavaScript[bb], hospedado pelo Google Code”>hospedado no google) no qual qualquer um pode utilizar. Assim, o usuário guarda em cache apenas um arquivo, e se o usuário passar em um site que chama a biblioteca, no próximo site que ele entrar e usar a biblioteca de novo, carregará o arquivo em cache e não precisará fazer o download de novo.

Outra vantagem é que o arquivo possui os estados e cidades no próprio core, assim não é necessário de interação com o servidor, o que deixa a resposta ao usuário mais rápida, deixando-o satisfeito. Ah, e sem falar que ele é crossbrowser e funciona com (ou sem) todas as bibliotecas conhecidas (como jQuery, prototype, dojo ou mootools) por trabalhar com apenas as funções que já existem no javascript.

Decidi hospedá-lo no servidor do google porque assim é mais improvável que hajam problemas de servidor em qualquer servidor que eu hospede. Para instalá-lo em seu site, coloque a seguinte instrução entre suas tags head.

1
<script type="text/javascript" src="http://cidades-estados-js.googlecode.com/files/cidades-estados-v0.2.js"></script>

Coloque este código (ou algo parecido) no seu html, para poder referenciar para a biblioteca.

1
2
Estado: <select id="estado" name="estado"></select>
Cidade: <select id="cidade" name="cidade"></select>

A forma mais simples de ativar a biblioteca é esta, usando o objeto dgCidadesEstados passando os objetos que serão serão usados como select de estados e cidades respectivamente. Veja um exemplo.

1
2
3
window.onload = function() {
  new dgCidadesEstados(document.getElementById('estado'), document.getElementById('cidade'), true);
}

O projeto é opensource, então se sua cidade não está na biblioteca, por favor me informe que eu mesmo colocarei no projeto.

[update]

No total, são 5.560 cidades cadastradas na biblioteca, a diferença é que não está colocado cada um em uma linha (como em instruções SQL[bb]) e sim cada estado em uma linha, o que diminui consideravelmente o tamanho do arquivo, se o seu Banco de Dados tiver mais que isso, por favor envie um comentário que procurarei atualizar o banco o mais breve possível.

[update 21/06/2009]

Vi que o pessoal está com dificuldades no retorno dos dados do servidor para o JavaScript, acontece que na versão encontrada no google code existiam exemplos e documentação necessário. Então decidi “puxar” essa informação para cá, afim de ajudar quem cai aqui de pará-quedas. :D

Recuperando os dados

Para fazer o sistema recuperar uma informação dada anteriormente, basta passar os parâmetros estadoValue e cidadeValue dentro do construtor.

1
2
3
4
5
6
new dgCidadesEstados({
  cidade: document.getElementById('cidade2'),
  estado: document.getElementById('estado2'),
  estadoVal: 'SP',
  cidadeVal: 'São Paulo'
});

Ou então passando como atributo value em sua tag select (ou input como descrito mais abaixo).

1
2
<select id="estado1" value="TO"></select>
<select id="cidade1" value="Araguaína"></select>
1
2
3
4
new dgCidadesEstados({
  cidade: document.getElementById('cidade1'),
  estado: document.getElementById('estado1')
});

Obstrusividade?! Não!

Não é preciso que você escreva uma tag select, você pode executar usando um input que será substituido pelo select necessário. Para ativar esta opção, basta passar o parâmetro change.

1
2
<input type="text" name="estado3" id="estado3" value="MG" />
<input type="text" name="cidade3" id="cidade3" value="Viçosa" />
1
2
3
4
5
new dgCidadesEstados({
  cidade: document.getElementById('cidade3'),
  estado: document.getElementById('estado3'),
  change: true
});

Charset?!

Você não precisa se preocupar em codificação de caracteres, o cidades-estados-js é disponibilizado nas versões Latin (ANSII) e UTF-8. Para isso, basta alterar a forma como você chama a biblioteca.

1
2
<script type="text/javascript" src="http://cidades-estados-js.googlecode.com/files/cidades-estados-1.0-utf8.js"></script>
<script type="text/javascript" src="http://cidades-estados-js.googlecode.com/files/cidades-estados-1.0.js"></script>

Dê preferencia a usar o charset utf-8, mas se seu sistema não aceitar essa codificação ou você usa DreamWeaver? e nem sabe o que é isso, provavelmente você vai precisar da versão em ASCII. ;D

Nota: Vale a pena ler o artigo sobre intercacionalização de caracteres da w3c que explica mais sobre codificação, inclusive o utf-8.

47 Comments »
Tagged as: ajax, biblioteca, cidades, estados, google, html, httpRequest, javascript, nacionais, opensource, xml

Flash Stanard com JavaScript

Posted in flash, javascript by DGmike
Sep 13 2008
TrackBack Address.

Estava vendo no deconcept um artigo muito interessante sobre a técnica de colocar flash[bb] em sites e o google conseguir ler o conteúdo, indexando-o. [update] Sei, o google agora indexa o conteúdo em flash, mas tenho bons motivos para não confiar nele ainda…

O interessante é o seguinte:

  1. Os sitesearchs como o google e o Yahoo! indexarão normalmente pois o conteúdo é HTML normal.
  2. Quem não tiver javascript verá o site em sua versão HTML, sem problemas.

Mas… cuidado! A pratica de SEO (Search Engine Optimization), se usado de forma incorreta, pode gerar dores de cabeça, como o banimento do Google. E não importa se você é famoso, o google não perdoa.

Enfim… vamos ao que interessa, eis o código:

<div id="flashcontent">
This is replaced by the Flash content if the user has the correct version of the
Flash plugin installed. Place your HTML content in here and Google will index
it just as it would normal HTML content (because it is HTML content!) Use HTML,
embed images, anything you would normally place on an HTML page is fine.
</div>

E, logo em seguida, o javascript.

var fo = new FlashObject("flashmovie.swf", "flashmovie", "300", "300", "8", "#FF6600");
fo.write("flashcontent");

No Comments yet »
Tagged as: banimento do google, flash, google, html, javascript, search engine optimization, seo, sitesearchs, yahoo!

Classe de tabelas em PHP – Parte 2

Posted in Programação, php, tableless, xHTML by DGmike
Apr 19 2008
TrackBack Address.

Um tempo atrás comecei a fazer um tutorial sobre criar tabelas com o auxilio de uma classe em php[bb] que gera uma tabela semantica[bb] (o que é dificil) e de forma simples. Antes de continuarmos a classe propriamente dita, irei explicar um pouco sobre expressões regulares[bb].

As expressões regulares auxiliam muito na hora de fazer uma busca sobre qualquer coisa em um bloco de texto, como por exemplo os links de um bloco html[bb] ou os emails contidos em uma conversa ou mesmo o ip contido em uma frase. Tudo o que é necessário é saber o padrão necessário do que você procura.

Vamos pegar um exemplo bem básico, um bloco de texto e vamos pegar alguns dados contidos nele.

IP é um acrónimo para a expressão inglesa “Internet Protocol” (ou Protocolo de Internet[bb]), que é um protocolo usado entre duas ou mais máquinas em rede para encaminhamento dos dados.

Os dados numa rede IP são enviados em blocos referidos como pacotes ou datagramas (os termos são basicamente sinónimos no IP, sendo usados para os dados em diferentes locais nas camadas IP). Em particular, no IP nenhuma definição é necessária antes do host tentar enviar pacotes para um host com o qual não comunicou previamente.

Estes são exemplos de IPs: 189.78.131.168 , 189.78.131.168 , 10.27.12.11 , 192.168.0.1 , 127.0.0.1

Retirado da Wikipedia

Percebam que existe um padrão na numeração dos IPs: Quatro sequências de até três números separados por pontos. Nas expressões regulares, podemos fazer buscas por digitos usando a expressão \d que significa digito, então para produrarmos um digito usamos \d. Também podemos definir uma quantidades de vezes que esse caracter pode aparecer, no caso, pode aparecer de uma a três vezes. Logo, nossa busca fica assim: \d{1,3}

O ponto também é uma expressão regular, que indica qualquer coisa. Sim! Qualquer coisa, ele procura por uma letra, número, espaço, pontuação, <CR> (Carriage Return, ou tecla enter), então para “desconvertermos” essa expressão regular, usamos uma barra invertida antes. Logo nossa busca por IP é: \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} ou simplesmente (\d{1,3}\.){3}\d{1,3} que indica uma busca de três sequencias de \d{1,3}\. e uma de \d{1,3}

Expressão Regular em busca de IPs de um texto

Como vocês podem constatar na imagem, a expressão regular funcionou perfeitamente. Eu uso essa extensão do Firefox (Regular Expressions Tester) para de auxiliar no dia-a-dia, já que uso expressões regulares muitas vezes por dia.

Outra coisa interessante em expressões regulares é que podemos definir uma lista de palavras ou expressões que queremos que apareça em nossa sequência. Fazemos isso através de parênteses e “pipes[bb]” (ou barrinha em pé). Eis um exemplo prático, queremos procurar a palavra menino e menina. Basta fazermos a seguinte sentença menin(o|a)

[Nota] A busca anterior também poderia ser dada por menin[oa] uma diferença básica entre parânteses e colchetes é que em parênteses podemos fazer uma busca por outras expressões ou palavras, já que nos colchetes apenas por caracteres específicos. Logo, cas(a|inha|arão) irá procurar pelas três palavras, o que não é possivel fazer com os colchetes.

Vamos pensar em entradas de usuário, ou seja, frases ou listas simples (lembre-se que o nosso objetivo é a classe de criação de tabelas, logo as entradas são pequenas). Então, queremos procurar uma determinada expressão no inicio da entrada do usuário[bb]. Algo como dois pontos e uma palavra e depois dois pontos.

Explico: Digamos que queremos que o usuário entre com os seguintes dados, sequencialmente:

  • Nome
  • Sobrenome
  • :centro: Idade
  • :tel: Telefone
  • :tel: Celular
  • CPF
  • Filiação (Pai)
  • Filiação (Mãe)

Perceba que o usuário quer colocar um atributo na entrada que alinhe ou ajuste as celulas para uma determinada classe. Podemos resolver este problema usando a mágica do circunflexo (^). Quando colocado no inicio da expressão regular, ele indica o inicio da entrada. Então, nossa expressão regular irá iniciar com ^:

Assim como os digitos (\d) também existe o \w que indica um caractere alfa numérico, ou seja letras de A a Z (maiusculas e minusculas) e números de zero a nove. E também podemos definir que deve existir um ou mais desta expressão regular na oração. (Lembram do {n,m} onde n e m são os numeros limites de caracteres?) Com o mais, podemos definir que deve existir um ou mais elementos da expressão regular anterior. Assim, nossa expressão regular fica assim: ^:\w+: Com isto, pegamos o que queremos, se não existir, ele não pegará nada.

Bom, a nossa expressão regular está quase no fim. Como você é esperto, vou deixar a expressao regular final e deixarei que você pense como ela foi criada com base no que foi dito anteriormente:

^(:((\.|#)\w+|(r|c)\d+))+:

Com esta expressão regular, podemos esperar que o usuário entre com as seguintes condições e mais suas subcondições possiveis:

  • :.classe:
  • :#id:
  • :c12:
  • :r1:
  • :.classe:#id:
  • :.classe:r12:
  • :#id:c21:
  • :.qualquerClasse:#qualquerId:c21:r18

Tendo isto em mente, podemos tratar a entrada do usuário, permitindo saber que classe e/ou id ele vai querer colocar na determinada célula, e qual o numero de colspan e rowspan ele vai querer. Onde colspan é junção de colunas e rowspan é junção de linhas, como você pode ver aqui, aqui e aqui.

Digo e repito, estude expressões regulares, vale a pena! Como você pode ver para fazermos um monte de validações em nossa entrada usamos apenas 26 caracteres. Faremos o tratamento dos mesmos na próxima edição, mas adianto que usaremos as funções preg_match e preg_replace.

No Comments yet »
Tagged as: acrónimo, bloco de texto, busca, célula, classe, colspan, digito, entrada, expressões regulares, html, id, Internet Protocol, ip, links, padrão, php, Protocolo de Internet, rede, Regular Expressions, rowspan, Semântica, simples, tabelas, Tutorial, usuário, wikipedia

Uma melhor solução… (minha humilde opinião)

Posted in CSS, Programação, javascript, php, tableless, xHTML by DGmike
Feb 05 2008
TrackBack Address.

No A List Apart o Alex Bischoff apresentou uma biblioteca em javascript muito interessante que implementa aos elementos de uma página as classes referentes às pseudo-classes :fisrt-child, :last-child, :nth-child-#, :nth-child-odd, :nth-child-even e :o nly-child.

Esta biblioteca é muito interessante para criarmos layouts em CSS para browsers que não têm um suporte legal a essas pseudo-classes. Há uma lista que demonstra que essa falta de implementação não é somente no mau e velho IE. Iso é um ponto muito forte para esta biblioteca.

:first-child – Não implementado pelo IE 6
:last-child – Não implementado pelo IE 6, IE 7 e Opera 9.x
:nth-child(#) – Não implementado pelo IE 6, IE 7, Safari 2.x, Firefox 2.x, Firefox 3 beta e Opera 9.x
:nth-child(odd) – Não implementado pelo IE 6, IE 7, Safari 2.x, Firefox 2.x, Firefox 3 beta e Opera 9.x
:nth-child(even) – Não implementado pelo IE 6, IE 7, Safari 2.x, Firefox 2.x, Firefox 3 beta e Opera 9.x
:o nly-child – Não implementado pelo IE 6, IE 7 e Opera 9.x

Tá legal DG, mas para que servem essas pseudo-classes?

Ao invés de teorizar sobre como estes elementos vão se intrometer em nossas vidas, vou explicar com exemplos pois acho que assim fica mais fácil de entender. Vamos a um exemplo prático, faremos um belo menu horizontal onde colocamos uma borda à direita de todos os elementos, exeto do primeiro, senão a coisa vai ficar estranha com uma borda à direita do menu.

Este é o código HTML:

<ul class="menu">
    <li><a href="/link_item1.html">Item 1</a></li>
    <li><a href="/link_item2.html">Item 2</a></li>
    <li><a href="/link_item3.html">Item 3</a></li>
    <li><a href="/link_item4.html">Item 4</a></li>
    <li><a href="/link_item5.html">Item 5</a></li>
    <li><a href="/link_item6.html">Item 6</a></li>
</ul>

Para colocar alguma formatação sobre o menu como um todo chamamos o elemento ul com a classe .menu.

ul.menu {
  /* Aqui virá a formatação necessária */
}

Para cada elemento filho do ul, ou seja para cada item de lista (li) basta chamarmos os li precedidos do nosso ul.menu: Colocamos o display: inline para que estes itens fiquem um ao lado do outro e a borda que havia dito anteriormente.

ul.menu li {
  /* Aqui virá a formatação necessária */
  display: inline;
  border-left: 1px solid black;
}

Agora, queremos retirar a borda apenas do primeiro elemento, ou seja o primeiro li, para isso podemos usar a pseudo-classe :fisrt-child

ul.menu li:fisrt-child {
  /* Aqui virá a formatação necessária */
  border:0;
}

Simples, não?!

Para fazer isto no último elemento, basta usar a pseudo-classe :last-child. Para elementos impares :nth-child-odd e :nth-child-even para elementos pares. Para elementos únicos :o nly-child pode ser usado e ainda existe a pseudo-classe :nth-child-# que contém o número do elemento que você deseja. Assim, com estas pseud-classes você pode implementar uma série de aplicações como o de colocar cores alternadas em linhas de tabelas ou mesmo o destaque para elementos únicos.

Hmmm… e como o offspring me ajuda nisso?

Como a vida é uma caixinha de surpressas, nem todos os browser suportam tais pseudo-classes (até hos dias de hoje) temos que nos virar com soluções mais inteligentes, e é para isso que a biblioteca serve, ela adiciona classes referentes a estas pseudo-classes.

Após “rodar” a biblioteca nosso exemplo html ficaria assim:

<ul class="menu first-child nth-child-odd only-child nth-child-1 last-child">
    <li class="first-child nth-child-odd nth-child-1">
        <a href="/link_item1.html" class="first-child nth-child-odd only-child nth-child-1 last-child">Item 1</a>
    </li>
    <li class="nth-child-even nth-child-2">
        <a href="/link_item2.html" class="first-child nth-child-odd only-child nth-child-1 last-child">Item 2</a>
    </li>
    <li class="nth-child-odd nth-child-3">
        <a href="/link_item3.html" class="first-child nth-child-odd only-child nth-child-1 last-child">Item 3</a>
    </li>
    <li class="nth-child-even nth-child-4">
         <a href="/link_item4.html" class="first-child nth-child-odd only-child nth-child-1 last-child">Item 4</a>
    </li>
    <li class="nth-child-odd nth-child-5">
        <a href="/link_item5.html" class="first-child nth-child-odd only-child nth-child-1 last-child">Item 5</a>
    </li>
    <li class="nth-child-even nth-child-6 last-child">
        <a href="/link_item6.html" class="first-child nth-child-odd only-child nth-child-1 last-child">Item 6</a>
    </li>
</ul>

Assim basta acessarmos as nossas pseudo-classes como classes normais.

Maravilhoso, supimpa!

Sim, esta biblioteca nos pouco um trabalho muito grande. Maaaaaaas! Eu sou da opinião que o javascript não pode ser obstrusivo, eu gosto do javascript e até assino o rss do client-side mas acho que a melhor solução é o bom e velho método de escrever o que desejamos de um elemento. O offspring é legal, resolve muitos problemas mas, se o carinha que vai ver o site não estiver com o JavaScript habilitado (sei, são raros os casos, mas eu desabilito o meu algumas vezes para navegar sem frescuras)? O CSS vai quebrar junto. O offspring navega todo o site vendo elemento por elemento adicionando as classes necessárias. Precário, não acha?! E… seja sincero, você já precisou usar estas classes na página toda? Eu não!

Por que não usamos o velho médoto de nomear as classes necessárias? Nosso HTML ficaria mais interessante se fosse escrito assim:

<ul class="menu">
    <li class="primeiroItem"><a href="/link_item1.html">Item 1</a></li>
    <li><a href="/link_item2.html">Item 2</a></li>
    <li><a href="/link_item3.html">Item 3</a></li>
    <li><a href="/link_item4.html">Item 4</a></li>
    <li><a href="/link_item5.html">Item 5</a></li>
    <li><a href="/link_item6.html">Item 6</a></li>
</ul>

Resolveria nosso problema e não quebraria o CSS se o JavaScript estivesse desabilitado.

Ah, e o problema do par e impar, eu quero minha tabela cor sim/cor não!

Provavelmente sua tabela será gerada dinamicamente através de um script como PHP ou Python. Então use essa dinamicidade para gerar suas classes. Eu uso assim:

$parimpar = array ('par', 'impar');
for ($i = 1;$i<10;$i++)
  {
    echo "item: $i - " . $parimpar[$i%2];
  }

E isto resolve meus problemas, simples assim… Agora, se você já usa uma biblioteca poderosa como o jQuery ou o prototype e precisa desses elementos funcionando e não quer ter trabalho com a dinamicidade, aplique o CSS direto do JavaScript usando a própria biblioteca para que não hava quebra por causa do Js.

// Solução com o prototype
$$('table tr:nth-child(even)').setStyle({backgroundColor: '#900'});

// Solução com o jQuery
$('table tr:even').css ({backgroundColor: '#900'})

E com uma simples linha você tem o seu problema resolvido sem precisar queimar muita mufa. Sinceramente, não gostei da solução dada pelo A List Apart.

[Ps:] O jQuery tem 28 Kb e o offspring 14 Kb (5 Kb se comprimido), acho que não é uma perda muito grande (ganho de Kb) em vista da quanditade de funcionalidades adicionadas.

No Comments yet »
Tagged as: biblioteca em javascript, client-side, CSS, exemplos, html, jQuery, layouts, menu horizontal, prototype, pseudo-classes
Next page »

Categorias

  • Amigos  (16)
  • cases  (4)
  • Cotidiano  (71)
  • CSS  (19)
  • Design  (1)
  • Dia-a-dia  (30)
  • Diversão  (18)
  • eventos  (10)
  • extensions  (11)
  • flash  (3)
  • Games  (1)
  • html  (5)
  • icephp  (4)
  • Ilustração  (6)
  • Imagem  (8)
  • Inspiração  (5)
  • javascript  (35)
    • jQuery  (7)
    • yui  (2)
  • Não categorizado  (26)
  • Navegadores  (17)
    • Chrome  (4)
    • Firefox  (16)
    • Internet Explorer  (5)
  • pagseguro  (10)
  • php  (42)
    • PHP Conference  (3)
  • plugin  (3)
  • Programação  (43)
  • python  (5)
  • Semântica  (16)
  • sql  (9)
  • tableless  (18)
  • Tecnologia  (47)
  • Trabalho  (27)
  • Tutorial  (24)
  • Vetorial  (5)
  • video  (7)
  • video-tutorial  (5)
  • Windows  (4)
  • wordpress  (2)
  • xHTML  (23)

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 online opera pagseguro palestra php plugin Programação python retorno automático simples site solução sql string tableless Tecnologia twitter visie web wordpress

Arquivo

SlideSare

Últimos Posts

  • [QuickPOST] Vagas de emprego
  • Dados de teste
  • Aprendendo com o técnico: quanto cobrar em um projeto web
  • Frete com PagSeguro: simples!
  • Palestra PagSeguro na Impacta

Amigos

  • Alice Andrade
  • Rafael Zamana
Powered by WordPress | “Blend” from Spectacu.la WP Themes Club