<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-23429770</id><updated>2009-12-01T06:57:12.162-03:00</updated><title type='text'>El Micox</title><subtitle type='html'>JavaScript, Ajax, DOM, Webstandards, dicas e outras coisas.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default?start-index=26&amp;max-results=25'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>134</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-23429770.post-2070755830975940743</id><published>2009-11-23T15:40:00.004-03:00</published><updated>2009-11-23T16:01:49.745-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='funções'/><category scheme='http://www.blogger.com/atom/ns#' term='menus'/><title type='text'>Marcar o item atual de um Menu com uma classe específica - Sem server-side</title><content type='html'>&lt;p&gt;
Códigozinho inspirado por uma dúvida da &lt;a href="http://twitter.com/olhosespanhois"&gt;olhosespanhois&lt;/a&gt; lá no &lt;a href="http://forum.webly.com.br/index.php?showtopic=27507&amp;amp;view=findpost&amp;amp;p=158548"&gt;Webly&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
Muitas vezes, quando temos um menu qualquer, queremos marcar o item aberto com um visual diferente. Tipo, se o visitante clica em "serviços", deixar o menu "serviços" de outra cor.
&lt;/p&gt;&lt;p&gt;
Ao usar CSS (e um menu baseado em UL-LI) Agente faz isto colocando uma classe diferente no LI do "serviços", por exemplo.
&lt;/p&gt;&lt;p&gt;
Pra marcar esta classe no LI geralmente se usa programação server-side (php, asp, jsp, etc), o que dá um certo trabalho e atrapalha se formos testar localmente.
&lt;/p&gt;&lt;p&gt;
Bem, que tal uma gambiarra javascript pra resolvermos isto e sempre marcar o item atual com a classe "ativo" e os outros LI com a classe "inativo".
&lt;/p&gt;&lt;p&gt;
O script está abaixo bem comentado. É só salvar no seu PC, alterar o que quiser e testar.
&lt;/p&gt;&lt;p&gt;
Útil para fazer menus em abas e coisas do tipo.
&lt;/p&gt;&lt;p&gt;
Adiós.
&lt;/p&gt;
&lt;pre class="code"&gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
 &amp;lt;style&amp;gt;
  /* os estilos css do ativo e inativo. Altere as propriedades como quiser
  só não altere os seletores */
  #menu .inativo a { color: white; background-color: black }
  #menu .ativo a { color: black; background-color: white }
 &amp;lt;/style&amp;gt;
 &amp;lt;script&amp;gt;
  //função que troca a classe dos li para ativo e inativo
  function ativoinativo(quem){
   //o 'quem' original é um link, agora tô pegando o li pai
   var lipai = quem.parentNode; 
   if(lipai.className=='ativo'){
    //se ele já era ativo vira inativo
    lipai.className = 'inativo';
   }else{
    //se ele não tinha classe ainda, transformo em ativo
    lipai.className = 'ativo';
    //e também faço seus irmãos li virarem inativos
    var irmaosli = lipai.parentNode.childNodes; //pegando os irmaos li
    for(var i=0; i&amp;lt;irmaosli.length ; i++){ //varrendo os li
     var liatual = irmaosli[i];
     if(liatual != lipai &amp;&amp; liatual.nodeName=='LI'){
      //se não é o li atual vai virar inativo
      irmaosli[i].className = 'inativo'
     }
    }
   }
  }
  
  //função que testa qual li que tem o link atual e marca como ativo
  function initAtivoInativo(divalvo){
   if(!divalvo.nodeName){
   //testando se o divalvo já é um objeto
   //se não for, eu uso o velho getElementById
    divalvo = document.getElementById(divalvo);
    if(!divalvo){ alert('Erro: o divalvo não existe'); return;}
   }
   //pegando os li que tão dentro do divalvo
   var ah,lis = divalvo.getElementsByTagName('li');
   for(var i=0; i&amp;lt;lis.length ; i++){
    
    //pegando os links que tão dentro de cada li
    ah = lis[i].getElementsByTagName('a')[0];
    if(!ah){ continue; } //se não achou o link vai pro prox li
    
    //ativando o onclick nos links pra fazer a troca de ativo/inativo
    ah.onclick = function(e){
     //pegando o alvo crossbrowser http://elcio.com.br/crossbrowser/#7
     if(typeof(e)=='undefined')var e=window.event; 
     source=e.target?e.target:e.srcElement; //
     if(source.nodeType == 3)source = source.parentNode
     //ativando o onclick nos links pra fazer a troca de ativo/inativo
     ativoinativo(source);
    }
    
    if(location.href.indexOf(ah.href)&amp;gt;-1){
     //se o endereço atual tem o link do li atual marco ativo
     lis[i].className = 'ativo'
    }else{
     //senão é inativo
     lis[i].className = 'inativo'
    }
   }
  }
  //ativando no onload (mas depois de um tempinho pra não bugar em alguns browsers heheh)
  //você pode usar body onload tb ou onready de libs
  window.onload = setTimeout(function(){initAtivoInativo('menu');},300);
 &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
 &amp;lt;ul id='menu'&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href="#home.htm"&amp;gt;home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href="#micox.htm"&amp;gt;Micox&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href="#mwords.htm"&amp;gt;mwords&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;/ul&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-2070755830975940743?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/2070755830975940743/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=2070755830975940743' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/2070755830975940743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/2070755830975940743'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2009/11/marcar-o-item-atual-de-um-menu-com-uma.html' title='Marcar o item atual de um Menu com uma classe específica - Sem server-side'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-7295141005448357324</id><published>2009-10-29T10:24:00.005-03:00</published><updated>2009-10-29T10:53:19.778-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='servidor'/><category scheme='http://www.blogger.com/atom/ns#' term='funções'/><category scheme='http://www.blogger.com/atom/ns#' term='desempenho'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Load Limiter - Limitando o load de seu site pra não sobrecarregar o servidor</title><content type='html'>&lt;p&gt;Ae senhores, bão? bãozão?
&lt;/p&gt;&lt;p&gt;
Post rápido com uma funçãozinha que fiz quando tava tendo problemas com a hospedagem antiga do meu site (um dia eu conto essa história pra quem não acompanhou pelo &lt;a href='http://twitter.com/micox' target='_blank' rel='nofollow'&gt;twitter&lt;/a&gt;. Era a hospedagem da bysite.com.br - agora tô com a ótima &lt;a href='http://portofacil.net' target='_blank'&gt;PortoFacil.net&lt;/a&gt;).
&lt;/p&gt;&lt;p&gt;
Basicamente, meu site tava tendo muitos acessos E eu, provavelmente, devo ter ativado algum plugin louco no meu site. Resultado: excesso de processamentos no servidor. O bixo não tava dando conta do serviço e a hospedagem me sacaneava tirando meu site do ar por várias horas sem dar explicação, legal né?
&lt;/p&gt;&lt;p&gt;
Os servidores tem um lance que chamam de Load pra indicar mais ou menos comé que tá a carga nos bixo. É tipo uma média de quantos processos tão na fila. Veja &lt;a href="http://www.treze.net/?p=19"&gt;mais explicações aqui&lt;/a&gt; se você não souber o que é.
&lt;/p&gt;&lt;p&gt;
A solução que pensei, além de desativar o plugin, foi fazer uma funçãozinha pra exibir uma página simples caso o server esteja com Load alto. Existem também outras ferramentas pra &lt;a href='http://pt.wikipedia.org/wiki/Balanceamento_de_carga' rel='nofollow'&gt;load balancer&lt;/a&gt; que eu optei por não usar por preguiça de aprender a configurar essas parada e ver se servia ao meu caso.
&lt;/p&gt;&lt;p&gt;
O que a função faz é: Testa se o load do server tá acima do valor que você configurou. Se estiver, executa a função passada no parâmetro. Muito simples mas muito útil pra evitar surpresas com servidores (compartilhados principalmente).
&lt;/p&gt;&lt;p&gt;
Bora:
&lt;/p&gt;&lt;p&gt;
0) Crie um novo arquivo e dê o nome de "inc-loadLimiter.php"
Este é o conteúdo que você vai colocar dentro dele:
&lt;/p&gt;
&lt;pre class='code'&gt;
&amp;lt;?php
/*** Limita o processamento de acordo com o server load
By Micox: http://twitter.com/micox - http://elmicox.blogspot.com

Exemplo:
$loadLimiter=10; //limitei meu load a 10
if($loadLimiter){
  include_once "inc-loadLimiter.php";
  function saiVazio(){ 
    header("Cache-Control: no-cache, must-revalidate");
    include("aviso_de_manutencao_simples.htm"); //faça sua própria pág. simples.
    //echo "Em manutenção"; //caso você não queira usar include
    exit();
  }
  execIfLoad($loadLimiter,'saiVazio');
}
***/
function get_server_load($windows = 0) {
//fonte: http://www.videotexto.com.br/forum/viewtopic.php?t=243&amp;sid=910886ae470cefbee204751ab41292d9
        $os = strtolower(PHP_OS);
        if(strpos($os, "win") === false) {
  if(file_exists("/proc/loadavg")) {
         $load = file_get_contents("/proc/loadavg");
         $load = explode(' ', $load);
         return $load[0];
  }
  elseif(function_exists("shell_exec")) {
         $load = explode(' ', `uptime`);
         return $load[count($load)-1];
  }
  else {
         return "";
  }
        }
        elseif($windows) {
  if(class_exists("COM")) {
         $wmi = new COM("WinMgmts:\\\\.");
         $cpus = $wmi-&amp;gt;InstancesOf("Win32_Processor");
         
         $cpuload = 0;
         $i = 0;
         while ($cpu = $cpus-&amp;gt;Next()) {
    $cpuload += $cpu-&amp;gt;LoadPercentage;
    $i++;
         }
         
         $cpuload = round($cpuload / $i, 2);
         return "$cpuload%";
  }
  else {
         return "";
  }
        }
}

function execIfLoad($loadLimit,$callback){
    if(get_server_load()&amp;gt;$loadLimit){ call_user_func($callback); }
}
?&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
1) Coloque o código &lt;b&gt;abaixo&lt;/b&gt; no começo de todas as páginas do seu site. Como eu uso wordpress, no meu caso, editei o tema e coloquei no header.php.
&lt;/p&gt;
&lt;pre class='code'&gt;
/**** Limitando o load pra não sobrecarregar o servidor.By Micox ***/
$loadLimiter=40; //limitei meu load a 40
if($loadLimiter){
  include_once "inc-loadLimiter.php"; //você verá esta função logo abaixo
  function saiVazio(){ 
    header("Cache-Control: no-cache, must-revalidate");
    include("aviso_de_manutencao_simples.htm"); //faça sua própria pág. simples.
    exit();
  }
  execIfLoad($loadLimiter,'saiVazio');
}
&lt;/pre&gt;
&lt;p&gt;
Prontinho. Dúvidas, manda nos comments.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-7295141005448357324?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/7295141005448357324/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=7295141005448357324' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/7295141005448357324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/7295141005448357324'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2009/10/load-limiter-limitando-o-load-de-seu.html' title='Load Limiter - Limitando o load de seu site pra não sobrecarregar o servidor'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-7994420167912569579</id><published>2009-08-27T10:27:00.004-04:00</published><updated>2009-08-27T13:49:58.895-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funções'/><category scheme='http://www.blogger.com/atom/ns#' term='ferramentas'/><category scheme='http://www.blogger.com/atom/ns#' term='grana'/><category scheme='http://www.blogger.com/atom/ns#' term='mercadosócios'/><title type='text'>Ferramenta do Micox para te ajudar a ganhar dinheiro</title><content type='html'>&lt;p&gt;Hoooeeaa&lt;/p&gt; &lt;p&gt;Estamos de volta após algumas semanas desenvolvendo um scriptzinho novo. Sim, mais um. Mas este é um pouco diferente. O objetivo deste script novo é te ajudar a ganhar grana com o programa de afiliados &lt;a href="http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=5575926&amp;amp;go=http://pmsapp.mercadolivre.com.br/jm/pms" target="_blank"&gt;MercadoSócios &lt;/a&gt;do Mercado Livre.&lt;/p&gt; &lt;p&gt;Nas últimas semanas eu andava meio grilado com as quedas absurdas no rendimento de outro sistema de afiliados que eu usava E andava bastante satisfeito com o programa MercadoSócios, ENTÃO decidi que tava na hora de criar algo. Disso saiu o &lt;a target="_blank" href="http://valeus.net/mwords/"&gt;MWORDS&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Antes de explicar sobre a ferramenta famos falar sobre o &lt;a href="http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=5575926&amp;amp;go=http://pmsapp.mercadolivre.com.br/jm/pms" target="_blank"&gt;MercadoSócios &lt;/a&gt;:&lt;/p&gt; &lt;p&gt;Mercado Sócios é um programa de afiliados que paga por ação, isto é, você vende coisas deles (ou exibe banners) e ganha uma grana por isto. Você ganha de 30% a 70% das comissões de venda cobradas pelo MercadoLivre e ainda ganha enre R$9,50 a R$15 por cada cadastro ativo.&lt;/p&gt; &lt;p&gt;Se você ainda não é cadastrado, aproveite a oportunidade. &lt;a href="http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=5575926&amp;amp;go=http://pmsapp.mercadolivre.com.br/jm/pms" target="_blank"&gt;Clique aqui para ver as REGRAS completas e se cadastrar&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Agora sobre a ferramenta e seus principais diferenciais:&lt;/p&gt; &lt;p&gt;Bom, na verdade não podemos chamar de ’scriptzinho’ pois o bixo deu um bom trabalho e me ensinou algumas técnicas novas também que postarei em breve aqui no meu abandonado blog.&lt;/p&gt; &lt;ul&gt;&lt;li&gt;É uma Ferramenta (script) que insere links para produtos do MercadoLivre no conteúdo do texto do seu site ou blog, &lt;strong&gt;aumentando incrivelmente seus ganhos&lt;/strong&gt; com o programa de afiliados &lt;a href="http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=5575926&amp;amp;go=http://pmsapp.mercadolivre.com.br/jm/pms" target="_blank"&gt;MercadoSócios&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;É simples, leve, automático e contextual, isto é, leva em consideração o assunto do texto para exibir os links.&lt;/li&gt;&lt;li&gt;Pode ser ativado automáticamente em imagens também.&lt;/li&gt;&lt;li&gt;É totalmente configurável.&lt;/li&gt;&lt;li&gt;Se você já estiver cadastrado no MercadoSócios não é necessário fazer nenhum outro cadastro chato e nem me pedir autorização pra usar.&lt;/li&gt;&lt;li&gt;Você não precisa baixar nem instalar nada complicado no seu site, é só colocar a chamada ao script no final do seu site.&lt;/li&gt;&lt;li&gt;Veja ele em funcionamento aqui mesmo no El Micox.&lt;/li&gt;&lt;li&gt;&lt;a href="http://letra-e-traducao.blogspot.com/" target="_blank" title="letra de musicas"&gt;Veja aqui&lt;/a&gt; outro exemplo do script em funcionamento.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Quanto vou te cobrar pelo script? NADA. (mas uma postagenzinha no seu blog ou twitter seria legal hehehe. Na verdade, ganharei uma pequena comissão que negociei diretamente com o MercadoLivre e que não interfere em seus ganhos hehe ).&lt;/p&gt; &lt;p&gt;Um exemplo do código que você colocará no seu site:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span class="phtml"&gt;&amp;lt;script type=’text/javascript’&amp;gt;&lt;/span&gt;
&lt;span class="pcomment"&gt;/* mwords - valeus.net/mwords - by Micox
*  Links para o mercado livre em palavras-chave do texto */&lt;/span&gt;
var mk_toolid = &lt;span class="pchange"&gt;5575926&lt;/span&gt;  ; &lt;span class="pcomment"&gt;//aqui você deve colocar seu toolid do mercadosócios&lt;/span&gt;
var mk_byid   = &lt;span class="pchange"&gt;‘content’&lt;/span&gt;; &lt;span class="pcomment"&gt;//aqui você indica qual o ID da div que contém os textos&lt;/span&gt;
&lt;span class="phtml"&gt;&amp;lt;/script&amp;gt;

&amp;lt;script charset=’UTF-8′ src=’http://valeus.net/mwords/motor.js’ defer=’defer’ type=’text/javascript’&amp;gt;
&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;/pre&gt;

&lt;p&gt;Simples, fácil e vai melhorar seus ganhos.&lt;/p&gt; &lt;p&gt;Agora, se quiser, é só usar o gerador que está na página &lt;a target="_blank" href="http://valeus.net/mwords/"&gt;valeus.net/mwords&lt;/a&gt; pra escolher algumas configurações mais complexas.&lt;/p&gt; &lt;p&gt;Problemas, sugestões, depoimentos ou comentários comenta ae.
Está nos meus planos pro futuro desta ferramenta adaptar ela pra vários programas de afiliados, fazer um plugin Wordpress e Blogger pra ela e permitir vender para vários países.&lt;/p&gt; &lt;p&gt;Vamo ver se o povo vai usar isso. Aguardemos…&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-7994420167912569579?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/7994420167912569579/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=7994420167912569579' title='11 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/7994420167912569579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/7994420167912569579'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2009/08/ferramenta-do-micox-para-te-ajudar.html' title='Ferramenta do Micox para te ajudar a ganhar dinheiro'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-2855837834144215407</id><published>2009-05-29T08:41:00.004-04:00</published><updated>2009-07-10T22:33:37.284-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='bate-papo'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Livros lidos: Investimentos, Devoradores de Mortos e Jquery</title><content type='html'>&lt;p&gt;Hooaaa.&lt;/p&gt;
&lt;p&gt;Hoje acho que tô meio animado pra postar aqui no ElMicox. Então vamo aproveitar essa animação e tagarelar.&lt;/p&gt;
&lt;p&gt;Andava bastante desanimado pra postar por vários motivos: prequiça, falta de scripts novos, &lt;a href="http://twitter.com/micox"&gt;twitter&lt;/a&gt;, outros sites meus dando grana e pedindo minha atenção, pouca leitura de outros sites da área, etc.&lt;/p&gt;
&lt;p&gt;Aliás, acho que poucos lerão este post. Os blogs de desenvolvimento web andam meio abandonados, quase ninguém mais lê feeds e talz. Até o &lt;a href="http://forum.webly.com.br"&gt;Webly &lt;/a&gt;está com baixíssimo movimento, ninguém mais tem dúvidas, poucos querem ajudar nas dúvidas dos outros. Sei lá… Acho que todo mundo anda sem tempo.&lt;/p&gt;
&lt;p&gt;Aliás, o MayronCachina, uma boa alma, vai dar um &lt;a href="http://forum.webly.com.br/index.php?showtopic=26761"&gt;curso grátis de PHP&lt;/a&gt;. Se você ainda não souber PHP agora é a hora.&lt;/p&gt;

