<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rss [<!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">]>
<rss version="2.0" xml:base="http://sysd.org/stas">
<channel>
 <title>stas&#039;den - city</title>
 <link>http://sysd.org/stas/taxonomy/term/22/0</link>
 <description></description>
 <language>en</language>
<item>
 <title>Formulário CEP/CPF/CNPJ</title>
 <link>http://sysd.org/stas/node/150</link>
 <description>&lt;p align=&quot;center&quot;&gt;
&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0&quot; width=&quot;423&quot; height=&quot;200&quot; id=&quot;brloc&quot; align=&quot;middle&quot;&gt;
&lt;param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot; /&gt;
&lt;param name=&quot;movie&quot; value=&quot;/brloc/brloc.swf&quot; /&gt;&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;&lt;param name=&quot;bgcolor&quot; value=&quot;#ffffff&quot; /&gt;&lt;embed src=&quot;/brloc/brloc.swf&quot; quality=&quot;high&quot; bgcolor=&quot;#ffffff&quot; width=&quot;423&quot; height=&quot;200&quot; name=&quot;brloc&quot; align=&quot;middle&quot; allowScriptAccess=&quot;sameDomain&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; /&gt;
&lt;/object&gt;
&lt;br&gt;
&lt;small&gt;&lt;i&gt;(tente preencher os campos acima; a informa&amp;ccedil;&amp;atilde;o &amp;eacute; atualizada instantaneamente)&lt;/i&gt;&lt;/small&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;br&gt;
Este projeto &amp;eacute; o sucessor do&amp;nbsp;&lt;a
 href=&quot;http://sysd.org/stas/node/99&quot;&gt;CEP-2-City&lt;/a&gt;.
&amp;Eacute; um formul&amp;aacute;rio &lt;i&gt;online&lt;/i&gt; que:&lt;br&gt;
&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Verifica a validade do n&amp;uacute;mero &lt;a
 href=&quot;http://pt.wikipedia.org/wiki/Cadastro_de_Pessoas_F%C3%ADsicas&quot;
 target=&quot;_blank&quot;&gt;CPF&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Verifica a validade do n&amp;uacute;mero &lt;a
 href=&quot;http://pt.wikipedia.org/wiki/CNPJ&quot; target=&quot;_blank&quot;&gt;CNPJ&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;A partir do &lt;a
 href=&quot;http://pt.wikipedia.org/wiki/Sistema_endere%C3%A7amento_postal_no_Brasil&quot;
 target=&quot;_blank&quot;&gt;CEP&lt;/a&gt;, deduz o endere&amp;ccedil;o
completo (Cidade/Estado/Bairro/Rua)&lt;/li&gt;
  &lt;li&gt;A partir do CEP, deduz o c&amp;oacute;digo &lt;a
 href=&quot;http://pt.wikipedia.org/wiki/Discagem_direta_a_dist%C3%A2ncia#Lista_de_c.C3.B3digos_DDD_brasileiros_por_estado_e_seus_principais_munic.C3.ADpios&quot;
 target=&quot;_blank&quot;&gt;DDD&lt;/a&gt; da regi&amp;atilde;o &lt;img src=&quot;misc/smileys/wink.png&quot; title=&quot;Eye-wink&quot; alt=&quot;Eye-wink&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
O banco de dados utilizado &amp;eacute; compilado a partir de diversas
fontes. Se n&amp;atilde;o constar a informa&amp;ccedil;&amp;atilde;o da
rua, ent&amp;atilde;o somente a cidade &amp;eacute; retornada. A
interface com o banco de dados foi implementada usando &lt;a
 href=&quot;http://en.wikipedia.org/wiki/Perl&quot; target=&quot;_blank&quot;&gt;Perl&lt;/a&gt;
e &lt;a href=&quot;http://en.wikipedia.org/wiki/PHP&quot; target=&quot;_blank&quot;&gt;PHP&lt;/a&gt;,
e pode ser acessada via &lt;a
 href=&quot;http://en.wikipedia.org/wiki/Common_Gateway_Interface&quot;
 target=&quot;_blank&quot;&gt;CGI&lt;/a&gt;, &lt;a target=&quot;_blank&quot;
 href=&quot;http://en.wikipedia.org/wiki/Adobe_Flash&quot;&gt;Flash&lt;/a&gt;
ou &lt;a href=&quot;http://en.wikipedia.org/wiki/Ajax_%28programming%29&quot;
 target=&quot;_blank&quot;&gt;AJAX&lt;/a&gt;. O sistema de busca
&amp;eacute; extremamente eficiente, e n&amp;atilde;o necessita de &lt;a
 href=&quot;http://en.wikipedia.org/wiki/MySQL&quot; target=&quot;_blank&quot;&gt;MySQL&lt;/a&gt;.
O tamanho do banco de dados &amp;eacute; cerca de 60 MB, e a
performance chega a milhares de consultas por segundo.
&lt;/p&gt;
&lt;p&gt;Portanto, eis uma solu&amp;ccedil;&amp;atilde;o bastante
s&amp;iacute;mples, flex&amp;iacute;vel e eficaz para o
cadastro&amp;nbsp;de clientes. J&amp;aacute; utilizei este sistema numa
pesquisa que conduzi, e asseguro que me poupou bastante tempo. Se tiver
interesse, &lt;a href=&quot;http://sysd.org/stas/feedback&quot;&gt;entre
em contato&lt;/a&gt;!
&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/25">actionscript</category>
 <category domain="http://sysd.org/stas/taxonomy/term/22">city</category>
 <category domain="http://sysd.org/stas/taxonomy/term/23">database</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/24">php</category>
 <category domain="http://sysd.org/stas/taxonomy/term/8">web</category>
 <pubDate>Wed, 15 Aug 2007 20:31:52 -0300</pubDate>
</item>
<item>
 <title>CEP-2-City</title>
 <link>http://sysd.org/stas/node/99</link>
 <description>&lt;p&gt;
Módulo &lt;a href=&quot;http://www.perl.com/&quot; target=&quot;_blank&quot;&gt;Perl&lt;/a&gt; que obtém o nome do
município (do Brasil) a partir de um CEP dado. Exemplo:
&lt;/p&gt;
&lt;pre&gt;#!/usr/bin/perl
use CEP;

# inicializa
my $cep = new CEP;

# $city será referência para array com estado/cidade
my $city = $cep-&amp;gt;city (&#039;12.437-660&#039;); # processa somente os dígitos numéricos (0-9)

if ($city) {
    # $str será uma string no formato Cidade/ESTADO
    my $str = CEP::city_string ($city);
    # filtra os acentos e imprime em caixa alta
    printf &quot;esse CEP pertence a [%s]\n&quot;, uc CEP::normalize ($str);
} else {
    print &quot;CEP não encontrado\n&quot;;
}

exit;
&lt;/pre&gt;

&lt;p&gt;
Conforme pode ser observado no exemplo dado acima, este é um módulo
orientado a objeto. A instância do objeto CEP é criada com &lt;code&gt;new
CEP&lt;/code&gt;. Durante&lt;span lang=&quot;pt&quot;&gt;&lt;/span&gt; a inicialização, é construído um
array com a lista ordenada das faixas de CEPs (isso pode demorar, portanto é
uma boa idéia criar uma única instância e reaproveitá-la indefinidamente). O
método que realiza a busca binária pelo CEP e retorna o nome do município é
&lt;code&gt;city()&lt;/code&gt;. O seu único parâmetro é o número CEP propriamente dito.
Somente os dígitos numéricos serão considerados. &lt;code&gt;city()&lt;/code&gt; retorna
uma referência para array que contém o nome do estado e o nome da cidade,
nessa ordem. Inclui também uma subrotina &lt;code&gt;city_string()&lt;/code&gt; que
recebe como parâmetro o array retornado pelo &lt;code&gt;city()&lt;/code&gt; e retorna
uma string no formato &lt;em&gt;&quot;Nome da cidade/ESTADO&quot;&lt;/em&gt;. E, finalmente, quando
os acentos são desnecessários, pode-se filtrá-los com a função
&lt;code&gt;normalize()&lt;/code&gt;, que recebe uma string com acentos e a retorna sem
acentos &lt;code&gt;&lt;img src=&quot;misc/smileys/tongue.png&quot; title=&quot;Sticking out tongue&quot; alt=&quot;Sticking out tongue&quot; /&gt;&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;b&gt;P.S. -&lt;/b&gt; cuidado com os &lt;em&gt;line-endings&lt;/em&gt; do arquivo
CEP.pm! Se o segmento &lt;code&gt;__DATA__&lt;/code&gt; for salvo com CRLF, o módulo
apresentará comportamento estranho em sistemas UN*X!&lt;br&gt;
&lt;b&gt;P.P.S. -&lt;/b&gt; Este projeto tem agora um &lt;a href=&quot;http://sysd.org/stas/node/150&quot;&gt;sucessor&lt;/a&gt; (que consegue obter informação sobre Rua/Bairro e até mesmo DDD regional)! Confira!
&lt;/p&gt;
</description>
 <category domain="http://sysd.org/stas/taxonomy/term/22">city</category>
 <category domain="http://sysd.org/stas/taxonomy/term/23">database</category>
 <category domain="http://sysd.org/stas/taxonomy/term/10">opensource</category>
 <category domain="http://sysd.org/stas/taxonomy/term/20">perl</category>
 <category domain="http://sysd.org/stas/taxonomy/term/4">software</category>
 <pubDate>Wed, 03 Jan 2007 18:55:33 -0200</pubDate>
</item>
</channel>
</rss>
