terça-feira, 25 de maio de 2010

Robots.txt - Ajudando os buscadores

Voltamos a mais um artigo sobre boas práticas de web.

O assunto de hoje não tem a ver diretamente com usuários, e sim com os buscadores: robots.txt

O que é?

O arquivo robots.txt é algo extremamente simples. De verdade. É um arquivo, com o nome "robots.txt", que deve ficar na raíz do site, e com um conteúdo similar a:

User-agent: *
Disallow: /img/
Disallow: /styles/
Disallow: /scripts/
Disallow: /busca.php

Explicação

Na primeira linha definimos o user-agent, que nada mais é que o nome do crawler. No caso especificamos *, curinga para todos os crawlers. Para saber melhor quais os nomes válidos, veja a lista completa.

Nas outras linhas temos Disallow, que é a dica de quais diretórios e arquivos não indexar. No caso acima, dizemos que todo o conteúdo dos diretórios img, scripts e styles não devem ser indexados, e que o arquivo /busca.php também não.

Outras opções

Existem várias outras opções que não fazem parte do padrão como
  • Allow - funciona como o disallow, mas ao invés de proibir, permite
  • Delay - diz qual o intervalo em segundos entre uma requisição e outra
  • Request-rate - que diz qual a taxa de requisições.
  • Visit-time - diz qual o melhor intervalo para visitação do crawler
  • Sitemap - diz onde está o sitemap xml do site.

O que usar?

É muito incomum ver nos robots.txt existentes, alguma diretiva que fuja do padrão (user-agent e disallow), com exceção da diretiva sitemap. Para os crawlers dos maiores buscadores (google, yahoo, bing, ask), o uso dessa diretiva é bastante útil, então o uso da diretiva sitemap é recomendado.

Considerações

Assim como o sitemap, a função do robots.txt é meramente informativa. O trabalho de indexação acontece de forma independente. Um badbot pode - e provavelmente irá - ignorar uma cláusula de disallow. Para evitar a indexação de informações privilegiadas, use o .htaccess.

Mas sem neuroses, a existência do robots.txt no seu site indica a preocupação em ajudar os crawlers na tarefa de indexação, e isso com certeza conta alguns pontos para uma melhor colocação do site. É mais poderoso ainda se você indicar um sitemap.

Exemplo final

User-agent: *
Disallow: /scripts/
Disallow: /styles/
Disallow: /private/
Disallow: /busca.php
Sitemap: http://www.seusite.com/sitemaps/sitemap.xml

Até a próxima.
----------- keepReading

segunda-feira, 24 de maio de 2010

Sitemaps -- Como fazer e o que fazer com eles

Fala pessoal, vamos continuar o assunto de boas práticas e de design voltado ao usuário que abordei nos dois últimos posts desse blog.

Os sitemaps são uma poderosa ferramenta de organização e SEO. Alguns buscadores aceitam que você envie o sitemap o seu site. Assim eles sabem exatamente o que indexar, ao invés de apenas ir navegando e filtrando. Outro lugar onde você pode fazer referência ao seu sitemap é no arquivo robots.txt (falaremos brevemente sobre esse arquivo num post futuro).

Isso sem contar que um sitemap em XML pode servir de base para que você crie seu sitemap HTML (seja server-side, ou com transformação XSLT).

Chega de papo. Vamos ao que interessa. Um arquivo sitemap é nada mais que um arquivo XML, com o seguinte formato:

O arquivo de sitemap

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
  <loc>http://www.example.com/</loc>
  <lastmod>2005-01-01</lastmod>
  <changefreq>monthly</changefreq>
  <priority>0.8</priority>
 </url>
</urlset>

Explicando cada tag.
urlset - é a raíz do arquivo. Só pode existir uma.
url - é usada para englobar as propriedade de cada página. Cada página do site precisa de um conjunto desses.
loc - é o endereço da página. Importante: esse endereço deve ser escapado. Mais detalhes abaixo.
lastmod - é a data da última modificação da página, no formato AAAA-MM-DD
changefreq - é a frequencia com que a página tem seu conteúdo atualizado (aceita os valores always, hourly, daily, weekly, monthly, yearly, never - sempre, horário, diário, semanal, mensal, anual, nunca respectivamente).
priority - define a prioridade da página em relação ao site. Os valores vão de 0.01 a 1.00