&lt;p&gt;Li vários livros durante meu retiro espiritual aqui do blog. Abaixo mostro 3 que achei bem interessantes:&lt;/p&gt;
&lt;h3&gt;1) Investimentos: Como Administrar Melhor Seu Dinheiro - do Mauro Halfeld&lt;/h3&gt;
&lt;p&gt;Muuuuuuuito bom. Quando comecei a ganhar uma graninha boa nos meus sites vi que eu não tava segurando dinheiro nenhum. A grana não rendia. Daí topei com este livro lá na Saraiva. O cara escreve muito bem coisas ótimas pra manejar a grana. Não são coisas de outro planeta que só investidores-viciados conseguem entender.&lt;/p&gt;
&lt;p&gt;São coisas pra pessoas normais, classse média, aprenderem a usar melhor e investir melhor o dinheiro.&lt;/p&gt;
&lt;p&gt;Ele explica várias daquelas siglas que agente vê no jornal e fica sem entender. Explica os melhores investimentos, explica sobre imóveis e como investir nisso, explica sobre bolsa de valores, etc.&lt;/p&gt;
&lt;p&gt;Como já &lt;a href="http://search.twitter.com/search?q=quem+trabalha+n%C3%A3o+tem+tempo"&gt;twittavam &lt;/a&gt;por aí: “Quem trabalha &lt;b&gt;demais&lt;/b&gt; não tem tempo pra ficar rico” hehaeh&lt;br&gt;

Agora sério: O lance do Investimento é você fazer o dinheiro trabalhar pra você. Ter rendimentos que independam do seu trabalho (diretamente) tipo aluguéis, sites, ações, empresas. Assim você terá liberdade de criar novas e novas fontes de renda e finalmente ter a liberdade de escolher se quer continuar sendo funcionário ou não.&lt;/p&gt;
&lt;h3&gt;2) Devoradores de Mortos - do MICHAEL CRICHTON&lt;/h3&gt;
&lt;p&gt;&lt;a style="margin: 10px; float: left;" href="http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=5552081&amp;amp;go=http://lista.mercadolivre.com.br/livros/devoradores-de-mortos_PrCategId_AD" target="_blank" rel="nofollow"&gt;&lt;img src="http://img503.imageshack.us/img503/1715/21607.jpg" alt="Livro Devoradores de Mortos - do MICHAEL CRICHTON"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;É uma historinha muito boa. Ótima. Um dos melhores livros de historinha que eu já li.&lt;br&gt;
&lt;em&gt;“O autor apresenta o mais antigo relato da vida dos vikings: o manuscrito do árabe Ibn Fadlan, de 922. Através deste documento, narra a vida desse povo de uma forma inédita, jamais vista pelos ocidentais.”&lt;/em&gt; - &lt;a href="http://www.submarino.com.br/produto/1/21607/devoradores+de+mortos" rel="nofollow"&gt;Submarino&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mas o melhor é que o livro é (ou diz ser) baseado em um manuscrito do milênio passado que muitos historiadores confirmam a veracidade. Daí, a galera que gosta de “aventuras medievais” e uns lance meio RPG vai curtir pra caramba o livro e ficar naquela de ’será que aconteceu mesmo? será que é vero?’.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;“Ibn Fadlan ficou conhecido por escrever um manuscrito (Kitāb ilā Malik al-Saqāliba (كتاب إلى ملك الصقالبة)) sobre suas viagens como embaixador do Abássida al-Muqtadir para a terra dos búlgaros.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Por muito tempo, havia apenas uma versão incompleta dos manuscritos, espalhada por verbetes no dicionário geográfico escrito por Yaqut al-Hamawi, publicado em 1823.[1] Porém em 1923, o estudioso Zeki Validi Togan encontrou num museu em Meshed o manuscrito MS 5229, que continha entre outras coisas a versão mais completa do escrito de Ibn Fadlan.[2]”&lt;/em&gt; - &lt;a href="http://pt.wikipedia.org/wiki/Ahmad_ibn_Fadlan" rel="nofollow"&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Destaque para as passagens mostrando a porqueira da época, a putaria da época, os monstros marinhos (que alguns historiadores acreditam ser baleias), anões adivinhos, uma raça humana desconhecida, o espírito lutador dos nórdicos, tabernas, etc.&lt;/p&gt;
&lt;p&gt;Pra variar, fizeram uma bosta de um filme baseado neste livro: O &lt;a href="http://www.cineplayers.com/filme.php?id=3868"&gt;13o Guerreiro&lt;/a&gt;. É lógico que o filme não mostra nem 40% do livro e é um fracasso total.&lt;/p&gt;
&lt;p&gt;Compre este livro, não costuma ser mais de 20 conto.&lt;/p&gt;
&lt;h3&gt;3) Livro Jquery do Maujor&lt;/h3&gt;
&lt;p&gt;&lt;a style="margin: 10px; float: left;" href="http://www.livrojquery.com.br/" target="_blank" rel="nofollow"&gt;&lt;img src="http://img12.imageshack.us/img12/6421/livrolayout.png" alt="Livro Jquery do Maujor"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Bom, esse aqui nem precisa falar muito né. É um livro técnico explicando como usar o biblioteca para javascript Jquery.&lt;br&gt;

Se você é novato na área e não entende muito de javascript e nem de jquery, este livro vai te ajudar.&lt;/p&gt;
&lt;p&gt;O Maujor explica detalhadamente (quase) todas os métodos, propriedades e funções do jquery e dá um monte de exemplos. Muito bom pra se usar quando se precisa de referência em Jquery.&lt;/p&gt;
&lt;p&gt;Eu só não gostei muito da forma repetitiva que as funções/métodos são mostrados e nem da forma como foram apresentados os seletores.&lt;br&gt;
Como o Maujor é um grande mestre do CSS, achei que os seletores seriam mostrados como foram no site CSS dele, onde está mais fácil de entender e com menos texto.&lt;/p&gt;
&lt;p&gt;No restante o &lt;a href="http://www.maujor.com/blog/2008/11/20/lancamento-do-livro-jquery-do-maujor/"&gt;livro é show&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;(Obs.: Como nunca citei livros aqui no blog, alguns podem pensar que eu quero só ganhar uma grana extra com comissão. Bom, o ElMicox não rende nem 1 centavo por mês e acredito que com estes livros não será diferente.&lt;br&gt;
As indicações do livro são mais pra voltar o pique do blog já que tô sem scripts novos. Se alguém comprar através da minha indicação, bem, senão, amém. Ganho MUITO mais grana com meus outros blogs/sites.&lt;br&gt;
A idéia é mesmo mostrar livros bons que li.)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-2855837834144215407?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.elmicox.com/2009/livros-lidos-investimentos-devoradores-de-mortos-e-jquery/' title='Livros lidos: Investimentos, Devoradores de Mortos e Jquery'/><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/2855837834144215407/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=2855837834144215407' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/2855837834144215407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/2855837834144215407'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2009/05/livros-lidos-investimentos-devoradores.html' title='Livros lidos: Investimentos, Devoradores de Mortos e Jquery'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-8105153625622811933</id><published>2009-05-29T07:37:00.007-04:00</published><updated>2009-05-29T08:14:00.700-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Maxlength No Textarea - Inline E Simplão (e outras bizarrices javascript)</title><content type='html'>&lt;p&gt;oaaaaaaaaaaaaaaoaoaoaoaoooooooooaaaaaaaaa será que o micox tá de volta? Não sei. Provavelmente os leitores de feed não acompanham mais isso aqui mesmo. Vamo ver se vai ter algum comentário hehehehaeuhauehauehuaehuaheuheauea heauheauhe uhaeueahue lololololoo (louco mode off)&lt;/p&gt;
&lt;p&gt;Bom, hoje postaremos um nano-tutorial-código que mostra uma das trocentas maneiras de se implementar maxlength no textarea.&lt;/p&gt;
&lt;p&gt;Como vossa senhoria já deve saber, maxlength só tem em inputs, o pobre do textarea ficou esquecido.&lt;/p&gt;
&lt;p&gt;O código:&lt;/p&gt;
&lt;pre class="code"&gt;&amp;lt;textarea name='meutext' onkeydown='if(this.value.length&amp;gt;(MAXLEN=5))this.value=this.value.substr(0,MAXLEN)'&amp;gt;
&amp;lt;/textarea&amp;gt;&lt;/pre&gt;
&lt;p&gt;Para usar você só tem que alterar o número ‘5′ para a quantidade de caracteres que deseja como limite para seu textarea.&lt;/p&gt;

&lt;p&gt;Testei com sucesso no FF3 IE5 IE6 IE7 OP GCh (google chrome), se testarem em mais navegadores e funfar, postem ae.&lt;/p&gt;
&lt;p&gt;“Não entendi este código Sr Micox, WTF vc tá fazendo naquele trecho (MAXLEN=5) alí?”&lt;/p&gt;
&lt;p&gt;Bom, aquilo é uma bizarrice permitida pelo javascript pra reduzir (e complicar) o código. Quem mexe com Ruby já conhece este tipo de loucura muito útil.&lt;/p&gt;
&lt;p&gt;O que tá dentro do parênteses, além de atribuir um valor à variável MAXLEN, retorna o útlimo valor usado.&lt;/p&gt;
&lt;p&gt;Então se eu fizer &lt;span style="font-style: italic;"&gt;(d=document).write(’cocô’)&lt;/span&gt; , além de escrever ‘cocô’ na tela, ainda atribuirá o objeto document à variável ‘d’, o que me permitirá reduzir o código em futuras linhas deste script:&lt;/p&gt;
&lt;pre class="code"&gt;(d=document).write('cocô'); //isso funciona
d.write('fede'); //isso também&lt;/pre&gt;
&lt;p&gt;Hahá.&lt;br&gt;

Então quando eu faço &lt;span style="font-style: italic;"&gt;if(this.value.length&amp;gt;(MAXLEN=5))&lt;/span&gt; é a mesma coisa de fazer &lt;span style="font-style: italic;"&gt;MAXLEN=5; if(this.value.length&amp;gt;MAXLEN)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;hAHÁe hihíiii&lt;/p&gt;
&lt;p&gt;&lt;a href="http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=5552081&amp;amp;go=http://lista.mercadolivre.com.br/silvio-santos" target="_blank" rel="nofollow"&gt;&lt;img src="http://img7.imageshack.us/img7/1883/silviosantos7.jpg" alt="silvio santos"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hoje tô animado. Acho que já vou fazer outra postagem sobre minha ausência e os livros que li durante meu retiro espiritual do blog.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-8105153625622811933?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/8105153625622811933/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=8105153625622811933' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/8105153625622811933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/8105153625622811933'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2009/05/maxlength-no-textarea-inline-e-simplao.html' title='Maxlength No Textarea - Inline E Simplão (e outras bizarrices javascript)'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-584395588202323344</id><published>2008-12-17T08:35:00.001-03:00</published><updated>2008-12-17T08:35:37.760-03:00</updated><title type='text'>Detesta burocracia no desenvolvimento? Getting Real neles</title><content type='html'>&lt;p&gt;“Getting Real” (traduzido como “Caindo na Real”) é um livro e que descreve uma metodologia de desenvolvimento de negócios na internet.&lt;/p&gt;
&lt;p&gt;Eu já tinha lido ele há muito tempo, mas ainda não tinha comentado ou implementado. Tô meio atrasado (o mundo inteiro já deve ter lido este livro) mas bora lá.&lt;/p&gt;
&lt;p&gt;Ela prega que, a partir do momento que as idéias do negócio já estejam definidas, não se enrole muito pra desenvolver o seu site.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;“Em resumo, o que o Getting Real prega é que pulemos as fases que representam o projeto (documentos, especificações, wireframes, testes de usabilidade etc.) e partamos direto para o que realmente é o projeto, ou seja, telas, códigos e programação.&lt;/p&gt;
&lt;p&gt;A justificativa é que não importa o quanto seja planejado, quando o projeto for ao ar e os usuários começarem a realmente utilizá-lo, ele terá que ser alterado e ajustado” - &lt;a href="http://fatorw.com/internet/gerenciamento/metodologia-moebius-e-getting-real-planejamento-e-acao/"&gt;Walmar Andrade&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Se você já desenvolveu algo pra internet e colocou uma campo de contato para receber comentários e opiniões, sabe que isto é verdade.&lt;/p&gt;
&lt;p&gt;Você só vai perceber o que precisa ser ajustado após o serviço ir pro ar. Além disso, você também irá perceber claramente quais as funcionalidades mais prioritárias de se implementar.&lt;/p&gt;

&lt;p&gt;Se você já têm a idéia inicial, não demore. Na internet, quem chega primeiro têm chances maiores de se dar bem (bom, acho que na vida real também né hehehe).&lt;/p&gt;
&lt;p&gt;Opa, não estou dizendo pra você jogar qualquer porcaria na rede. Faça algo bom, algo cativante, algo que seus visitantes voltarão pra ver, algo que seus visitantes indicarão pros amigos.&lt;/p&gt;
&lt;p&gt;A cada dia que passar, os visitantes, vendo que funcionalidades novas vão sendo implantadas, vendo que as sugestões deles são ouvidas, vendo que é um site dinâmico e crescente, eles ficarão mais e mais fiéis do seu serviço.&lt;/p&gt;
&lt;p&gt;Colocando seu serviço no ar rapidamente, você também terá a vantagem de medir previamente como os visitantes estão chegando até você: palavras chave (busca do google) que dão mais resultado, que tipo de marketing dá mais resultado, quais parceiros dão mais resultado, etc.&lt;/p&gt;
&lt;p&gt;Detalhe: o livro está disponível “di grátis” e em português no site &lt;a href="http://gettingreal.37signals.com/GR_por.php"&gt;http://gettingreal.37signals.com/GR_por.php&lt;/a&gt;&lt;br&gt;
Leia a introdução e o capítulo 1 e se impressione.&lt;/p&gt;
&lt;p&gt;Minha opinião resumida é: não abandonte totalmente o planejamento, faça uns rabiscos, mas não demore meses pra lançar sua idéia.&lt;/p&gt;
&lt;p&gt;Talvez esta metodologia seja útil não só para o desenvolvimento web, mas para o desktop também (desde que o software tenha um sistema legal pra atualizações).&lt;/p&gt;

&lt;p&gt;//Pensando melhor, talvez ela não seja útil só na área de informática. Esta metodologia de fazer algo bom e rápido e , depois, ir melhorando já é usado por churrasquinhos que viram restaurantes, lojinhas de roupas que viram lojões, etc.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Caindo na Real se livra de …&lt;/p&gt;
&lt;p&gt;    * Cronogramas que levam meses ou mesmo anos&lt;br&gt;
    * Especificações Funcionais Utópicas&lt;br&gt;
    * Debates de Escalabilidade&lt;br&gt;
    * Reuniões de equipe intermináveis&lt;br&gt;
    * A “necessidade” de contratar dúzias de funcionários&lt;br&gt;

    * Números de versões sem sentido&lt;br&gt;
    * Planejamentos cristalinos que prevêem o futuro&lt;br&gt;
    * Opções de preferência intermináveis&lt;br&gt;
    * Suporte terceirizado&lt;br&gt;
    * Testes de usuário irreais&lt;br&gt;
    * Papelada inútil&lt;br&gt;

    * Hierarquia de cima-para-baixo&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-584395588202323344?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/584395588202323344/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=584395588202323344' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/584395588202323344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/584395588202323344'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/12/detesta-burocracia-no-desenvolvimento.html' title='Detesta burocracia no desenvolvimento? Getting Real neles'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-1283250802655983002</id><published>2008-11-28T13:50:00.005-03:00</published><updated>2008-12-17T08:42:11.241-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Plugins essenciais pra Wordpress na opinião do Mico</title><content type='html'>&lt;p&gt;Pacote de plugins essenciais pra Wordpress na opinião deste Mico que vos fala.
