<?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' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-374716464488078491</id><updated>2010-10-21T18:37:43.995-02:00</updated><title type='text'>Genoma Web</title><subtitle type='html'>Por Anderson Dias</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.genomaweb.net/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default?start-index=26&amp;max-results=25'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-4621186848779275982</id><published>2008-11-22T21:23:00.002-02:00</published><updated>2008-11-22T21:32:08.835-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Desabilitar montagem automática NTFS no Ubuntu</title><content type='html'>Para desabilitar a montagem automática de partições NTSF no Ubuntu, basta editar o arquivo &lt;code&gt;fstab&lt;/code&gt; e comentar as linhas que fazem referência às partições desejadas. Como root, execute o seguinte comando:&lt;br /&gt;&lt;pre&gt;# gedit /etc/fstab&lt;/pre&gt;Comente as linhas desejadas (adicionar &lt;code&gt;#&lt;/code&gt; na frente da linha). No meu caso foram as linhas que faziam referência a &lt;code&gt;/dev/hda1&lt;/code&gt; e &lt;code&gt;/dev/hda5&lt;/code&gt;. Salve, feche o arquivo e pronto!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-4621186848779275982?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/4621186848779275982/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=4621186848779275982&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/4621186848779275982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/4621186848779275982'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/11/desabilitar-montagem-automtica-ntfs-no.html' title='Desabilitar montagem automática NTFS no Ubuntu'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-7743169998225321079</id><published>2008-07-25T15:21:00.001-03:00</published><updated>2008-07-25T15:23:50.436-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='misc'/><title type='text'>Ajude a sustentar a Wikipédia</title><content type='html'>&lt;b&gt;Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!&lt;/b&gt;&lt;br /&gt;…e também a pen drives, card drives, camisetas geeks, livros e mais! O &lt;a href="http://br-linux.org/"&gt;BR-Linux&lt;/a&gt; e o &lt;a href="http://efetividade.net/"&gt;Efetividade&lt;/a&gt; lançaram uma &lt;a href="http://br-linux.org/2008/campanha-wikipedia/"&gt;campanha&lt;/a&gt; para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e &lt;a href="http://br-linux.org/2008/campanha-wikipedia/"&gt;participe&lt;/a&gt; - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-7743169998225321079?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/7743169998225321079/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=7743169998225321079&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/7743169998225321079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/7743169998225321079'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/07/ajude-sustentar-wikipdia.html' title='Ajude a sustentar a Wikipédia'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-4997546230555881728</id><published>2008-06-26T14:36:00.014-03:00</published><updated>2008-07-18T10:18:22.561-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Transformar caracteres especiais em códigos</title><content type='html'>&lt;span style="font-weight: bold;"&gt;PORTUGUÊS&lt;/span&gt;&lt;br /&gt;Algumas aplicações apresentam incompatibilidades em relação à codificação dos caracteres. O resultado disso são caracteres com codificação errada, como uma letra acentuada que não é mostrada corretamente.&lt;br /&gt;&lt;br /&gt;Uma alternativa para isso é transformar o conjunto de caracteres específico em códigos. Como os códigos são globais, dificilmente ocorrerá problema com codificação errada.&lt;br /&gt;&lt;br /&gt;A função em &lt;a href="http://boo-box.com/link/aff:submarinoid/uid:255624/tags:php/format:box" class="bbli"&gt;PHP&lt;img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /&gt;&lt;/a&gt;&lt;script src="http://stable.boo-box.com/" type="text/javascript"&gt;&lt;/script&gt; abaixo substitui os caracteres especiais de um texto em seus respectivos códigos.&lt;br /&gt;&lt;pre&gt;function acento2codigo($string)&lt;br /&gt;{&lt;br /&gt;$acento = array("¡", "¢", "£", "¥", "§", "¨", "©", "«", "¬", "®", "°", "±", "´", "µ", "¶", "·", "¸", "»", "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Ù", "Ú", "Û", "Ü", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", "û", "ü", "ÿ", "‚", "ƒ", "„", "…", "†", "‡", "ˆ", "‰", "‹", "Œ", "‘", "’", "“", "”", "•", "–", "—", "˜", "™", "›", "œ", "Ÿ");&lt;br /&gt;$codigo = array("&amp;amp;iexcl;", "&amp;amp;cent;", "&amp;amp;pound;", "&amp;amp;yen;", "&amp;amp;sect;", "&amp;amp;uml;", "&amp;amp;copy;", "&amp;amp;laquo;", "&amp;amp;not;", "&amp;amp;reg;", "&amp;amp;deg;", "&amp;amp;plusmn;", "&amp;amp;acute;", "&amp;amp;micro;", "&amp;amp;para;", "&amp;amp;middot;", "&amp;amp;cedil;", "&amp;amp;raquo;", "&amp;amp;iquest;", "&amp;amp;Agrave;", "&amp;amp;Aacute;", "&amp;amp;Acirc;", "&amp;amp;Atilde;", "&amp;amp;Auml;", "&amp;amp;Aring;", "&amp;amp;AElig;", "&amp;amp;Ccedil;", "&amp;amp;Egrave;", "&amp;amp;Eacute;", "&amp;amp;Ecirc;", "&amp;amp;Euml;", "&amp;amp;Igrave;", "&amp;amp;Iacute;", "&amp;amp;Icirc;", "&amp;amp;Iuml;", "&amp;amp;Ntilde;", "&amp;amp;Ograve;", "&amp;amp;Oacute;", "&amp;amp;Ocirc;", "&amp;amp;Otilde;", "&amp;amp;Ouml;", "&amp;amp;Oslash;", "&amp;amp;Ugrave;", "&amp;amp;Uacute;", "&amp;amp;Ucirc;", "&amp;amp;Uuml;", "&amp;amp;szlig;", "&amp;amp;agrave;", "&amp;amp;aacute;", "&amp;amp;acirc;", "&amp;amp;atilde;", "&amp;amp;auml;", "&amp;amp;aring;", "&amp;amp;aelig;", "&amp;amp;ccedil;", "&amp;amp;egrave;", "&amp;amp;eacute;", "&amp;amp;ecirc;", "&amp;amp;euml;", "&amp;amp;igrave;", "&amp;amp;iacute;", "&amp;amp;icirc;", "&amp;amp;iuml;", "&amp;amp;ntilde;", "&amp;amp;ograve;", "&amp;amp;oacute;", "&amp;amp;ocirc;", "&amp;amp;otilde;", "&amp;amp;ouml;", "&amp;amp;divide;", "&amp;amp;oslash;", "&amp;amp;ugrave;", "&amp;amp;uacute;", "&amp;amp;ucirc;", "&amp;amp;uuml;", "&amp;amp;yuml;", "&amp;amp;#8218;", "&amp;amp;#402;", "&amp;amp;#8222;", "&amp;amp;#8230;", "&amp;amp;#8224;", "&amp;amp;#8225;", "&amp;amp;#710;", "&amp;amp;#8240;", "&amp;amp;#8249;", "&amp;amp;#338;", "&amp;amp;#8216;", "&amp;amp;#8217;", "&amp;amp;#8220;", "&amp;amp;#8221;", "&amp;amp;#8226;", "&amp;amp;#8211;", "&amp;amp;#8212;", "&amp;amp;#732;", "&amp;amp;#8482;", "&amp;amp;#8250;", "&amp;amp;#339;", "&amp;amp;#376;");&lt;br /&gt;return str_replace($acento, $codigo, $string);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ENGLISH&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-size:85%;"&gt;Change the special characteres to codes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Some aplications show an incompatibility with the characteres codification. The result of this are characteres with wrong codification, like a accented characteres that isn't showed correctly.&lt;br /&gt;&lt;br /&gt;An option for this is change an specifically characteres set to codes. How the codes are global, will be difficult to happen problems with the wrong codification.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://boo-box.com/link/aff:submarinoid/uid:255624/tags:php/format:box" class="bbli"&gt;PHP&lt;img src="http://boo-box.com/bbli" alt="[bb]" class="bbic" /&gt;&lt;/a&gt;&lt;script src="http://stable.boo-box.com/" type="text/javascript"&gt;&lt;/script&gt; function above replace the special characteres in a text to their codes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-4997546230555881728?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/4997546230555881728/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=4997546230555881728&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/4997546230555881728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/4997546230555881728'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/06/transformar-caracteres-especiais-em.html' title='Transformar caracteres especiais em códigos'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-4844872369941585438</id><published>2008-06-14T09:08:00.004-03:00</published><updated>2008-06-14T09:17:56.984-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Usar Apache para restringir acesso a arquivos</title><content type='html'>Using Apache to restrict file access&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PORTUGUÊS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O Apache fornece um módulo especial de segurança que é definido através do arquivo &lt;code&gt;.htaccess&lt;/code&gt;. Este é o nome padrão do arquivo que contém as diretivas que definirão o comportamento do servidor Apache. Este arquivo é acessado toda vez que um usuário faz uma requisição ao servidor, o servidor então procura pelo arquivo &lt;code&gt;.htaccess&lt;/code&gt; e verifica as permissões ou negações definidas no arquivo.&lt;br /&gt;&lt;br /&gt;Este arquivo pode ser usado para fazer restrições de acesso a arquivos, com senha ou não. O código abaixo restringe o acesso aos arquivos do site somente ao domínio &lt;code&gt;http://www.genomaweb.net/&lt;/code&gt;, ou seja, qualquer site que tentar linkar algum arquivo do site &lt;code&gt;http://www.genomaweb.net/&lt;/code&gt;, como imagens, javascript e folhas de estilo, não vai conseguir.&lt;br /&gt;&lt;pre&gt;RewriteEngine on&lt;br /&gt;RewriteCond %{HTTP_REFERER} !^http://www.genomaweb.net/.*$ [NC]&lt;br /&gt;RewriteCond %{HTTP_REFERER} !^http://www.genomaweb.net$ [NC]&lt;br /&gt;RewriteRule .*\.(.*)$ http://www.genomaweb.net/ [R,NC]&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INGLÊS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Apache has a special security module that is defined by the file &lt;code&gt;.htaccess&lt;/code&gt;. This is the default name of the file that contain the directives that will define the behavior of the Apache server. This file is accessed every time that an user make a requisition to the server, then the server search for the file &lt;code&gt;.htaccess&lt;/code&gt; and check the permissions and prohibitions defined in the file.&lt;br /&gt;&lt;br /&gt;This file can be used to make access restrictions to files, with password or not. The code below restrict the access to the files of website just fot the domain &lt;code&gt;http://www.genomaweb.net/&lt;/code&gt;, it's mean, any website that try to link some file of &lt;code&gt;http://www.genomaweb.net/&lt;/code&gt;, like imagens, javascript and cascade style sheets, won't get it.&lt;br /&gt;&lt;pre&gt;RewriteEngine on&lt;br /&gt;RewriteCond %{HTTP_REFERER} !^http://www.genomaweb.net/.*$ [NC]&lt;br /&gt;RewriteCond %{HTTP_REFERER} !^http://www.genomaweb.net$ [NC]&lt;br /&gt;RewriteRule .*\.(.*)$ http://www.genomaweb.net/ [R,NC]&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-4844872369941585438?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/4844872369941585438/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=4844872369941585438&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/4844872369941585438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/4844872369941585438'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/06/usar-apache-para-restringir-acesso.html' title='Usar Apache para restringir acesso a arquivos'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-9127868391221745266</id><published>2008-05-31T10:20:00.000-03:00</published><updated>2008-05-31T10:21:07.500-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Paginação com PHP</title><content type='html'>Este código é utilizado para fazer paginação, utilizando MySQL (sintaxes SQL) e PHP. Coloque no início do código PHP.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# --- Início dos critérios para a paginação.&lt;br /&gt;# Quantidade de itens por página.&lt;br /&gt;$numReg = 20;&lt;br /&gt;&lt;br /&gt;# Se não foi setada a página, assume-se como 0.&lt;br /&gt;if (!isset($pg))&lt;br /&gt;{&lt;br /&gt; $pg = 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# De onde começa a seleção na base de dados.&lt;br /&gt;$inicial = $pg * $numReg;&lt;br /&gt;&lt;br /&gt;# Faz o SELECT na base de dados.&lt;br /&gt;$cPaginacao = "SELECT * from tabela LIMIT $inicial, $numReg";&lt;br /&gt;$qPaginacao = mysql_query($cPaginacao);&lt;br /&gt;&lt;br /&gt;$cTotal = "SELECT * FROM tabela";&lt;br /&gt;$totalBusca = mysql_num_rows(mysql_query($cTotal));&lt;br /&gt;# --- Fim dos critérios para a paginação.&lt;/pre&gt;&lt;br /&gt;A segunda parte é a paginação propriamente dita. Inclua o código abaixo na área em que deseja que apareça a numeração. A estrutura que eu coloquei - os números dentro de uma tabela - foi só para manter o alinhamento vertical, pode ser removida sem problemas ou adaptada às necessidades.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# --- Início da paginação.&lt;br /&gt;$quantPg = ceil($totalBusca/$numReg);&lt;br /&gt;$quantPg++;&lt;br /&gt;echo "&amp;lt;table border='0' cellspacing='0' cellpadding='0'&amp;gt;";&lt;br /&gt;echo "&amp;lt;tr valign='middle'&amp;gt;";&lt;br /&gt;echo "&amp;lt;td&amp;gt;Páginas  &amp;lt;/td&amp;gt;";&lt;br /&gt;echo "&amp;lt;td&amp;gt;";&lt;br /&gt;&lt;br /&gt;# Verifica se está na primeira página, se não estiver,&lt;br /&gt;# libera o link para Anterior.&lt;br /&gt;if ( $pg &amp;gt; 0)&lt;br /&gt; {&lt;br /&gt;   echo "&amp;lt;a href=".$PHP_SELF."?pg=".($pg-1)."&amp;gt;";&lt;br /&gt;   echo "Anterior";&lt;br /&gt;   echo "&amp;lt;/a&amp;gt;";&lt;br /&gt; }&lt;br /&gt;echo "&amp;lt;/td&amp;gt;";&lt;br /&gt;# Faz aparecer os números das página entre o ANTERIOR e PRÓXIMO.&lt;br /&gt;echo "&amp;lt;td&amp;gt;";&lt;br /&gt;for($iPg = 1; $iPg &amp;lt; $quantPg; $iPg++)&lt;br /&gt;{&lt;br /&gt; # Verifica a página que o navegante está e retira o link&lt;br /&gt; # do número para identificar visualmente.&lt;br /&gt; if ($pg == ($iPg-1))&lt;br /&gt; {&lt;br /&gt;   echo " [$iPg] ";&lt;br /&gt; } else&lt;br /&gt; {&lt;br /&gt;   $iPg2 = $iPg-1;&lt;br /&gt;   echo " &amp;lt;a href=".$PHP_SELF."?pg=$iPg2&amp;gt;";&lt;br /&gt;   echo "&amp;lt;b&amp;gt;$iPg&amp;lt;/b&amp;gt;";&lt;br /&gt;   echo "&amp;lt;/a&amp;gt; ";&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;echo "&amp;lt;/td&amp;gt;";&lt;br /&gt;echo "&amp;lt;td&amp;gt;";&lt;br /&gt;# Verifica se está na ultima página, se não estiver ele&lt;br /&gt;# libera o link para próxima.&lt;br /&gt;if (($pg+2) &amp;lt; $quantPg)&lt;br /&gt;{&lt;br /&gt; echo "&amp;lt;a href=".$PHP_SELF."?pg=".($pg+1)."&amp;gt;";&lt;br /&gt; echo "Próxima";&lt;br /&gt; echo "&amp;lt;/a&amp;gt;";&lt;br /&gt;}&lt;br /&gt;echo "&amp;lt;/td&amp;gt;";&lt;br /&gt;echo "&amp;lt;/tr&amp;gt;";&lt;br /&gt;echo "&amp;lt;/table&amp;gt;";&lt;br /&gt;# --- Fim da paginação.&lt;/pre&gt;&lt;br /&gt;Não foi aplicada nenhuma folha de estilo aos links ou números das páginas. Sei que você pode fazer isso por conta própria! Após implementada a paginação, você adapta ela visualmente às suas necessidades.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-9127868391221745266?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/9127868391221745266/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=9127868391221745266&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/9127868391221745266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/9127868391221745266'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/paginao-com-php.html' title='Paginação com PHP'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-7141185410385033937</id><published>2008-05-31T09:45:00.004-03:00</published><updated>2008-05-31T10:18:04.259-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Acessando máquinas Windows via RDP (WTS)</title><content type='html'>Embora você possa acessar máquinas Windows remotamente usando o VNC, o Windows possui um protocolo próprio de acesso remoto, o RDP, que é mais eficiente que o VNC (sobretudo via Internet) e permite que vários clientes abram seções independentes no mesmo servidor, o que é impossível ao usar o VNC for Windows.&lt;br /&gt;&lt;br /&gt;O maior obstáculo é a questão do licenciamento, pois além da licença do servidor, você precisa de licenças para os clientes. As máquinas Windows XP também podem ser acessadas remotamente, mas sem suporte a várias conexões simultâneas (quando você se loga remotamente, ele coloca a seção local em espera e ao se logar localmente ele fecha a conexão remota), enquanto nas versões server o número de seções simultâneas é limitado apenas ao hardware do servidor e o número de licenças.&lt;br /&gt;&lt;br /&gt;Para ativar o acesso remoto numa máquina Windows, clique com o botão direito no "Meu Computador" e, no menu "Propriedades do Sistema", acesse a aba "Remoto"e marque a opção "Área de trabalho remota".&lt;br /&gt;&lt;br /&gt;Clique no botão "Selecionar usuários remotos" e indique quais logins de acesso poderão ser usados remotamente. Por padrão, apenas o Administrador e o usuário logado atualmente podem acessar.&lt;br /&gt;&lt;br /&gt;É importante enfatizar que apenas os usuários com senhas definidas podem acessar as máquina remotamente. Todos os logins sem senha são automaticamente recusados. Você pode definir as senhas na seção "Contas de usuário" do Painel de Controle.&lt;br /&gt;&lt;br /&gt;Em caso de problemas na ativação, acesse a opção "Ferramentas administrativas&amp;gt; Serviços" do Painel de Controle e verifique se os serviços "Alocador RemoteProcedure Call (RPC)" e "Serviços de terminal" estão ativados.&lt;br /&gt;&lt;br /&gt;Com o acesso remoto ativado na máquina Windows, vamos ao tema central deste tópico que é justamente como acessá-la remotamente a partir de clientes Linux.&lt;br /&gt;&lt;br /&gt;Esta solução é muito usada por empresas que migram as estações de trabalho para Linux, mas precisam manter algumas cópias do Windows para rodar alguns aplicativos específicos. Ao invés de manter máquinas com o Windows, ou rodá-lo via VMware, pode fazer mais sentido manter um servidor Windows na rede, com o acesso remoto ativado e permitir que os usuários abram seções remotas quando necessário.&lt;br /&gt;&lt;br /&gt;Nos clientes Linux, usamos o rdesktop, que pode ser tanto utilizado via linha de comando, quanto através do TSclient, Krdc ou outra das interfaces de acesso remoto que oferecem suporte a ele.&lt;br /&gt;&lt;br /&gt;O uso mais simples para o rdesktop é simplesmente passar o IP ou domínio da máquina remota como argumento, como em:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;    $ rdesktop 192.168.0.1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;O problema é que ele vai utilizar todas as opções default, abrindo uma tela de 800x600 com 256 cores. O protocolo RDP v5 usado no XP e 2003 server, suporta o uso de 16 bits de cor. Para ativar o recurso, inclua as opções "-5 -a 16" (o -5 é a versão do protocolo e o -a 16 especifica os bits de cor), como em:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;    $ rdesktop -5 -a 16 192.168.0.1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Para especificar a resolução, use a opção "-g", seguida pela resolução desejada, como em:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ rdesktop -5 -a 16 -g 1000x700 192.168.0.1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Ao especificar a resolução, você pode usar qualquer número que adapte a janela ao seu desktop. Não é necessário se limitar às resoluções padrão. Para abrir a seção em tela cheia, use a opção "-f", como em:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ rdesktop -5 -a 16 -f 192.168.0.1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Pressione "Ctrl+Alt+Enter" para chavear entre o modo fullscreen e janela.&lt;br /&gt;&lt;br /&gt;Ao acessar uma máquina XP ou 2003 server, você pode também redirecionar o som para o cliente, de forma que os sons dos aplicativos sejam tocados usando a placa de som e caixas do seu micro, ao invés de no servidor. Funciona mesmo que o servidor não possua placa de som.&lt;br /&gt;&lt;br /&gt;Este é um recurso que deve ser usado com cautela em redes com muitos clientes, ou via Internet, pois gera um fluxo de aproximadamente 800 kbits para cada cliente usando o som. Para ativar, adicione a opção "-r sound:local=/dev/dsp", como em:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ rdesktop -5 -a 16 -r sound:local=/dev/dsp 192.168.0.1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Note que o &lt;code&gt;/dev/dsp&lt;/code&gt; indica o dispositivo da placa de som no cliente. Se não funcionar da primeira vez, verifique as permissões de acesso (no cliente). Caso necessário, abra as permissões usando o comando &lt;code&gt;chmod 666 /dev/dsp&lt;/code&gt; (como root, no cliente).&lt;br /&gt;&lt;br /&gt;É possível também "compartilhar" pastas no cliente, de forma que os arquivos sejam acessados dentro da seção remota. Você pode, por exemplo, editar documentos numa pasta dentro do seu home, usando os programas instalados no servidor. Para isso, adicione a opção &lt;code&gt;-r disk:nome=pasta&lt;/code&gt;, onde o "nome" indica como ele será visto dentro da seção e o "pasta" é a pasta no cliente que está sendo "compartilhada". Esta opção pode ser usada em combinação com as anteriores, como em:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ rdesktop -5 -a 16 -r sound:local=/dev/dsp -r disk:arquivo=/home/joao 192.168.0.1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;As pastas compartilhadas aparecem dentro do "Meu Computador - Outros", como se fossem compartilhamentos de rede montados.&lt;br /&gt;&lt;br /&gt;Para compartilhar o CD-ROM, pendrive ou disquete, basta indicar a pasta onde eles ficam acessíveis, como em &lt;code&gt;-r disk:cdrom=/mnt/cdrom&lt;/code&gt; ou &lt;code&gt;-r disk:pendrive=/mnt/pendrive&lt;/code&gt;. A observação neste caso é que você vai sempre precisar montar o CD-ROM ou pendrive no cliente para acessá-lo dentro da seção remota. O comando simplesmente compartilha os arquivos acessíveis dentro da pasta.&lt;br /&gt;&lt;br /&gt;É possível ainda mapear a impressora, de forma que você consiga imprimir na impressora instalada no seu cliente Linux de dentro dos aplicativos na seção remota. Se os clientes e o servidor estão na mesma rede local, é mais simples compartilhar a impressora via Cups ou Samba e instala-la no servidor. O mapeamento de impressoras do RPD, por sua vez, permite usar as impressoras quando isto não é uma opção, como ao acessar um servidor via Internet.&lt;br /&gt;&lt;br /&gt;Em primeiro lugar, a impressora deve estar instalada no cliente e você deve conseguir imprimir nela usando o lpr. Nas distribuições derivadas do Debian, instale o pacote "cupsys-bsd" (que substitui o lpr), caso contrário nada vai funcionar.&lt;br /&gt;&lt;br /&gt;Ao conectar no servidor, é preciso especificar o nome da impressora, da forma como é vista pelos aplicativos no cliente e também o driver Windows (esta é a parte mais complicada...) que o servidor vai usar na hora de enviar trabalhos para ela, como em:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;    $ rdesktop -5 -a 16 -r printer:e230="Lexmark Optra E+ (MS)" 192.168.0.1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Para descobrir o driver da Impressora no Windows, abra o menu de instalação de impressora, indique o fabricante e copie o nome que aparece no menu da esquerda:&lt;br /&gt;&lt;br /&gt;No caso de impressoras paralelas, você pode também redirecionar a porta &lt;code&gt;/dev/lp0&lt;/code&gt;. Neste caso, você poderia instalar a impressora dentro da seção remota, como se ela estivesse instalada no próprio servidor. Neste caso, adicione o parâmetro &lt;code&gt;-r lptport:LPT1=/dev/lp0&lt;/code&gt;. É possível ainda redirecionar portas seriais, usando a opção &lt;code&gt;-r comport:COM1=/dev/ttyS0&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Como viu, o rdesktop suporta um grande número de opções, o que torna os comandos de acesso bastante longos. É aí que entra o TSclient, que permite especificar as opções através de uma interface muito mais amigável.&lt;br /&gt;&lt;br /&gt;Ele está disponível em várias distribuições; nas derivadas do Debian, você pode instala-lo via apt-get. A página oficial é a &lt;a href="http://gnomepro.com/tsclient/" title="TSclient" target="_blank"&gt;http://gnomepro.com/tsclient/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Por:  Carlos E. Morimoto&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-7141185410385033937?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/7141185410385033937/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=7141185410385033937&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/7141185410385033937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/7141185410385033937'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/acessando-mquinas-windows-via-rdp-wts.html' title='Acessando máquinas Windows via RDP (WTS)'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-8042916343529136513</id><published>2008-05-31T09:42:00.002-03:00</published><updated>2008-05-31T09:44:27.346-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latex'/><title type='text'>Corretor ortográfico no LaTeX</title><content type='html'>&lt;strong style="font-weight: normal;"&gt;Como habilitar o corretor ortográfico para o LaTeX usando o TeXnicCenter.&lt;/strong&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Tools / Options / Aba Spelling / Clique no link "Download Directories"&lt;/li&gt; &lt;li&gt;Baixe o idioma desejado&lt;/li&gt; &lt;li&gt;Salve e descompacte no diretório onde o TeXnicCenter foi instalado&lt;br /&gt;&lt;code&gt;Ex.: C:\Arquivos de programas\TeXnicCenter\Language&lt;/code&gt;&lt;/li&gt; &lt;li&gt;Reinicie o TeXnicCenter&lt;/li&gt; &lt;li&gt;Tools / Options / Aba Spelling / Clique no link "Download Directories"&lt;/li&gt; &lt;li&gt;Em "Language" selecione o idioma desejado&lt;/li&gt; &lt;li&gt;Configure como desejado!&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-8042916343529136513?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/8042916343529136513/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=8042916343529136513&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/8042916343529136513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/8042916343529136513'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/corretor-ortogrfico-no-latex.html' title='Corretor ortográfico no LaTeX'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-3814900062867228505</id><published>2008-05-31T09:36:00.001-03:00</published><updated>2008-05-31T09:38:25.001-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Look and Feel no Java</title><content type='html'>Look and Feel é basicamente a aparência que sua aplicação irá tomar, definindo a forma como os componentes irão ser apresentados na tela.&lt;br /&gt;&lt;pre&gt;try {&lt;br /&gt;  UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");&lt;br /&gt;  SwingUtilities.updateComponentTreeUI(this);&lt;br /&gt;  this.pack();&lt;br /&gt;} catch(Exception e) {&lt;br /&gt;  e.printStackTrace();&lt;br /&gt;}&lt;/pre&gt;&lt;code&gt;SwingUtilities.updateComponentTreeUI(this)&lt;/code&gt; serve para atualizar os componentes caso eles já estejam criados. Caso os componentes ainda não foram inicializados, esta linha é desnecessária, juntamente com &lt;code&gt;this.pack().&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Alguns LookAndFeell's&lt;br /&gt;&lt;pre&gt;com.sun.java.swing.plaf.gtk.GTKLookAndFeel (padrão GTK+)&lt;br /&gt;javax.swing.plaf.metal.MetalLookAndFeel (Metal)&lt;br /&gt;com.sun.java.swing.plaf.windows.WindowsLookAndFeel (Windows)&lt;br /&gt;com.sun.java.swing.plaf.motif.MotifLookAndFeel (Motif)&lt;br /&gt;javax.swing.plaf.mac.MacLookAndFeel (Mac)&lt;/pre&gt;Alguns LookAndFeel's podem gerar exceções por não existirem ou não estarem instalados no sistema ou não serem suportados em determinada plataforma. Alguns layouts, dependendo da plataforma, podem apresentar formatos diferentes em determinados componentes, como botões e caixas de texto,  fazendo com que a aparência da aplicação fique desorganizada.&lt;br /&gt;&lt;br /&gt;&lt;a title="JDance" href="http://www.jdance.com/lookandfeel.shtm" target="_blank"&gt;JDance&lt;/a&gt; é um site com vários LAF disponíveis para download.&lt;br /&gt;&lt;br /&gt;Vários links sobre LAF:&lt;br /&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="http://java.sun.com/products/jlf/ed2/book/index.html" target="_blank"&gt;Java Look and Feel Design Guidelines&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://java.sun.com/products/jlf/at/book/index.html" target="_blank"&gt;Java Look and Feel Design Guidelines: Advanced Topics&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://java.sun.com/developer/techDocs/hi/repository/" target="_blank"&gt;Java look and feel Graphics Repository&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://java.sun.com/developer/techDocs/hi/jlf.html" target="_blank"&gt;Papers on Java Software Human Interface Issues and More&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.imasters.com.br/artigo/2496" target="_blank"&gt;Como instalar um Look And Feel&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-3814900062867228505?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/3814900062867228505/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=3814900062867228505&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/3814900062867228505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/3814900062867228505'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/look-and-feel-no-java.html' title='Look and Feel no Java'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-4572921790388274076</id><published>2008-05-31T09:31:00.002-03:00</published><updated>2008-09-17T20:54:39.525-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Capturar imagem na tela com Java</title><content type='html'>Download de dois arquivos  em Java para fazer a captura da imagem no monitor (Print Screen).&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.oabcascavel.org.br/anderzd/genomaweb/arquivo/screencapture.java" title="ScreenCapture"&gt;ScreenCapture.java&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oabcascavel.org.br/anderzd/genomaweb/arquivo/screenshot.java" title="ScreenShot"&gt;ScreenShot.java&lt;/a&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-4572921790388274076?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/4572921790388274076/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=4572921790388274076&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/4572921790388274076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/4572921790388274076'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/capturar-imagem-na-tela-com-java.html' title='Capturar imagem na tela com Java'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-3886889325956935725</id><published>2008-05-31T09:27:00.002-03:00</published><updated>2008-09-17T20:55:11.206-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='banco-dados'/><category scheme='http://www.blogger.com/atom/ns#' term='access'/><title type='text'>Conectando MS Access via ODBC com Java</title><content type='html'>Arquivo em Java para conectar em um banco de dados MS Access via ODBC.&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.oabcascavel.org.br/anderzd/genomaweb/arquivo/jdbcapp.java" title="JDBCapp"&gt;JDBCapp.java&lt;/a&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-3886889325956935725?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/3886889325956935725/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=3886889325956935725&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/3886889325956935725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/3886889325956935725'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/conectando-ms-access-via-odbc-com-java.html' title='Conectando MS Access via ODBC com Java'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-5931475471210935319</id><published>2008-05-31T09:19:00.003-03:00</published><updated>2008-09-17T20:55:35.102-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Redimensionando imagem com Java</title><content type='html'>Arquivo contendo rotina para redimensionar uma imagem usando Java.&lt;br /&gt;&lt;blockquote&gt;&lt;a title="Miniatura" href="http://www.oabcascavel.org.br/anderzd/genomaweb/arquivo/miniatura.java"&gt;Miniatura.java&lt;/a&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-5931475471210935319?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/5931475471210935319/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=5931475471210935319&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/5931475471210935319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/5931475471210935319'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/redimensionando-imagem-com-java.html' title='Redimensionando imagem com Java'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-3677850174710762357</id><published>2008-05-31T09:12:00.002-03:00</published><updated>2008-05-31T09:17:54.229-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>Acentuação no AJAX</title><content type='html'>Existem várias maneiras de resolver - ou pelo menos tentar - o problema de acentuação no AJAX. Eis algumas:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Na função em PHP que é realizada a ação, o retorno deve ser dado por&lt;br /&gt;&lt;code&gt;print(&lt;a href="http://br.php.net/manual/pt_BR/function.urlencode.php" target="_blank"&gt;urlencode&lt;/a&gt;($campo["ds_texto"]));&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Isso irá codificar o resultado que vem da pesquisa SQL. Na função AJAX, após a variável &lt;code&gt;texto &lt;/code&gt;ter recebido a resposta &lt;code&gt;responseText&lt;/code&gt;, colocar:&lt;br /&gt;&lt;code&gt;texto=texto.replace(/\+/g," ");&lt;br /&gt;texto=unescape(texto);&lt;/code&gt;&lt;br /&gt;Isso descodificará o texto.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;A segunda forma é colocar na função em PHP que é realizada a ação, o seguinte item:&lt;br /&gt;&lt;code&gt;header("Content-Type: text/html;  charset=ISO-8859-1",true);&lt;/code&gt;&lt;br /&gt;Isso fará com que a codificação seja definida como &lt;code&gt;ISO-8859-1&lt;/code&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Outra forma não tão segura é colocar&lt;br /&gt;&lt;code&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" /&amp;gt;&lt;/code&gt; na página onde será exibido o resultado.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Outra forma é alterar a configuração do arquivo &lt;code&gt;httpd.conf&lt;/code&gt; do Apache. Isso fica para outra hora!&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;Se Murphy ajudar é capaz que tudo isso funcione. Talvez nenhum funcione, talvez funcione parcialmente. Firefox e Internet Explorer nunca se deram muito bem, há algumas desavenças! :D&lt;br /&gt;&lt;br /&gt;A solução que funcionou pra mim foi a &lt;strong&gt;2&lt;/strong&gt;. Inseri apenas o &lt;code&gt;header &lt;/code&gt;na chamada PHP e deu certo, tanto pro Firefox quanto no Internet Explorer e Opera.&lt;br /&gt;&lt;br /&gt;Tem que ficar atento quanto ao cache. Geralmente se altera uma chamada ou função e ela não reflete em solução. Reiniciar o computador, dasabilitar o cache pelas páginas ou limpar o cache de vez em quando ajuda!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-3677850174710762357?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/3677850174710762357/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=3677850174710762357&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/3677850174710762357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/3677850174710762357'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/acentuao-no-ajax.html' title='Acentuação no AJAX'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-6438548039625902763</id><published>2008-05-31T09:11:00.000-03:00</published><updated>2008-05-31T09:12:07.455-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teoria'/><title type='text'>Metodologia Científica</title><content type='html'>São usadas expressões latinas para diversas finalidades, uma delas é citar referências bibliográficas.&lt;br /&gt;&lt;br /&gt;A expressão latina &lt;em&gt;apud&lt;/em&gt; significa citado por, conforme, segundo. É utilizada quando se faz referência à uma fonte secundária.&lt;br /&gt;&lt;br /&gt;De acordo com a NBR 10520 (Norma Brasileira) da Associação Brasileira de Normas Técnicas - ABNT (2001) -, pode-se utulizar a expressão latina &lt;em&gt;apud&lt;/em&gt; para citar um documento ao qual não se teve acesso direto, mas que foi citado em outra obra (à qual, naturalmente, se teve acesso). Desta forma, a citação é chamada de indireta.&lt;br /&gt;&lt;br /&gt;Alguns exemplos de uso de &lt;em&gt;apud&lt;/em&gt;:&lt;br /&gt;&lt;blockquote&gt;"Segundo Cardoso (2000 &lt;em&gt;apud &lt;/em&gt;MALDONADO, 2003, p. 40), [...]"&lt;br /&gt;"[...] (CARDOSO, 2000 &lt;em&gt;apud &lt;/em&gt;MALDONADO, 2003, p. 40)."&lt;br /&gt;"[...] (MARTINS, 1986 &lt;em&gt;apud &lt;/em&gt;SOUZA, 1991, p. 20-21)."&lt;/blockquote&gt;&lt;br /&gt;Nas referências colocam-se, se for possível, as duas obras envolvidas na citação indireta.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Atenção&lt;/strong&gt;: deve-se, na medida do possível, para garantir a exatidão da informação, procurar usar citações diretas. Ou seja, deve-se procurar obter as informações das fontes originais sempre que estas estiverem disponíveis, deixando para usar a expressão &lt;em&gt;apud &lt;/em&gt;apenas para obras de difícil acesso.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Adaptado de &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.ulbra.tche.br/%7Eroland/tcc-gr/perguntas.html" target="_blank"&gt;TCC Gravataí&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-6438548039625902763?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/6438548039625902763/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=6438548039625902763&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/6438548039625902763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/6438548039625902763'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/metodologia-cientfica.html' title='Metodologia Científica'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-2588009609882943371</id><published>2008-05-31T09:04:00.000-03:00</published><updated>2008-05-31T09:06:28.541-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Zune Theme para Windows XP</title><content type='html'>&lt;a href="http://atomikscr.deviantart.com/art/Zune-Theme-Color-Mod-50421916" target="_blank"&gt;Zune&lt;/a&gt; é um tema para Windows XP, parecido com o &lt;a href="http://www.istartedsomething.com/20061029/royale-noir/" target="_blank"&gt;Royale Noir&lt;/a&gt;, a diferença é que oferece mais opções de cores.&lt;br /&gt;&lt;br /&gt;O autor disponibiliza no site da devianART um &lt;a href="http://fc02.deviantart.com/fs13/i/2007/067/e/b/Zune_Theme_Color_Mod_by_atomikscr.jpg" target="_blank"&gt;screenshot &lt;/a&gt;do tema com as várias opções de cores.&lt;br /&gt;&lt;p align="center"&gt;&lt;img src="http://anderzd.wordpress.com/files/2007/09/zune.jpg" alt="zune.jpg" /&gt;&lt;/p&gt;&lt;br /&gt;O tema pode ser baixado &lt;a href="http://atomikscr.deviantart.com/art/Zune-Theme-Color-Mod-50421916" target="_blank"&gt;no site da devianART&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Caso haja problema na instalação do tema, &lt;a href="http://www.softpedia.com/get/Desktop-Enhancements/Themes/Royale-Noir-Theme.shtml" target="_blank"&gt;leia este tutorial&lt;/a&gt; - que não é do Zune mas sim do Royale Noir, mas o funcionamento é o mesmo - que é bem provável que encontre a solução.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-2588009609882943371?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/2588009609882943371/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=2588009609882943371&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/2588009609882943371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/2588009609882943371'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/zune-theme-para-windows-xp.html' title='Zune Theme para Windows XP'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-8401175424459299036</id><published>2008-05-29T14:37:00.001-03:00</published><updated>2008-05-29T14:37:52.504-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Firefox - Download Day</title><content type='html'>Para não fugir das minhas raízes e ajudar a "mão que me alimenta" peço que quem chegar até aqui participe do:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a href="http://www.spreadfirefox.com/pt-BR/worldrecord"&gt;&lt;img alt="Download Day 2008" title="Download Day 2008" src="http://www.spreadfirefox.com/sites/all/themes/spreadfirefox_RCS/images/download-day/buttons/pt-BR/180x150_02.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-8401175424459299036?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/8401175424459299036/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=8401175424459299036&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/8401175424459299036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/8401175424459299036'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/05/firefox-download-day.html' title='Firefox - Download Day'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-8115103220585077094</id><published>2008-03-14T09:07:00.002-03:00</published><updated>2008-03-14T09:11:13.640-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'>Criar usuário no MS SQL Server</title><content type='html'>No SQL Server para adicionar um usuário basta utilizar o próprio Query Analyzer ou qualquer cliente de banco de dados que permite conexão com SQL Server. Para criar usuários, utilize os seguintes comandos:&lt;pre&gt;SP_AddLogin 'usuario', 'senha'&lt;/pre&gt;Em seguida:&lt;pre&gt;SP_AddUser 'usuario'&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-8115103220585077094?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/8115103220585077094/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=8115103220585077094&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/8115103220585077094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/8115103220585077094'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/03/criar-usurio-no-ms-sql-server.html' title='Criar usuário no MS SQL Server'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-5591725115410939880</id><published>2008-03-01T11:11:00.005-03:00</published><updated>2008-03-01T11:37:55.323-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Detectar bloqueador de popup</title><content type='html'>Site que utilizam popup geralmente têm problemas com os bloqueadores de popup. Internet Banking e outros geralmente abrem uma janela para que o usuário possa continuar navegando no site e concluir o processo que havia iniciado.&lt;br /&gt;&lt;br /&gt;Dessa forma se faz necessário detectar antecipadamente se o usuário possui ou não o bloqueador de popup ativado, com isso ele pode ser avisado, desativar o bloqueador e continuar navegando no site.&lt;br /&gt;&lt;br /&gt;O script abaixo, em JavaScript, se propõe justamente a isso, detectar se o usuário possui ou não um bloqueador de popups ativado e avisá-lo da situação.&lt;pre&gt;var tentativa = 1;&lt;br /&gt;var aviso = 1;&lt;br /&gt; &lt;br /&gt;function getBloqueador()&lt;br /&gt;{&lt;br /&gt;    var janela = window.open("#","janelaBloq", "width=10, height=10, top=0, left=0, scrollbars=no, status=no, resizable=no, directories=no, location=no, menubar=no, titlebar=no, toolbar=no");&lt;br /&gt;    if (janela == null)&lt;br /&gt;    {&lt;br /&gt;        if (tentativa == 1)&lt;br /&gt;        {&lt;br /&gt;            alert("Bloqueador de popup ativado. Desabilite para continuar.");&lt;br /&gt;            tentativa++;&lt;br /&gt;            return false;&lt;br /&gt;        } else if ((tentativa &gt; 1) &amp;&amp; (tentativa &lt;= 3))&lt;br /&gt;        {&lt;br /&gt;            alert("Tentativa " + tentativa + " de 3: O bloqueador ainda está ativado.");&lt;br /&gt;            tentativa++;&lt;br /&gt;            return false;&lt;br /&gt;        } else if (tentativa &gt; 3) &lt;br /&gt;        {&lt;br /&gt;            if (aviso == 1)&lt;br /&gt;            {&lt;br /&gt;                if (confirm("O bloqueador de popups ainda está ativado, você pode ter dificuldades para acessar o site.\n\nDeseja continuar assim mesmo?"))&lt;br /&gt;                {&lt;br /&gt;                    aviso = 0;&lt;br /&gt;                    return true;&lt;br /&gt;                } else &lt;br /&gt;                {&lt;br /&gt;                    aviso = 0;&lt;br /&gt;                    return false;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    } else&lt;br /&gt;    {&lt;br /&gt;        janela.close();&lt;br /&gt;        return true;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;Este script tenta abrir uma janela popup, caso não consiga, inicia a sequência de avisos ao usuário. Caso consiga abrir a janela, nenhuma mensagem é exibida e o usuário segue a navegação normalmente.&lt;br /&gt;&lt;br /&gt;Clique em links que abrem em uma janela não são considerados popup, ou seja, as janelas que abrem automaticamente são consideradas popup.&lt;br /&gt;&lt;br /&gt;Este script pode ser usado no &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;, com o evento &lt;code&gt;onLoad()&lt;/code&gt;, no evento &lt;code&gt;onMouseOver()&lt;/code&gt; de algum elemento (um botão ou link, por exemplo).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-5591725115410939880?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/5591725115410939880/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=5591725115410939880&amp;isPopup=true' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/5591725115410939880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/5591725115410939880'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/03/detectar-bloqueador-de-popup.html' title='Detectar bloqueador de popup'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-784400046587861382</id><published>2008-02-29T11:12:00.001-03:00</published><updated>2008-02-29T11:17:42.457-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Restaurando MBR após instalação do Windows</title><content type='html'>Para quem usa dual boot (Linux/Windows) e teve que reinstalar o Win, sabe que ele toma conta da MBR.&lt;br /&gt;&lt;br /&gt;Com o GRUB gerenciando o boot, é simples fazer com que ele volte a atuar! Caso já tenha instalado o GRUB antes de reinstalar o Win, ele já está configurado para boot com os dois sistemas operacionais, sendo assim, basta fazer com que ele volte a gerenciar o boot pela MBR.&lt;br /&gt;&lt;ol&gt;&lt;br /&gt; &lt;li&gt;Inicie o computador com um Live CD;&lt;/li&gt;&lt;li&gt;Abra um terminal e mude para root;&lt;br /&gt;&lt;code&gt;$ sudo passwd root&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Escolha uma nova senha para root;&lt;/li&gt;&lt;li&gt;Monte a partição;&lt;br /&gt;&lt;code&gt;# mount -t reiserfs /dev/hdaX /mnt/hdaX&lt;/code&gt;&lt;br /&gt;&lt;code&gt;X&lt;/code&gt; é o número da partição que está instalado o SO. Para saber onde está instalado o SO, execute &lt;code&gt;fdisk -l&lt;/code&gt; ou &lt;code&gt;fdisk /dev/hda&lt;/code&gt;, digitanto &lt;code&gt;p&lt;/code&gt; logo em seguida.&lt;/li&gt;&lt;li&gt;"Entre" na distribuição instalada na máquina;&lt;br /&gt;&lt;code&gt;# chroot /mnt/hdaX&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Como o GRUB já está configurado, basta reinstalá-lo;&lt;br /&gt;&lt;code&gt;# grub-install /dev/hda&lt;/code&gt;&lt;/li&gt;&lt;li&gt;Pronto! O GRUB voltou a gerenciar o boot!&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-784400046587861382?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/784400046587861382/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=784400046587861382&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/784400046587861382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/784400046587861382'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/02/restaurando-mbr-aps-instalao-do-windows.html' title='Restaurando MBR após instalação do Windows'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-7465103160396714345</id><published>2008-02-29T10:56:00.000-03:00</published><updated>2008-02-29T10:57:59.167-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Validar checkbox com JavaScript</title><content type='html'>Este script valida checkbox gerados dinamicamente, com nomes diferentes.&lt;br /&gt;&lt;pre&gt;function validaCheckbox(v)&lt;br /&gt;{ &lt;br /&gt;    todos = document.getElementsByTagName('input'); &lt;br /&gt;    for(x = 0; x &amp;lt; todos.length; x++) &lt;br /&gt;    { &lt;br /&gt;        if (todos[x].checked) &lt;br /&gt;        { &lt;br /&gt;            return true; &lt;br /&gt;        } &lt;br /&gt;    } &lt;br /&gt;    alert("Selecione pelo menos um item!"); &lt;br /&gt;    return false; &lt;br /&gt;}&lt;/pre&gt;Na chamada do formulário &lt;code&gt;&amp;lt;form [...] &amp;gt;&lt;/code&gt; basta colocar &lt;code&gt;onSubmit="return validaCheckbox(this);"&lt;/code&gt;&lt;pre&gt;&amp;lt;form action="arquivo.php" method="post" onSubmit="return validaCheckbox(this);"&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-7465103160396714345?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/7465103160396714345/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=7465103160396714345&amp;isPopup=true' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/7465103160396714345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/7465103160396714345'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/02/validar-checkbox-com-javascript.html' title='Validar checkbox com JavaScript'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-7485251222662018847</id><published>2008-02-29T10:51:00.003-03:00</published><updated>2008-02-29T10:54:17.956-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Converter string para maiúsculo em PHP</title><content type='html'>A função abaixo converte uma string para maiúsculo em PHP, inclusive caracteres acentuados. É usada a função &lt;code&gt;strtoupper &lt;/code&gt;para converter a string e, em casos em que caracteres acentuados não são convertidos, é usada a função &lt;code&gt;str_replace&lt;/code&gt;, que substitui o caractere acentuado pelo seu equivalente maiúsculo.&lt;br /&gt;&lt;br /&gt;Em suma, converte, usando PHP, uma string qualquer para sua equivalente maíscula.&lt;pre&gt;function converteMaiusculo($string) &lt;br /&gt;{ &lt;br /&gt;    $string = strtoupper ($string); &lt;br /&gt;    $string = str_replace ("â", "Â", $string); &lt;br /&gt;    $string = str_replace ("á", "Á", $string); &lt;br /&gt;    $string = str_replace ("ã", "Ã", $string); &lt;br /&gt;    $string = str_replace ("à", "A", $string); &lt;br /&gt;    $string = str_replace ("ê", "Ê", $string); &lt;br /&gt;    $string = str_replace ("é", "É", $string); &lt;br /&gt;    $string = str_replace ("Î", "I", $string); &lt;br /&gt;    $string = str_replace ("í", "Í", $string); &lt;br /&gt;    $string = str_replace ("ó", "Ó", $string); &lt;br /&gt;    $string = str_replace ("õ", "Õ", $string); &lt;br /&gt;    $string = str_replace ("ô", "Ô", $string); &lt;br /&gt;    $string = str_replace ("ú", "Ú", $string); &lt;br /&gt;    $string = str_replace ("Û", "U", $string); &lt;br /&gt;    $string = str_replace ("ç", "Ç", $string); &lt;br /&gt;    return $string; &lt;br /&gt;}&lt;/pre&gt;A chamada da função é feita da seguinte maneira:&lt;pre&gt;$variavel = converteMaiusculo($variavel); &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-7485251222662018847?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/7485251222662018847/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=7485251222662018847&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/7485251222662018847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/7485251222662018847'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/02/converter-string-para-maisculo-em-php.html' title='Converter string para maiúsculo em PHP'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-837235807733937692</id><published>2008-02-29T10:48:00.000-03:00</published><updated>2008-02-29T10:49:18.470-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>JavaScript desabilitado</title><content type='html'>Para verificar se o JavaScript está desabilitado, basta:&lt;pre&gt;&amp;lt;noscript&amp;gt; &lt;br /&gt;    Ação caso o JavaScript não esteja habilitado &lt;br /&gt;&amp;lt;/noscript&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-837235807733937692?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/837235807733937692/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=837235807733937692&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/837235807733937692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/837235807733937692'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/02/javascript-desabilitado.html' title='JavaScript desabilitado'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-6270282740841706812</id><published>2008-02-29T10:44:00.001-03:00</published><updated>2008-02-29T10:45:55.908-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Escolher o que imprimir com CSS</title><content type='html'>&lt;a TARGET="_blank" HREF="http://pt.wikipedia.org/wiki/Cascading_Style_Sheets"&gt;CSS&lt;/a&gt; oferece uma forma de selecionar o que imprimir em uma página, ou seja, quais quadros você deseja imprimir.&lt;br /&gt;&lt;br /&gt;Isto é definido pela tag &lt;code&gt;@media print&lt;/code&gt;. Dentro desta tag você coloca as DIVs que não deseja imprimir. Por exemplo, após ter definido a folha de estilo para seu site, dividido em &lt;code&gt;cabeçalho&lt;/code&gt;, &lt;code&gt;conteúdo &lt;/code&gt;e &lt;code&gt;rodapé&lt;/code&gt;, você pode definir quais DIVs poderão ser impressas. Caso queira que somente o &lt;code&gt;conteúdo &lt;/code&gt;seja impresso, a definição de &lt;code&gt;@media print&lt;/code&gt; ficaria assim:&lt;br /&gt;&lt;pre&gt;@media print &lt;br /&gt;{&lt;br /&gt;    #cabecalho { display: none; }&lt;br /&gt;    #rodape { display: none; }&lt;br /&gt;}&lt;/pre&gt;Neste caso, impede-se o &lt;code&gt;cabeçalho &lt;/code&gt;e o &lt;code&gt;rodapé &lt;/code&gt;de serem impressos, ficando apenas o &lt;code&gt;conteúdo&lt;/code&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-6270282740841706812?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/6270282740841706812/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=6270282740841706812&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/6270282740841706812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/6270282740841706812'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/02/escolher-o-que-imprimir-com-css.html' title='Escolher o que imprimir com CSS'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-4572838622124591780</id><published>2008-02-29T10:41:00.001-03:00</published><updated>2008-02-29T10:46:23.453-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Variável variável em PHP</title><content type='html'>O PHP dispõe de um tipo de variável que permite que se altere seu nome dinamicamente. A variável que varia!&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$var1  = 5;&lt;br /&gt;$var2 = 'var1';&lt;/pre&gt;Dessa forma pode-se usar o nome &lt;code&gt;var2 &lt;/code&gt;no lugar de &lt;code&gt;var1&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$$var2 = 10;&lt;/pre&gt;Isto é o mesmo que:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$var1 = 10;&lt;/pre&gt;Várias variáveis que variam invariavelmente!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-4572838622124591780?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/4572838622124591780/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=4572838622124591780&amp;isPopup=true' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/4572838622124591780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/4572838622124591780'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/02/varivel-varivel-em-php.html' title='Variável variável em PHP'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-8059537168734328315</id><published>2008-02-29T10:35:00.004-03:00</published><updated>2008-02-29T10:39:13.905-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><title type='text'>Exibir e esconder DIV com JavaScript</title><content type='html'>Uma forma simples de exibir conteúdo conforme a ação do usuário é através de camadas e JavaScript.&lt;br /&gt;&lt;br /&gt;Um ícone de ajuda, por exemplo, ao ser clicado pode exibir uma camada com informações pertinentes, e esta mesma camada, ao ser clicada, pode se ocultar.&lt;br /&gt;&lt;br /&gt;O evento JavaScript para fazer isto é o sequinte:&lt;br /&gt;&lt;pre&gt;function controlaCamada(nomeDiv) &lt;br /&gt;{ &lt;br /&gt;    if( document.getElementById(nomeDiv).style.visibility == "hidden" ) &lt;br /&gt;    { &lt;br /&gt;        document.getElementById(nomeDiv).style.visibility = "visible"; &lt;br /&gt;    } else &lt;br /&gt;    { &lt;br /&gt;        document.getElementById(nomeDiv).style.visibility = "hidden"; &lt;br /&gt;    } &lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, caso a camada esteja visível, então esconde, caso esteja escondida, então exibe!&lt;br /&gt;&lt;br /&gt;O código a ser inserido no HTML é o seguinte:&lt;br /&gt;&lt;pre&gt;&amp;lt;div id="nome" onClick="controlaCamada('nome')"&amp;gt; &lt;br /&gt;    Texto desejado &lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;&lt;br /&gt;A camada possui um evento &lt;code&gt;onClick&lt;/code&gt;. Quando clicada executa a função &lt;code&gt;controlaCamada()&lt;/code&gt; em JavaScript, que faz exatamente o que foi mencionado acima!&lt;br /&gt;&lt;br /&gt;Este evento &lt;code&gt;onClick &lt;/code&gt;chamando a função JavaScript pode ser adicionado a qualquer elemento, como em um ícone de ajuda por exemplo, que quando clicado, exibe a camada, e a camada ou o ícone, quando clicado de novo, esconde a camada. Magia pura!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-8059537168734328315?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/8059537168734328315/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=8059537168734328315&amp;isPopup=true' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/8059537168734328315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/8059537168734328315'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/02/exibir-e-esconder-div-com-javascript.html' title='Exibir e esconder DIV com JavaScript'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-374716464488078491.post-6948472517273111244</id><published>2008-02-29T10:19:00.001-03:00</published><updated>2008-02-29T10:26:42.004-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Pegar dados de um Select Multiple com PHP</title><content type='html'>Hoje precisei vincular um item a várias categorias. Como estrutura, tinha uma tabela com perguntas e respostas e outra tabela com as categorias que essas perguntas podiam ser vinculadas. Criei uma outra tabela que tinha como chave estrangeira as chaves primárias dessas duas tabelas.&lt;br /&gt;&lt;br /&gt;Na interface com o usuário, fiz um cadastro de perguntas e respostas, e na mesma tela o usuário poderia vincular as categorias que a pergunta se encaixava. Como as categorias podiam ser muitas, não quis usar &lt;code&gt;checkbox&lt;/code&gt;. Como solução optei pelo &lt;code&gt;select multiple&lt;/code&gt;, que definido o tamanho ele habilita a barra de rolagem, caso necessite.&lt;br /&gt;&lt;br /&gt;Para pegar os dados desse formulário, fiz o seguinte: criei um campo &lt;code&gt;select &lt;/code&gt;com os dados que eu precisava:&lt;br /&gt;&lt;pre&gt;&amp;lt;select name="nomeSelect[]" size="5" multiple&amp;gt; &lt;br /&gt;    &amp;lt;option value="1"&amp;gt;Valor 1&amp;lt;/option&amp;gt; &lt;br /&gt;    &amp;lt;option value="2"&amp;gt;Valor 2&amp;lt;/option&amp;gt; &lt;br /&gt;    &amp;lt;option value="3"&amp;gt;Valor 3&amp;lt;/option&amp;gt; &lt;br /&gt;&amp;lt;/select&amp;gt;&lt;/pre&gt;&lt;br /&gt;Para pegar os dados enviados pelo &lt;code&gt;POST&lt;/code&gt;, fiz o seguinte:&lt;br /&gt;&lt;pre&gt;for ($i = 0; $i &amp;lt; count($_POST['nomeSelect']); $i++) &lt;br /&gt;{ &lt;br /&gt;    echo $_POST['nomeSelect'][$i]; &lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;No código, eu usava o laço de repetição para vincular a pergunta a cada categoria selecionada no &lt;code&gt;select multiple&lt;/code&gt;, através de &lt;code&gt;INSERT &lt;/code&gt;na base de dados!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/374716464488078491-6948472517273111244?l=www.genomaweb.net' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.genomaweb.net/feeds/6948472517273111244/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=374716464488078491&amp;postID=6948472517273111244&amp;isPopup=true' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/6948472517273111244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/374716464488078491/posts/default/6948472517273111244'/><link rel='alternate' type='text/html' href='http://www.genomaweb.net/2008/02/pegar-dados-de-um-select-multiple-com.html' title='Pegar dados de um Select Multiple com PHP'/><author><name>Anderson Dias</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='11910950840365543293'/></author><thr:total>1</thr:total></entry></feed>