Explicações

As tags lastmod, changefreq e priority são opcionais. Note que o changefreq dá apenas uma indicação aos buscadores. Uma página marcada com always ou hourly pode ser indexada com uma frequencia menor do que isso. Uma página marcada com yearly, pode ser indexada mais de uma vez por ano. Ou seja, ela é apenas uma dica. A indexação de fato é feita pelos buscadores, e não há como garantir isso com precisão absoluta.

Para sites dinâmicos, criar o sitemap na mão pode ser bastante complicado. Então podemos criar um script que gere o sitemap. Eu criei um script rápido em PHP que faz isso.

Outra observação a ser feita é em relação ao uso da tag priority. Setar todas as páginas com prioridade 1.00 (mais importante) é uma tentação como todas as outras práticas de black hat SEO. Não faça isso!

Na dúvida deixe o valor 1.00 para a home, e outros valores mais baixos para outras páginas. Uma boa abordagem seria contar quantos níveis existem no path para cada página, e daí sim basear o valor de cada página. Por exemplo, para o endereço http://www.seusite.com.br/artigos /subcategoria/nome-do-artigo.html, vemos a seguinte estrutura:
0 - http://www.seusite.com.br/
1 - http://www.seusite.com.br/artigos/
2 - http://www.seusite.com.br/artigos/subcategoria/
3 - http://www.seusite.com.br/artigos/subcategoria/nome-do-artigo.html

Daí podemos fazer a seguinte associação de valores:
0 - 1.00
1 - 0.85
2 - 0.80
3 - 0.75

Ou mesmo inverter os dois últimos números, 0.80 e 0.75 (isso porque o conteúdo de um artigo geralment é mais importante do que o índice, mas uma seção de artigos é mais importante que um artigo sozinho).

Uma outra abordagem para calcular o valor da prioridade seria ver qual o real valor do conteúdo de cada página para o site. Vamos supor que você escreveu um artigo muito bom, ou tem uma página de produtos que atrai mais visitas que sua própria página inicial - em outros termos, você tem uma outra fonte de entrada muito boa no seu site.

É normal e aceitável que esta página tenha um valor de prioridade maior na indexação, podendo ser mesmo 1.00 (> 80% das visitas vindo por mecanismos de busca achem seu site por esta página).

Em suma: o bom senso deve imperar.

E o escaping das URLs?

Pra fechar, deixe-me falar sobre o valor da tag mais importante de cada URL, a tag loc.
O valor para esta tag que contém a URL deve ser uma URL escapada - com os carateres especiais codificados.

Por exemplo, a URL http://www.seusite.com.br/usuários/josé123 deverá ser escrita no sitemap como
http://www.seusite.com.br/usu%C3%A1rios/jos%C3%A9.

Esse resultado pode ser obtido pelo javascript, usando a função encodeURI(), ou no PHP, com a função encodeurl. Note que o PHP também faz o encoding dos caracteres especiais como ":" e "/".

No meu script há uma ligeira adaptação da função encodeURL. Eu uso a função encodeURL, e depois a str_replace para voltar os caracteres de controle ao normal.

Bom, isso é tudo. No próximo artigo, um tapa no robots.txt. Até lá.
----------- keepReading

sexta-feira, 21 de maio de 2010

Páginas de erro 404 úteis - Nos bastidores

No artigo passado sobre páginas de erro 404 úteis, vimos que existem possibilidades de sugestões e alternativas para ajudar pessoas e navegadores a encontrar o conteúdo que procuram.

Agora é hora de uma pitada técnica sobre os cabeçalhos HTTP envolvidos nesse processo, e como eles afetam sua página nos buscadores.

É de uso comum e corrente, que quando uma página não é encontrada, se faça um redirecionamento para uma página padrão, como a página de entrada. Como seguinte trecho de PHP:
<?php
header("Location http://www.seusite.com.br/");
?>

