Web a Sério http://www.webaserio.com DNS - Email - registos MX e CNAME http://www.webaserio.com/post/dns---email---registos-mx-e-cname.html Thu, 05 Aug 2010 09:00:00 GMT themage Criar um registo de DNS MX e CNAME no mesmo domínio pode dar origem a alguns conflitos peculiares... Como descrito no artigo anterior desta série <a href='/post/dns---tipos-de-registos.html'>DNS - Tipos de registos</a>, os registos CNAME e MX indicam, respecivamente, que o nome para o qual o nome que se está a configurar/resolver é uma alias (nome alternativo) e qual o servidor a quem deve ser entregue o email. <br/><br/> E todos vivemos felizes com isto até alguém utilizar um registo CNAME da forma errada. <br/><br/> É que o que o CNAME diz é "tudo o que quizeres saber sobre mim, pergunta como se eu me chamasse &lt;este outro nome&gt;". <br/><br/> E isto significa que tudo o que estiver configurado para esse outro domínio deve ser considerado como se estivesse configurado neste, e nada do que estiver configurado neste deve ser considerado. <br/><br/> E, claro, o servidor de email também está incluido. Logo, independentemente de existir ou não um registo MX no domínio actual (o que tem o CNAME configurado), o email deveria ser entregue ao servidor MX configurado no domínio indicado pelo registo CNAME. <br/><br/> O problema é que nem todos os servidores de email concordam com esta interpretação, pelo que, dependendo do servidor de email de quem está a enviar emails para estes domínios, esses emails podem ser entregues ao servidor de email do domínio com o CNAME ou no servidor de email do domínio indicado pelo CNAME. <br/><br/> <h2> Como evitar este problema?</h2> Se quer realmente receber email no domínio de origem e que que este email seja entregue num servidor diferente do servidor de email do domínio para onde aponta o registo CNAME, então crie um registo MX e utilize registos A para apontar o nome para o mesmo IP para onde aponta o nome de destino. <br/><br/> Se o servidor de email for o mesmo, então não deve ter problema. Neste caso não ter um registo MX no domínio de origem deve funcionar como se ele lá estivesse. Bastará que o servidor de email esteja configurado para receber o email do domínio de origem. <br/><br/> Se não pretende receber email no domínio de origem basta que um servidor de email do domínio de destino esteja configurado para rejeitar o email do domínio de origem. A maioria dos servidores de email estão preparados para rejeitar email de todos os domínios para os quais não foram configurados para receber email. Deve, no entanto, verificar se é o caso do seu servidor. cnamednsmx Tipos de registos http://www.webaserio.com/post/tipos-de-registos.html Sun, 08 Aug 2010 15:00:00 GMT themage Texto sobre os principais tipos de registos DNS actualmente utilizados. Inicialmente, o DNS tinha registos dos tipos A, CNAME, NS e MX. Posteriormente foram adicionados os tipos AAAA, SRV e TXT. <br/><br/> <h2> Registos do tipo A</h2> Os registos de DNS do tipo A são a razão final da existência do sistema de resolução de nomes, e o tipo de registos que dá nome ao serviço. Este é, hoje, um dos dois tipos de registos que se destinam a fazer o que o nome diz... resolver nomes. <br/><br/> Os registos do tipo A - de Address - servem para relacionar os nomes de dominios com os endereços IP - os tais números dos servidores de que falamos em artigos anteriores. <br/><br/> Por exemplo: <br/><br/> <blockquote><code> <br/>www.webaserio.com A 69.60.115.53 <br/></code></blockquote> <br/><br/> Este registo indica que o nome www.webaserio.com é servido pelo computador com o IP 69.60.115.53. <br/><br/> <h2> Registos AAAA</h2> A internet cresceu de tal forma que o número de IPs inicialmente disponíveis está práticamente esgotado e já não permite acompanhar o crescimento da rede. Hoje existem computadores numa grande percentagem de casas, e cada vez mais existe um computador na mão (ou no bolso) de casa pessoa (os <i>SmartPhones</i>). Para ultrapassar este problema foi criado um novo conjunto de endereços, designados com o nome IPv6. <br/><br/> Os registos AAAA funcionam de forma idêntica aos rregistos A, com a diferença que o endereço é IPv6 e não IPv4. <br/><br/> Infelizmente, hoje, ainda nem todas as redes têm routeamento IPv6 pelo que servidores que esteja em redes IPv6 não são acessíveis a toda a gente. Isto também faz com que os registos de DNS do tipo AAAA ainda não sejam muito comuns. <br/><br/> <h2> Registo CNAME</h2> O registo CNAME indica que um nome é um nome alternativo para um outro nome. A consequência mais óbvia disto é que para obtermos o endereço deste nome devemos pedir o endereço do nome indicado por este registo. <br/><br/> O registo CNAME tem implicações também com os registos do tipo MX, mas sobre as complicações entre o CNAME e o MX falaremos mais à frente, num outro artigo desta série. <br/><br/> Para já, a reter, é que o CNAME indica que o nome que estamos a tentar resolver é um segundo nome para um outro nome que nos é devolvido. <br/><br/> <h2> Registo NS</h2> O registo NS é o que faz com que a hierarquia de nomes funcione. Este registo indica qual o servidor responsável por resolver os nomes de um domínio. <br/><br/> Na prática, quando configuramos um registo NS estamos a indicar que servidor(es) sabem responder às questões de DNS de um domínio (ou subdominio). <br/><br/> <h2> Registos MX</h2> Os registos MX indicam qual o servidor de email para um domínio. <br/><br/> Na prática, quando temos um email do tipo email@example.com, devemos perguntar ao servidor de NS do domínio example.com qual é o servidor de email do domínio, isto é, qual o MX do dominio, e em seguida, enviar o email para esse servidor. <br/><br/> <h2> Registos SRV</h2> Os registo SRV permitem definir quais os servidores que suportam um determinado serviço para um domínio. <br/><br/> Este tipo de registos servem para indicar que servidores suportam cada tipo de serviço baseado no domínio para o endereçamento, isto é, em que o tipo de conta seja do tipo &lt;utilizador&gt;@&lt;dominio.com&gt;, com excepção do domínio que, sendo deste tipo (o endereçamento do email é do tipo acima), utiliza os dominio do tipo MX. <br/><br/> <h2> Registos TXT</h2> Os registos TXT servem para associar informação ao dominio. Estas informações são com que pequenos ficheiros de texto, que podem conter qualquer informação publica que se pretenda associar ao domínio. <br/><br/> Actualmente, uma das informações mais comuns - mas ainda não comum o suficiente - que podemos encontrar neste tipo de registos são as chavez públicas dos servidores de email, que podem ser utilizadas para validar que um email enviado como se tivesse origem num domínio aí tem de facto origem. <br/><br/> <h2> Outros tipos de registos</h2> Implementações diversas de serviços implementam frequentemente alterações ao DNS para suportar outros tipos de registos, uns mais comuns do que outros, mas os registos acima são os mais comuns, e os que são suportados pelos RFCs recomendados pelo IEEE, o organismo responsável pela gestão dos RFCs que definem a maioria dos protocolos base da Internet. <br/><br/> Mas, claro, se acham que outros tipos de registos deveriam constar desta lista deixem-me um comentário para que o pesquise e adicione a esta lista. dnsrecords DNS -Resolução de nomes http://www.webaserio.com/post/dns--resolucao-de-nomes.html Fri, 25 Jun 2010 12:35:00 GMT themage Neste artigo da série sobre DNS apresento o processo de resolução de nomes, que permite obter o endereço IP correspondente a um nome. Hoje como no inicio, cada máquina ligada à rede - e hoje é uma grande rede, a que chamamos internet - tem ainda uma número que o identifica, e é esse número que é, ainda hoje, utilizado pelo computadores para trocarem informação uns com os outros, mesmo que nós normalmente apenas vejamos os nomes. <br/><br/> <h2> Resolução passo a passo</h2> <br/><br/> A resolução de DNS tem hoje alguns elementos que permitem tornar o processo de resolução de nomes mais rápida e eficiente. Mas, para já vamos ignorar essas optimizações. <br/><br/> Assim, quando queremos converter um nome no IP correspendonte, a primeira pergunta que temos que fazer é quem é que controla a informação de DNS. E a resposta a essa pergunta é a de que são os servidores de DNS do domínio de topo - o dominio <b>.</b>. Os servidores de DNS do domínio <b>.</b> são normalmente designados de <i>rootservers</i>. <br/><br/> Assim, a primeira coisa a fazer é perguntar aos <i>root servers</i> se eles sabem a resposta que procuramos. Provavelmente eles não nos vão dar a resposta que procuramos, mas indicam-nos a quem devemos perguntar a seguir - os servidores de DNS do domínio de topo a quem pertence o site. Se o domínio o domínio de topo a que pertence o nome que estamos a tentar resolver for <b>com</b> ou <b>net</b>, os <i>rootservers</i> vão dar-nos logo os servidores de DNS do nosso domínio que pretendemos resolver, uma vez que são eles também os servidores de DNS destes domínios. <br/><br/> Com a informação disponibilizada pelos <i>rootservers</i>, dirigimos as nossas questões aos servidores que nos foram devolvidos pelos <i>rootservers</i> que, por sua vez, podem dar-nos imediatamente a informação que procuramos ou enviar-nos o endereço de novos servidores a quem devemos dirigir em seguida as nossas perguntas. <br/><br/> Todo este processo é repetido até se conseguir a informação que procuramos ou até nos ser dito que essa informação não existe ou até detetarmos que existem inconsistências nas respostas que nos são enviadas - por exemplo, dois servidores, cada um deles dizer que o outro é que é o responsável pela informação que procuramos. <br/><br/> <h2> Resolução com cache</h2> <br/><br/> Embora cada um dos passos referidos na secção anterior seja rápido e consista na transmissão de apenas alguns byts, a internet nem sempre foi a rede que conhecemos hoje, em que a velocidade de transmissão é quase sempre na ordem dos megabits por segundo - houve um tempo em que se podiam ouvir os bits a entrar e a sair da linha telefónica. Nesses tempos apenas alguns bytes podiam demorar até um segundo a ser transmitidos, e se a pergunta tivesse que ser feita a servidores de DNS do outro lado do mundo, a resposta ia demorar a voltar. <br/><br/> E, para tornar a resolução de nomes mais eficiente, criaram-se servidores de DNS o mais próximo possível dos clientes, que quando não sabem as respostas que os seus clientes procuram, fazem as perguntas necessárias aos outros servidores e depois respondem directamente ao cliente e guardam a resposta para conseguir responder imediatamente quando o mesmo ou outro cliente tentar resolver o mesmo nome. <br/><br/> E os clientes passam a utilizar estes servidores sempre que pretendem resolver um nome, pois estes conseguem responder-lhes muito mais rapidamente nos maioria dos casos. <br/><br/> Este processo permite, assim, poupar tempo, e reduz drasticamente a quantidade de dados transmitidos - o que até há pouco tempo também era tempo. E nesse tempo a ligação à internet era paga pelo tempo que se estava ligado. dnsresolução de nomes DNS - intro http://www.webaserio.com/post/dns---intro.html Thu, 24 Jun 2010 10:24:47 GMT themage Este artigo é a apresentação da série de artigos sobre o protocolo DNS. Antes havia o IPX, o tokenring e montes de outras coisas, mas isso foi antes. Antes do início. <br/><br/> Então apareceu o IP, e os criadores perceberam que o IP era bom. E em cima do IP escreveram o TCP, o UDP e o ICMP. E os criadores chamaram ao conjunto destes protocolos TCP/IP. E os criadores perceberam que isto era bom. E isso foi o inicio. <br/><br/> E então reescreveram-se protocolos que já existiam sobre o TCP/IP e criaram-se novos protocolos. E apareceu a rede, e a rede cresceu. <br/><br/> Mas no início não havia nomes, só números. Os números do IP. Enquanto a rede era pequena era fácil saber o número de todos os computadores na rede. Mas quando a rede começou a crescer os criadores perceberam que era preciso dar nomes aos computadores, porque para nós é mais fácil lidar com nomes do que com números. E por isso criaram o DNS. <br/><br/> E, porque todos escrevem sobre a web, mas poucos lembrar os protocolos que fazem a web funcionar, decidi escrever uma série de artigos sobre o DNS. Neste artigo irei criando links para esses artigos, que serão publicados ao longo dos próximos dias. <br/><br/> <h2> Artigos neste série</h2> <ul> <li> <a href='/post/dns---hierarquia-de-nomes.html'>DNS - Hierarquia de nomes</a></li> </ul> <br/><br/> <h3> A Publicar</h3> <ul> <li> <b>DNS - Resolução de nomes</b></li> </ul> dnsintrotutorial DNS - Hierarquia de nomes http://www.webaserio.com/post/dns---hierarquia-de-nomes.html Thu, 24 Jun 2010 10:27:09 GMT themage Artigo, parte da série de artigos sobre DNS, que explica como estão organizados os nomes utilizados na internet. Hoje quase toda a gente que trabalha na área de internet já ouviu falar dos domínio de topo (normalmente abreviado como TLD - a sigla da expressão inglesa <i>Top Level Domain</i>). <br/><br/> O que nem toda a gente sabe, mesmo entre quem trabalha na área de internet é que existe um domínio acima dos domínios de topo. Trata-se do domínio <b>.</b> . <br/><br/> Este é domínio debaixo do qual (quase) todos os outros domínios estão. E digo quase apenas porque por vezes se utilizam truques relacionados com o funcionamento do DNS para criar domínios (mais ou menos) privados que não é possível resolver utilizando aquilo a que irei chamar a <i>cascata de resolução de nomes</i> tradicional. <br/><br/> Os nomes resolvidos pelo DNS são algo que nos habituamos a ver todos os dias. E isso inclui quem sem sequer utiliza a internet. Eles estão, hoje, em todo o lado - nos carros das empresas, nas suas facturas, nos cartões de visita, profissionais ou pessoais - são os endereços dos blogs, dos sites sociais e até parte dos endereços de email. Todos estes endereços são resolvidos pelo DNS. <br/><br/> <h2> Mas, como estão estruturados?</h2> Bem, primeiro temos o senhor de todos os domínios, o dominio <b>.</b> - que normalmente não é utilizado explicitamente - e debaixo dele temos os domínios de topo - com, net, org, pt, br, us, uk, ... - existem uns quantos globais, todos os países têm um e algumas regiões também têm domínio de topo - como os eu ou asia. <br/><br/> Cada um destes domínios de topo tem uma entidade que gere os domínios que são criados debaixo deste TLD. Por exemplo, no caso do TLD pt, a entidade que faz esta gestão é a FCCN. <br/><br/> Normalmente, satisfeitas as condições, é possível criar domínios debaixo destes domínios de topo ou em subdomínios deles - o com.pt ou o co.uk, por exemplo - e a gestão destes domínios é entregue à entidade que fez o registo, que pode depois criar os subdomínios que entender debaixo do seu nome. <br/><br/> Cada um destes nomes é separado do domínio acima por um <b>.</b>, criando-se assim os nomes que já estamos habituados a ver nos nomes dos sites. <br/><br/> Tradicionalmente o primeiro nome representa o nome da máquina, e todos os outros nomes acabavem por ser - por assim dizer - o caminho a percorrer para encontrar o servidor. <br/><br/> Assim, quando vemos um endereço como www.webaserio.com, estamos a olhar para o nome da maquina www do domínio webaserio que está debaixo do TLD com. <br/><br/> Claro que hoje, com maquinas muito mais rápidas e com uma muito maior diversidade de serviços, um servidor serve várias coisas e vários sites, e a primeira parte nome acaba por ser mais o nome do serviço do que o da maquina que disponíbiliza o serviço, havendo tão frequentemente vários serviços a ser disponibilizados numa mesma maquina como várias maquinas a servir um único serviço. dnstutorial 10 Plugins de Firefox para WebDevels http://www.webaserio.com/post/10-plugins-de-firefox-para-webdevels.html Tue, 12 Jan 2010 22:58:24 GMT themage Fazer desenvolvimento para web pode ser uma tarefa complicada sem as ferramentas certas - mas meia duzias de plugins para firefox tornam tudo muito mais simples. <img src='http://www.webaserio.com/images/webaserio/shots/fireplugs/firefox-plugins.png' class='textimg' alt='http://www.webaserio.com/images/webaserio/shots/fireplugs/firefox-plugins.png'/> <br/><br/> Fazer desenvolvimento para web pode ser uma tarefa complicada sem as ferramentas certas - mas meia duzias de plugins para firefox tornam tudo muito mais simples. <br/><br/> <h2> Cookie-Swap</h2> <br/><br/> <img src='http://www.webaserio.com/images/webaserio/shots/fireplugs/cookie-swap.png' class='textimg' alt='http://www.webaserio.com/images/webaserio/shots/fireplugs/cookie-swap.png'/> Em primeiro lugar, um plugin que a mim me facilita imenso a vida, especialmente porque como desenvolvo as minhas ferramentas de gestão, seja a <a href='http://mason-framework.net'>Mason Framework</a> para os meus projectos pessoais, seja o backoffice que estamos a adoptar no <a href='http://www.clix.pt'>clix</a>, tenho por vezes a necessidade de testar as diversas funcionalidade com utilizadores com permissões e opções diferentes. O Cookie-swap permite-te trocar todas as cookies do meu browser entre um conjunto de identidades pré-definidas. <br/><br/> <h2> Cookie Monster</h2> Mas, como por vezes mudar de identidade não é o que se pretende, e como o Cookie-Swap apenas me permite apagar todos os cookies de uma das minhas identidades, utilizo o Cooki Monster para conseguir gerir os meus cookies de uma forma mais precisa. <br/><br/> O Cookie Monster permite-me definir site a site que cookies quero aceitar ou rejeitar, criar regras por site ou globais, ver os cookies de um site e apagá-los individualmente. <br/><br/> <h2> FireBug</h2> Durante muito tempo utilizei para esta tarefa o Web Developer. Ele ainda continua instalado no meu firefox, mas já não me lembro de quando foi a ultima vez que o utilizei. <br/><br/> <img src='http://www.webaserio.com/images/webaserio/shots/fireplugs/firebug.png' class='textimg' alt='http://www.webaserio.com/images/webaserio/shots/fireplugs/firebug.png'/> <br/><br/> O Firebug é hoje a ferramenta que me permite perceber porque é que as páginas não têm a aparência que era suposto terem, executar javascripts passo a passo, executar javascripts arbitrários, verificar e alterar CSSs dos sites, e muito mais. <br/><br/> <h2> HTTPFox</h2> <img src='http://www.webaserio.com/images/webaserio/shots/fireplugs/httpfox.png' class='textimg' alt='http://www.webaserio.com/images/webaserio/shots/fireplugs/httpfox.png'/> <br/><br/> O HTTP é uma espécie de proxy, que nos permite analisar todos os requests HTTP que são feitos pelo browser, permitindo-nos olhar para dentro de cada request, ver o que foi pedido, com que headers, e qual foi a resposta que o servidor devolveu. <br/><br/> Desde que utilizo o HTTPFox já quase deixei de fazer telnet directamente para o porto 80 do servidor para fazer requests manualmente! <br/><br/> <h2> Library Detector</h2> O Library Detector mostra-nos, na barra de status do browser, as bibliotetas javascript que são utilizadas pelo site que estamos a visitar. <br/><br/> Isto é especialmente util quando estamos à procura de uma qualquer funcionalidade e queremos saber, rapidamente, se uma implementação que encontramos utiliza as mesma base que nós estamos a utilizar no nosso site. <br/><br/> <h2> Search Status</h2> O Search Status permite-nos obter várias informações relacionadas com a indexação e rankings do site que estamos a visitar. <br/><br/> Permite também verificar qual é a densidade de um conjuntos de palavras numa página e verificar vários registos de um site, como seja o seu registo whois - a informação do registo do site, - versões mais antigas do site, com o <a href='http://archive.org'>http://archive.org</a>, e vários outros dados. <br/><br/> <h2> Cache Status</h2> O cache status dá-nos informações acerca da quantidade de cache que o nosso browser está a utilizar, e permite-nos apagar todos os ficheiros em cache. Eu utilizo-o apenas para fazer esta tarefa. <br/><br/> Botão direito sobre os icons (tenho o resto da informações escondida porque não me interessa), escolho "Clear all caches" e... já não há cache no browser! Menos uma questão a causar problemas. Assim tenho a certeza que o meu browser não me mostra uma versão mais antiga de ficheiro nenhum. <br/><br/> <h2> Flagfox</h2> Este é principalmente informativo... achei giro, mas não é, hoje, especialmente útil. Permite-me saber em que pais está o servidor onde estou a aceder. <br/><br/> Por exemplo, os servidores do <a href='http://www.google.com'>http://www.google.com</a> e <a href='http://www.google.pt'>http://www.google.pt</a> estão ambos nos Estados Unidos, mas os do <a href='http://www.clix.pt'>Clix</a> estão em Portugal. Nem me lembro dele, muitas vezes. <br/><br/> <h2> FoxTab</h2> <img src='http://www.webaserio.com/images/webaserio/shots/fireplugs/foxtab.png' class='textimg' alt='http://www.webaserio.com/images/webaserio/shots/fireplugs/foxtab.png'/> <br/><br/> O FoxTab permite mudar entre as tabs abertas, utilizando o Ctrl+Tab, e mostra-nos screenshots das várias tabs em 3D. É bastante configurável, e além de <i>bonito</i> faz com que perca muito menos tempo a clicar nas várias tabs à procura daquela que eu quero. <br/><br/> <h2> Speed Dial</h2> <img src='http://www.webaserio.com/images/webaserio/shots/fireplugs/speed-dial.png' class='textimg' alt='http://www.webaserio.com/images/webaserio/shots/fireplugs/speed-dial.png'/> <br/><br/> O Speed Dial é um plugin que utilizo como página inicial, e que pode ser utilizada para guardar links para os sites mais utilizados, mostra-nos um screenshot dos sites, e pode também ser utilizado para, em qualquer tab, mesmo que a página do speed dial não esteja visível, aceder rapidamente ao site, carregando em Ctrl+&lt;número&gt; - o número pode ser composto (20, por exemplo), para aceder ao site que está nessa posição da grelha do speed dial. <br/><br/> <h2> Outros</h2> E vocês, estimados leitores, que plugins utilizam, sem quais não podem viver? Quais consideram imprescindíveis? firefoxpluginswebdevel Vencer a Inercia http://www.webaserio.com/post/vencer-a-inercia.html Mon, 04 Jan 2010 09:00:00 GMT themage Há sempre uma desculpa, uma boa desculpa para não fazer alguma coisa, para adiar um qualquer projecto, especialmente quando não se está a ser pago para o fazer - às vezes até quando se está a ser pago. Incluindo escrever posts num blog. Há sempre uma desculpa, uma boa desculpa para não fazer alguma coisa, para adiar um qualquer projecto, especialmente quando não se está a ser pago para o fazer - às vezes até quando se está a ser pago. <br/><br/> Incluindo escrever posts num blog. <br/><br/> É isso que me tem acontecido ao longo dos últimos tempos. Com alguma frequência ainda me consigo forçar a adicionar algumas das muitas anedotas que tenho, principalmente em papel no <a href='http://melhor-remedio.com'>Melhor Remédio</a>, mas escrever nos blogs mais sérios, como este é outra cantiga. <br/><br/> Umas vezes ocupo o meu tempo a desenvolver novas funcionalidades no CMS que suporta todos os meus sites, e na <a href='http://mason-framework.net'>framework</a> sobre a qual ele é escrito, mas muitas vezes passo o meu tempo livre simplemente a ler o que muitos outros escrevem um pouco pela internet. E agora com o twitter é ainda mais fácil isso acontecer. <br/><br/> Mas, ao fim de algum tempo, as funcionalidades no Mabliki e na Mason Framework não servem de muito. É por isso que preciso forçar-me a escrever mais. A questão que se me coloca - e presumo que frequentemente se coloque também a muitas outras pessoas, talvez a algum dos meus três leitores - é como fazer para escrever mais, como forçar-me a terminar os vários posts que tenho começados no <a href='http://kate-editor.org/'>Kate</a> do meu eeePC? Como fazer para me forçar a escrever os vários posts que já pensei várias vezes escrever sobre <a href='http://dev.mysql.com'>MySQL</a>, <a href='http://jqueryui.com/'>jquery-ui</a>, sobre a <a href='http://developer.yahoo.com/ypatterns/'>Yahoo! Pattern Library</a>, e sobre os muitos outros temas que são hoje importantes e relevantes para quem faz desenvolvimento para web? <br/><br/> Têm este problema, de adiar constantemente escrever posts nos vossos blogs? Que truques utilizam para conseguirem escrever? ajudaescrever Google Go Lang e espaço extra http://www.webaserio.com/post/google-go-lang-e-espaco-extra.html Wed, 11 Nov 2009 13:15:00 GMT themage Há dias assim, em que por todo o lado só se vê uma determinada marca. Os blogs sobre Web hoje falam do google, por diversas razões... Há dias assim, em que por todo o lado só se vê uma determinada marca. Os blogs sobre Web hoje falam do google, por diversas razões: <br/><br/> <h2> Cloud Storage</h2> <br/><br/> O Google já permitia a quem queria ter mais espaço para as suas fotografias no <a href='http://picasa.google.com'>Picassa</a>, ou no <a href='http://www.gmail.com'>Gmail</a> pagasse por esse espaço adicional. Até agora o preço era de 20 Dólares por cada 10 GB. Esse preço é agora de 5 dólares por cada 20 GB, com um limite de 16 Terabytes. <br/><br/> <h2> Google Wave</h2> <br/><br/> Depois de distribuir 100 mil convites para o <a href='http://www.googlewave.com'>Google Wave</a>, a de dar 8 convites a cada um desse convidados iniciais para convidarem quem quizessem, o Google distribuiu este fim de semana mais 30 convites a cada um dos convidados iniciais... Ainda tenho, se estiverem interessados. <br/><br/> <h2> Go - A linguagem de programação</h2> <br/><br/> Hoje é fácil encontrar também referências à nova linguagem de programação que o Google disponibilizou, a <a href='http://www.golang.org'>Go</a>. Trata-se de uma linguagem de programação baseada em C, com tipagem forte, como o C, com uma aproximação original à programação orientada a objectos, com comunicação entre threads/processos nativa e simples de utilizar, locks e muito mais. <br/><br/> Eficaz, minimalista e directa ao objectivo. Esta parece-me uma linguagem de que vou ouvir falar bastante ainda, depois e o hype acabar, queria eu dizer! go langGooglegoogle wave Posts que atraem links http://www.webaserio.com/post/posts-que-atraem-links.html Thu, 22 Oct 2009 19:48:12 GMT themage Na passada segunda-feira foi publicado no blog SEOmoz um post que é o resultado de um estudo feito com base nos links existentes para os vários posts do blog, numa tentativa de encontrar as caracteristicas dos posts que são alvo de mais links de outros dominios. Na passada segunda-feira foi publicado no blog SEOmoz um post (<a href='http://feedproxy.google.com/~r/seomoz/~3/5gtQ7qqIsr0/what-makes-a-link-worthy-post-part-1'>What Makes a Link Worthy Post - Part 1</a>) que é o resultado de um estudo feito com base nos links existentes para os vários posts do blog, numa tentativa de encontrar as caracteristicas dos posts que são alvo de mais links de outros dominios. <br/><br/> Algumas das conclusões do estudo parecem obvias para qualquer blogger com um pouco mais de experiência, mas algumas delas contrariam algumas das ideias mais comuns no meio do bloggers mais profissionais. Vou guardar essa para o final, pois nunca é demais reforçar algumas das ideias mais comuns nas cabeças da maioria de nós, mas que ainda assim nem sempre são aplicadas com a frequência com que poderiam ser. <br/><br/> Assim, uma das caracteristicas verificadas é se a presença de elementos multimédia ou lista torna os posts alvo de mais links do que os posts que não têm esses elementos. e a verdade é que em média, os posts que têm listas, imagens ou videos recebem em média mais links do que os posts que não têm nenhum desses elementos. <br/><br/> Posts com videos recebem até três vezes mais links do que posts apenas com texto. E posts com esses três elementos recebem até seis vezes mais links do que posts que não têm qualquer deles. <br/><br/> A descoberta interessante é que o tamanho dos posts tem impacto na quantidade de links que esses posts recebem, mas ao contrário do que é normalmente vinculado em muitos dos blogs sobre SEO e sobre blogging, os posts com 1800 a 3000 palavras chegam a receber até quinze vezes mais links dos que os posts com menos do que 600 palavras. <br/><br/> Isto, claro, pode ser verdade apenas para blogs como o SEOmoz, em que a grande maioria dos posts de grande dimensão são tutoriais ou apresentação de teses ou estudos, por contrapartida com os posts menores que não passam de pequenos artigos informativos acerca de algo que se está a passar num qualquer outro lugar da internet. <br/><br/> Mais uma vez, podem encontrar o post original no seoMoz, sob o titulo <a href='http://feedproxy.google.com/~r/seomoz/~3/5gtQ7qqIsr0/what-makes-a-link-worthy-post-part-1'>What Makes a Link Worthy Post - Part 1</a> (as partes seguintes ainda não foram publicadas). estudolinkbaitSEOmoz A compreensão das Licenças http://www.webaserio.com/post/a-compreensao-das-licencas.html Sun, 27 Sep 2009 21:13:08 GMT themage Hoje encontrei mais um blog que licencia os seus conteúdos utilizando uma licença à medida (proíbida a reprodução) e uma licença pré-definida (Creative Commons). E isso levou-me a escrever este post sobre a importância de perceber as formas de licenciamentos actuais e as sua importância. <blockquote> É proibida a reprodução total ou parcial de posts deste blogue sem a indicação expressa das autoria e proveniência <br/><br/> Reservad@s todos os Direitos de Autor <br/><br/> Creative Commons License Esta obra está licenciada sob uma Licença Creative Commons. <img src='http://i.creativecommons.org/l/by-nc-nd/2.5/pt/88x31.png' class='textimg' alt='http://i.creativecommons.org/l/by-nc-nd/2.5/pt/88x31.png'/> <br/><br/> Esta obra está licenciada sob uma Licença Creative Commons. </blockquote> <br/><br/> Esta mensagem pode ler-se na lateral do blog <a href='http://www.100nada.net/'>100nada</a>. Cito a licença apenas a título de exemplo, pois tenho a certeza que conhecem outros blogs e/ou sites que licenciam os seus conteúdos de forma igualmente conflituosa. <br/><br/> Mas, antes que perguntem, este duplo licenciamente é, não apenas conflituoso, mas também oportunista ou irresponsável. Será oportunista se tiver sido feito de forma consciente, para tirar partido das indexações especiais para conteúdos licenciados com Creative Commons. Será irresponsável se tiver sido colocado no blog sem se perceber o que se estava a fazer. <br/><br/> Eu, quando desenvolvo software a título pessoal, licencio o código sob a licença <a href='http://www.gnu.org/copyleft/gpl.html'>GPL</a>. Esta licença diz que qualquer pessoa pode utilizar este software para o que bem entender, sem me pagar nada, que não me pode responsabilizar porque nada, e que deve disponibilizar qualquer alteração que faça ao meu software. É uma licença mais ou menos simples, mais complexa nesta versão 3 para deixar explicitas no corpo de licença questões que já eram para a maioria de nós obvias nas versões anteriores, mas que muitas pessoas pareciam não perceber, nomeadamente que ao licenciar um software como GPL, qualquer patente que cubra uma parte do software licenciado fica automáticamente licenciada gratuitamente - está, para mim, explicito quando se permite a utilização e alteração do software, e ainda por cima se força o autor das alterações a disponibilizar essas mesmas alterações. <br/><br/> O GPL é uma licença mais do que imposta em tribunal, e já poucas empresas de software acham que podem utilizar software (ou partes de software) GPL em software fechado. Mais cedo ou mais tarde acabam por ser descobertos e obrigados por tribunal a abrir todo o código que está junto com o código GPL original. <br/><br/> A licença <a href='http://creativecommons.org/choose/'>Creative Commons</a> é uma licença destinada a permitir a cópia de conteúdos em condições controladas. O autor pode escolher permitir apenas a cópia da obra integral, autorizar ou não a criação de obras derivadas, e permitir a utilização da obra comercialmente ou não. A autoria da obra, no entanto, sob Creative Commmons, deve ser sempre mantida e divulgada. <br/><br/> É por isto que não faz sentido dizer que não é permitida a cópia dos conteúdos e depois dizer que estão licenciados sob a licença Creative Commons. Vá lá, não é assim tão díficil ler o texto das licenças antes de afixar os seus nomes e logos no site. creative commonsgpllicenças Planear Aplicações Web de alta disponibilidade http://www.webaserio.com/post/planear-aplicacoes-web-de-alta-disponibilidade.html Thu, 03 Sep 2009 14:30:00 GMT themage Hoje gostaria de vos deixar uma pequena apresentação da autoria de Yue Tian, intitulada, no original "Planning For High Performance Web Application". Hoje gostaria de vos deixar uma pequena apresentação da autoria de Yue Tian, intitulada, no original "Planning For High Performance Web Application". <br/><br/> <div style="width:425px;text-align:left" id="__ss_475026"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=planning-for-high-performance-web-application-1213868838994903-8&stripped_title=planning-for-high-performance-web-application" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=planning-for-high-performance-web-application-1213868838994903-8&stripped_title=planning-for-high-performance-web-application" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div> <br/><br/> Bem, esta não é a única e completa solução para criar sites de alta disponibilidade, mas muito do apresentado nesta pequena apresentação é uma base importante sobre a qual construir arquitecturas web de alta disponibilidade. alta disponibilidadeapresentaçãoarquitectura Google Adsense - Review Center e Competitive Filter http://www.webaserio.com/post/google-adsense---review-center-e-competitive-filter.html Mon, 31 Aug 2009 08:30:00 GMT themage O Google disponíbiliza duas ferramentas a quem quizer utilizar o Google AdSense para rentabilizar os seus sites, que lhes permite excluir os anúncios que não sejam do seu agrado - O Ad Review Center e o Competitive Ad Filter. O Google disponíbiliza duas ferramentas a quem quizer utilizar o <b>Google AdSense</b> para rentabilizar os seus sites, que lhes permite excluir os anúncios que não sejam do seu agrado - O <i>Ad Review Center</i> e o <i>Competitive Ad Filter</i>. <br/><br/> <h2> Ad Review Center</h2> O <i>Ad Review Center</i> permite validar os anúncios que foram colocados directamente no nossos sites. No <a href='http://adwords.google.com'>AdWords</a> os anúnciantes têm a possíbilidade de anúnciar apenas num site especifico, ou se tivermos <i>Targetable</i> Channels associados aos anúncios dos sites, os anúnciantes podem mesmo escolher em que Channel especifico querem que os seus anúncios apareçam. <br/><br/> E, quando os nossos sites são os alvos dessas campanhas, o Google dá-nos uma ferramente que nos permite analizar estes anúncios e decidir se queremos que eles apareçam no site ou não. Trata-se do <a href='https://www.google.com/adsense/site-targeted-ad-review'>Ad Review Center</a>. <br/><br/> <h2> Competitive Ad Filter</h2> Por outro lado, o mais normal é os anúncios aparecerem nos nossos sites em consequência das keywords selecionadas pelo anunciante e que aparecem no nosso conteúdo. Ao contrário dos anúncios dirigidos especificamente ao nosso site, os anúncios dirigidos a uma palavra-chave não podem ser filtrados individualmente, e o google não nos disponíbiliza uma lista dos anúncios e dos anúnciantes que podem aparecer nos nossos sites ou em cada uma das páginas dos sites, pelo que filtrá-los não é tão simples. <br/><br/> Mas ainda assim, o google disponíbiliza-nos uma ferramente que nos permite impedir que um qualquer anúncio apareça nos sites. Trata-se do <i>Competitive Ad Filter</i>. Esta funcionalidade destina-se a filtrar os concorrentes do nosso site, mas pode perfeitamente ser utilizada para eliminar sites que preferimos não divulgar, seja porque discordamos das suas práticas ou porque (achamos que) eles têm um retorno menor para nós do que os restantes anúncios que passam a aparecer quando o espaço não está acupado por esses anúncios. <br/><br/> Eu, por exemplo, utilizo esta funcionalidade para filtrar os anúncios de "dinheiro fácil" e da maioria dos serviços de SMSs que encontro. Claro que para filtrar esses sites temos primeiro que encontrar os links para onde os anúncios nos enviam. A forma mais simples é clicar com o botão direito do rato (assumindo, obviamente, que são dextros) sobre o link do banner, selecionar a opção <i>Copy Link Address</i> (ou o equivalênte na lingua em que tenham o vosso browser), colar o link num editor de texto e depois encontrar o parâmetro <i>adurl</i> do link: <br/><br/> <code> <br/>http://googleads.g.doubleclick.net/aclk?sa=l&amp;(...)&amp;adurl=<b>http://www.opinionmaker.pt</b>&amp;nm=11 <br/></code> <br/><br/> O link nesse parâmetro é o site para onde o banner irá enviar o utilizador. É esse o site que devem colocar no <a href='https://www.google.com/adsense/filter-online'>Competitive Ad Filter</a>. No caso acime, provavelmente quereriamos colocar lá <b>opinionmaker.pt</b> (o que não vou fazer, pois não tenho nada contra o site <a href='http://www.opinionmaker.pt'>http://www.opinionmaker.pt</a> - parecem-me apenas uma empresa de PR, como tantas outras, que precisava de uma grande optimização no site, nada de mais). <br/><br/> Outra forma, obvia de encontrar o link do anúncio seria clicar no anúncio, mas isso é algo que está vedado aos editores dos sites com adsense se não querem que as respectivas contas sejam bloqueadas. Assim, se acharem muito complicado clicar no link com o botão direito do rato, ou se têm medo de clicar no link sem querer, vão a um site onde o anúncio também apareça e que não seja vosso e cliquem no link lá. Escolham um site de que gostem, pois estarão a dar algum dinheiro ao site. E o link que devem bloquear é aquele onde foram parar. Mas, idealmente, utilizem o botão direito do rato. <br/><br/> <h2> Filtrar concorrentes e idiologias dissonantes</h2> Mas, para que servem estas funcionalidades? Bem, para filtrar concorrentes ou sites que violam os nossos principios (principios, não direitos - violar os nossos direitos está incluido, mas não é tudo o que isto pode incluir). <br/><br/> Imaginem que fazem sites, podem querer remover do vosso site todos os anúncios de webdesigners e empresas de webdesign. Imaginem que vendem livros, podem querer remover todos os anúncios de lojas de livros. <br/><br/> Ou imaginem que não concordam com as politicas de uma qualquer empresa, podem decidir remover todos os anúncios que levam os vossos utilizadores para os sites dessa empresa. É o que eu faço com todos os serviços de SMS com assinaturas. adsenseGooglepublicidade Conteúdo Web distribuído http://www.webaserio.com/post/conteudo-web-distribuido.html Wed, 26 Aug 2009 08:45:00 GMT themage Desenvolver sites que cresçam realmente é uma questão que não se coloca todos a dias a todos os programadores web. Admitamos, para muitos de nós um site será visitado, eventualmente, por alguns (poucos) milhares de pessoas por dia. Mas quando se desenvolve para gráficos de pageviews com milhões, é preciso pensar como se consegue servir tantas pessoas. Desenvolver sites que cresçam realmente é uma questão que não se coloca todos a dias a todos os programadores web. Admitamos, para muitos de nós um site será visitado, eventualmente, por alguns (poucos) milhares de pessoas por dia. Mas quando se desenvolve para gráficos de pageviews com milhões, é preciso pensar como se consegue servir tantas pessoas. <br/><br/> Eu entrei para o <a href='http://www.sapo.pt'>Sapo</a> em 2000 (a 3 de Maio de 2000 - depois de almoço, para ser realmente preciso). Era na altura uma equipa com 2 ou 3 webdesigners, eu era o quarto programador, e pouco antes de mim tinham entrado os primeiros administradores de sistemas dedicados à tarefa. E uma pequena equipa editorial - bem maior do que a equipa técnica, ainda assim. <br/><br/> Mas o realmente impressionante no Sapo é que tinha em Abril desse ano ultrapassado pela primeira vez a média diária de 1 milhão de pageviews. E era servido, na altura numa infra-estrutura constituida por 1 servidor MySQL, e 3 ou 4 servidores Apache. Todos os ficheiros eram então alojados num único share NFS, que era montado directamente em todos os front-ends. <br/><br/> Uma grande parte dos sites eram então pré-gerados, a partir do mysql, e o que chegava aos front-ends era uma versão estática dos sites. Completamente estática. As poucas páginas dinâmicas utilizavam o único MySQL existente. <br/><br/> Mas, há medida que o novo século se aproximou, foi-se tornando cada vez mais evidente que não poderiamos continuar a viver exclusivamente de páginas estáticas, pois a sua geração tornava-se cada vez mais demorada à medida que a base de conteúdo crescia, tentativas de geração parcial resultaram em templates desactualizados, os utilizadores e a equipa editorial, responsável pelos conteúdos queriam ter maior controlo sobre o que estava online com maior rapidez. <br/><br/> E por isso, algures entre finais de 2000 e inicio de 2001 foi decidido avançar com a instalação de réplicas de MySQL em todos os front-ends e, do dia para a noite, fizemos upgrade do nosso MySQL para a última versão, o que nos obrigou a alterar vários dos nossos sites (pois tinhamos um campo chamado show - a data de publicação dos conteúdos) e os scripts de geração dos conteúdos estáticos. <br/><br/> Ficamos então com uma réplica, só de leitura, em cada um dos nossos front-ends, e todas as escritas a terem que ser feitas no servidor central. Então o mysql apenas permitia replicação unidirecional. <br/><br/> E com isto passamos a ter o nosso conteúdo distribuido. Ao longo dos primeiros meses tivemos inúmeros problemas (réplicas que se atrasavam sem nos apercebermos, alguém escrevia numa réplica local e toda a replicação para essa réplica parava, dificuldades em levantar um novo front-end, etc), mas ficamos com capacidade para servir muito mais páginas dinâmicamente do que conseguiriamos de outra forma. <br/><br/> Esta foi a primeira abordagem que vi ao problema de distribuir por um conjunto cada vez mais largo de servidores. <br/><br/> Mas, desde então muitas outras formas de abordar este mesmo problema foram surgindo, algumas delas para abordar problemas ainda mais complexos, que permitam elaborar de forma descentralizada tarefas cada vez mais complexas e morosas e não apenas distribuir o conteúdo. <br/><br/> Gerar as páginas finais de forma estática é uma das formas mais simples de distribuir, pois é fácil partilhar os ficheiros entre vários computadores. Mas não é forma de fazer muitas das coisas que todos nós esperamos hoje de um site, como conteúdo diferenciado por utilizador, actualizações parciais das páginas, ou qualquer das muitas outras coisas que o ajax permite hoje. <br/><br/> Gerar ficheiros de dados com os conteúdos é outra das opções. Os ficheiros podem ser gerados por uma maquina e distribuidos para todas as maquinas que necessitem desses conteúdos, e os ficheiros são depois utilizados para obter os conteúdos e processá-los da forma adequada a cada situação. Os ficheiros podes ser distribuidos utilizando protocolos como o <i>rsync</i>, <i>FTP</i> ou o <i>SCP</i>, ou podem ser partilhados num filesystem de rede. Independentemente da forma de distribuição, este tipo de sistema tem ainda o atraso da geração dos conteúdos. <br/><br/> O que nos leva àquela que é a solução do momento. Os sistemas de <i>Message Queue</i>. Neste tipo de sistemas, todos os produtores de conteúdo se limitam a <i>entregar</i> o conteúdo ao sistema de <i>message queue</i>, que se encarrega de o distribuir para todos os interessados nesse tipo de conteúdo. E podem ser utilizados para muito mais do que apenas distribuir o conteúdo. Um sistema de message queue bem implementado pode ser a base de comunicação de uma arquitectura completamente distribuida sobre a qual se conseguem implementar sistemas bastante complexos em que as várias partes não têm qualquer dependência umas das outras, com excepção da estrutura das mensagens que trocam entre si. <br/><br/> Mas, claro, sistema de <i>message queue</i> não são a solução final para todos os problemas do desenvolvimento web. Muitas das velhas soluções continuam a ser necessárias e úteis. Muitas delas contínuam mesmo a ser a melhor solução para o problema que resolvem. <br/><br/> Mas, na verdade, quantos de vós precisam de distribuir as tarefas dos sites que desenvolvem? Quantos de vós precisam que os vossos conteúdos estejam disponíveis ao mesmo tempo em mais do que um servidor? Quem tem curiosidade acerca deste tipo de arquitecturas, sobre como as implementar? message queuemysqlsistemas distribuidos