&lt;/p&gt;&lt;p&gt;
Toda instalação de wordpress que eu faço (que não são muitas) eu uso os seguintes plugins que facilitam pra caramba minha vida. Acho que eles já deveriam vir (pelo menos alguns) no pacote inicial do wordpress hahehaehe.
&lt;/p&gt;&lt;p&gt;
Se você têm mais ae, sugira nos comentários. Alguns dos abaixo, foram indicados pelo brodi &lt;a href='http://igorvieira.com/blog/'&gt;Igor&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;ChapSecureLogin &lt;/strong&gt;- criptografa (via javascript) sua senha pra que ela não passe em branco pela rede (e qualquer sniffer de rede possa vê-la)
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;LoginLockDown&lt;/strong&gt; - Bloqueia após 3 tentativas de senhas. Daí o mala só vai poder tentar força bruta novamente após XX minutos
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;WP Security Scan &lt;/strong&gt;- Testa permissões de pasta, nome do banco de dados, senhas e mais outras coisas. Muito bom.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;Admin management Xtended&lt;/strong&gt; - Adiciona opções ajax a algumas ações de administração (como por ex deixar a página visível, trocar ordem de posts, etc)
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;Ozh Admin Drop Down Menu &lt;/strong&gt;- transforma o menu do wp-admin em algo mais fácil de mexer. Em vez de ter que ficar acessando o menu pai pra só depois poder acessar os filhos. Esse compensa di cum força.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;All in One SEO Pack&lt;/strong&gt; - Deixa seu blog mais amigável pra mecanismos de busca.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;Google XML Sitemaps&lt;/strong&gt; - Simplesmente ótimo pra gerar seu sitemap. Com opção de peso pra cada tipo de página e envio automático pros motores de busca.
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://japs.etc.br/2007/09/como-evitar-spam-de-comentarios-com-codigo-simples-e-acessivel/"&gt;Comments Hash do Japs&lt;/a&gt; - Já famoso. Adiciona uma conta matemática na caixa de comentários. Reduz spam (e se você complicar a conta, pode reduzir comentários de não inteligentes também hahaha) - Ele não está na lista de plugins do wordpress.org, tem que procurar no google.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;Old Post Alert&lt;/strong&gt; - Mostra um aviso se o post for antigo X meses. Bom pra sites de notícias.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;Similar Posts&lt;/strong&gt; - Exibe links para postagens similares ao post em que o visitante está. (requer o post plugin library)
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;Theme Test Drive &lt;/strong&gt;- pra você poder testar vários temas e modificações sem que seu visitante veja.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;Wordpress Popular posts&lt;/strong&gt; - Mostra os posts mais populares.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;Wordpress stats&lt;/strong&gt; - Estatísticas completas: pageviews, palavras chave, links clicados, sites que linkaram, etc
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;wordpress mobile edition&lt;/strong&gt; - link pra versão simples do seu site. Bom pra celulares e talz.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;404 notifier &lt;/strong&gt;- òtimo quando se está no começo do blog ou de um novo template, bom pra ver arquivos, imagens e outros links quebrados.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;WP DBManager&lt;/strong&gt; - alem do backup automática, faz otimização automática, reparação, restore do backup, etc.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;WP Super Cache&lt;/strong&gt; - Transforma seus posts em arquivo HTML reduzindo o acesso ao banco de dados e lentidão.
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;Wordpress Automatic upgrade&lt;/strong&gt; - Simplifica o trabalho chato de atualizar seu wordpress
&lt;/p&gt;&lt;p&gt;
&lt;strong&gt;PageNavi&lt;/strong&gt; - Adiciona números de página no seu blog ao invés do velho "página anterior" , "próxima página".
&lt;/p&gt;&lt;p&gt;
Por hoje é só. Se você têm mais, sugira nos comentários.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-1283250802655983002?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/1283250802655983002/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=1283250802655983002' title='7 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/1283250802655983002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/1283250802655983002'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/11/pacote-de-plugins-essenciais-pra.html' title='Plugins essenciais pra Wordpress na opinião do Mico'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-7166391402332428744</id><published>2008-11-26T16:34:00.001-03:00</published><updated>2008-11-26T16:36:53.326-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bate-papo'/><title type='text'>Eu odeio a Brasil Telecom, seu call-center, sua URA e seus líderes</title><content type='html'>&lt;p&gt;
Cenário real: A conta telefônica do senhor X, mais um dos zilhões dos clientes da &lt;strong&gt;Brasil Telecom&lt;/strong&gt;, chega com valores indevidos. Ele tenta, por vários dias, ligar para a central de atendimento e corrigir os valores indevidos para poder pagar. Nunca consegue. Certo dia, um robô da Brasil Telecom, liga na casa do senhor X e diz que se ele não pagar até o dia tal, terá seu telefone cortado.
&lt;/p&gt;&lt;p&gt;
(pra quem não sabe, URA são aqueles sistemas de atendimento automático  que te colocam pra digitar mil opções até ser atendido pela área certa).
&lt;/p&gt;&lt;p&gt;
tuuuu
&lt;br /&gt;103-14
&lt;br /&gt;"Bem vindo à Brasil Telecom"
&lt;br /&gt;"Para telefone fixo, digite 2"
&lt;br /&gt;2
&lt;br /&gt;"Se deseja atendimento para seu telefone fixo, digite 2"
&lt;br /&gt;2
&lt;br /&gt;"Se o atendimento é para o telefone do qual está falando digite 2, ou digite o número do telefone para o qual deseja atendimento"
&lt;br /&gt;XX-XXXX-XXXX
&lt;br /&gt;Música...
&lt;br /&gt;"Para conta telefônica, digite 2"
&lt;br /&gt;2
&lt;br /&gt;"Sua conta já está na internet. Você pode imprimí-la, solicitar por email, blablabla, blablabla. Acesse www.brasiltelecom.com.br e confira"
&lt;br /&gt;"Por favor, digite o número do seu CPF"
&lt;br /&gt;XXX.XXX.XXX-XX
&lt;br /&gt;"Para valor da conta, digite 2, segunda via, digite 3, informar pagamento, digite 4, mudar vencimento, digite 5, conta detalhada, digite 6, voltar ao menu anterior, digite 8, falar com um de nossos atendentes, digite 9" (finalmente, lágrimas de emoção escorrem dos olhos do senhor X)
&lt;br /&gt;"Queremos saber sua opinião sobre nosso atendimento. Ao finalizar, participe de nossa pesquisa, blablabla" (engraçado que a pesquisa é sobre os atendentes do callcenter e não sobre a qualidade da maldita URA ou dos sistemas deles)
&lt;br /&gt;"Aguarde um momento para ser atendido" (novidade)
&lt;br /&gt;"Para sua segurança, esta ligação poderá ser gravada"
&lt;br /&gt;tuuuu
&lt;br /&gt;tuuuu
&lt;br /&gt;tuuuu
&lt;br /&gt;"No momento, todos os nossos atendentes estão ocupados. Por favor, ligue mais tarde." (neste momento, deve-se manter a calma, respirar fundo e treinar as técnicas milenares de auto-controle)
&lt;/p&gt;&lt;p&gt;
Por este e por outros motivos, &lt;strong&gt;eu (e &lt;a href='http://www.google.com/search?hl=pt-BR&amp;q=eu%20odeio%20a%20brasil%20telecom&amp;lr='&gt;outros zilhões&lt;/a&gt;) odeio a Brasil Telecom&lt;/strong&gt;.
&lt;/p&gt;&lt;p&gt;
Aguardamos, ansiosamente, o dia 01 de dezembro de 2008, quando entra em vigor a histórica &lt;a href='http://www.convergenciadigital.com.br/cgi/cgilua.exe/sys/start.htm?infoid=16802&amp;sid=15'&gt;lei que regulamente melhor os Call-centers (ou SAC's)&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Aliás, o &lt;a href='http://desciclo.pedia.ws/wiki/Daniel_Dantas'&gt;ex-líder espiritual da BRT&lt;/a&gt; andou tacando o caos na justiça federal, PRF e Abin. No melhor estilo Joker, transformou o 'mocinho' em investigado e instalou guerras internas em instituições federais.
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://imageshack.us"&gt;&lt;img src="http://img88.imageshack.us/img88/1668/jokerdantespg4.jpg" border="0" alt="Dantas - Joker"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;a href="http://g.imageshack.us/img88/jokerdantespg4.jpg/1/"&gt;&lt;img src="http://img88.imageshack.us/img88/jokerdantespg4.jpg/1/w360.png" border="0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Qualquer semelhança é uma mera coincidência&lt;/em&gt;
&lt;/p&gt;&lt;p&gt;
Se você quer falar mal da Brasil Telecom na internet (ou de qualquer outra empresa), não tenha medo. &lt;a href='http://direitoetrabalho.com/2008/06/eu-odeio-a-brasil-telecom-sem-censura/'&gt;“Exercer censura sobre a Internet, exceto nas hipóteses de crime, seria pôr fim ao seu objeto de unir povos e culturas diferentes no espaço virtual”&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-7166391402332428744?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/7166391402332428744/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=7166391402332428744' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/7166391402332428744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/7166391402332428744'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/11/eu-odeio-brasil-telecom-seu-call-center.html' title='Eu odeio a Brasil Telecom, seu call-center, sua URA e seus líderes'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-4572984914891125975</id><published>2008-11-20T07:53:00.002-03:00</published><updated>2008-11-20T07:58:49.233-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dicas http'/><title type='text'>Redirecionamentos http 301 em várias linguagens/servidores</title><content type='html'>&lt;p&gt;Como alguns já sabem, a &lt;a href='http://forum.webly.com.br'&gt;comunidade/fórum de desenvolvimento web ievolution&lt;/a&gt; mudou seu nome para Webly.
&lt;/p&gt;&lt;p&gt;
Foi necessário, então, fazer um redirecionamento de domínio para apontar para o novo Webly (webly.com.br). O &lt;abbr title='Painel de Administração de sites PHP'&gt;cpanel&lt;/abbr&gt; cuidou de tudo direitinho, os users do fórum mal perceberam, não perdemos links e nem pagerank, graças ao bom e velho &lt;strong&gt;redirecionamento http 301&lt;/strong&gt;.
&lt;/p&gt;&lt;p&gt;
Existem inúmeros &lt;a href='http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html'&gt;outros códigos de redirecionamento&lt;/a&gt;, mas o dr. 301 (moved permanently) se dá melhor com buscadores.
&lt;/p&gt;&lt;p&gt;
Apesar do Cpanel ter feito o serviço perfeitamente, eu, como um bom &lt;del&gt;n&lt;/del&gt;lerd que sou, dei uma pesquisada básica sobre o assunto e achei um &lt;a href='http://www.webconfs.com/how-to-redirect-a-webpage.php'&gt;documento interessante&lt;/a&gt; que mostra &lt;strong&gt;redirecionamentos&lt;/strong&gt; em várias linguagens/servidores: 
&lt;strong&gt;IIS, Apache, PHP, JSP, ASP, Coldfusion, CGI PERL, Ruby&lt;/strong&gt;.
&lt;/p&gt;&lt;p&gt;
No fim, eu mostro também como redirecionar via HTML através do META refresh, algo não muito recomendado.&lt;/p&gt;

&lt;h3&gt;Apache 301 redirect (htaccess)&lt;/h3&gt;
&lt;p&gt;Vá no seu htaccess e coloque:&lt;/p&gt;
&lt;pre class='code'&gt;
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 
&lt;/pre&gt;

&lt;h3&gt;IIS 6 - 301 redirect&lt;/h3&gt;
&lt;p&gt;&lt;a href='http://technet2.microsoft.com/windowsserver/pt-br/library/04407fb0-f6f1-4b9d-ad84-675fecc016a61046.mspx?mfr=true'&gt;Segundo a MS&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Internet Services Manager (Geranciador do IIS) &gt; botão direito na pasta a ser redirecionada&lt;/li&gt;
&lt;li&gt;Clique na guia Diretório Base, Diretório Virtual ou Diretório&lt;/li&gt;
&lt;li&gt;Em O conteúdo deste recurso deve vir de, clique em Um redirecionamento para uma URL&lt;/li&gt;
&lt;li&gt;Na caixa Redirecionar para, digite a URL do diretório ou site de destino. Por exemplo, para redirecionar todas as solicitações de arquivos do diretório Catalog para o diretório NewCatalog, digite /NewCatalog.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Redirecionamento PHP&lt;/h3&gt;

&lt;pre class='code'&gt;
&amp;lt;?
    Header( "HTTP/1.1 301 Moved Permanently" );
    Header( "Location: http://www.new-url.com" );
?&amp;gt;
&lt;/pre&gt;


&lt;h3&gt;Redirecionamento ASP&lt;/h3&gt;

&lt;pre class='code'&gt;
&amp;lt;%@ Language=VBScript %&amp;gt;
&amp;lt;%
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.new-url.com/"
%&amp;gt;
&lt;/pre&gt;

&lt;h3&gt;ASP.net 301 redirect&lt;/h3&gt;

&lt;pre class='code'&gt;
&amp;lt;script runat="server"&amp;gt;
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","http://www.new-url.com");
}
&amp;lt;/script&amp;gt;
&lt;/pre&gt;

&lt;h3&gt;JSP (Java) Redirect&lt;/h3&gt;

&lt;pre class='code'&gt;
&amp;lt;%
response.setStatus(301);
response.setHeader( "Location", "http://www.new-url.com/" );
response.setHeader( "Connection", "close" );
%&amp;gt;
&lt;/pre&gt;

&lt;h3&gt;Redirecionamento em Ruby&lt;/h3&gt;

&lt;pre class='code'&gt;
def old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "http://www.new-url.com/"
end
&lt;/pre&gt;

&lt;h3&gt;Coldfusion Redirect&lt;/h3&gt;

&lt;pre class='code'&gt;
&amp;lt;.cfheader statuscode="301" statustext="Moved permanently"&amp;gt; 
&amp;lt;.cfheader name="Location" value="http://www.new-url.com"&amp;gt;
&lt;/pre&gt;

&lt;h3&gt;CGI PERL Redirect&lt;/h3&gt;

&lt;pre class='code'&gt;
$q = new CGI;
print $q-&gt;redirect("http://www.new-url.com/"); 
&lt;/pre&gt;

&lt;h3&gt;Via html meta tag&lt;/h3&gt;

&lt;pre class='code'&gt;
&amp;lt;meta http-equiv="refresh" content="0;url=http://example.com/" /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Por hoje é só. Não tinha nada melhor pra eu postar hehhhee&lt;/p&gt;
&lt;img src='http://img74.imageshack.us/img74/4027/botblog4yq7.jpg' alt='Redirects and Search engines' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-4572984914891125975?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/4572984914891125975/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=4572984914891125975' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/4572984914891125975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/4572984914891125975'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/11/redirecionamentos-http-301-em-vrias.html' title='Redirecionamentos http 301 em várias linguagens/servidores'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-1891655043648819695</id><published>2008-11-14T10:27:00.003-03:00</published><updated>2008-11-14T13:08:48.636-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>Abandone o getElementById</title><content type='html'>&lt;p&gt;
"WTF mico? Are you Crazy?"
&lt;/p&gt;&lt;p&gt;
Calma malucada, não estou dizendo pra vocês voltarem ao século passado, quando referenciávamos os elementos via 'document.all' hehe. Na verdade este post é um incentivo pra vocês "apelidarem" alguns métodos e objetos, de forma facilitar a digitação de vocês.
&lt;/p&gt;&lt;p&gt;
//É que eu tava afim de fazer um título polêmico hahehahe
&lt;/p&gt;&lt;p&gt;
"Como assim?"
&lt;/p&gt;&lt;p&gt;
Estou cansado de ver códigos assim:
&lt;/p&gt;&lt;pre class='code'&gt;
function juntaEnd(){
 var rua = document.getElementById('input_rua').value
 var num = document.getElementById('input_num').value
 var bairro = document.getElementById('input_bairro').value
 var cidade = document.getElementById('input_cidade').value
 var estado = document.getElementById('input_estado').value
 return rua+num+bairro+cidade+estado
}&lt;/pre&gt;
&lt;p&gt;
Olha o tanto que o cara teve que digitar (ou copiar e colar). O tanto de bytes gastos com o 'document.getElementById'.
&lt;/p&gt;&lt;p&gt;
Muitos dos meus inteligentes leitores já fazem de uma forma mais 'legal':
&lt;/p&gt;&lt;pre class='code'&gt;
function get(quem) { return document.getElementById(quem) }
function juntaEnd(){
 var rua = get('input_rua').value
 var num = get('input_num').value
 var bairro = get('input_bairro').value
 var cidade = get('input_cidade').value
 var estado = get('input_estado').value
 return rua+num+bairro+cidade+estado
}&lt;/pre&gt;
&lt;p&gt;
Olha só, muito melhor de ler, digitar, economizar banda hehaehae.
O nome da função 'get' poderia ser o que você quisesse. Eu por exemplo uso '$m'.
&lt;/p&gt;&lt;p&gt;
Existem várias outras &lt;a href='http://dean.edwards.name/weblog/2005/08/cssquery2/'&gt;funções mais poderosas que este 'get'&lt;/a&gt; simples mostrado. Pesquise, também, funções dos diversos frameworks existentes que facilitam o serviço.
&lt;/p&gt;&lt;p&gt;
Além de 'apelidar' o getElementById você pode apelidar outros objetos também de forma mais simples, caso não saiba. &lt;del&gt;(Não lembro o nome real pra isso de 'apelidar' na literatura acadêmica de programação, se vocÊ souber ae me avisa nos comments hehe :P )&lt;/del&gt; (O nome é 'alias' conforme foi lembrado pelo &lt;a href="http://www.maujor.com"&gt;Maujor &lt;/a&gt;e &lt;a href="http://devlog.waltercruz.com/"&gt;Walter Cruz&lt;/a&gt;)
&lt;/p&gt;&lt;p&gt;
Exemplo:
&lt;/p&gt;
&lt;pre class='code'&gt;
var d = document
d.write('isto funciona, caracas!').
d.getElementById('input_nome').value = 'apelidando o document';&lt;/pre&gt;
&lt;p&gt;
Um exemplo mais hard (mas pode te ajudar pois direto agente vê isto em scripts que baixa e fica boiando sem saber o que é):
&lt;/p&gt;
&lt;pre class='code'&gt;
(dc=document).write('o document também foi apelidado dessa maneira doida??')
dc.getElementById('input_nome').value = 'Sim!!';&lt;/pre&gt;
&lt;p&gt;
Bom, é isso ae, por hoje é só! Acredito que, para os que não conheciam estes truques loucos, eu devo ter dado uma luz.
Só toma cuidado pois o uso indiscriminado sem comentários pode deixar seu código ilegível e complicar sua cabeça no futuro.
&lt;/p&gt;&lt;p&gt;
Adiós povo. Não se esqueçam de participar do &lt;a href='http://forum.webly.com.br/index.php?showtopic=24692'&gt;desafio Webly de Natal em Flash&lt;/a&gt; (valendo 1 pendrive 4Gb) ok?
&lt;/p&gt;&lt;p&gt;
&lt;object type='application/x-shockwave-flash' width='485' height='62' data='http://forum.webly.com.br/banners/flashnatal2.swf'&gt; 
  &lt;param name='movie' value='http://forum.webly.com.br/banners/flashnatal2.swf'&gt;&lt;/object&gt;
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-1891655043648819695?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/1891655043648819695/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=1891655043648819695' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/1891655043648819695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/1891655043648819695'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/11/abandone-o-getelementbyid.html' title='Abandone o getElementById'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-948934521810230508</id><published>2008-11-13T14:53:00.001-03:00</published><updated>2008-11-13T15:22:49.414-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='funções'/><category scheme='http://www.blogger.com/atom/ns#' term='bibliotecas'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Funções Javascript equivalentes a funções PHP</title><content type='html'>&lt;p&gt;Holá senhores e senhoras,
&lt;/p&gt;&lt;p&gt;
Hoje volto para mostrar um projeto muito interessante: &lt;a href="http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_addslashes/"&gt;PHP to Javascript Project: php.js&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
Vendo o tanto de gente querendo funções equivalente do PHP no javascript, os malucos tiveram a idéia de portar grande parte das funções do PHP para o javascript, usando a sintaxe mais próxima possível do php.
&lt;/p&gt;&lt;p&gt;
Assim, acabam ajudando a galera que entende de PHP mas não entende muito de javascript.
&lt;/p&gt;&lt;p&gt;
Eu achei uma ótima idéia. Parece que ela é meio antiga mas eu só encontrei agora por acaso.
&lt;/p&gt;&lt;p&gt;
Os caras têm versões de 190 funções PHP, inclusive a de criação de array, explode, isset, is_array, utf8_encode, urldecode, trim, time, wordwra, unserialize, sha1, md5, print_r, e o escambau.
&lt;/p&gt;&lt;p&gt;
Acessem o &lt;a href="http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_addslashes/"&gt;site do projeto&lt;/a&gt; e confiram. Está sendo um ótimo trabalho e, provavelmente, vai te ajudar algum dia.
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_addslashes/"&gt;http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_addslashes/&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
Não olhei os créditos inteiros, mas já ví que os brasileiros do &lt;a href="http://www.jsfromhell.com/"&gt;jsfromhell&lt;/a&gt; contribuiram bastante.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-948934521810230508?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/948934521810230508/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=948934521810230508' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/948934521810230508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/948934521810230508'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/11/funes-javascript-equivalentes-funes-php.html' title='Funções Javascript equivalentes a funções PHP'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-4663359125556476575</id><published>2008-10-06T16:31:00.005-04:00</published><updated>2008-10-06T16:52:09.126-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>Combo de estados e cidades em ajax - Seus problemas acabaram</title><content type='html'>&lt;p&gt;Quer fazer aquela conhecida dupla de select's com os estados e, ao lado, as cidades respectivas mas está cansado de quebrar a cabeça?
&lt;/p&gt;&lt;p&gt;
Cansado de tentar entender ajax pra fazer isto?
&lt;/p&gt;&lt;p&gt;
Cansado de tentar organizar um banco de dados pra isto?
&lt;/p&gt;&lt;p&gt;
Cansado de aguardar o navegador carregar (loading) as mil cidades que têm?
&lt;/p&gt;&lt;p&gt;
SEUS PROBLEMAS SE ACABARAM-SE!!!
&lt;/p&gt;&lt;p&gt;
O grande DGMike fez um script espetacular que te poupará até de organizar o banco de dados com as cidades e estados. Já está tudo pronto.
&lt;/p&gt;&lt;p&gt;
Nas palavras do próprio:
&lt;/p&gt;&lt;p&gt;
&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;Pensando nisso, resolvi escrever uma biblioteca que resolva este problema, além de estar disponível em uma única URL (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.
&lt;br /&gt;&lt;br /&gt;
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.&lt;/span&gt;&lt;/blockquote&gt;
&lt;/p&gt;&lt;p&gt;
Pra usar, você só precisará incluir o arquivo javascript, fazer seus selects no html e chamar 1 (uma) função pra ativar o treco no onload. Muito simples e rápido. Eu vou usar.
&lt;/p&gt;&lt;p&gt;
Veja a solução do cara lá no blog dele: &lt;a href="http://dgmike.com.br/2008/10/cidades-e-estados-em-javascript/"&gt;Combo de estados e cidades em ajax by DGMike&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-4663359125556476575?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/4663359125556476575/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=4663359125556476575' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/4663359125556476575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/4663359125556476575'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/10/combo-de-estados-e-cidades-em-ajax-seus.html' title='Combo de estados e cidades em ajax - Seus problemas acabaram'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-7509566617100215904</id><published>2008-09-10T09:22:00.004-04:00</published><updated>2008-09-10T10:57:10.445-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bate-papo'/><title type='text'>Como diminuir a probabilidade de ter seu carro furtado sem gastar dinheiro, apenas com matemática</title><content type='html'>&lt;p&gt;Hohoho, olá senhoritos e senhoritas. Não sei se alguém ainda acompanha esta bagaça mas após alguns anos de férias o senhor Mico está de volta! Com menos tutoriais, com menos scripts, com menos tempo mas, ainda assim, está parcialmente de volta. hohohooo
&lt;/p&gt;&lt;p&gt;
Antes de explicar os motivos dos poucos tutoriais, vamos ao assunto principal do título do post: Como diminuir a probabilidade de ter seu carro furtado sem gastar dinheiro. Matemática pura.
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://imageshack.us/"&gt;&lt;img src="http://img111.imageshack.us/img111/6932/antifurtomn9.jpg" alt="Image Hosted by ImageShack.us" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
Vossas senhorias ficarão perplexas com tamanha sagacidade matemática probabilística e prostrar-se-ão amedrontados por não terem chamado um sábio do meu patamar para ajudar na construção do &lt;a href="http://pedro.angelini.blog.br/arquivos/LHC,-ou-O-Rap-do-Fim-do-Mundo"&gt;LHC&lt;/a&gt;, o que pode culminar no fim dos El Micox e &lt;a href="http://fatioupassou.com/lhc-e-o-fim-dos-tempos-o-mundo-acabara-amanha.html"&gt;de tudo mais&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Na verdade, todo esse lero-lero é para encher o post visto que a teoria do carro é bastante simples. Lerigôu:
&lt;/p&gt;&lt;p&gt;
1) Suponhamos que o nobre leitor estaciona seu carro sozinho em um local que não há outros carros. Neste dia, passa um senhor meliante (SM) esteja com vontade de furtar um carro.