O problema dessa implementação é bem simples. Você envia junto com esse header Location, um cabeçalho HTTP 302 (Found).

Vamos supor que um indexador (googlebot, ou qqr outro) veja um link num outro site, apontando para o seu, mas com o endereço para uma página que não existe, e deveria lançar um erro 404 - porque ela não existe!

Sua manipulação com o simples header location, ou mesmo com um redirect 301 no .htaccess vai enviar o código errado, e o indexador vai entender essa página inexistente como uma existente. Pior, pode ser que ela indexe conteúdo duplicado (muitos links diferentes que apontam para uma mesma página). O que é uma má prática bad SEO.

Quando criar a sua página de erro para páginas não encontradas, SEMPRE se assegure que vai enviar o cabeçalho HTTP 404.

Em PHP o código é bem simples.
<?php
header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
?>
//código da página de erro amigável

Assim, você garante a correta indexação e a consistencia entre o seu sitemap XML, e as páginas válidas no seu site.

No próximo post: sitemaps.
----------- keepReading

Criando páginas 404 úteis

As famosas páginas de error 404 - Documento não encontrado são um saco. Ninguém gosta de clicar num link e ver uma página de erro, em branco asséptico, com a única opção de voltar ou ver se digitou errado (quando vc digita o endereço ainda vai, o problema é quando vc clica e cai numa página de erro.)

Bom, ninguém gosta dessas páginas. Nem os motores de busca. Mas o que fazer? Bom, é dever de quem faz web com qualidade, cuidar para providenciar alternativas amigáveis.
  • Sugestões
  • Mapa do site
  • Busca no site
Vamos por partes. E partir do pressuposto que você tem um mapa do site (sitemap). Ou melhor, dois. Um sitemap XML e um HTML. Num futuro proximo escreverei sobre Sitemaps. Por enquanto basta saber que é basicamente uma coleção de links que de fato existem e são válidos no seu site.

Agora mais uma suposição de uma página de conteúdo seu. http://www.seusite.com.br/viagens/recife.html

Esta sua página foi linkada ou enviada por algum amigo seu, por engano como http://www.seusite.com.br/viagens/reci

Isso mesmo, truncada. Quando alguém clicar, invariávelmente vai cair numa página de erro 404, porque essa página não existe. Aqui é onde os truques começam.

A forma mais simples de processar isso seria procurar entre os links que vc tem como válidos no seu sitemap (a versão XML é melhor para isso, por facilidade de implementação), um link que tenha o endereço informado como parte e sugerir esse(s), links.

Por exemplo,
Páginas mais próximas:
http://www.seusite.com.br/viagens/recife.html
http://www.seusite.com.br/viagens/recitais_em_gramado.html

Bem melhor, não? Ter alternativas válidas ao invés de uma mensagem de erro apenas.

Mas podemos melhorar ainda mais dando uma alternativa à raiz do diretório imediatamente anterior. No caso, o link para http://www.seusite.com.br/viagens/

Fora essas sigestões de links, nos restam como alternativas:
Oferecer o link para o sitemap em versão html, e oferecer uma busca no site.

http://www.seusite.com.br/mapa_do_site/



Como resultado final, se alguém clicar num link para http://www.seusite.com.br/viagens/reci vai ser levado às seguintes sugestões:

http://www.seusite.com.br/viagens/recife.html
http://www.seusite.com.br/viagens/recitais_em_gramado.html
http://www.seusite.com.br/viagens/
http://www.seusite.com.br/mapa_do_site/


Ótimo. Agora ao invés de ter uma página de erro que enche o saco, temos uma página de erro que ajuda as pessoas e os buscadores através de alternativas e sugestões.

Até o próximo artigo onde vou explicar uma parte mais técnica para a implementação.
----------- keepReading

sexta-feira, 14 de maio de 2010

Validações em PHP

Andei trabalhando bastante com web esses últimos tempos, e uma coisa que sempre consome muito tempo e neurônios é segurança em geral.

Até que eu encontrei uns artigos do Chris Shifflet. Todos artigos do cara são muito bons. Vale a pena dar uma lida com carinho.

