N2E7

Configurando corretamente as cedilhas no GNU/Linux

Publicado em Sistemas Operacionais por root em 05/14/2010

O problema – Ao utilizar o sistema com um teclado americano com o layout us_intl (inglês internacional) a cedilha, com a combinação agudo+c, retorna um c acentuado. Aparentemente isso acontece em qualquer sistema, mas apenas tive a oportunidade de confirmá-lo no Ubuntu (qualquer versão) e no Debian, pois são as distribuições que mais utilizo no netbook.

Para corrigir este comportamento, como root, comece editando o arquivo abaixo, substituindo ć e Ć por ç e Ç. Dependendo da versão do X, haverão entre três e seis ocorrências no arquivo.

/usr/share/X11/locale/en_US.UTF-8/Compose

Para finalizar, novamente como root, edite o arquivo abaixo, adicionando en: à lista de idiomas da linha que contém a palavra “cedilla” (provavelmente a linha #6), como no exemplo abaixo.

Arquivo:
/usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules

Edição:
“cedilla” “Cedilla” “gtk20″ “/usr/share/locale” “en:az:ca:co:fr:gv:oc:pt:sq:tr:wa”

Não é necessário finalizar sua sessão, no entanto, os programas abertos devem ser reiniciados para que as alterações tenham efeito.

Uma breve explicação sobre meu comportamento

Publicado em Pessoal por root em 05/08/2010

Já não tenho mais interesse em sair para fazer o que aparenta ser divertido. Cada vez que saio percebo que quanto mais tempo passo afastado de meu computador, menos tempo tenho para estudar, produzir e caminhar em direção aos meus objetivos.

A melhor forma de conseguir produzir da forma que quero é não permitir que meu foco seja interrompido por influências externas. Não é possível definir horários para pensar e ter idéias. É necessário inspiração e paciência, e influências como álcool, drogas, compartilhamento de pensamentos estúpidos e companhias desagradáveis são as piores afronta ao raciocínio lógico que eu consigo imaginar. Meu trabalho não é a poesia – é a geração e administração da informação, e um ambiente confortável e familiar favorece a criação de conteúdo útil.

Manter-me neste ambiente é um pré-requisito fundamental para que minha cabeça funcione do jeito que quero, por isso, não saio. O álcool retarda o pensamento, o cigarro ocupa as mãos e o barulho perturba o raciocínio.

O mesmo vale para relações interpessoais. Sentimentos tendem a ocupar o espaço que a informação útil exige, desviando o pensamento para assuntos ilógicos como o amor, raiva e necessidade de retribuição – por mais que não requisitem uma retribuição, as pessoas tendem a esperar que você vá retribuí-la por conta de suas ações passadas. A ansiedade causada por estes sentimentos acabam influenciando a lógica “humana” (raciocínio lógico influenciado por sentimentos) de forma direta.

Devido a essa minha linha de pensamento, meus hábitos são bastante questionáveis, se analisados de um ponto de vista normal. Eu preciso de silêncio, preciso de tranquilidade, por isso troco o dia pela noite e evito exposição excessiva à luz – tenho dificuldades para me concentrar em algumas circunstâncias, e sou distraído facilmente por barulho de televisão, conversas e movimentação. A madrugada acaba sendo o horário perfeito para que eu possa trabalhar e estudar – e me sinto sortudo por meu trabalho não depender de horários normais.

Ao contrário de pessoas que não vivem uma vida semelhante à minha e que me sugerem acompanhamento psicológico entre outras coisas, não considero patológico, de forma alguma, meu padrão de comportamento. Um problema só se torna um problema quando altera o funcionamento de um objeto ou sujeito de forma que prejudique seu funcionamento, e não quando alguém assim o chama. A fotossíntese não se tornará um problema se assim eu a chamar, o software livre não é uma ameaça só por que faladores de mente fechada que trabalham para gigantes desenvolvedoras de software proprietário pensam dessa forma… Por que um padrão de comportamento benéfico – mesmo que em partes, assim como qualquer outro (inclusive o seu) – se tornaria uma doença? Questione-se.

Análise crítica dos sentimentos

Publicado em Pessoal por root em 03/26/2010

O amor nunca foi inexplicável. A inconveniência de se dissecar um sentimento por tantos considerado puro torna e mantém difícil a tarefa de analisar o amor – ou até mesmo outros tipos de sentimentos não necessariamente interpessoais – de forma racional.

A manipulação dos sentimentos é a forma mais óbvia e prática de se atingir um objetivo que dependa de outra pessoa ou público, um método constantemente usado pela publicidade, pelo governo, por vendedores e apaixonados em suas declarações amorosas. Estou certo de quem se surpreende com o que digo é propenso a seguir os sentimentos no lugar da razão. Minha idéia é que a razão forma uma árvore um nível abaixo dos sentimentos, isto é, os sentimentos são uma compilação cega de variáveis definidas pela razão, uma interface pomposa que analisa variáveis complexas de forma transparente ao usuário.

Um exemplo simples seria o ato de comprar uma roupa. Cada aspecto avaliado na peça (cor, forma, preço e conforto, por exemplo) define o resultado do nosso sentimento em relação à peça e nossa decisão final de comprar ou não. O mesmo acontece com quaisquer outros sentimentos, inclusive interpessoais. Mente quem diz que ama alguém sem ter interesse algum em especial. Todos buscam algo, e para nos aproximarmos de alguém é necessário que essa pessoa nos satisfaça e desperte nosso interesse de alguma forma.

Apresento-lhes o amor. Não o amor convencional, mas o amor que foi overrated, o amor egoísta, firme e racional. O amor que não decepciona pelo simples fato de não existir – apenas mais uma interface para algo muito mais puro e simples, o interesse.

Como mencionado anteriormente, todos buscam algo. Ao buscar o amor, estamos buscando uma série de variáveis definidas um nível abaixo, que não precisamos ver ou analisar pois já estão definidas em nossas características. O papel do chamado “sentimento” é apenas reuni-las e retornar uma resposta simples – sim ou não.

Alguém que busca em outra pessoa o conhecimento irá se interessar por pessoas cultas, é lógico. Não sendo suficiente, adicione a aparência física que o agrada, a personalidade e o interesse mútuo. Nos graus e proporções certas, o sentimento buscado – no caso, o amor – retorna ‘sim’. Isso, claro, não depende apenas dessas variáveis. Dentro delas existe uma infinidade de subcaracterísticas que também são avaliadas de forma transparente à interface. Com o tempo e espaço suficientes é possível analisar essas variáveis manualmente, deixando de lado a interface por todo o tempo que for necessário. Isso se chama pensar.

Conhecimento nunca é demais. O primeiro passo para não cair nas armadilhas – ou bugs, como preferir – da interface é conhecer seu funcionamento. Entender e acreditar que o amor não passa de um conjunto de interesses é o suficiente para permitir-nos enxergar o conjunto de variáveis que o forma. Com os dados em mãos é possível analisar a relação entre o nível de satisfação que as características alheias nos trazem e os possíveis riscos e dificuldades que poderemos enfrentar. Entretanto, manipular estes dados requer tempo, quando é possível. Adaptar suas características e ignorar os próprios interesses em virtude dos interesses alheios sempre se provou um método falho.

Talvez ainda mais importante seja estar ciente de que você não é o único ser vivo com a capacidade de fazer esta análise, e ainda pior, não é o único que está sujeito a ignorar a própria capacidade de raciocínio e tomar atitudes infrutíferas.

Existe uma fórmula falha que a maioria segue, balanceando seus sentimentos como se fossem distintos uns dos outros. Ignoram a possibilidade de todos sentimentos possuírem os mesmos fundamentos básicos e poderem ser analisados com abordagens semelhantes, apenas separando os interesses característicos de cada sentimento.

O amor não é melhor, mais complexo, mais bonito nem mais estúpido do que qualquer outro sentimento, e estando ligados à mesma rede de interesses, qualquer sentimento pode ser aplicado à qualquer objeto.

Questione-se.

Tratamento de caracteres especiais no PHP

Publicado em Desenvolvimento de software por root em 03/19/2010

Se você é ou faz o trabalho de web designer e desenvolve em Linux ou outro sistema POSIX, provavelmente já passou algum perrengue para fazer aquele layout totalmente validado no XHTML1.1 funcionar corretamente em outros sistemas e navegadores menos privilegiados, sujando sua arte com pseudo-tags condicionais que aqueles inventam de colocar em seus parsers. Pessoalmente, tratando-se de sistemas pessoais, não faço grandes esforços para suportar navegadores velhos e fora dos padrões (apesar de que, geralmente, meus layouts funcionam razoavelmente bem nos outros). O problema – eu mal sabia que minha estação de batalha poderia vibrar ao receber mais um ataque zerg rush. Ou janelas rush.

O fato é que os problemas não se limitam ao navegador. Já é fato conhecido que sistemas diferentes utilizam quebras de linhas diferentes (\n em *nix, \r\n em janelas e \r em Mac OS X) e isso é relativamente fácil de ser trabalhado. O que me surpreendeu foi o tratamento dos “non-breaking spaces”, conhecidos amigos de grandes editores WYSIWYG (“negas do janelas”). Em navegadores rodando em ambiente Windows, a entidade   é convertida no caractere #160 (ou 0xA0). Não seria um grande problema se as funções PHP o reconhecessem como espaço – afinal, caractere algum se torna um espaço universal só por que estava escrito no manual de alguma janela. No Linux, a entidade   (e o caractere ASCII 160 correspondente no Windows) é traduzido para o caractere correto – ASCII 32 (0×20, um ordinário espaço).

Após ver a função trim() falhando miseravelmente, fiz uma pequena pesquisa e encontrei a solução. Coisa simples, mas que me tomou uns 30 minutos quebrando a cabeça. Vou direto ao ponto à partir daqui.

A aplicação prática deste exemplo é em casos que você precisa registrar, por exemplo, um título de um artigo, ou o apelido de um usuário, que teoricamente não devem possuir espaços antes ou depois da string (e muito menos quebras de linhas, tab e por aí vai).

De acordo com o manual, a função trim() come os caracteres \t, \n, \r, , \z0B e o próprio espaço (\x20). A grande sacada é que ela aceita um parâmetro que permite alterar estes caracteres.

Um trim() crú seria usado como no exemplo abaixo. Suponha que os espaços são ASCII 160:

trim('   Uma string cheia de nbsp      ');
retorno: '   Uma string cheia de espaços      '

Nada acontece. Isso funciona apenas se os espaços forem ASCII 32. ASCII 160 (non-breaking space) são desconsiderados. Para contornar os padrões-de-lugar-nenhum, podemos utilizar a seguinte sintaxe:

trim('   Uma string cheia de espaços      ',"\x0..\x1F\xA0");
retorno: 'Uma string cheia de espaços'

O que fiz ali em cima foi basicamente adicionar o caractere 0xA0, afinal o trim() já trabalha nos caracteres relevantes de 0 à 1F. A string ‘..’ serve para definir um período. “A..Z”, por exemplo, quer dizer “de A à Z”, ou [A-Z] em uma expressão regular.

Um código completo para tratar uma entrada de uma linha seria algo como isso:

$rx_from = array(
'#[ \xA0]+#',
'#[\x0-\x1F]+#'
);
$to = array(' ','');
$str = preg_replace($rx_from,$to,$str);
$str = trim($str,"\x0..\x1F\xA0")

Mantenham as janelas fechadas.

Danny Choo no Fantástico?

Publicado em Vícios por root em 03/15/2010

Danny Choo, conhecido blogueiro residente em Tokyo, foi filmado pela equipe do Fantástico para uma matéria. Em seu post do dia 12 deste mês Danny descreveu sua visita à TBS (Tokyo Broadcasting System, emissora japonesa de TV e rádio). Em uma das fotos, Danny comenta que recebeu a visita de uma equipe da TV Brasileira, que o filmou para “um show chamado ‘Fantastico’”. O post contém fotos de Danny, o cinegrafista da Globo e o correspondente da mesma emissora Roberto Kovalick, além de uma equipe da NHK.

Zooming back to mid day where a Brazillian TV crew came to film me for a show called Fantastico. Have no idea if it went out though ^^;

O usuário XSportSeeker postou nos comentários um link para o site do Fantástico, exibindo fotos da viagem de Zeca Camargo ao Japão para a filmagem do quadro Megacidades, que aparentemente ainda não foi ao ar. Roberto Kovalick aparece ao lado de Zeca Camargo, pelo visto com a mesma roupa que aparece nas fotos do Danny.

Li o artigo ontem às 20:30 e fiquei empolgado com a notícia, tanto que quando me dei conta já estava na hora do programa. Assisti via streaming até o final, e nada de Danny Choo ou o quadro Megacidades. Duas horas e meia assistindo a maldita televisão para ver um quadro que nem foi exibido, argh.

Enquanto isso, fico na expectativa. Primeiro Y-No, agora o Danny Choo! Sábado irei checar novamente o site do Fantástico em busca de novas informações.

Referência: http://www.dannychoo.com/post/en/25495/Tokyo+Broadcasting+System.html

MySQL Workbench

Publicado em Desenvolvimento de software por root em 03/10/2010

Exemplo de diagrama EER no MySQL Workbench

Finalmente, o desenvolvimento. No momento estou trabalhando no banco de dados, que está me forçando a estudar tópicos que ainda não havia explorado muito, especialmente InnoDB e chaves estrangeiras. O PHPMyAdmin não me satisfez na tentativa de fazer a modelagem do banco, então para agilizar o desenvolvimento e tornar o processo mais didático acabei buscando uma alternativa. Eis que encontrei o MySQL Workbench e disse em voz alta – “Por que diabos eu não achei isso antes?”. A resposta veio segundos depois, foi algo como “porque nunca procurei”.

Estou utilizando a versão 5.2.16 beta, que obtive direto do site oficial. Confesso que fiquei bastante perdido no início. São muitas opções – algumas que não faço nem idéia do que fazem – e em uma disposição diferente da que estou acostumado, mas não levei mais de poucas horas para me acostumar com o que eu preciso saber.

Pra mim, a grande vantagem está sendo a modelagem visual de tabelas com o uso de chaves estrangeiras. A interface e os atalhos tornam fácil a criação de uma estrutura complexa, cheia de relacionamentos por chaves estrangeiras – Vide o exemplo na imagem. O banco de dados usado é o “sakilla”, disponível em http://dev.mysql.com/doc/index-other.html

O MySQL Workbench é um must have no disco rígido de qualquer desenvolvedor que trabalhe com SQL. Está disponível na versão Community (Sob licença GPL) e Standard ($99/ano).

Primeira arte de conceito

Publicado em PNH por root em 03/07/2010

O Projeto ainda está na fase de planejamento. A impressão que tenho é de que é a parte mais confusa… São muitas idéias, planos, rascunhos… E parece que quanto mais escrevo, mais idéias surgem. Estou trabalhando sozinho nessa, então – ainda – não sei por onde começo. Enquanto isso, tudo o que tenho são rascunhos – e são MUITOS. O nome de desenvolvimento já foi definido, mas, ao menos por enquanto, não será divulgado.

Ilustração executada no Gimp, pixel-a-pixel, com tempo e paciência.

Impressões sobre serviços de hospedagem no Brasil

Publicado em Web hosting por root em 03/04/2010

Como escrevi em um post anterior, estive pesquisando por uma boa hospedagem de sites presente no Brasil. É possível que eu encontre algum outro que me interesse e acabe adicionando-o à este post, mas já possuo material suficiente para começar a mantê-los informados sobre as minhas decisões.

Pra quem está por fora, explico – Durante uma semana enviei e-mails para o suporte técnico de alguns serviços de hospedagem presentes no Brasil, com perguntas técnicas e comerciais à respeito do serviço que oferecem. Me concentrei nos planos básicos de hospedagem em servidores compartilhados oferecidos por cada empresa. O e-mail enviado é uma lista genérica de perguntas que se aplica à todos servidores, como políticas específicas de hospedagem e consumo de recursos, versões dos serviços disponíveis, métodos de acesso, e por aí vai.

Manterei o conteúdo exato das respostas que recebi em segredo, assim como não divulgarei a lista de perguntas que foi enviada aos servidores. Me concentrarei em expor minha opinião à respeito dos servidores baseando-me apenas nas respostas recebidas e nas informações disponíveis em seus respectivos sites. Deixo claro que não cito todas as características de todos os hosts – se eu não citei algo em algum host e citei em outro, não quer dizer que só o que citei possui a tal característica.

HostGator – www.hostgator.com.br
Não sei desde quando a HostGator está presente no Brasil. A conheci anos atrás quando buscava por um bom host, e só recentemente descobri que ela está presente em domínios tupiniquins. Foi a primeira empresa que consultei nesta pesquisa atual, e fiquei surpreso com a agilidade e competência do atendimento – enviei o e-mail (que foi cadastrado como ticket automaticamente) numa noite de domingo, e quando abri meu e-mail às 8:20 de Segunda-Feira a resposta já estava lá. Responderam todas minhas dúvidas e ainda esclareceram possíveis dúvidas que eu poderia ter com o tempo, e nada de copia-cola.
Os recursos são bons também –  PHP 5.2.9 rodando como CGI (PHPSuExec) e aceita php.ini personalizado,  limite de memória de 64MB, aceitam sugestões de instalação de módulos específicos, permite conexões SSH, oferecem armazenamento e transferência ilimitados…

KingHost – www.kinghost.com.br
De cara, um grande ponto positivo – possuem datacenters no Brasil. Não que eu faça questão absoluta disso, mas é um ponto a favor. Os recursos de armazenamento são suficientes pra maior parte das pessoas, mas não ilimitados – 5GB para o site (+25MB por semana), 2.5GB no banco de dados MySQL, 200GB de transferência mensal e 10GB de espaço para e-mails (Esses dois últimos também ganham 25MB por semana). É importante lembrar que o plano básico não dá suporte à Ruby on Rails, mas por aproximadamente R$4 a mais você pode contratar um plano com suporte a Runy e recursos mais generosos. O mesmo vale para bancos de dados PostgreSQL e Firebird. Me chamou a atenção o fato de ser possível escolher entre os servidores NginX, Lighthttpd e o tradicional Apache (apesar de eu preferir este último).

Locaweb – www.locaweb.com.br
Não há muito o que se falar da Locaweb. Baseando-se no atendimento e nos padrões brasileiros de qualidade, parece ser das piores entre as melhores. Minhas perguntas não foram todas respondidas, e boa parte das pergunta foram respondidas com links, alguns sequer relacionados às perguntas. Creio que isso se deva à forma que meu e-mail chegou à eles, não necessariamente má vontade – pelo que parece, perdeu toda a formatação e quebras de linha, tornando-o praticamente ilegível.
Pra mim, o destaque fica para o banco de dados PostgreSQL, que não possui limites de armazenamento. Em compensação, eles limitam bobagens como e-mails – no plano básico, 20 endereços com 2GB cada.

HostDime – www.hostdime.com
Outra multinacional presente no Brasil. Fiquei bastante satisfeito com o atendimento – rápido e respondeu todas perguntas adequadamente. Os planos que oferece também são atraentes, porém aparentemente inflexíveis. Uma coisa que não ficou clara foi se o limite de espaço em disco é válido apenas para armazenamento de arquivos ou se isso inclui bancos de dados MySQL – no site indica que você pode criar um número ilimitado de bancos de dados, mas não especifica o tamanho. Os preços também são bons, e possuem datacenters no Brasil, com valores diferenciados.

Insite – www.insite.com.br
De cara – atendimento terrível.  São desorganizados, levam não menos que sete dias para responder um e-mail. Não cheguei a enviar à eles o mesmo e-mail que enviei aos outros hosts, pois eu já estava trocando e-mails com eles havia quase dois meses. Cada e-mail levou entre 7 e 10 dias para ser respondido, isso sem comentar os e-mails que não foram respondidos corretamente – Certa vez perguntei se haviam planos de atualizar a versão do PHP nos servidores, e me disseram que isso é responsabilidade do cliente. Me ofereci para fazer um orçamento.
Algo que não me atrai nos planos deles é o tamanho dos bancos de dados – limite de 10 bancos com 200MB no total (PG e MySQL). Fora isso, os planos são bem decentes e com valores razoáveis.

Estes foram os hosts que consultei até agora. Eventualmente posso consultar mais algum, mas é improvável.

Até o momento, minha preferência é o HostGator. Já entrei em contato algumas vezes por chat e e-mail, e sempre fui muito bem atendido. O host que eu contrataria de olhos vendados (e com excelentes memórias) seria o Dreamhost, mas por motivos NEETs (impossibilidade de declarar renda para conseguir cartão de crédito internacional *tosse*)parece que não vou poder contratá-lo. Bem, quem sabe aconteça um milagre e meu banco libere um cartão internacional antes que eu decida o domínio que irei comprar…

Este artigo serve apenas como referência. O que escrevi aqui se baseia apenas nas informações contidas nos sites dos hosts e experiências pessoais com o suporte técnico de cada um. Exceto no caso do DreamHost, o qual fiz uma pequena menção no final do artigo, não cheguei a utilizar os serviços dos hosts citados.

Ubuntu 10.04LTS virá com visual totalmente renovado

Publicado em Sistemas Operacionais por root em 03/04/2010

Já havia passado da hora de saírem do marrom-cocô. Pessoalmente, minha simpatia pelo tema Human, padrão em versões do Ubuntu, não me agradou por muito tempo. Cores cansativas, papéis de parede sem insípidos… Pra ser sincero, eu nem lembro exatamente como é o original, pois a primeira coisa que faço ao instalar o sistema é alterar o tema.

Pois então – A Canonical anunciou oficialmente na wiki do Ubuntu como será o novo tema usado pela distribuição GNU/Linux mais usada no mundo (de acordo com o site distrowatch.com). As imagens falam por si mesmas (siga o link acima para vê-las).

A cirurgia plástica envolve, além do tema GTK que substituirá o Human, mudanças na marca do Ubuntu e de seus derivados, alterações nas marcas da comunidade (brainstorm, forums…), tabelas de cores, bootloader, impressos… Basicamente tudo.

Não gostei da nova tipologia das marcas, me lembra as experiências que eu fazia com logotipos no CorelDRAW, anos atrás. Bonito, mas vi nada de especial – Discordo quando disseram que a nova marca deve “refletir a precisão e engenharia no coração do Ubuntu”. Se for assim, as tais precisão e engenharia no coração são a tendência moderninha do momento. Sem ofensas.

Sobre o tema padrão do Gnome, aparenta realmente ter melhorado bastante, só não entendi por que diacho colocar os controles da janela no canto esquerdo. Isso acaba favorecendo cliques errados, desalinha o título da janela e deixa um espaço vazio enorme no canto direito da barra de título e de menus. Também não gostei da caixa que define o espaço dos botões. Acho esse degradé inverso bem feio, e forte do jeito que é parece resultado de tutorial de Photoshop for dummies. Bem, como é a primeira imagem que temos do novo tema, creio que esses detalhes possam ser alterados, então não vou comentar muito. Mais.

Apesar de uma ou outra coisinha que não gostei, o conjunto geral está melhor que antes. O Ubuntu está mesmo com uma aparência mais jovem e moderna, coisa que não me agrada muito, mas tenho certeza de que irá agradar a maior parte dos usuários. Só resta esperar e observar.

Em busca de uma hospedagem robusta – qual é a melhor?

Publicado em Web hosting por root em 03/01/2010

Estou há alguns dias pesquisando boas empresas de hospedagem para hospedar meu projeto, quando pronto. Acaba sendo um contrato mais longo que muitos casamentos, por isso estou sendo bem cauteloso na escolha.

Estou entrando em contato com o suporte técnico de vários hosts, em busca de informações sobre as características detalhadas dos planos de hospedagem. Para fins estatísticos, fiz uma grande lista de perguntas técnicas e comerciais genéricas, a qual envio para cada host que me interessa. Por hora, não revelarei o conteúdo da lista, tampouco as respostas dos hosts.

Pretendo analisar cada host individualmente baseado nas informações disponíveis em seus sites e nas respostas que estou recebendo. Depois, irei redigir um pequeno artigo comparativo, baseando-me nas informações que obtive e na impressão que tive a respeito de cada host, assim como minha escolha final. Este último item provavelmente será o que mais irá atrasar a redação deste artigo, até por que não tenho sequer a marca do projeto desenvolvida… Pretendo comprar a hospedagem junto com o domínio (em tempo, não em espaço, para facilitar a migração entre servidores, caso seja necessário)

Por ora, o que posso adiantar é que as respostas que estou recebendo têm sido, no mínimo, curiosas. Algo interessante que reparei é que apenas um dos hosts que consultei está trabalhando com PHP 5.3. Os demais geralmente estão na casa do 5.2.9. Trabalhar com PHP 5.3, no momento, não é um fator determinante de forma alguma, mas é um ponto à favor.

Por enquanto é só. Como disse anteriormente, Irei redigir um artigo comparativo ao final da pesquisa.

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.