Qual a probabilidade do SM levar o carro do nobre leitor? 100%
&lt;/p&gt;&lt;p&gt;
2) Suponhamos que o nobre leitor estacione seu carro, não mais sozinho, mas sim próximo a um segundo carro.

Qual a probabilidade de ter seu carro roubado? 50%

"IMPRESSIONANTE senhor mico. Sem gastar um centavo, reduzi a probabilidade pela metade apenas com vossos conhecimentos!!"
&lt;/p&gt;&lt;p&gt;
3) Mudando um pouco as variáveis:

Supponhamos que o senhor meliante deseje roubar um Fusca hoje, e coincidentemente, o carro do ilustríssimo leitor é um Fusca. E não há outro Fusca na região. Babau. Tchau Fusca.
&lt;/p&gt;&lt;p&gt;
4) Usando a secreta técnica dos carros semelhantes ensinada pelo Micox, você deverá procurar outro Fusca e estacionar próximo a ele. Assim, ao ver 2 Fuscas, a probabilidade de SEU Fusca ser levado cai pela metade.
&lt;/p&gt;&lt;p&gt;
5) Caso você esteja em um dia de sorte e encontre 3 Fuscas (mais o seu carro ficam 4 Fuscas), parabéns, a probabilidade de ter seu Fusca roubado por um bandido que queira Fuscas é de apenas 25%! :)
&lt;/p&gt;&lt;p&gt;
6) Suponhamos que você está em uma "convenção" de Fuscas ( que legal heim ) e existem exatamente 999 fuscas estacionados naquela região. Acredite: pode deixar seu fusca destrancado. A probabilidade de escolherem vosso digníssimo carro é de apenas 0,1%.
&lt;/p&gt;&lt;p&gt;
Usando os estudos de caso apresentados acima, o Instituto Micox de Sabedoria formulou a seguinte fórmula:
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight: bold;"&gt;P = { 100 / (QC + 1) }  * SM&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-style: italic;"&gt;onde P é a probabilidade (%) de ter seu carro roubado,&lt;/span&gt;

&lt;span style="font-style: italic;"&gt;QC é a quantidade de carros estacionados FORA o seu carro&lt;/span&gt;

&lt;span style="font-style: italic;"&gt;SM é a quantidade de meliantes disponíveis&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;
Atenção: A escolha do tipo do carro é apenas para exemplificar. Ignoramos o fato de que nenhum ladrão em sã consciência escolheria um fusca para roubar. Ou seja, se você têm um fusca pode ficar tranquilo e nem precisa usar estas técnicas.
&lt;/p&gt;&lt;p&gt;
Resumindo: Procure carros parecidos com o seu e estacione perto. Impressionante! hahá.
&lt;/p&gt;
&lt;h3&gt;Outras dicas para reduzir ainda mais.&lt;/h3&gt;
&lt;p&gt;
1) Sabemos que senhores meliantes são seres preguiçosos por natureza, caso contrário estariam trabalhando ao invés de estar roubando. Sendo assim, procure estacionar seu carro em um local difícil de sair, local apertado, sei lá. Isto irá reduzir a vontade do meliante preguiçoso em roubar seu carro.

- Segundo minhas pesquisas, com mais esta técnica secreta, você consegue reduzir a probabilidade de ter seu carro roubado em &lt;span style="font-weight: bold;"&gt;17&lt;/span&gt; pontos percentuais, em média.
&lt;/p&gt;&lt;p&gt;
2) Muitos meliantes gostam de quebrar o vidro do carro para levar o som. Caso você tenha som no carro, não tenho dicas.&lt;br /&gt;Agora se você é como eu e NÃO tem som de carro para não atrair bandidos, mostre isso a eles. Assim não perderão tempo quebrando seu vidro em busca do som. Deixe também o porta-luvas aberto para verem que não há som lá e nem outra coisa de valor.

- Com esta técnica, você reduz em &lt;span style="font-weight: bold;"&gt;66,666%&lt;/span&gt; a probabilidade de quebrarem o vidro do seu carro.
&lt;/p&gt;&lt;p&gt;
3) Muitas pessoas gostam de guardar o documento do carro dentro do próprio carro o que deixa os bandidos muito felizes. Mostre aos meliantes que o documento não está no carro descendo o "corta-sol" (aquele troço que fica acima da cabeça que eu não lembro o nome) toda vez que estacionar.

- Usando este truque, você reduz em &lt;span style="font-weight: bold;"&gt;13,696969%&lt;/span&gt; a probabilidade de levarem seu carro.
&lt;/p&gt;&lt;p&gt;
4) É claro que te aconselho a comprar alarme, trava, rastreio por satélite e o escambau, mas aí fugiria do objetivo proposto que é "sem gastar um centavo".
&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p&gt;

Chega de lorota. Agora vamos aos &lt;strong&gt;motivos dos poucos tutoriais&lt;/strong&gt; conforme prometido. Bom, são diversos motivos que levam um senhor importante como eu a estar com poucos tutoriais para postar.
&lt;/p&gt;&lt;p&gt;
Primeiramente, estou levando 3 projetos: Reestruturação do &lt;a href="http://forum.ievolutionweb.com/"&gt;Webly&lt;/a&gt;, um projeto com o &lt;a href="http://www.fazedordesite.com/"&gt;Sr. Fante&lt;/a&gt; e meu site de &lt;a href="http://www.resultadoconcursos.net/"&gt;concursos&lt;/a&gt; (Aliás, quem souber de um sistema de afiliados que não seja o Mercado Livre e tenha apostilas de concursos para me indicar me ajuda comentando ae). Devido a estes projetos o tempo na web fica curto pra caramba.
&lt;/p&gt;&lt;p&gt;
Segundamente, sou um senhor trabalhador. Funcionário público. E estes dias tá meio correria aqui. Acabei de voltar de férias e talz, sacomé né?
&lt;/p&gt;&lt;p&gt;
Terceiramente e mais importante: Eu não tenho mais scripts na manga. Parece que acabou o gás. Já tem tudo pronto. Libs e talz. Também tô muito tempo sem desenvolver scripts, sem trabalhar na área, daí acredito que por enquanto estamos zerados. Sem idéias para novos scripts mirabolantes.
&lt;/p&gt;&lt;p&gt;
Aliás, não deixem de tirar suas dúvidas no Webly. Estamos recrutando novos colunistas e colaboradores pra comunidade, visto que muitos da galera antiga estão se dando bem profissionalmente (talvez por causa do Webly :) ) e consequentemente ficando sem tempo.
&lt;/p&gt;&lt;p&gt;
Não sei se eu já tinha falado aqui, mas já tem um bom tempo que eu tagarelo pelo &lt;a href="http://twitter.com/micox"&gt;Twitter&lt;/a&gt;. Se quiserem acompanhar melhor minhas poucas divagações 'na hora' é só me seguir.
&lt;/p&gt;&lt;p&gt;
Por hoje é só. Este é meu post de volta das férias.

Adiós.
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://imageshack.us/"&gt;&lt;img src="http://img142.imageshack.us/img142/4848/232020praia20da20gracioio8.jpg" alt="Image Hosted by ImageShack.us" border="0" /&gt;&lt;/a&gt;
&lt;span style="font-style: italic;"&gt;(Praia da Graciosa - Palmas)&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-7509566617100215904?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/7509566617100215904/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=7509566617100215904' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/7509566617100215904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/7509566617100215904'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/09/como-diminuir-probabilidade-de-ter-seu.html' title='Como diminuir a probabilidade de ter seu carro furtado sem gastar dinheiro, apenas com matemática'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-2473511253520972490</id><published>2008-07-25T14:49:00.002-04:00</published><updated>2008-07-25T14:57:54.063-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='funções'/><title type='text'>Drag and Drop - mover e arrastar divs e elementos</title><content type='html'>&lt;p&gt;
Prosseguindo com alguns códigos que uso sempre, abaixo mostro um drag-n-drop feito pelo &lt;a href="http://forum.ievolutionweb.com/index.php?showtopic=7045"&gt;tmferreira e corrigido por mim&lt;/a&gt;. Logicamente serve pra arrastar e mover elementos, divs, etc.
&lt;/p&gt;&lt;p&gt;
Uso ele quando não to afim de usar libs completas como o jquery.
&lt;/p&gt;&lt;p&gt;
Vou deixar direto o código completo até com o exemplo de uso. É só salvar o conteúdo abaixo como um arquivo HTML qualquer e testar. Pra ativar o drag-n-drop nos seus elementos e páginas, é só entender o exemplo e chamar a função dragdrop para os elementos que desejar.
&lt;/p&gt;
&lt;pre class="code"&gt;
&amp;lt;script&amp;gt;
//drag n drop de div ----------------------------------------------------
//by tmferreira - http://www.webly.com.br/tutorial/javascript-e-ajax/7045/drag-and-drop.htm
//corrigida 30/01/2008 por Micox - http://forum.ievolutionweb.com/index.php?s=&amp;showtopic=7045&amp;view=findpost&amp;p=139679

var objSelecionado = null;
var mouseOffset = null;
function addEvent(obj, evType, fn) {
//Função adaptada da original de Christian Heilmann, em
//http://www.onlinetools.org/articles/unobtrusivejavascript/chapter4.html
if (typeof obj == "string") {
  if (null == (obj = document.getElementById(obj))) {
   throw new Error("Elemento HTML não encontrado. Não foi possível adicionar o evento.");
  }
}
if (obj.attachEvent) {
  return obj.attachEvent(("on" + evType), fn);
} else if (obj.addEventListener) {
  return obj.addEventListener(evType, fn, true);
} else {
  throw new Error("Seu browser não suporta adição de eventos. Senta, chora e pega um navegador mais recente.");
}
}
function mouseCoords(ev){    
    if(typeof(ev.pageX)!=="undefined"){
      return {x:ev.pageX, y:ev.pageY};
    }else{
        return {
          x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
          y:ev.clientY + document.body.scrollTop  - document.body.clientTop
        };
    }
}
function getPosition(e, ev){
    var ev = ev || window.event;
    if(e.constructor==String){ e = document.getElementById(e);}
    var left = 0, top  = 0;    
    var coords = mouseCoords(ev);    

    while (e.offsetParent){
      left += e.offsetLeft;
      top  += e.offsetTop;
      e     = e.offsetParent;
    }
    left += e.offsetLeft;
    top  += e.offsetTop;
    return {x: coords.x - left, y: coords.y - top};
}

function dragdrop(local_click, caixa_movida) {
//local click indica quem é o cara que quando movido, move o caixa_movida
    if(local_click.constructor==String){ local_click = document.getElementById(local_click);}
    if(caixa_movida.constructor==String){ caixa_movida = document.getElementById(caixa_movida);}
    
    local_click.style.cursor = 'move';
    if(!caixa_movida.style.position || caixa_movida.style.position=='static'){
        caixa_movida.style.position='relative'
    }
    local_click.onmousedown = function(ev) {
        objSelecionado = caixa_movida;        
        mouseOffset = getPosition(objSelecionado, ev);
    };
    document.onmouseup = function() {
        objSelecionado = null;
    }
    document.onmousemove = function(ev) {
        if (objSelecionado) {
            var ev = ev || window.event;
            var mousePos = mouseCoords(ev);
            var pai = objSelecionado.parentNode;
            objSelecionado.style.left = (mousePos.x - mouseOffset.x - pai.offsetLeft) + 'px';
            objSelecionado.style.top = (mousePos.y - mouseOffset.y - pai.offsetTop) + 'px';
            objSelecionado.style.margin = '0px';
            return false;
        }
    }
}&amp;lt;/script&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;!-- esta é a div de exemplo que será movida ao clicar no p de borda azul --&amp;gt;
&amp;lt;div id='movido' style='border: 1px solid black; width: 200px; '&amp;gt;
&amp;lt;p id='movedor' style='border: 1px solid blue;'&amp;gt;mova&amp;lt;/p&amp;gt;
sou a div lálalá
&amp;lt;br /&amp;gt;
lálálá
&amp;lt;/div&amp;gt;
&amp;lt;!-- aqui o script chamando a função que ativa o drag'n'drop --&amp;gt;
&amp;lt;script&amp;gt;
dragdrop('movedor','movido');
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-2473511253520972490?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/2473511253520972490/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=2473511253520972490' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/2473511253520972490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/2473511253520972490'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/07/drag-and-drop-mover-e-arrastar-divs-e.html' title='Drag and Drop - mover e arrastar divs e elementos'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-2116395978364709760</id><published>2008-07-25T14:16:00.003-04:00</published><updated>2008-12-08T08:54:04.813-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webstandards'/><category scheme='http://www.blogger.com/atom/ns#' term='bate-papo'/><title type='text'>Mini-lib CSS Reset do Micox - Sim ele voltou</title><content type='html'>&lt;p&gt;Helou senhores.
Muito tempo sem postar. Na verdade tava até pensando em abandonar o elmicox aqui, sei lá. Postar dá trabalho e toma tempo.
&lt;/p&gt;&lt;p&gt;
Mas daí lembrei que este troço aqui é meu repositório de códigos. Muito melhor que pastas do windows, muito melhor que zip, rar, melhor que ter que procurar em zilhoes de arquivos onde está a versão XYZ do meu script que faz ZXY.
&lt;/p&gt;&lt;p&gt;
Agora acho que vou deixar o elmicox aqui só pra códigos mesmo. Quando eu tiver opiniões e talz postarei lá no recentíssimo &lt;a href="http://www.ievolutionweb.com/blog/" target='_blank'&gt;Blog do Webly&lt;/a&gt;.
Passem lá. Assinem-no.
&lt;/p&gt;&lt;p&gt;
Também deixarei de tentar monetizar o ElMicox. Site pra nerd não dá grana mesmo (Atenção aspirantes a pro-blogger ou fazedores de site em geral). O que dá dinheiro é o povão.
&lt;/p&gt;&lt;p&gt;
Então, back to work. Back to codes micox.
&lt;/p&gt;&lt;p&gt;
Vou postar algumas coisas que eu sempre uso em meus projetos. NADA INOVADOR não, é só para eu não perder nos mil arquivos/projetos.
&lt;/p&gt;&lt;p&gt;
TALVEZ, as coisas básicas que eu for postando estes últimos dias sirvam pra alguém. Talvez não.
&lt;/p&gt;&lt;p&gt;
Vou começar com uma tentativa minha de fazer um CSS reset. Tipo uma mini-lib CSS com o qual eu tenho iniciado meus últimos projetos. Ajuda bastante pra não ter que ficar redefinindo tuuuudo novamente a cada novo projeto.
&lt;/p&gt;&lt;p&gt;
Provavelmente os senhores webstandeiros aí têm as suas mini-libs também. Leiam a minha, adaptem, sugiram melhorias, implementem idéias minhas nas suas libs, troquemos conhecimentos.
&lt;/p&gt;&lt;p&gt;
Coloquei esquemas de zerar propriedades (css reset) padronizando nos diferentes navegadores; tamanhos de títulos; classes especiais pra posicionamento, pra simular tabelas, pra avisos, pra teclas de acesso, pra fazer wrapper, pra simular colunas, pra debugar (com bordas), pra fazer menus drop-down, e pra ativar o .hover e o first-child.
&lt;/p&gt;&lt;p&gt;
Leiam ae e vejam se aproveitam algo. Comentem pra eu ver se meus leitores também ainda estão vivos hehehe. Té. Divirtam-se.
&lt;/p&gt;
&lt;pre class='code'&gt;
/* Micox CSS mini-lib 1.0 - 22/02/2008 - elmicox.blogspot.com
   A leitura dos comentários é obrigatória para o entendimento */

/* padronizando propriedades pros navegadores ficarem parecidos e corrigindo alguns bugs */
* { margin: 0; padding: 0; outline: 0;
 font-weight: inherit; font-style: inherit;
 font-size: 100%; font-family: inherit;
 line-height: 1.1em; vertical-align: baseline }