Eu já havia lido algumas coisas publicadas por ele, mas apenas para Sessões PHP. Desta vez encontrei uma frase que mudou meu conceito de segurança em geral num artigo sobre XSS e CSRF.

"Instead of trying to predict what malicious data you want to reject, define your criteria for valid data, and force all input to abide by your guidelines."/cite>

Ou em português... "Ao invés de tentar adivinhar quais dados maliciosos você quer rejeitar, defina seu critério para dados válidos, e force todas entradas a obedecer suas regras.".

Isso não só me foi útil para definir critérios de validação de dados, mas também como design de software como um todo.

Aliado a boas práticas de outras áreas, isso se torna algo realmente valioso, pois economiza muitas e muitas linhas de código e neurônios.

----------- keepReading

terça-feira, 23 de março de 2010

HTML 5 e CSS 3

Já faz algum tempo (desde 2007 pelo que eu vejo), alguns blogs e portais de desenvolvimento vem falando sobre as novas versões das linguagens mais comuns para marcação e estilo usadas para web.

Com o boom da web 2.0 e com os buscadores valorizando mais o conteúdo, visando uma web mais útil, rica e interativa, a tendência de que as linguagens evoluissem para acompanhar os rumos e necessidades, tanto de desenvolvedores, quanto dos seus clientes.

Mas o que é e quais são as novidades? Não, não vou fazer um tutorial de 3 minutos falando sobre as novas tags e seletores por dois motivos: existem diversos tutoriais disponíveis, para todos os gostos, e porque ontem me deparei com uma seção sobre isso no W3C que me deixou um tanto quanto curioso.

O HTML5, além de incluir novas tags, propriedades e valores chave, trabalha um novo conceito, uma nova abordagem, em termos de design de conteúdo e de composição. Antes, no HTML 4, haviam elementos de bloco e elementos inline à nossa disposição, que poderiam ser arranjados afim de construir a navegação e o layout. Agora, não existe mais essa diferença (na verdade ainda existe), mas o enfoque é mais semântico. O HTML 5 trabalha em suas especificações com o conceito de modelo de conteúdo, ao invés do conceito de elementos de bloco e de linha.

O ponto negativo do HTML5, apesar da especificação bem mais madura que anos atrás, ainda é a falta de suporte nos navegadores.

Já o CSS3, é melhor suportado pelos navegadores atualmente. Ele não traz grandes novidades em termos semânticos ou de abordagem para implementação, e sim facilidades através de seletores e propriedades. Bordas arredondadas, text-shadow, e talvez a maior delas no meu ponto de vista, tipografia.

No próximo post, falarei sobre outras tecnologias que estão despontando com força sobre web semântica e SEO: RDFa e Microformats.

-----------
keepReading

terça-feira, 8 de dezembro de 2009

Santos Dummont era open source

Tirando as teias de aranha daqui, volto com um post que foge da linha técnica.

Deixa eu começar com uma história que me aconteceu uns dias atrás. Uma amiga minha, a Jaque, começou a fazer uns cursos voltados para desenvolvimento web. Ela, designer, ficou um tanto espantada com a complicação que é fazer a coisa direito (tags, HTML x XHTML, CSS, seletores, propriedades, navegadores diferentes renderizam diferente, preocupação com múltiplas plataformas, navegadores, resoluções de tela).

Também pudera, qualquer pessoa que entra no mundo de fazer web a sério desanima quando topa com toda essa complicação técnica. Eu conversei com ela, expliquei, mostrei algumas ferramentas legais (como alguns addons MUST HAVE do Firefox...). E depois de um tempo, lembrei que eu tinha feito a tempos atrás uns mock-ups praticamente bullet proof.

Uns esqueletões em XHTML e CSS, com direito a menuzinho bacana e tudo o mais, cross-browser (não cheguei a testar no IE8, no FF 3.5, nem no Opera 10... ainda), adaptável a várias resoluções, e por aí vai. Claro que a intenção não era dispensar o trabalho de um designer ou de um programador, mas pelo menos para essa parte chata, burocrática e que consome um tempo enorme do desenvolvimento poupar tempo, bastando apenas editar cores, bordas, fontes, espaçamentos e rechear com as imagens.

Enviei pra ela (pro namorado dela e para mais dois amigos). Ela achou bacana, completamente crú, mas dentro da proposta de facilitar as coisas. E eis que ela me lança a pergunta: "Hey, pq vc não vende isso?". Na hora fiquei meio sem reação, mas respondi que é pq eles eram meus amigos, oras.

Mas no fundo, é o mesmo motivo pelo qual eu escrevo e publico tutoriais ao invés de dar aulas particulares. É porque eu encaro o conhecimento como um bem para a humanidade. É isso. Tem gente que não entende, ou não concorda, ou ainda que acha insanamente altruísta esse lance todo.

Pode ser. Afinal, vamos a uma análise do processo. Construir algo de útil demanda recursos. Muitos recursos. No caso do software não é qualquer pessoa apta a criar algo, muito menos com qualidade e refinamento. Demanda muito tempo e dedicação, muito estudo, tentativa e erro, refinamento, leitura e aprendizado de novas técnicas... Mas depois que você tem algo relativamente satisfatório em mãos, não há muito mais o que fazer. O custo para a reprodução, replicação é MUITO baixo. Ao contrário de fazer um trem por exemplo, que demanda muita matéria prima, o software não demanda praticamente nada.

Esse é um dos pontos. Um outro é compartilhar conhecimento. Vamos tomar por base algum framework, como o Rails, o Kohana, ou o JQuery. Sem dúvida dá pra aprender muito e/ou aprofundar seriamente os conhecimentos apenas lendo os códigos deles. E sim, eu acredito que pessoas que fazem isso, que leem códigos levam o que fazem a sério, então nada mais justo do que compartilhar conhecimento com essas pessoas. Um dia mais tarde elas podem - e quase sempre realmente fazem isso - ajudar a aprimorar algo que também seja Open Source.

Ler códigos, analisar e entender, é uma das melhores práticas para se aprender alguma nova técnica e assim melhorar a qualidade do seu serviço, ou notar onde vc estava errando na sintaxe/raciocínio.

OK, falei do caso software, baixo custo de reprodução, vantagens à comunidade que realmente sabe e gosta do que faz. Mas e as outras coisas? Outros produtos e bens. Vamos terminar com um pouco de história.

Eu falei do trem. Para produzir um são necessários vários recursos. Mas e a planta, os rascunhos, o processo? Nada mais são do que folhas com anotações, desenhos, valores chave.... De posse desses documentos, qualquer pessoa com condições de ler e interpretar, e tendo os recursos necessários poderia reproduzir o produto em questão. seja uma folha de papel, ou um foguete.

Santos Dummont tinha essa visão, e também alegava que o conhecimento é um bem para a humanidade. Todos os seus projetos eram o que poderíamos chamar hoje de Open Source.

Assim, creio que nossa sociedade ainda não está evoluída a tal ponto, mas há indivíduos que já tem essa perspectiva de contribuição científica e cutural (hoje temos mais que antes) e dos benefícios que essa partilha trás.

É isso, até a próxima.
-----------
keepReading

domingo, 22 de fevereiro de 2009

Editores e mais editores - além do highlighting

Fala, pessoal.

Vira e mexe vejo disucussões sobre os editores e IDEs preferidos do pessoal. Muitos são incompreendidos, muitos são desconhecidos...

Bom aqui vão meus pitacos e dicas do que vale a pena dar uma olhada.

Começando pelos pesos-leve, os que vale a pena citar são:
Notepad++ (para windows, pode ser emulado via wine no Linux)
Facilidade para mudar o encoding do arquivo, suporte a várias linguagens, split (divisão) da tela, comparação de arquivos.

Kate (para KDE)
Suporte a muitas linguagens (muitas mesmo).

Bluefish
Vários recursos built-in (como por exemplo montar elementos HTML - tabelas e selectbox - em PHP baseado numa query, a partir de um click).

Agora os pesos-médio, mas graficamente espartanos... estou falando do VIM (gVIM) e do Emacs.