p { margin-bottom: 0.5em; }
hr { clear: both; float: none; width: 100%; }
* html body hr { margin: -7px; display: block;}  /* os hr tem uma altura extra misteriosa no IE */
a, img { border: none; }
img { vertical-align: middle;}
fieldset { display: block; border: 2px ridge #FFF; padding: 10px; } /* fieldset não é block em todos */
ul, ol { margin-left: 1.5em; list-style-position: outside; }
li { vertical-align: top; line-height: 1.2em;}  /* IE: posição vertical do marcador no IE  e espaço extra fantasma em lis*/
li a { zoom: 1; line-height: 1.2em; }  /* complemento do anterior */
input[type=hidden]{ display: none !important; visibility: hidden !important;} /* input hidden no FF */
button { border: 1px outset #AAA; }
legend { margin-bottom: 1.4em; } /* Fixes incorrect styling of legend in IE6 fieldsets. */
label { display: block;}
table { border-collapse: separate; border-spacing: 0; }
caption, th, thead, tfoot { text-align: center; font-weight: bold; }
blockquote:before, blockquote:after,q:before, q:after { content: “”; }
blockquote, q { quotes: "" ""; }
pre { white-space: pre-wrap; /* css-3 */ white-space: -moz-pre-wrap !important; /* FF 1999 */
 white-space: -pre-wrap; /* OP 4-6 */ white-space: -o-pre-wrap; /* OP 7 */  word-wrap: break-word; /* IE 5.5+ */
}
h1 { font-size: 250%; font-weight: normal;}
h2 { font-size: 200%; font-weight: normal;}
h3 { font-size: 150%; font-weight: normal;}
h4 { font-size: 120%; font-weight: normal;}
h5 { font-size: 110%; font-weight: normal;}
h6 { font-size: 100%; font-weight: bold;}

/* centralizando o container (que tem todo o conteúdo da página) */
#container { margin: auto; vertical-align: middle; }

/* classes úteis de posicionamento.
   Ex.: Tenho uma lista de caixas separadas por margin. Pra última caixa se alinhar com a borda,
   é bom colocar a classe last nela */
.top { margin-top: 0; vertical-align: top; vertical-align: top;}
.bottom { margin-bottom: 0; vertical-align: baseline;  vertical-align: bottom;}
.left { margin-left: 0; float: left; }
.right { margin-right: 0; float: right; }
.center { margin: auto; vertical-align: middle; }
.first { margin-top: 0; margin-left: 0; vertical-align: top;}
.last { margin-bottom: 0; margin-right: 0; vertical-align: bottom;}

/* classes úteis na formatação */
.screenreader { display: none; }
.ak { text-decoration: underline; /* access keys */ }
.u { text-decoration: underline; /* textos underline */}
.notice { background-color: #F9FF9A; /*yellow*/}
.error { background-color: #FF8E8E; /*red*/}
.highlight  { background:#ff0; }

/* para não precisar do famoso div wrapper [http://www.positioniseverything.net/easyclearing.html] */
.clear { display: inline-block; }   
.clear:after, .container:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
.clear { display: block; zoom: 1; }

/* fazendo colunas com alturas iguais [http://www.positioniseverything.net/articles/onetruelayout/equalheight] */
.paifullcols { overflow: hidden; width: 99.8%; display: inline-block; }
.paifullcols:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
.paifullcols { display: block; zoom: 1; }
.paifullcols .fullcol { float: left; padding-bottom: 1000em; margin-bottom: -999.5em; width: auto }

/* classes para debug: borderchilds, borderdivs e bordercols */
.borderchilds * { border: 1px dashed #CCC;}
.borderchilds span, .borderchilds a, .borderchilds b, .borderchilds strong, .borderchilds i, .borderchilds em,
.borderchilds legend, .borderchilds br { border: none;}
.borderchilds p { border-color: blue; }
.borderchilds div { border-color: red; }
.borderchilds table { border-color: green; }
.borderchilds ul, .borderchilds ol { border-color: cyan; }
.borderchilds .fullcol { border: 1px solid black;}
.borderdivs div, .bordercols .fullcol, .bordercols .paifullcols { border: 1px dashed red;}


/*
  Menus drop-down horizontal-vertical (hv) e vertical-vertical (vv) até 4 níveis
  by Micox - elmicox.blogspot.com - Ver. 2.0 - 20/02/08 - Creative Commons License
*/    
.menu-hv, .menu-vv { position: relative; margin: 0; padding: 0; display: block; zoom: 1;}
 .menu-hv * ,    .menu-vv * { margin: 0; padding: 0 ; list-style: none}
 .menu-hv li ,   .menu-vv li { position: relative; line-height: 1.2em; vertical-align: top }
 .menu-hv a ,    .menu-vv a { display: block; zoom: 1; line-height: 1.2em }
 .menu-hv li ul, .menu-vv li ul { position: absolute; visibility: hidden  }
 .menu-hv li:hover ul,  .menu-vv li:hover ul,
 .menu-hv li.hover ul,  .menu-vv li.hover ul { visibility: visible }
 .menu-hv li:hover ul ul,  .menu-vv li:hover ul ul,
 .menu-hv li.hover ul ul,  .menu-vv li.hover ul ul { visibility: hidden }
 .menu-hv li li:hover ul,  .menu-vv li li:hover ul,
 .menu-hv li li.hover ul,  .menu-vv li li.hover ul { visibility: visible }
 .menu-hv li li:hover ul ul,  .menu-vv li li:hover ul ul,
 .menu-hv li li.hover ul ul,  .menu-vv li li.hover ul ul { visibility: hidden }
 .menu-hv li li li:hover ul,  .menu-vv li li li:hover ul,
 .menu-hv li li li.hover ul,  .menu-vv li li li.hover ul { visibility: visible }
 /* características horizontal-vertical */
 .menu-hv:after, .menu-hv.after { content: "."; line-height: 0px; clear: both; display: block; visibility: hidden}
 .menu-hv li { float: left; }  
 .menu-hv li ul li { float: none; }
 .menu-hv li ul li ul { position: absolute; left: 100%; top: 0; }
 /* características vertical-vertical */
 .menu-vv { float: left; } 
 .menu-vv li ul { left: 100%; top: 0; }
 /* ****************************************
   ALTERE ABAIXO. defina a largura dos itens do seu menu abaixo
   ou apague as linhas se for definir em outro lugar */
 .menu-hv li { width: 100px; background-color: cyan }
 .menu-vv li { width: 100px; background-color: cyan }
 .menu-hv li a:hover { background-color: gray }
 .menu-vv li a:hover { background-color: gray }
 
/* Micox Pseudo-class-css2 to IE (MXPC). Activate .hover and .first-child in IE 6 
   Deixe isto ao final de tudo do seu CSS pois o Webkit não interpreta nada mais abaixo do expression
*/
* html * { color: expression( (function(who){ if(!who.MXPC &amp;&amp; who.nodeName != 'A'){
 who.MXPC = '1';
 who.onmouseenter=function(){ who.className += ' hover'};
 who.onmouseleave=function(){ who.className = who.className.replace(' hover','')};
 (who==who.parentNode.firstChild) ? who.className += ' first-child' : '' ;
} } )(this) , 'auto') }
&lt;/pre&gt;
Ah, meu novo passatempo é um site de &lt;a href='http://www.resultadoconcursos.net'&gt;concursos www.resultadoconcursos.net&lt;/a&gt; . Quem curte concursos passa por lá.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-2116395978364709760?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/2116395978364709760/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=2116395978364709760' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/2116395978364709760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/2116395978364709760'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/07/mini-lib-css-reset-do-micox-sim-ele.html' title='Mini-lib CSS Reset do Micox - Sim ele voltou'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-8216689248445017691</id><published>2008-04-15T09:44:00.003-04:00</published><updated>2008-04-15T10:06:42.364-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bate-papo'/><title type='text'>Zumbis</title><content type='html'>&lt;p&gt;Chega um pouco de falar de javascript, css, programação, concordam?&lt;br /&gt;
Hoje o mico vai papear e falar sobre zumbis. "What?!?" - Isso mesmo, zumbis comedores de carne humana.
&lt;/p&gt;&lt;p&gt;
Em breve, vocês vão ver seu leitor de feeds lotar com notícias sobre o tal &lt;a href="http://atoouefeito.com.br/tv-cinema/materias/overdose-zumbis-entrevista-exclusiva-com-os-diretores-do-filme-a-capital-dos-mortos"&gt;filme de zumbis rodado em Brasília&lt;/a&gt;.&lt;br /&gt;
O motivo é uma &lt;a href="http://atoouefeito.com.br/aoe/promocao-concorra-a-uma-camiseta-do-filme-a-capital-dos-mortos-e-um-pote-de-sangue"&gt;promoção do atoouefeito&lt;/a&gt; dando camiseta e sangue pra quem ajudar a divulgar o filme.
Djo não estou ajudando só por causa disso não, pois nunca ganhei promoção nenhuma, nem em bingo.&lt;br /&gt;
Tô ajudando a divulgar, pois sou fã dessas paradas comédia de zumbis e acho que um filme brazuca deve ser mais comédia ainda heheaheh. Ainda mais sendo um filme independente, com pouca verba e talz. Vamo ver o que sai, gosto muito da mistura de terror e comédia.
&lt;/p&gt;&lt;p&gt;
&lt;img src='http://img293.imageshack.us/img293/2127/zumbisyi1.jpg' alt='Imagem zumbis em brasilia' /&gt;
&lt;/p&gt;&lt;p&gt;
Sou leitor do Ato Ou Efeito e acompanhei estes dias a &lt;a href='http://atoouefeito.com.br/tag/zumbis'&gt;coluna que fala sobre zumbis&lt;/a&gt;. Lá descobri que, há um tempo atrás, saiu uma HQ misturando zumbis e o universo Marvel (x-men, homem aranha, pá e talz).&lt;br /&gt;
O nome da série é &lt;a href='http://atoouefeito.com.br/hqs-livros/materias-5/overdose-zumbi-cronologia-marvel-zombies'&gt;Marvel Zombies&lt;/a&gt; e, este macaco, que havia passado 7 anos sem ler uma mísera HQ, teve vontade de achar as supra-citadas revistas para ler.
&lt;/p&gt;&lt;p&gt;
Infelizmente não achei para comprar (a séria é de 2006/2007 parece) então tive que "cavucar" na net e ir baixando as partes separadas. Tá dando trabalho pois a saga completa é dividida em várias revistas, são links antigos, quebrados, alguns sem tradução, etc. Mas as partes que eu já baixei tão valendo a pena, muito bom a parada.
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://imageshack.us"&gt;&lt;img src="http://img411.imageshack.us/img411/240/zumbis3jw4.jpg" border="0" alt="Image Hosted by ImageShack.us"/&gt;&lt;/a&gt;&lt;br/&gt;
&lt;/p&gt;&lt;p&gt;
Nas aulas de redação do meu ensino médio, aprendi sobre uma parada chamada "&lt;a href="http://pt.wikipedia.org/wiki/Verossimilhan%C3%A7a"&gt;verossimilhança&lt;/a&gt;" que diz que, apesar da estória (com 'e' mesmo neste caso) ter a liberdade de ser fantasiosa, ela tem que manter um certo grau de possibilidade, sem ambiguidades, sem loucuras em excesso (a não ser que seja um &lt;a href="http://pt.wikipedia.org/wiki/Macuna%C3%ADma"&gt;livro do Mário de Andrade&lt;/a&gt; hehahe), enfim, não sei como explicar. "E daí mico?".
&lt;/p&gt;&lt;p&gt;
E daí que sempre tive algumas dúvidas sobre essas bizarrices de zumbis. Acompanhem meu raciocínio nobres colegas, caso ainda não estejam dormindo:
&lt;/p&gt;&lt;p&gt;
1) Se o zumbi não comer por muito tempo, o que sustenta a energia do corpo dele? Ela deveria acabar e o zumbi cair no chão, certo?
&lt;/p&gt;&lt;p&gt;
2) Como a fome dos zumbis é grande, ao se alimentar de pessoas, devem comer tudo e não sobrar nada né? Como ainda sobra tantas pessoas com corpo inteiro pra virar novos zumbis? Eles não deveriam se multiplicar tão rápido ué.
&lt;/p&gt;&lt;p&gt;
"É um filme bizarro mané, ele não tem que se explicar, ele tem apenas que divertir. O maluco tá vendo um filme onde mortos andam e quer verossimilhança? Doido" - Vocês pensando...
&lt;/p&gt;&lt;p&gt;
Mudando de assunto, você pode não saber, mas o Micox já foi um exímio diretor de filmes trash quando era mais jovem (1998/1999) com 3 filmes de mais de 15 mins na bagagem huaheuae. Tiroteios, explosões, cenas em velocidade, pá e talz.&lt;br /&gt;
Um deles passou até em um festival de filmes trash aqui em Goiânia em que o ilustríssimo Zé do Caixão estava presente. O povo morreu de rir com o filme, caiam no chão heaehe.&lt;br /&gt;
Este que passou está em formato digital, mas não vou publicar na net não porque (1) eu não sei mais onde está o dvd, (2) Os "atores" colegas meus me ameaçaram de morte se eu publicar isto. Hoje são todos senhores de respeito, casados, pá e talz. heaheh
&lt;/p&gt;&lt;p&gt;
Vocês devem estar pensando: "Puts, esse micox é deve ser um power nerd espinhento de óculos fundo de garrafa que não pega mulé mesmo viu: javascript, programação, filmes trash, HQs. Só falta dizer que gosta de Jornada nas Estrelas"
&lt;/p&gt;&lt;p&gt;
Bom, tirando a parte do "espinhento de óculos fundo de garrafa que não pega mulé" o resto é verdade mesmo (só que não gosto de Jornada nas Estrelas).&lt;br /&gt;
Só não posto uma foto para a mujerada ver meu poder galanteador senão os servidores não vão aguentar de tantos acessos femininos.
&lt;/p&gt;&lt;p&gt;"Puts, desliga o mico que ele tá doido hoje".&lt;br /&gt;
OFF.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-8216689248445017691?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/8216689248445017691/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=8216689248445017691' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/8216689248445017691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/8216689248445017691'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/04/zumbis.html' title='Zumbis'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-5303179941620211637</id><published>2008-04-11T13:55:00.006-04:00</published><updated>2008-04-11T14:02:09.873-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webstandards'/><title type='text'>Homer em CSS puro - sem imagens</title><content type='html'>&lt;p&gt;Pois é...
&lt;/p&gt;&lt;p&gt;
Tem que tá com muuuuito tempo sobrando, ter muita criatividade e domínio do CSS. E o pior é que não ficou bizarro. O negócio ficou bom, muito bom.
&lt;/p&gt;&lt;p&gt;
Autor: &lt;a href="http://www.romancortes.com/blog/tag/css/"&gt;Román Cortés&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
Descoberto via: &lt;a href="http://www.dkcell.com.br/design/2008/homer-em-css/"&gt;Dkcell&lt;/a&gt;
&lt;/p&gt;
&lt;div style="width: 100%; height: 466px;"&gt;
&lt;div style="float: left; border: 2px solid #000; line-height: normal; background-color: #fff;"&gt;
&lt;div style="width: 6.23em; height: 7.7em; font-family: Verdana; font-size: 60px; overflow: hidden;"&gt;
&lt;div style="margin-top: -0.7em"&gt;
&lt;div style="position: absolute; padding-left: 1.56em; padding-top: 0.37em;"&gt;
&lt;div style="font-size: 2.57em; font-weight: bold; color: #000;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.62em; padding-top: 0.53em;"&gt;
&lt;div style="font-size: 2.38em; font-weight: bold; color: #fff;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.2em; padding-top: 0.67em;"&gt;
&lt;div style="font-size: 2.48em; color: #000;"&gt;o&lt;/div&gt;

&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.29em; padding-top: 0.85em;"&gt;
&lt;div style="font-size: 2.23em; color: #fff;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.57em; padding-top: 2.03em;"&gt;
&lt;div style="width: 0.32em; height: 0.52em; background-color: #fff;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.52em; padding-top: 1.56em;"&gt;
&lt;div style="font-size: 0.8em; font-style: italic; color: #000;"&gt;(&lt;/div&gt;
&lt;/div&gt;
&lt;div style="color: #000;"&gt;
&lt;div style="position: absolute; padding-left: 1.07em; padding-top: 0.62em;"&gt;
&lt;div style="font-size: 4.57em;"&gt;O&lt;/div&gt;
&lt;/div&gt;

&lt;div style="position: absolute; padding-left: 1.05em; padding-top: 1.15em;"&gt;
&lt;div style="font-size: 3.53em;"&gt;O&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.12em; padding-top: 0.74em;"&gt;
&lt;div style="font-size: 4.63em;"&gt;O&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.08em; padding-top: 3.64em;"&gt;
&lt;div style="font-size: 1.77em; font-weight: bold; font-style: italic;"&gt;\&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.17em; padding-top: 4.8em;"&gt;
&lt;div style="font-size: 3.29em; font-weight: bold; font-style: italic;"&gt;L&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.14em; padding-top: 5.21em;"&gt;

&lt;div style="font-size: 3.01em; font-weight: bold; font-style: italic; height: 0.96em; overflow: hidden;"&gt;(&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 4.13em; padding-top: 3.23em;"&gt;
&lt;div style="font-size: 0.7em; font-weight: bold;"&gt;O&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.37em; padding-top: 5.08em;"&gt;
&lt;div style="font-size: 0.97em; font-weight: bold;"&gt;O&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="color: #FED90E"&gt;
&lt;div style="position: absolute; padding-left: 1.15em; padding-top: 0.76em;"&gt;
&lt;div style="font-size: 4.37em;"&gt;O&lt;/div&gt;
&lt;/div&gt;

&lt;div style="position: absolute; padding-left: 1.14em; padding-top: 1.26em;"&gt;
&lt;div style="font-size: 3.37em;"&gt;O&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.2em; padding-top: 0.87em;"&gt;
&lt;div style="font-size: 4.42em;"&gt;O&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.15em; padding-top: 3.61em;"&gt;
&lt;div style="font-size: 1.7em; font-weight: bold; font-style: italic;"&gt;\&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.24em; padding-top: 4.93em;"&gt;
&lt;div style="font-size: 3.18em; font-weight: bold; font-style: italic;"&gt;L&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.03em; padding-top: 5.05em;"&gt;

&lt;div style="font-size: 3.2em; font-weight: bold; font-style: italic; height: 0.96em; overflow: hidden;"&gt;(&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 4.18em; padding-top: 3.34em;"&gt;
&lt;div style="font-size: 0.55em; font-weight: bold;"&gt;O&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.84em; padding-top: 2.37em;"&gt;
&lt;div style="width: 1.92em; height: 5.76em; background-color: #FED90E;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.70em; padding-top: 2.73em;"&gt;
&lt;div style="width: .30em; height: 1.56em; background-color: #FED90E;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 4.36em; padding-top: 3.51em;"&gt;
&lt;div style="width: .16em; height: .34em; background-color: #FED90E;"&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;div style="position: absolute; padding-left: 1.62em; padding-top: 5.47em;"&gt;
&lt;div style="font-size: 10px"&gt;
&lt;div style="width: 2.6em; height: 3.0em; background-color: #FED90E;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="color: #000;"&gt;
&lt;div style="position: absolute; padding-left: 1.23em; padding-top: 4.57em;"&gt;
&lt;div style="font-size: 0.67em;"&gt;|&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.23em; padding-top: 4.37em;"&gt;
&lt;div style="font-size: 0.67em;"&gt;|&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.34em; padding-top: 4.37em;"&gt;
&lt;div style="font-size: 0.67em;"&gt;\&lt;/div&gt;

&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.4em; padding-top: 4.53em;"&gt;
&lt;div style="font-size: 0.67em;"&gt;\&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.55em; padding-top: 4.49em;"&gt;
&lt;div style="font-size: 0.67em;"&gt;|&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.55em; padding-top: 4.19em;"&gt;
&lt;div style="font-size: 0.67em;"&gt;|&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.66em; padding-top: 4.19em;"&gt;
&lt;div style="font-size: 0.67em;"&gt;\&lt;/div&gt;
&lt;/div&gt;

&lt;div style="position: absolute; padding-left: 1.76em; padding-top: 4.45em;"&gt;
&lt;div style="font-size: 0.67em;"&gt;\&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.27em; padding-top: 2.54em;"&gt;
&lt;div style="font-size: 0.42em; font-weight: bold; font-style: italic;"&gt;\&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.51em; padding-top: 2.18em;"&gt;
&lt;div style="font-size: 0.42em; font-weight: bold; font-style: italic;"&gt;\&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.31em; padding-top: 5.32em;"&gt;
&lt;div style="font-size: 1.47em; font-weight: bold; font-style: italic;"&gt;(&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.29em; padding-top: 5.69em;"&gt;

&lt;div style="font-size: 1.11em; font-weight: bold;"&gt;(&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.92em; padding-top: 4.72em;"&gt;
&lt;div style="font-size: 2.4em; font-weight: bold;"&gt;8&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.43em; padding-top: 3.96em;"&gt;
&lt;div style="font-size: 3.13em; font-weight: bold; font-style: italic;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.31em; padding-top: 4.05em;"&gt;
&lt;div style="font-size: 3.13em; font-weight: bold; font-style: italic;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.33em; padding-top: 4.37em;"&gt;
&lt;div style="font-size: 3.06em; font-weight: bold;"&gt;o&lt;/div&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;div style="color: #CDB26F"&gt;
&lt;div style="position: absolute; padding-left: 2.39em; padding-top: 5.36em;"&gt;
&lt;div style="font-size: 1.38em; font-weight: bold; font-style: italic;"&gt;(&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.37em; padding-top: 5.75em;"&gt;
&lt;div style="font-size: 1.04em; font-weight: bold;"&gt;(&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.95em; padding-top: 4.82em;"&gt;
&lt;div style="font-size: 2.25em; font-weight: bold;"&gt;8&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.49em; padding-top: 4.15em;"&gt;
&lt;div style="font-size: 2.93em; font-weight: bold; font-style: italic;"&gt;o&lt;/div&gt;

&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.39em; padding-top: 4.22em;"&gt;
&lt;div style="font-size: 2.93em; font-weight: bold; font-style: italic;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.4em; padding-top: 4.5em;"&gt;
&lt;div style="font-size: 2.87em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.98em; padding-top: 6.09em;"&gt;
&lt;div style="width: .76em; height: 1em; background-color: #CDB26F;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="color: #000"&gt;
&lt;div style="position: absolute; padding-left: 3.69em; padding-top: 4.28em;"&gt;
&lt;div style="font-size: 2.2em;"&gt;o&lt;/div&gt;

&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 4.62em; padding-top: 5.42em;"&gt;
&lt;div style="font-size: 1.01em;"&gt;)&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 4.78em; padding-top: 5.72em;"&gt;
&lt;div style="font-size: 0.72em;"&gt;)&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 4.53em; padding-top: 5.65em;"&gt;
&lt;div style="font-size: 0.94em;"&gt;b&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 4em; padding-top: 5.09em;"&gt;
&lt;div style="font-size: 1.59em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;

&lt;div style="position: absolute; padding-left: 3.33em; padding-top: 4.79em;"&gt;
&lt;div style="font-size: 1.95em; font-weight: bold;"&gt;O&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.15em; padding-top: 4.3em;"&gt;
&lt;div style="font-size: 2.42em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.01em; padding-top: 4.46em;"&gt;
&lt;div style="font-size: 2.23em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.88em; padding-top: 4.43em;"&gt;
&lt;div style="font-size: 2.23em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.81em; padding-top: 4.71em;"&gt;

&lt;div style="font-size: 1.9em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.69em; padding-top: 4.74em;"&gt;
&lt;div style="font-size: 1.97em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="color: #CDB26F"&gt;
&lt;div style="position: absolute; padding-left: 3.7em; padding-top: 4.4em;"&gt;
&lt;div style="font-size: 2.06em;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 4.57em; padding-top: 5.44em;"&gt;
&lt;div style="font-size: 0.95em;"&gt;)&lt;/div&gt;
&lt;/div&gt;

&lt;div style="position: absolute; padding-left: 4.49em; padding-top: 5.66em;"&gt;
&lt;div style="font-size: 0.88em;"&gt;b&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 4.01em; padding-top: 5.14em;"&gt;
&lt;div style="font-size: 1.48em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.37em; padding-top: 4.84em;"&gt;
&lt;div style="font-size: 1.83em; font-weight: bold;"&gt;O&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.21em; padding-top: 4.38em;"&gt;
&lt;div style="font-size: 2.27em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.07em; padding-top: 4.54em;"&gt;

&lt;div style="font-size: 2.09em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.95em; padding-top: 4.53em;"&gt;
&lt;div style="font-size: 2.08em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.88em; padding-top: 4.78em;"&gt;
&lt;div style="font-size: 1.78em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.71em; padding-top: 4.79em;"&gt;
&lt;div style="font-size: 1.85em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.87em; padding-top: 4.59em;"&gt;
&lt;div style="font-size: 1.93em; font-weight: bold;"&gt;o&lt;/div&gt;

&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.09em; padding-top: 4.55em;"&gt;
&lt;div style="font-size: 1.93em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.73em; padding-top: 5.03em;"&gt;
&lt;div style="font-size: 1.44em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.59em; padding-top: 5.77em;"&gt;
&lt;div style="font-size: 0.82em; font-weight: bold;"&gt;o&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.04em; padding-top: 6.4em;"&gt;
&lt;div style="font-size: 0.16em; font-weight: bold; font-style: italic; color: #000;"&gt;/&lt;/div&gt;
&lt;/div&gt;

&lt;div style="position: absolute; padding-left: 3.03em; padding-top: 6.4em;"&gt;
&lt;div style="font-size: 0.16em; font-weight: bold; font-style: italic; color: #000;"&gt;/&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.02em; padding-top: 6.4em;"&gt;
&lt;div style="font-size: 0.16em; font-weight: bold; font-style: italic; color: #000;"&gt;/&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.24em; padding-top: 2.49em;"&gt;
&lt;div style="font-size: 2.76em; font-weight: bold; color: #000;"&gt;&amp;bull;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.34em; padding-top: 2.68em;"&gt;
&lt;div style="font-size: 2.49em; font-weight: bold; color: #fff;"&gt;&amp;bull;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 4.2em; padding-top: 4.26em;"&gt;
&lt;div style="font-size: 0.28em; font-weight: bold; color: #000;"&gt;&amp;bull;&lt;/div&gt;

&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.9em; padding-top: 4.05em;"&gt;
&lt;div style="font-size: 1.47em; font-weight: bold; color: #000;"&gt;&amp;bull;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.99em; padding-top: 4.23em;"&gt;
&lt;div style="font-size: 1.2em; font-weight: bold; color: #FED90E;"&gt;&amp;bull;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.66em; padding-top: 4.7em;"&gt;
&lt;div style="font-size: 10px"&gt;
&lt;div style="width: 4.6em; height: 3.88em; background-color: #FED90E;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.68em; padding-top: 3.36em;"&gt;
&lt;div style="font-size: 1.2em; color: #000;"&gt;_&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.68em; padding-top: 4.03em;"&gt;

&lt;div style="font-size: 1.2em; color: #000;"&gt;_&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 3.64em; padding-top: 4.03em;"&gt;
&lt;div style="font-size: 1.2em; color: #000;"&gt;_&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.96em; padding-top: 2.33em;"&gt;
&lt;div style="font-size: 3.04em; font-weight: bold; color: #000;"&gt;&amp;bull;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.06em; padding-top: 2.5em;"&gt;
&lt;div style="font-size: 2.77em; font-weight: bold; color: #fff;"&gt;&amp;bull;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 2.67em; padding-top: 4.23em;"&gt;
&lt;div style="font-size: 0.28em; font-weight: bold; color: #000;"&gt;&amp;bull;&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.46em; padding-top: 5.18em;"&gt;

&lt;div style="font-size: 0.66em; color: #000;"&gt;C&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.47em; padding-top: 5.4em;"&gt;
&lt;div style="font-size: 0.66em; color: #000;"&gt;C&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.62em; padding-top: 5.53em;"&gt;
&lt;div style="font-size: 10px"&gt;
&lt;div style="width: 2.2em; height: 2.2em; background-color: #FED90E;"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.45em; padding-top: 5.19em;"&gt;
&lt;div style="font-size: 0.8em; font-weight: bold; color: #FED90E;"&gt;O&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.58em; padding-top: 5.47em;"&gt;

&lt;div style="font-size: 0.25em; font-weight: bold; font-style: italic; color: #000;"&gt;(&lt;/div&gt;
&lt;/div&gt;
&lt;div style="position: absolute; padding-left: 1.62em; padding-top: 5.46em;"&gt;
&lt;div style="font-size: 0.25em; font-weight: bold; font-style: italic; color: #000;"&gt;-&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-5303179941620211637?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/5303179941620211637/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=5303179941620211637' title='9 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/5303179941620211637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/5303179941620211637'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/04/homer-em-css-puro-sem-imagens.html' title='Homer em CSS puro - sem imagens'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-3314528656739015870</id><published>2008-04-01T15:35:00.004-04:00</published><updated>2008-04-01T15:49:30.947-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='bate-papo'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='webly'/><title type='text'>Help CHM da API do jQuery, Leilão El Micox e outras notícias</title><content type='html'>&lt;p&gt;
&lt;i&gt;"Ôlha só quem estâ de vôoolta, êle mêêsmo, o Micôx, com notícias quentinhas. É fantâârdigo."&lt;/i&gt; - Cid Moreira sobre Nova postagem no El Micox
&lt;/p&gt;&lt;p&gt;

Ae malucada, comecemos falando sobre a lentidão ao acessar o &lt;a href="http://docs.jquery.com"&gt;site do jquery&lt;/a&gt;, principalmente quando estamos apressados atrás de uma documentação sobre a api.&lt;br /&gt;
Porém há uma luz no fim do tunel. Em uma &lt;a href="http://groups.google.com/group/jquery-en/browse_thread/thread/740fc88ae9c273db?hl=en"&gt;postagem no grupo de discussões do jQuery em inglês&lt;/a&gt;, o senhor Charles (char101) &lt;a href="http://peacech.googlepages.com/jquery-20080331.chm"&gt;disponibiliza um arquivo .chm (help do windows) para o nosso amado jQuery&lt;/a&gt;.
Baixem e agilizem suas pesquisas sobre a API. Amém irmãos...
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;
Em seguida mostro 2 dos ótimos layouts feitos para o &lt;a href="http://forum.ievolutionweb.com/index.php?showtopic=18959"&gt;desafio Webly de layout 2050&lt;/a&gt; que está na reta final. Os caras capricharam. &lt;br /&gt;
Só coloquei os 2 que tinham thumbs, mas os todos os layouts ficaram muito bons, dava até pra usar como layout atual hehe. Compensa visitar e depois votar.
&lt;/p&gt;&lt;p&gt;
&lt;img src='http://img175.imageshack.us/img175/2599/tela5ac8.th.jpg'&gt; 
&lt;img src='http://img296.imageshack.us/img296/9068/layout2fp9.th.jpg'&gt;
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;

Ahora djo falar sobre o &lt;a href="http://elmicox.blogspot.com/2008/03/leilo-no-el-micox-por-banner-tentativa.html"&gt;leilão do banner no El Micox&lt;/a&gt; que rendeu váaarios lances, um melhor que o outro. Chegamos a ótima cifra de R$360,00 por um mês de banner.
&lt;/p&gt;&lt;p&gt;
Infelizmente, é lógico que "esto non ecxiste, es fruto de la imarrinación del microx".&lt;br /&gt;
Mas o leilão não foi de todo ruim. Recebi 1 lance de R$50 e uma doação gratuita (pleonasmo) do grande &lt;a href="http://tcelestino.com.br/blog/"&gt;Tiago Celestino&lt;/a&gt; (vivaaa).&lt;br /&gt;
O lance que recebi até agora foi &lt;a href='http://www.elmicox.com/2008/leilao-no-el-micox-por-banner-tentativa/#commentshead'&gt;de R$50 contos&lt;/a&gt; do brodi &lt;a href="http://www.digitalpaperweb.com.br/"&gt;canha &lt;/a&gt;, aeeee.
Ainda dá tempo de você participar desta importantíssima competição nacional que está dando o que falar. Vou fechar a bagaça na próxima terça (se eu lembrar).
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;
Pra encerrar esta edição do Micox News, informamos que, como a quantidade de comentários caiu, o leilão só rendeu 1 lance, este blog está encerrando as atividades hoje. Hasta la vista.&lt;br /&gt;
(mas que mentira besta)
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-3314528656739015870?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/3314528656739015870/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=3314528656739015870' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/3314528656739015870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/3314528656739015870'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/04/help-chm-da-documentao-do-jquery-leilo.html' title='Help CHM da API do jQuery, Leilão El Micox e outras notícias'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-4394336205994791085</id><published>2008-03-11T09:08:00.004-04:00</published><updated>2008-03-11T09:52:08.839-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bate-papo'/><title type='text'>Leilão no El Micox por banner - tentativa</title><content type='html'>&lt;p&gt;Olá Sr. Senhor, que tal um banner com link do seu site alí em cima?
&lt;/p&gt;&lt;p&gt;
O Sr. Micox não ganha um mísero centavo para ficar postando tutoriais e códigos bala aqui e tava afim de explicar financeiramente para a patroa "por que motivos ele fica na frente do computador fazendo códigos pros outros em vez de ir assistir o BBB".
&lt;/p&gt;&lt;p&gt;
O Sr. Senhor não irá se arrepender. O(s) blog(s) do Micox tem uma seleta casta de leitores e assinantes desenvolvedores web que levarão seus rendimentos às alturas!
&lt;/p&gt;&lt;p&gt;
A idéia surgiu após eu ver &lt;a href="http://www.treta.com.br/2008/01/quanto-custa-um-banner-no-treta.html"&gt;este post aqui do treta&lt;/a&gt; e raciocinar que o google adsense não é generoso com este pobre blog, então preciso procurar outros caminhos pra continuar postando e ter pelo menos um pequeno retorno financeiro por fazer códigos di grátis na madrugada. hehahe
&lt;/p&gt;&lt;p&gt;
Aconselho meus brodis blogueiros de desenvolvimento web a tentarem a mesma fonte de recursos. Google adsense só dá certo com &lt;a href="http://concursosevagas.blogspot.com"&gt;blogs &lt;/a&gt;&lt;a href="http://dietas-regimes.blogspot.com"&gt;do&lt;/a&gt; &lt;a href="http://orkut-youtube-msn-fotos.blogspot.com/"&gt;povão&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Como não sei o valor de um banner 468x60 com link aí no topo vou fazer um leilão. Não é possível que um blog com tamanha qualidade e quantidade de acessos tenha o valor pelo menos de um mísero iphone, portanto vou fixar o lance mínimo em 500 reais para ter seu banner aí por 1 mês (claro que é brincadeira). Na real, o lance mínimo é 50 reais por mês.
&lt;/p&gt;&lt;p&gt;
Acretido que pra muitos blogs/sites/serviços o El Micox talvez seja interessante. Um pagerank bãozim, links importantes de sites importantes, visitantes da área de tecnologia, etc.
&lt;/p&gt;&lt;p&gt;
Dê seu lance por um banner no El Micox. Mesmo que seja pouco, não deve ser menos que o que ganho do Google Adsense aqui no El Micox hehaeh. Ajuda o macaco aeee. Se você está por aqui é porque provavelmente ele já deve ter te ajudado.
&lt;/p&gt;&lt;p&gt;
Abaixo, algumas estatísticas (o banner será colocado nos 3 elmicox):
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight:bold;"&gt;elmicox.blogspot.com&lt;/span&gt;&lt;br /&gt;
Frequencia de postagem - Semanal&lt;br /&gt;
Postagens: 125&lt;br /&gt;
Assinantes do feed: 0 (todos 460 são redirecionados ao www.elmicox.com)&lt;br /&gt;
Pagerank 5 (Calculado por marketingdebusca.com.br)&lt;br /&gt;
Technorati authority: 26 (quanto maior melhor)&lt;br /&gt;
Links apontando (de acordo com o Google Webmasters tools): 6936&lt;br /&gt;
Links apontando (de acordo com o link:elmicox.blogspot.com desatualizado): 150&lt;br /&gt;
Links apontando (de acordo com o technorati): 231 blog reactions&lt;br /&gt;
Visitas dos assinantes ao site (últ. 30 dias): 0 (redirecionados ao elmicox.com)&lt;br /&gt;
Total de visitas (by google analytics - ult. 30 dias): 5.963&lt;br /&gt;
Exibições de página (ult. 30 dias): 8.004&lt;br /&gt;
Tempo médio no site: 01m 26s&lt;br /&gt;
Cidades que mais visitam (ult. 30 dias) : SP (1020); RJ (518); BH (311); curitiba (248); continua...
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight:bold;"&gt;www.elmicox.com&lt;/span&gt;&lt;br /&gt;
Frequencia de postagem - Semanal&lt;br /&gt;
Postagens: 67&lt;br /&gt;
Assinantes do feed: 460&lt;br /&gt;
Pagerank 4&lt;br /&gt;
Technorati authority: 10&lt;br /&gt;
Links apontando (Google Webmasters tools): 538&lt;br /&gt;
Links apontando (link:elmicox.blogspot.com desatualizado): 28&lt;br /&gt;
Links apontando (technorati): 15 blog reactions&lt;br /&gt;
Visitas dos assinantes ao site (últ. 30 dias): 82 clicks&lt;br /&gt;
Total de visitas (by google analytics): Não monitoro&lt;br /&gt;
Exibições de página (ult. 30 dias): Não monitoro&lt;br /&gt;
Tempo médio no site: Não monitoro&lt;br /&gt;
Cidades que mais visitam (ult. 30 dias) : não monitoro&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;
&lt;span style="font-weight:bold;"&gt;elmicoxcodes.blogspot.com (ingles)&lt;/span&gt;&lt;br /&gt;
Frequencia de postagem - Mensal Fraca.&lt;br /&gt;
Postagens: 13&lt;br /&gt;
Assinantes do feed: 23&lt;br /&gt;
Pagerank 4&lt;br /&gt;
Technorati authority: 4&lt;br /&gt;
Links apontando (Google Webmasters tools): 1173&lt;br /&gt;
Links apontando (link:elmicox.blogspot.com desatualizado): 31&lt;br /&gt;
Links apontando (technorati): 54 blog reactions&lt;br /&gt;
Visitas dos assinantes ao site (últ. 30 dias): 12 clicks&lt;br /&gt;
Total de visitas (by google analytics - ult. 30 dias): 3.151&lt;br /&gt;
Exibições de página (ult. 30 dias): 3.919&lt;br /&gt;
Tempo médio no site: 01m 09s&lt;br /&gt;
Países que mais visitam (ult. 30 dias) : USA (817); India (358); Reino Unido (173); Alemanha (142); continua...
&lt;/p&gt;&lt;p&gt;
As estatísticas não estão maquiadas. Vejam que coloquei até indicadores não muito bons.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-4394336205994791085?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/4394336205994791085/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=4394336205994791085' title='8 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/4394336205994791085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/4394336205994791085'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/03/leilo-no-el-micox-por-banner-tentativa.html' title='Leilão no El Micox por banner - tentativa'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-2540862660105285861</id><published>2008-03-10T09:15:00.003-04:00</published><updated>2008-03-10T09:25:08.217-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webly'/><title type='text'>Desafio Webly de Layouts - valendo pendrive, revista webdesign, camisetas, mousepads</title><content type='html'>&lt;p&gt;
Pois é pois é pois é.
&lt;/p&gt;&lt;p&gt;
O desafio da vez no Webly é o:
&lt;/p&gt;&lt;h4&gt;
"tchanaaam!!!" - &lt;a href='http://forum.ievolutionweb.com/index.php?showtopic=18960'&gt;Desafio WeblY de layouts! Como será o layout do Portal Webly em 2050?&lt;/a&gt;
&lt;/h4&gt;&lt;p&gt;
Como o Webly é o mais superfodástico portal e fórum de tutoriais web, conseguimos vários patricínios e grana para poder oferecer VÁRIOS prêmios aos participantes deste desafio:
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://www.emporiolobo.com.br/"&gt;Pendrive da Emporio Logo&lt;/a&gt;, &lt;a href="http://www.arteccom.com.br/webdesign/"&gt;CDs da revista Webdesign&lt;/a&gt;, adesivos webly, camisetas webly e mousepad webly.
&lt;/p&gt;&lt;p&gt;
[jabá inside jabá on] Se quiser patrocinar o Webly também ou ver as vantagens em ser parceiro, entra em contato com um dos admins [/jabá inside jabá off]
&lt;/p&gt;&lt;p&gt;
É difícil você ver estes desafios de fórum darem prêmios. E ainda mais tantos prêmios.
&lt;/p&gt;&lt;p&gt;
&lt;a href='http://forum.ievolutionweb.com/index.php?showtopic=18960'&gt;Passa lá&lt;/a&gt;. Quem sabe, além de se divertir e mostrar sua técnica, você ainda ganha um dos prêmios. A parada já está valendo!
&lt;/p&gt;&lt;p&gt;
Chama seus cumpadi aí também.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-2540862660105285861?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/2540862660105285861/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=2540862660105285861' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/2540862660105285861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/2540862660105285861'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/03/desafio-webly-de-layouts-valendo.html' title='Desafio Webly de Layouts - valendo pendrive, revista webdesign, camisetas, mousepads'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-5846248154091069753</id><published>2008-03-07T08:09:00.005-04:00</published><updated>2008-12-08T08:54:17.114-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webstandards'/><category scheme='http://www.blogger.com/atom/ns#' term='menus'/><title type='text'>Ultimate Micox Menu drop-down CSS - até 4 níveis</title><content type='html'>&lt;p&gt;
HOoooaa. E ae malucada. 
&lt;/p&gt;&lt;p&gt;
Há um tempo eu &lt;a href="http://forum.ievolutionweb.com/index.php?showtopic=19383"&gt;venho brigando em busca do código de menu css drop-down perfeito&lt;/a&gt;.&lt;br /&gt;
Eu queria um menu dropdown css pra copiar e colar, simples, rápido, sem precisar de configurações.&lt;br /&gt;
Apenas copiar/colar no meu CSS, definir cor e largura dos itens, usar a classe no html e pronto. E tudo funcionando nos navegadores mais usados (FF, IE6/7, OP).
&lt;/p&gt;&lt;p&gt;
Ontem eu postei a peça que faltava (&lt;a href="http://elmicox.blogspot.com/2008/03/ativando-hover-e-first-child-no-ie-6-um.html"&gt;ativar hover no IE6 via css&lt;/a&gt;).&lt;br /&gt;
Veja o &lt;a href="http://naironjcg.googlepages.com/menus.htm"&gt;exemplo online (e o código fonte) do Ultimate Micox Menu Drop Down CSS até 4 níveis&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Bem, vamos aos códigos:&lt;br /&gt; Primeiro é só fazer seu velho menu usando UL e LI.
&lt;/p&gt;
&lt;pre class='code'&gt;
&amp;lt;ul&amp;gt;
 &amp;lt;li&amp;gt;class='menu-hv'&amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href='#'&amp;gt;2&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href='#'&amp;gt;3...&amp;lt;/a&amp;gt;
  &amp;lt;ul style='background-color: red; '&amp;gt;
   &amp;lt;li&amp;gt;31&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;a href='#'&amp;gt;32&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;33&amp;lt;/li&amp;gt;
  &amp;lt;/ul&amp;gt;
 &amp;lt;/li&amp;gt;
 &amp;lt;li&amp;gt;&amp;lt;a href='#'&amp;gt;4...&amp;lt;/a&amp;gt;
  &amp;lt;ul&amp;gt;
   &amp;lt;li&amp;gt;41&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;a href='#'&amp;gt;42&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;&amp;lt;a href='#'&amp;gt;43...&amp;lt;/a&amp;gt;
    &amp;lt;ul  style='background-color: blue'&amp;gt;
     &amp;lt;li&amp;gt;431&amp;lt;/li&amp;gt;
     &amp;lt;li&amp;gt;&amp;lt;a href='#'&amp;gt;432...&amp;lt;/a&amp;gt;
      &amp;lt;ul  style='background-color: gray'&amp;gt;
       &amp;lt;li&amp;gt;4321&amp;lt;/li&amp;gt;
       &amp;lt;li&amp;gt;&amp;lt;a href='#'&amp;gt;4322&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;/ul&amp;gt;
     &amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
   &amp;lt;/li&amp;gt;
   &amp;lt;li&amp;gt;44&amp;lt;/li&amp;gt;
  &amp;lt;/ul&amp;gt;
 &amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&lt;/pre&gt;
&lt;p&gt;
Depois você coloca a classe menu-hv no UL (ou no div pai de UL) para ativar o menu horizontal com submenus verticais. Para o menu vertical vertical (em pé) a classe é menu-vv.
&lt;/p&gt;&lt;pre class='code'&gt;
&amp;lt;ul class='menu-hv'&amp;gt;
&lt;/pre&gt;&lt;p&gt;
Por último é só colocar o código do Ultimate Micox Menu drop-down CSS (UMMDDCSS huahe) no seu arquivo CSS ou em um arquivo CSS separado. O local onde você pode alterar a cor, largura, etc dos itens do menu está indicado no código. Não mexa no resto pra não correr o risco de estragar.
&lt;/p&gt;
&lt;pre class='code'&gt;
/*
  Menus drop-down horizontal-vertical (hv) e vertical-vertical (vv) até 4 níveis
  by Micox - elmicox.blogspot.com - Ver. 2.0 - 20/02/08 - Creative Commons License
*/    
.menu-hv, .menu-vv { position: relative; margin: 0; padding: 0; display: block; zoom: 1;}
 .menu-hv * ,    .menu-vv * { margin: 0; padding: 0 ; list-style: none}
 .menu-hv li ,   .menu-vv li { position: relative; line-height: 1.2em; vertical-align: top }
 .menu-hv a ,    .menu-vv a { display: block; zoom: 1; line-height: 1.2em }
 .menu-hv li ul, .menu-vv li ul { position: absolute; visibility: hidden  }
 .menu-hv li:hover ul,  .menu-vv li:hover ul,
 .menu-hv li.hover ul,  .menu-vv li.hover ul { visibility: visible }
 .menu-hv li:hover ul ul,  .menu-vv li:hover ul ul,
 .menu-hv li.hover ul ul,  .menu-vv li.hover ul ul { visibility: hidden }
 .menu-hv li li:hover ul,  .menu-vv li li:hover ul,
 .menu-hv li li.hover ul,  .menu-vv li li.hover ul { visibility: visible }
 .menu-hv li li:hover ul ul,  .menu-vv li li:hover ul ul,
 .menu-hv li li.hover ul ul,  .menu-vv li li.hover ul ul { visibility: hidden }
 .menu-hv li li li:hover ul,  .menu-vv li li li:hover ul,
 .menu-hv li li li.hover ul,  .menu-vv li li li.hover ul { visibility: visible }
 /* características horizontal-vertical */
 .menu-hv:after, .menu-hv.after { content: "."; line-height: 0px; clear: both; display: block; visibility: hidden}
 .menu-hv li { float: left; }  
 .menu-hv li ul li { float: none; }
 .menu-hv li ul li ul { position: absolute; left: 100%; top: 0; }
 /* características vertical-vertical */
 .menu-vv { float: left; } 
 .menu-vv li ul { left: 100%; top: 0; }
 /* ****************************************
   ALTERE ABAIXO. defina a largura, cor, formatações, etc, dos itens do seu menu abaixo
   ou apague as linhas se for definir em outro lugar
 */
 .menu-hv li { width: 100px; background-color: yellow }
 .menu-vv li { width: 100px; background-color: yellow }
 .menu-hv li a:hover { background-color: cyan }
 .menu-vv li a:hover { background-color: cyan }

 
/* Micox Pseudo-class-css2 to IE (MXPC). Activate .hover and .first-child in IE 6
   http://elmicox.blogspot.com/2008/03/ativando-hover-e-first-child-no-ie-6-um.html 
   Deixe isto ao final de tudo do seu CSS pois o Webkit não interpreta nada mais abaixo do expression */
* html * { color: expression( (function(who){ if(!who.MXPC){
 who.MXPC = '1';
 if(who.nodeName != 'A'){
  who.onmouseenter=function(){ who.className += ' hover'};
  who.onmouseleave=function(){ who.className = who.className.replace(' hover','')}; }
 (who==who.parentNode.firstChild) ? who.className += ' first-child' : '' ;
} } )(this) , 'auto') }
&lt;/pre&gt;
&lt;p&gt;Pronto! Agora ficou fácil fazer um menu drop down CSS. É só copiar e colar isso aí no código. Não precisa pegar javascript externo, não precisa quebrar cabeça com floats ou displays. É só colocar isto no seu documento e fazer seu menu ul-li.&lt;/p&gt;
&lt;p&gt;Os espertos devem ter percebido que dá pra aumentar a quantidade de níveis facilmente adicionando novos níveis onde começa os visibility: hidden né? heheh&lt;/p&gt;
&lt;p&gt;Bom, é isso aí. Dúvidas, é só postar lá no &lt;a href="http://forum.ievolutionweb.com"&gt;fórum&lt;/a&gt;. Até a próxima diversão.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-5846248154091069753?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/5846248154091069753/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=5846248154091069753' title='28 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/5846248154091069753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/5846248154091069753'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/03/ultimate-micox-menu-drop-down-css-at-4.html' title='Ultimate Micox Menu drop-down CSS - até 4 níveis'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-3106153895382772041</id><published>2008-03-06T15:56:00.008-04:00</published><updated>2008-12-08T08:54:40.336-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='webstandards'/><category scheme='http://www.blogger.com/atom/ns#' term='bugs_ie'/><title type='text'>Ativando .hover e .first-child no IE 6 - um novo método</title><content type='html'>&lt;p&gt;Tamo de volta malucada
&lt;/p&gt;&lt;p&gt;Todos aqui devem saber que as pseudo-classes do CSS 2 :hover e :first-child não funcionam direito no IE6 né? A hover só funciona em links.
&lt;/p&gt;&lt;p&gt;Porém vossas senhorias já devem conhecer inúmeras ténicas secretas ninja para simular as &lt;strong&gt;pseudo classe&lt;/strong&gt; hover e first-child no IE 6 né? Técnicas com javascript simples, &lt;a href="http://dean.edwards.name/IE7/"&gt;técnicas com libs&lt;/a&gt; &lt;a href="http://dgmike.wordpress.com/2008/02/05/uma-melhor-solucao-minha-humilde-opiniao/"&gt;javascript&lt;/a&gt;, &lt;a href="http://www.vladdy.net/Demos/IEPseudoClassesFix.html"&gt;arquivo htc&lt;/a&gt;, etc
&lt;/p&gt;&lt;p&gt;
Abaixo eu mostro uma nova técnica que o mico inventou enquanto estava desenvolvendo sua Micox-mini-css-lib (em breve em um blog perto de você).
&lt;/p&gt;&lt;p&gt;A vantagem da minha criança é que ela pode ser colocada direto no seu CSS, em qualquer lugar dele (de preferencia no começo). Ela é baseada em javascript dentro do CSS.
&lt;/p&gt;&lt;p&gt;
Para ativar, você deve usar as classes .hover em conjunto com a :hover OU .first-child em conjunto com a :first-child nos elementos onde deseja o efeito. Tipo assim:
&lt;/p&gt;&lt;p&gt;
li:first-child , li.first-child { color: red }
&lt;/p&gt;&lt;p&gt;
Abaixo, o código que faz a mágica e deve ser colocado no &lt;del&gt;começo&lt;/del&gt; FINAL do seu css. Quem não entender me pergunta nos comments.
&lt;/p&gt;
&lt;h3&gt;Micox Pseudo-class-css2 to IE (MXPC)&lt;/h3&gt;
&lt;pre class='code'&gt;
/* Micox Pseudo-class-css2 to IE (MXPC). Activate .hover and .first-child in IE 6 
   Deixe isto ao final de tudo do seu CSS pois o Webkit não interpreta nada mais abaixo do expression
*/
* html * { color: expression( (function(who){ if(!who.MXPC){
 who.MXPC = '1';
 if(who.nodeName != 'A'){
  who.onmouseenter=function(){ who.className += ' hover'};
  who.onmouseleave=function(){ who.className = who.className.replace(' hover','')}; }
 (who==who.parentNode.firstChild) ? who.className += ' first-child' : '' ;
} } )(this) , 'auto') }

/* example */
p:first-child , p.first-child { color: red }
li:hover a , li.hover a { background-color: blue }
&lt;/pre&gt;&lt;p&gt;
"Viiixxxxxx maria, onde eu coloco isso mico?" - Não tema o código Sr.!  Apenas coloque ele no &lt;del&gt;começo&lt;/del&gt; FINAL do seu CSS. &lt;span style="font-weight:bold;"&gt;&lt;a href="http://naironjcg.googlepages.com/pseudo-classes.htm"&gt;Veja esta página de exemplo&lt;/a&gt;&lt;/span&gt; e zóie o código fonte dela.
&lt;/p&gt;&lt;p&gt;
O bom é que esta idéia do expression pode ser usada para outras gambiarras também. Em breve eu devo voltar com mais.
&lt;/p&gt;&lt;p&gt;
Em breve tô de volta. Té mais.
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-3106153895382772041?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/3106153895382772041/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=3106153895382772041' title='18 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/3106153895382772041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/3106153895382772041'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/03/ativando-hover-e-first-child-no-ie-6-um.html' title='Ativando .hover e .first-child no IE 6 - um novo método'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-8729766041645148108</id><published>2008-02-07T10:27:00.000-03:00</published><updated>2008-02-07T13:40:09.190-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='menus'/><title type='text'>Fazer um menu com vários níveis. BD + PHP + JS + CSS</title><content type='html'>&lt;p&gt;Ae pessoal,
&lt;/p&gt;&lt;p&gt;
Há um tempo eu tinha criado um esquema e função PHP pra gerar um UL-LI para fazer um menu tipo pai e filhos, sendo que a quantidade de filhos e netos poderia ser infinita.
&lt;/p&gt;&lt;p&gt;
Hoje deu vontade de sair um pouco do javascript de sempre e postar essa parada aqui no blog. Desde a organização da tabela no Banco de Dados, função PHP pra gerar os UL-LI e finalizando com links pra estilizar este menu UL-LI.
&lt;/p&gt;&lt;p&gt;
Lá vai:
&lt;/p&gt;&lt;p&gt;
1) Para o menu (pai e filhos) será necessário apenas 1 tabela com o nome de 'menus'. Só executar a seguinte SQL no Banco de dados:&lt;/p&gt;
&lt;pre class='code'&gt;CREATE TABLE `menus` (
`id` tinyint(3) unsigned NOT NULL auto_increment,
`pai_id` tinyint(3) unsigned NOT NULL default '0',
`ordem` tinyint(3) unsigned NOT NULL default '0',
`visivel` tinyint(3) unsigned NOT NULL default '1',
`nome` varchar(30) NOT NULL default '',
`link` varchar(150) default NULL,
PRIMARY KEY (`id`),
KEY `pai_id` (`pai_id`,`ordem`,`visivel`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT&lt;/pre&gt;
&lt;p&gt;
O SQL acima manda criar uma tabela chamada 'menus' onde o truque está no campo pai_id.
&lt;/p&gt;&lt;p&gt;
Em cada registro, o campo pai_id irá apontar para o ID de outro registro na mesma tabela, indicando que ele é o seu pai.
Se a entrada não tiver pai, o campo pai_id deve ficar com 0 (zero).
&lt;/p&gt;&lt;p&gt;
&lt;a href="http://imageshack.us"&gt;&lt;img src="http://img408.imageshack.us/img408/5787/inricristoeh0.jpg" border="0" alt="Image Hosted by ImageShack.us"/&gt;&lt;/a&gt; &lt;i&gt;- "Ó PÓOOOOI!!"&lt;/i&gt;&lt;br/&gt;
&lt;/p&gt;&lt;p&gt;
2) Preencha sua tabela lembrando de colocar visivel=1 para os menus que quer que sejam visíveis e colocando a ordem de cada menu.
O campo pai_id indica qual o ID do menu pai, se ele for um menu principal (pai) sem outro pai, este campo deve ficar com '0'.
&lt;/p&gt;&lt;p&gt;
Exemplo pra fazer o submenu:&lt;/p&gt;
&lt;pre class='code'&gt;comidas
- arroz
- feijao
guloseimas
- chocolate
- maquindonalds
---- sanduiche porco
---- sanduiche pequeno
&lt;/pre&gt;
&lt;p&gt;
Teremos:&lt;/p&gt;
&lt;pre class='code'&gt;comidas (pai_id=0)
- arroz (pai_id = id do 'comidas')
- feijao (pai_id = id do 'comidas')
guloseimas (pai_id=0)
- chocolate (pai_id = id do 'guloseimas')
- maquindonalds (pai_id = id do 'guloseimas')
---- sanduiche porco (pai_id = id do 'maquindonalds')
---- sanduiche pequeno (pai_id = id do 'maquindonalds')&lt;/pre&gt;
&lt;p&gt;
3) Adicione a seguinte função à sua biblioteca de funções (você já tem que estar conectado ao bd antes de usar esta função né?):
&lt;/p&gt;
&lt;pre class='code'&gt;function gera_menu($cod_ul_pai,$tabs,$id_do_pai){
    //gera um menu ul com submenus
    //by Micox - elmicox.blogspot.com - forum.ievolutionweb.com
    //exemplo: gera_menu("&amp;lt;ul&amp;gt;","    ",0)
    $recc = mysql_query("SELECT * FROM menus WHERE pai_id=$id_do_pai AND visivel=1 ORDER BY ordem");
    $ret = $cod_ul_pai."\r\n";
    if($recc==true){
        while($linha = mysql_fetch_array($recc,MYSQL_ASSOC)){
            if(isset($linha['link'])){
                $href = $linha['link'];
            }else{
                $href = '';
            }
            $ret .= $tabs."    &amp;lt;li&amp;gt;&amp;lt;a href='$href'&amp;gt;".htmlentities($linha['nome'])."&amp;lt;/a&amp;gt;";
            //testando se tem filhos
                $recfilho = mysql_query("SELECT * FROM menus WHERE pai_id=$linha[id] AND visivel=1 ORDER BY ordem");
                if(mysql_num_rows($recfilho)&amp;gt;0){
                    $ret .= "\r\n".$tabs."        ".gera_menu("&amp;lt;ul&amp;gt;",$tabs."        ",$linha['id'])."    ".$tabs;
                }
            //fim filhos
            $ret .= "&amp;lt;/li&amp;gt;\r\n";
        }
    }
    $ret .= $tabs."&amp;lt;/ul&amp;gt;\r\n";
    mysql_free_result($recc);
    return $ret;
}&lt;/pre&gt;
&lt;p&gt;
4) Chame a função onde vc quer que gere o menu:&lt;/p&gt;
&lt;pre class='code'&gt;&amp;lt;?php echo gera_menu("&amp;lt;ul&amp;gt;","        ",0) ?&amp;gt;&lt;/pre&gt;
&lt;p&gt;
5) Isso aí irá gerar um menu como este exemplo:&lt;/p&gt;
&lt;pre class='code'&gt;&amp;lt;ul&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href='produtos.php?text=3'&amp;gt;Produtos e Servi&amp;ccedil;os&amp;lt;/a&amp;gt;
    &amp;lt;ul&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href='produtos.php?Gravadores_Monolinha&amp;cat=1&amp;text=14'&amp;gt;Gravadores Monolinha&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href='produtos.php?Gravadores_Multilinha&amp;cat=2&amp;text=15'&amp;gt;Gravadores Multilinha&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href='produtos.php?Outros_produtos&amp;cat=3&amp;text=16'&amp;gt;Outros produtos&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  &amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href='conteudo.php?Revendas&amp;amp;text=4'&amp;gt;Revendas&amp;lt;/a&amp;gt;
    &amp;lt;ul&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href='conteudo.php?Brasil&amp;amp;text=17'&amp;gt;Brasil&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href='conteudo.php?Internacional&amp;amp;text=18'&amp;gt;Internacional&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href='conteudo.php?Seja_um_revendedor&amp;amp;text=19'&amp;gt;Seja um revendedor&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  &amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href='conteudo.php?Clientes&amp;amp;text=5'&amp;gt;Clientes&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;&amp;lt;a href='conteudo.php?Suporte&amp;amp;text=6'&amp;gt;Suporte&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
6) Pronto, agora é só estilizar com algum tutorial de &lt;a href='http://www.maujor.com/tutorial/ddownmenu.php'&gt;menu&lt;/a&gt;, &lt;a href='http://forum.ievolutionweb.com/index.php?s=&amp;showtopic=8408&amp;view=findpost&amp;p=59688'&gt;treemenu (menu em árvore)&lt;/a&gt;, menu &lt;a href='http://forum.ievolutionweb.com/index.php?showtopic=2267&amp;st=0'&gt;drop down&lt;/a&gt; &lt;a href='http://forum.ievolutionweb.com/index.php?s=&amp;showtopic=2267&amp;view=findpost&amp;p=15197'&gt;horizontal&lt;/a&gt;, &lt;a href='http://forum.ievolutionweb.com/index.php?s=&amp;showtopic=2267&amp;view=findpost&amp;p=19619'&gt;vertical&lt;/a&gt;, &lt;a href='http://www.google.com.br/search?hl=pt-BR&amp;q=menu+drop+down&amp;btnG=Pesquisar&amp;meta='&gt;etc&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Té. Dúvidas, pergunta lá no &lt;a href='http://forum.ievolutionweb.com'&gt;fórum&lt;/a&gt; :)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-8729766041645148108?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/8729766041645148108/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=8729766041645148108' title='10 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/8729766041645148108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/8729766041645148108'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/02/fazer-um-menu-com-vrios-nveis-bd-php-js.html' title='Fazer um menu com vários níveis. BD + PHP + JS + CSS'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-3736379608178466787</id><published>2008-01-31T15:46:00.000-03:00</published><updated>2008-02-01T16:17:32.405-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='funções'/><category scheme='http://www.blogger.com/atom/ns#' term='graficos'/><title type='text'>Desenhando pontos e linhas com javascript puro (sem canvas)</title><content type='html'>&lt;p&gt;
Bem, infelizmente javascript não tem muitas capacidades de gerar gráficos, linhas, pontos, círculos, etc a não ser com &lt;a href='http://www.webly.com.br/tutorial/javascript-e-ajax/13989/desenhando-com-canvas.htm'&gt;CANVAS&lt;/a&gt; (infelizmente não bem suportado por todos os navegadores) ou por &lt;a href='http://desciclo.pedia.ws/wiki/POG'&gt;POG&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Fazer usando o canvas não teria graça hehe, então fui pro que eu gosto: a velha gambiarra.
&lt;/p&gt;&lt;p&gt;
Bom, gerar o ponto é fácil:
&lt;/p&gt;
&lt;pre class='code'&gt;
&amp;lt;style&amp;gt;
.ponto {  background-color: #0000FF; position: absolute; overflow: hidden;}
&amp;lt;/style&amp;gt;
&amp;lt;script&amp;gt;
//global que guarda a largura da linha. Quanto maior, mais rápido o processamento.
window['larguraPonto']=2;
function geraPonto(x, y, nome, elempai) {
    //by Micox - www.elmicox.com - 31/01/08
    var pixel = document.createElement('div');
    pixel.id = nome;
    pixel.className = 'ponto';
    pixel.style.width = pixel.style.height = window['larguraPonto'] + 'px'
    pixel.style.left = x + 'px';
    pixel.style.top = y + 'px';
    return elempai.appendChild(pixel);
}
//chamando a função e gerando uma reta vertical
window.onload = function(){ 
 geraPonto(10,4,'ponto1',document.body) 
 geraPonto(10,6,'ponto2',document.body) 
 geraPonto(10,8,'ponto3',document.body) 
 geraPonto(10,10,'ponto4',document.body) 
 geraPonto(10,12,'ponto4',document.body) 
 geraPonto(10,14,'ponto4',document.body) 
 }
&amp;lt;/script&amp;gt;
&lt;/pre&gt;
&lt;p&gt;
Perceba que eu coloquei algumas características do ponto via CSS e a definição da largura do ponto em uma variável global. Quanto MENOR for o valor da largura do ponto, logicamente irá demorar mais a plotagem do ponto.
&lt;/p&gt;&lt;p&gt;
Agora pra gerar uma linha inteira terei que usar meus exímios e velhos conhecimentos de matemática geométrica aprendidos no ensino médio hauehea (Vê se eu lembro disso. Lógico que colei do &lt;a href='http://www.davidbetz.net/graphics/'&gt;David Betz&lt;/a&gt; e dei umas adaptadas).
&lt;/p&gt;
&lt;pre class='code'&gt;
function geraLinha(x1, y1, x2, y2, nome, elempai) {
    //by Micox - www.elmicox.com - 31/01/08 - adaptado de http://www.davidbetz.net/graphics/
    var longPixel = document.createElement('div');
    if(elempai.constructor==String){ elempai = document.getElementById(elempai);}
    
    if(typeof(window['MicoxLinhas'])=='undefined'){
        window['MicoxLinhas'] = Array(); //este cidadão global irá guardar todas as linhas
    }
    window['MicoxLinhas'][nome] = Array()
    
    var steep = Math.abs(y2 - y1) &gt; Math.abs(x2 - x1);
    if (steep) {
        var t = y1;
        y1 = x1; x1 = t;
        t = y2; y2 = x2;
        x2 = t;    }
        
    var deltaX = Math.abs(x2 - x1);
    var deltaY = Math.abs(y2 - y1);
    var error = 0;
    var deltaErr = deltaY;
    var xStep, yStep, modulo;
    var x = x1, y = y1;
    
    if (x1 &amp;lt; x2) {
        xStep = window['larguraPonto'];
        modulo = +1;
    }else {
        xStep = -window['larguraPonto'];
        modulo = -1;
    }
    
    if(y1 &amp;lt; y2) { yStep = window['larguraPonto']; }
    else { yStep = -window['larguraPonto']; }
    
    var nomeP = nome + x + '-' + y;
    
    if(steep) { window['MicoxLinhas'][nome][x] = geraPonto(y, x, nomeP, elempai);    }
    else { window['MicoxLinhas'][nome][x] = geraPonto(x, y, nomeP, elempai);    }
    
    var fim = modulo * x2;
    
    while( modulo * x &amp;lt; fim) {
        x = x + xStep;
        error = error + deltaErr;
        if(2 * error &amp;gt;= deltaX) {
            y = y + yStep;
            error = error - deltaX;
        }
        nomeP = nome + x + '-' + y;
        if(steep) { window['MicoxLinhas'][nome][x] = geraPonto(y, x, nomeP, elempai);    }
        else { window['MicoxLinhas'][nome][x] = geraPonto(x, y, nomeP, elempai);    }
    }
    return window['MicoxLinhas'][nome];
}

//brincando de desenhar
window.onload = function(){
 geraLinha(20,120,30,100,'minhaLinha1',document.body)
 geraLinha(30,100,60,100,'minhaLinha2',document.body)
 geraLinha(60,100,90,80,'minhaLinha3',document.body)
 geraLinha(90,80,130,80,'minhaLinha4',document.body)
 geraLinha(130,80,160,100,'minhaLinha5',document.body)
 geraLinha(160,100,210,105,'minhaLinha6',document.body)
 geraLinha(210,105,220,120,'minhaLinha7',document.body)
 geraLinha(220,120,20,120,'minhaLinha8',document.body)
 //agora só faltam as rodas haehaheuhaeu
}
&lt;/pre&gt;
&lt;p&gt;
Pronto, agora só falta fazer funções pra elipses e curvas hauheuhae. Não tô afim de brincar disso hoje não. Algum dia eu ou alguém faz uma função pra isso.
&lt;/p&gt;&lt;p&gt;
Percebam, senhores, que coloquei a opção de nomes nas linhas e pontos e coloquei elas dentro de um pai qualquer. Pra quê? Ué, pra poder apagar e mover as ditas cujas.
&lt;/p&gt;&lt;p&gt;
As funções de apagar:
&lt;/p&gt;
&lt;pre class='code'&gt;
function removePonto(nomeOuRef){
    //recebe o ID do ponto ou a referencia ao objeto HTML
    if(nomeOuRef.constructor==String){    nomeOuRef = document.getElementById(nome);    }
    nomeOuRef.parentNode.removeChild(nomeOuRef)
    try { delete nomeOuRef; } catch(e) { nomeOuRef = null }
}
function removeLinha(nomeOuRef){
    //recebe o ID da reta ou a referencia ao objeto array
    if(nomeOuRef.constructor==String){ nomeOuRef = window[nomeOuRef]; }
    for(var i in nomeOuRef){
        removePonto(nomeOuRef[i])
        try { delete nomeOuRef[i]; } catch(e) { nomeOuRef[i] = null }
    }
    try { delete nomeOuRef; } catch(e) { nomeOuRef = null }
}&lt;/pre&gt;
&lt;p&gt;
As funções de mover nem precisava colocar aqui pois é aquele básico esquema de mover Divs:
&lt;/p&gt;
&lt;pre class='code'&gt;
function move(quem){
 //by Micox - www.elmicox.com - 30/01/08
 if(quem.constructor==String){ quem = document.getElementById(quem); }
 //movendo
 window['move'+quem.id] = setInterval( function(){ 
   quem.style.left = (quem.offsetLeft + 5) + 'px'
  }, 50);
}
function para(quem){
 //by Micox - www.elmicox.com - 30/01/08
 if(quem.constructor==String){ quem = document.getElementById(quem); }
 if(typeof(window['move'+quem.id])=='number'){
  clearInterval(window['move'+quem.id])
 }
}
&lt;/pre&gt;
&lt;p&gt;
Agora veja um &lt;a href='http://naironjcg.googlepages.com/jsGraficosExemplo.htm'&gt;exemplo completo e meu opalão se movimentando aqui&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
- "Porra mico, que mané você heim? Não é mais fácil abrir um programa de imagens qualquer e desenhar diboas?"
&lt;/p&gt;&lt;p&gt;
- Sim meu caro cidadão, porém, digamos que você queira fazer um &lt;a href='http://forum.ievolutionweb.com/index.php?showtopic=18939'&gt;fluxograma em javascript&lt;/a&gt; (aqui você vê o &lt;a href="http://naironjcg.googlepages.com/fluxo.htm"&gt;fluxograma finalizado&lt;/a&gt;).
E aí? Nunca se sabe quando vamos precisar de algo, como diria &lt;a href='http://pt.wikipedia.org/wiki/%C3%81lgebra_booleana'&gt;George Boole&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Té a próxima, malucada.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-3736379608178466787?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/3736379608178466787/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=3736379608178466787' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/3736379608178466787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/3736379608178466787'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/01/desenhando-pontos-e-linhas-com.html' title='Desenhando pontos e linhas com javascript puro (sem canvas)'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-23429770.post-665453608939375977</id><published>2008-01-17T09:30:00.000-03:00</published><updated>2008-01-17T09:40:16.400-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='frameworks'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><title type='text'>cssQuery - substituto ao getElementsById e getElementsByTagName</title><content type='html'>&lt;p&gt;
Todo mundo que programa em javascript se cansa de ter que digitar "document.getElementById" ou "document.getElementsByTagName" (ufa, cansei) toooooooda vez que quer selecionar determinado elemento ou grupo de elementos. É ou não é?
&lt;/p&gt;&lt;p&gt;
Então, após 3 digitadas destes métodos, agente vai lá e programa uma funçãozinha pra simplificar isso. É ou não é?
&lt;/p&gt;&lt;p&gt;
Na net existem infindáveis funções pra substituir o 1 ou o 2 (não vou digitar tudo denovo não heahe). Todo mundo tem sua velha função $() ou gE() ou gEid(). É ou não é?
&lt;/p&gt;&lt;p&gt;
Mas as funções que fazem isso "mais mió de bão" estão dentro de frameworks. O que é uma pena pra quem não usa frameworks.&lt;br /&gt;
No meu pouco conhecimento, a melhor atualmente é a do jquery que guenta seletores CSS como parâmetro e &lt;a href='http://docs.jquery.com/Selectors'&gt;outros seletores mó bizarros&lt;/a&gt;.
&lt;/p&gt;&lt;p&gt;
Se você não sabe as facilidades dos seletores CSS, &lt;a href='http://www.maujor.com/tutorial/seletores_css21_parte1.php'&gt;dê uma estudada.&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
O objetivo deste post do mico é mostrar uma ótima solução pra você que não usar frameworks ou cujo framework ou função não suporte fazer a seleção usando seletores CSS:
&lt;/p&gt;&lt;p&gt;
&lt;a href='http://dean.edwards.name/my/cssQuery/'&gt;cssQuery() do Dean Edwards.&lt;/a&gt;
&lt;/p&gt;&lt;p&gt;
"getElementsByTagName? Pah!"&lt;br /&gt;
É assim que o ultra-top-master de javascript começa a explicação (mico paga pau).
&lt;/p&gt;&lt;p&gt;
Sintaxe:&lt;/p&gt;
&lt;pre class='code'&gt;elements = cssQuery(selector [, from]);&lt;/pre&gt;
&lt;p&gt;
Exemplos:&lt;/p&gt;
&lt;pre class='code'&gt;// retorna todos os parágrafos que são filhos diretos de body
var tags = cssQuery("body &gt; p");

// retorna todos os elementos que tenham o atributo 'href'
var tags = cssQuery("[href]");

// retorna os elementos que o atributo 'href' é igual a '#'
var tags = cssQuery("a[href='#']");
// procura todas as imagens dentro dos links retornados acima
var images = cssQuery("img", tags);

// pega todas as listas
var tags = cssQuery("dl,ol,ul");

// até em xml externos
var tags = cssQuery("my|:root&gt;my|link", myXMLDoc);

// você entende isso?
var complex = "p&gt;a:first-child+input[type=text]~span";
var tags = cssQuery(complex);&lt;/pre&gt;
&lt;p&gt;
Seletores suportados:&lt;/p&gt;
&lt;pre class='code'&gt;    *
    E
    E F
    E &gt; F
    E + F
    E ~ F
    E.warning
    E#myid
    E:link
    E:first-child
    E:last-child
    E:nth-child(n)
    E:nth-last-child(n)
    E:only-child
    E:root
    E:lang(fr)
    E:target
    E:enabled
    E:disabled
    E:checked
    E:contains("foo")
    E:not(s)
    E[foo]
    E[foo="bar"]
    E[foo~="bar"]
    E[foo^="bar"]
    E[foo$="bar"]
    E[foo*="bar"]
    E[foo|="bar"]&lt;/pre&gt;
&lt;p&gt;
Guentado no IE, FF, OP, Netscape e Safari.
&lt;/p&gt;&lt;p&gt;
E aí? Vai trocar suas velhas $() ??&lt;/p&gt;&lt;p&gt;
//Há uma lenda aí dizendo que o próximo Firefox vai suportar o velho $() . Será? Procurei um link e não achei. More informations please.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23429770-665453608939375977?l=elmicox.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://elmicox.blogspot.com/feeds/665453608939375977/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=23429770&amp;postID=665453608939375977' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/665453608939375977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23429770/posts/default/665453608939375977'/><link rel='alternate' type='text/html' href='http://elmicox.blogspot.com/2008/01/cssquery-substituto-ao-getelementsbyid.html' title='cssQuery - substituto ao getElementsById e getElementsByTagName'/><author><name>Micox - Náiron J. C. G.</name><uri>http://www.blogger.com/profile/02362544943059265823</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01895330661434699613'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>