Ambos contam com muitos recursos, modos de edição diferentes, e permitem um tipo de integração com outros aplicativos e recursos tão grande que podem chegar a assustar à primeira vista - na verdade à primeira vista você não lhes dá um tostão, mas depois de usar por algum tempo você vê a genialidade e o poder trás dos mesmos.

E por fim, os editores parrudões.
Eclipse
Criado em Java, e visando a possibilidade de extensão ad infinitum, este é um dos editores mais usados hoje me dia. Atende a praticamente qualquer finalidade, e tem recursos excelentes - geralmente providos nas suas extensões específicas - como mapeamento de objetos, dicionário de função e previews em tempo real (compila e executa, ou conecta e executa...). O ponto fraco é o peso do mesmo, que facilmente enche 1 GB com seus recursos.

Quanta Plus
Suíte genial feita pra KDE. Em primeiro lugar é leve. Muito leve. E isso se deve por ele ser uma plataforma onde podem se agragar vários plugins (parecido com o Eclipse). Mas os plugins são componentes e aplicações do próprio KDE, e essa é a chave para a sua leveza. Em segundo lugar, ele tem recursos de editor para bater de frente com o Eclipse (ou quase, mas a diferença peso x funcionalidade compensa).

Não falarei sobre IDEs específicas como JavaBeans justamente por serem específicas demais.

Bom, é isso. Experimentem e opinem. Té mais.
-----------
keepReading

terça-feira, 10 de fevereiro de 2009

Monitor novo, vida nova

Fala pessoal.

Sei que prometi um novo formato e tals, mas o fato é que fiquei praticamente um mês sem meu PC. O monitor LG 500, um CRT de 15 polegadas velho de guerra, enfim bateu as botas.

Comprei nada mais nada menos que um Samsung 2232BW Plus para substituí-lo. Sim, um LCD TFT de 22 polegadas. Ignorância desmedida à parte, o fato é que foi a melhor relação custo/benefício que encontrei.

Nada difícil de configurar. Resolução máxima de 1680x1050, a 60Hz.

No Windows XP ele foi que foi... velho procedimento, colocar CD, instalar drivers e depois gozar da resolução máxima - aliás minha esposa joga Spore na resolução máxima, sem dar lag nem nada.

No Ubuntu, foi necessário um pouquinho de trabalho para configurar o xorg.conf, mas nada de outro planeta - mesmo assim acho válido falar sobre como foi, pois vai que tem alguém na mesma situação...

Assim que coloquei ele aqui, liguei primeiramente no Ubuntu, usando o cabo analógico (ele vem com um cabo analógico-RGB e um DVI-D).

Iniciou normalmente com resolução 1024x768. Tenho uma placa Nvidia GeForce XFX 6200, AGP, devidamente configurada e usando os drivers fornecidos pelos repositórios do Ubuntu (Ubuntu 7.10).

Enfim, a primeira coisa foi configurar o xorg.conf. Criei um backup do mesmo - isso é um passo mandatório, porque vai que dá algum problema você tem como voltar a uma configuração válida - e depois fiz a seguinte alteração (seções Monitor e Screen).


Section "Monitor"
Identifier "SyncMaster"
Vendorname "Samsung"
Modelname "2232BW"
Horizsync 31-81
Vertrefresh 56.0 - 75.0
modeline "1680x1050@56" 140.76 1680 1712 2240 2272 1050 1071 1081 1103 -hsync +vsync
Gamma 1.0
#Option "DPMS"
EndSection

Section "Screen"
Identifier "Default Screen"
Device "nVidia Corporation NV44A [GeForce 6200]"
Monitor "SyncMaster"
Defaultdepth 24
SubSection "Display"
Depth 24
Virtual 1680 1050
Modes "1680x1050@56" # "1024x768" "800x600" "720x400" "640x480"
EndSubSection
EndSection


Depois disso limpei as configurações que o GNOME salva nas seções - se você não fizer isso, ele vai reiniciar com a última resolução válida usada, que seria 1024x768 no meu caso.

Para fazer isso, basta editar o arquivo /home/yourUser/.gconf/desktop/gnome/screen/default/0/%gconf.xml

Crie, um backup por precaução. E edite como a seguir:

<?xml version="1.0"?>
<gconf>
<entry name="rate" mtime="1214273641" type="int" value="56">
</entry>
<entry name="resolution" mtime="1204383760" type="string">
<stringvalue>1680x1050</stringvalue>
</entry>
</gconf>


Pronto. Configurações feitas. Reiniciei. A resolução não foi aceita bem logo de primeira. Deu uma mensagem no próprio monitor. Apertei o botão de auto ajuste e pronto, me livrei da mensagem de erro, mas...

A resolução estava como 1680x1050, como previsto. o que é bem legal. Só que a tela estava deslocada para a direita e ficou uma faixa preta gigantesca na esquerda - tentei fazer um ajuste com o alinhamento de tela e tals, auto-ajuste, mas nada funcionou. Larguei mão e liguei fui instalar no Windows.

Tentei mais tarde, mas continuou com a faixa preta até que resolvi trocar o cabo RGB pelo DVI. Foi batata. Alinhou sozinho.

É interessante notar que esse monitor foi feito para trabalhar nativamente com a entrada DVI e operar a 1680x1050@60. Qualquer parâmetro que fuja disso, requer algum layer de adaptação. E quanto menos disso tivermos, melhor porque a chance de acopntecer alguma incompatibilidade ou erro é reduzida.

Por último quero falar sobre um monitor desses ser uma escolha razoável para compra. Como disse acima, sua resolução é 1680x1050. O Full HD que se fala hoje em dia é, grosseiramente falando, uma referência à resolução com 1080 linhas e scan progressivo - 1080p.

Em termos de resolução, estou apenas a 30 linhas disso. Os monitores que apresentam essa resolução são os de 24 polegadas e o mais barato deles é pelo menos mil reais mais caro.

O progressive scan faz diferença para gamers, o que não é meu caso. Assim, essa escolha se mostrou a mais vantajosa dentre as que eu poderia fazer.

See yo.
-----------
keepReading

sábado, 30 de agosto de 2008

Recuperando o grub

Eu uso muito pouco os produtos da M$ em casa. E tempos atrás o Windows deu pau pra variar. Fosse outra época, eu gastaria dias recuperando o sistema, os documentos, etc... Mas já faz muito tempo que não tenho saco pra ele.

Existem uns pouquíssimos motivos para eu continuar com ele na minha máquina, mas ele ainda é necessário sim. Pois bem, depois de muito postergar resolvi meter a mão na massa e fazer o odioso ritual do formata-e-instala.

Qual minha surpresa quando vou procurar no meio dos CDs e lembro que joguei fora o CD de instalação do Windows. Solução: deixar a madrugada inteira baixando um torrent. Terminado o download, vejo que o arquivo de imagem não era uma iso e sim um nrg, que é um formato de imagem proprietária do Nero, e não dava pra gravar direto pelo meu querido K3B. Nada de mais, uma googlada e pronto, eis uma linha de comando para fazer a conversão. Isso mesmo. Com uma linha deu pra fazer a conversão de nrg para iso, e enfim gravar a imagem num CD.

Ah sim a linha em questão é:
$dd bs=1k if=imagem.nrg of=imagem.iso skip=300

Enfim, comecei a via sacra... formata, instala, instala drivers, aplicativos básicos, aplicativos de segurança, configura uma coisa, configura outra, restaura os backups...

Hora de restaurar o grub, o bootloader do Linux, para que eu pudesse deixar a máquina novamente com dual boot.

Vou dar o boot com o CD do Linux e trava. Tento de novo e de novo e nada. O CD foi pro espaço tbm. Solução: baixar o Linux, gravar num CD e daí sim recuperar o meu mojo.

Depois de iniciar o boot com o CD do Linux, abri um terminal e fiz:

$sudo grub
>find /boot/grub/stage1

daí usei a saída do comando acima no comando abaixo

>root (hd0,0)
>setup (hd0)
>quit

Reiniciei e pronto. Tudo funcionando como deveria ser, nos trilhos.

E agora consegui passar as fotos do meu aniversário para o PC (sim, a minha câmera é um dos motivos para eu ainda manter o Rwindows aqui).

Hasta la vista.
-----------
keepReading