Archive for agosto, 2009

30th ago 2009

Campanhas anti IE6 – até onde elas vão?

Campanhas anti IE6 são recorrentes em diversos blogs e sites, pelo mundo todo.

Não tenho um estudo profundo a respeito disso, mas acredito que essas campanhas tenham começado em blogs de desenvolvedores web que estavam cansados de ter que fazer implementações específicas para o IE6 devido à falta de suporte aos padrões, sendo que todos os browsers concorrentes possuem esse suporte – se não 100%, pelo menos trabalham visando ter esse suporte total.

Campanhas agressivas anti IE6

Hoje em dia, essas campanhas até deixaram o mundo dos desenvolvedores e estão chegando ao usuário final – o Google já assumiu que não vai mais dar suporte a esse browser no Orkut nem Youtube – e diversos outros sites estão anunciando o mesmo.

Por outro lado, quem trabalha com web sabe que é difícil deixar de lado esse browser se ele ainda representa uma boa parcela dos usuários (possuo dados de alguns sites de clientes que tem 30% de acesso com IE6) ainda usa essa versão, e que para o usuário final, tanto faz essa “briga” – ele nem sabe que ela existe, na verdade.

Vira e mexe, me deparo com posts em blogs que estão levando a discussão a um nivel superior; não estão indo contra o IE6, mas analisando porque ele não deixa de ser usado e qual a posição da Microsoft perante a questão dos padrões

Eu tenho uma opinião muito bem formada a respeito disso: enquanto não tiver uma conscientização de “quem manda” para nivelar por cima a guerra (no bom sentido!) dos browsers, ela vai continuar sendo nivelada por baixo (e, com isso, sempre alguém vai se sujeitar a fazer o site pro IE6 e vai ganhar dinheiro nesse nicho de mercado). Parte de quem faz a web acontecer – não dos desenvolvedores, mas sim de quem assina o cheque, de quem é responsável por viabilizar os projetos – entender que olhar para o futuro é obrigatório, seguir padrões de desenvolvimento é bom para todos e torna a web um ambiente mais estável.

E você, o que acha?
*sei que a enquete tem poucas opções, mas o espaço para comentários está aí!

O que você acha dessas campanhas "anti IE6"?

View Results

Loading ... Loading ...

Posted by Posted by Chris under Filed under Diversos, Tecnologia, enquetes, web 2.0 Comments 7 Comments »

28th ago 2009

Brincadeiras com o Windows Vista

Não tenho nada contra o Windows em si – principalmente depois que usei por anos o Windows XP, que para uso doméstico acho muito bom – mesmo hoje em dia não usando mais (ou é o Ubuntu, ou Mac OS).

Mas, o Windows Vista é um retrocesso (que me faz lembrar o Windows ME). Vamos ver se o Windows 7 vai ser algo decente… por hora, porque não fazer brincadeiras (com total fundo de verdade) sobre o Vista

9349_ctrl-alt-del_20070331_upgrade
Upgrade do XP pro Vista

9349_vista-sourcecode.gif
Código-fonte do Windows Vista
9349_vista-blue-screen-of-death2
E pra finalizar, a famosa tela azul…

Posted by Posted by Chris under Filed under fun Comments 21 Comments »

27th ago 2009

XMLHttpRequest cross-site: mais uma vez o IE fora do padrão

Uma questão fortemente levantada para quem implementa interfaces web é a das requisições assíncronas feitas por javascript não poder ser feitas de um domínio para o outro (por exemplo, um javascript hospedado em http://minhaurl.com não consegue acessar nenhuma outra url em outro domínio, como http://aquelaurl.com)

Tem há algum tempo a especificação 2 do XMLHttpRequest que possibilita essa funcionalidade, chamada de CORS: Cross-Origin Resource Sharing
Basicamente, é uma troca de headers específicos entre cliente e servidor para formalizar e garantir a origem da requisição.

Ulá-lá, isso é uma mão na roda!

E é mesmo! Abrem-se muitas portas: muitos mashups podem ser feitos, muitas coisas que antes necessitavam de backend podem ser resolvidas apenas na camada de interface, dentro outras – claro, sempre levando em conta questões de segurança, como tomar muito cuidado em como você vai expor seus dados por aí pela web, e tomar extra-care quando se tratar de requisições que podem alterar dados persistidos na sua aplicação.
A essa funcionalidade, de fazer requisições entre servidores, é dado o apelido XDR (X de cross, D de domain, R de request).

O foco desse post, no entanto, não é falar da implementação em si, até porque eu não conseguiri escrever nada melhor do que foi escrito pelo hacks.mozilla, mas sim falar que novamente a Microsoft atrapalha os padrões (aliás, vejam com cuidado esse post no hacks.mozilla: completíssimo, com exemplos de implementação, notas, dicas e poréms).

Os browsers Firefox 3.5 e Safari 4 implementam já essa especificação 2 do XMLHttpRequest, mas o recém-lançado IE8 implementa “uma parte” apenas. E para isso, criaram um novo objeto, o XDomainRequest

Veja um exemplo de como fazer a instanciação correta de um objeto para ser utilizado, que pode fazer XDR:

var url = "http://bar.other/publicNotaries/"
if(XMLHttpRequest) {
var request = new XMLHttpRequest();
if("withCredentials" in request) {
// Firefox 3.5 and Safari 4
request.open('GET', url, true);
request.onreadystatechange = handler;
request.send();
} else if (XDomainRequest) {
// IE8
var xdr = new XDomainRequest();
xdr.open("get", url);
xdr.send();
// handle XDR responses -- not shown here
}
// This version of XHR does not support CORS
// Handle accordingly
}

*nesse código, é usado o atributo withCredentials para verificar se é um objeto que pode fazer o cross-site (ele é específico do CORS)

Agora, note que novamente é preciso fazer uma verificação de qual é o objeto ao qual o browser tem acesso, que nem se faz tradicionalmente, só que dessa vez checando se possui o XDomainRequest ao invés do ActiveXObject(‘Msxml2.XMLHTTP’)

Porque raios a Microsoft não implementa esse objeto na engine do browser e segue um padrão, inclusive definido pela W3C, e facilita a vida? Não vejo um só motivo para continuar com essa coisa de sempre tentar usar um objeto diferente, único e próprio. Ainda mais agora que estão numa campanha pró-adoção do IE8 por parte inclusive dos desenvolvedores…

Posted by Posted by Chris under Filed under Tecnologia, javascript Comments 6 Comments »

27th ago 2009

Aubmlância?

Estava com essas fotos na câmera do celular… aquelas coisas que você olha e ão acredita que está vendo… :P
*só pra descarregar mesmo da memória do aparelho…

DSC01317

Não estacione

DSC01307

Aubmlância?!?!

Posted by Posted by Chris under Filed under fail, fun Comments 3 Comments »

27th ago 2009

Como pegar dimensões da janela e da barra de rolagem por javascript

Isso seria efetivamente fácil, se todos os browsers seguissem o padrão da ECMA… mas não é assim que funciona, e ontem um dos meninos que trabalha aqui comigo estava tentando implementar um código javascript que utiliza tanto a altura útil da tela, como a altura visível da janela (window) e a posição das scrollbars.

Papo vai, papo vem, procura na API da Prototype aqui, da jQuery ali, abre o Google acolá… e me deparo com uma página muito completa, que lista os browsers (inclusive por sistema operacional) e qual é o objeto e atributo que está disponível nele.

browser platform mode window.innerWidth
window.innerHeight
window.pageXOffset
window.pageYOffset
document.documentElement.clientWidth
document.documentElement.clientHeight
document.documentElement.scrollLeft
document.documentElement.scrollTop
document.body.clientWidth
document.body.clientHeight
document.body.scrollLeft
document.body.scrollTop
IE Win32 w. DTD undef
undef
undef
undef
ok
ok
ok
ok
doc. width
doc. height
0
0
IE Win32 w/o. DTD undef
undef
undef
undef
0
0
0
0
ok
ok
ok
ok
IE Mac all undef
undef
undef
undef
undef
undef
undef
undef
ok
ok
ok
ok
Firefox Win32/Mac w. DTD +scroller
+scroller
ok
ok
ok
ok
ok
ok
ok
doc. height.
ok
ok
Firefox Win32/Mac w/o. DTD + scroller
+scroller
ok
ok
doc.width
doc.height
0
0
ok
ok
ok
ok
Netscape Win32 w. DTD + scroller
+scroller
ok
ok
ok
ok
ok
ok
ok
doc. height.
ok
ok
Netscape Win32 w/o. DTD + scroller
+scroller
ok
ok
0
0
0
0
ok
ok
ok
ok
Opera Win32/Mac all + scroller
+scroller
ok
ok
ok
doc.height
ok
ok
ok
ok
ok
ok
Safari Mac all ok
ok
ok
ok
ok
doc.height
0
0
ok
doc.height
ok
ok

Ou seja, não existe um método que funcione para todos os browser… :(

Mas, o autor criou uma implementação cross-browser que funciona para calcular todos esses atributos (altura e largura da janela, posição da scrollbar horizontal e vertical). Fica a dica!

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

Segue o link da página, para referência: http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html

Posted by Posted by Chris under Filed under javascript Comments 1 Comment »

26th ago 2009

8++ perguntas para Guilherme Serrano

Depois das primeiras 8++ perguntas para o Cayo, resolvi fazer outras para o Guilherme Serrano (@gserrano), que além de trabalhar na área de desenvolvimento web e ser um geek assumido, é o criador do And After, que começou como um blog e está no caminho de se tornar uma comunidade nerd (segundo palavras do próprio! hehe). Ainda nisso, em breve ele fará parte da equipe de desenvolvedores de interface da MMCafé, sem contar o fato de ser um amigão.

Borá lá pras perguntas & respostas!

1 – Como você entrou no mundo da web, e como veio a se tornar um profissional da área.
O que me levou a adorar computadores (ainda criança) foram os games, eu passava horas jogando. Dos games para a interwebs foi natural, comecei a trocar somente os jogos por jogos online, IRC (e ‘webchats’), sites e blogse. Tudo entre a meia noite a as seis da manhã, no tempo do pulso único. Comecei a estudar e a sobrinhar fazendo sites para trocar informações sobre jogos (ligações a cobrar e 0800 para conexão discada – super, ein?). Adorava aquilo e, vi aí um mercado de trabalho, pois poderia ganhar dinheiro fazendo sites para empresas. Meu primeiro trabalho foi um freela, logo depois entrei na faculdade (Design) e entrei em um estágio, onde aprendi a negociar e trabalhar com o desenvolvimento de sites.


2 – Como surgiu o And After? O que ele é hoje em dia e quais são os blogs que estão lá hospedados hoje? Qual o futuro do And After?
Comecei a escrever em blogs em 2003/2004, pouco antes do meu primeiro estágio. Sempre foram blogs pessoais/humor (um onde eu escrevia crônicas e mimimi´s, outro onde eu apenas colava logs bizarros do IRC). O And After surgiu da idéia de criar conteúdo que me ajudasse a trabalhar melhor, para me “forçar” a estudar. Ele surgiu como uma alternativa a fórum, para criar uma comunidade de colaboração através de artigos (e não somente perguntas/respostas como fóruns).
Hoje além da “raiz” ele tem 3 blogs: Eu Compraria, O Desenvolvedor e Cafofo da AI. Hoje em dia ele está mais próximo do objetivo: está aos poucos se tornando uma “comunidade nerd”, de apreciadores de “cultura nerd”, design, arte, ilustração e desenvolvimento. Está começando a rolar uma troca de idéias interessante.

O futuro eu não sei, mas o plano é migrar todo o site para PHP (isso está sendo feito com o framework Code Igniter) para dar mais liberdade a desenvolvedores e aos blogs (layout, acesso a código, etc), com isso trazer algum desenvolvedor para parte da equipe (Chris? :D ) e investir mais em retorno para os colaboradores (promoções, prêmios, outras formas além do AdSense) e divulgação do conteúdo.


3 – Você sempre programou em ASP, mas de uns tempos para cá tem programa em PHP. Quais são suas impressões?
O que mais me chamou atenção até agora foi a facilidade para encontrar soluções para qualquer coisa. O Manual PHP é bastante completo, com exemplos e definição de diversos comandos. Sabendo utilizar o Google e enganando no inglês todas as minhas dúvidas até agora foram resolvidas – talvez com gambiarras, mas só saberei daqui alguns meses quando estiver entendo de verdade o PHP. É cedo para eu definir essa minha mudanças, porém é certo que com o ASP eu levava mais tempo para encontrar informações sobre funções básicas da linguagem.


4- Qual a importância dos webstandards?
Acho que ainda falta para os  webstandards virarem “standards” mesmo, mas os benefícios que vejo são tornar os sites e aplicativos multi-plataforma, possíveis de serem acessados por diferentes: navegadores, computadores, celulares, relógios, automóveis, etc.
Depois que comecei a estudar mais javascript também vi a possibilidade de maior interação entre cliente e site. Se fosse para listar os benefícios, eu diria:
  • Acessibilidade
  • SEO
  • Facilidade de manutenção do código
  • Ganho em produtividade
  • Redução do código
  • Renderização mais eficiente no navegador


5 – Pelo And After, dá para ver que você tenta participar de muitos eventos/palestras/encontros na área; qual a importância deles e qual o evento mais bacana de que você participou até agora como visitante?
Ao meu ver o mais interessante dos eventos que participo é o que rola depois. Eles são importantes pela troca de conhecimento e informação e também para conhecer outros estudantes e profissionais da área, acho bacana conhecer o trabalho dos outros, e nada melhor do que conhecer a pessoa e o trabalho dela junto. Não sei citar o mais bacana, mas preciso citar dois que foram importantes: o evento que abriu minha cabeça de vez para o compartilhamento de informações live (não pela web) foi o R Design Sul, em 2007 – meu primeiro evento como participante “ativo” e também o Campus Party, maior quantidade de geeks por metro quadrado que eu já presenciei na vida!

6 – Como foi dar uma palestra no Campus Party 2009?

Gostei muito! Tinha horário disponível no BarCamp (ambiente para qualquer encontrista palestrar sobre qualquer asusnto) e brinquei com a Bia “vamos palestrar!”, ela apoiou. Marquei no quadro um horário para falar de usabilidade, tema do meu trabalho de conclusão da graduação (e tema que estava estudando para o novo layout do And After).
Não tenho muita experiência em falar para o público (mas gosto), então eu provavelmente falei muito rápido, repeti frases… mas de um modo geral achei bastante positivo. O conteúdo da apresentação foi preparado lá no evento mesmo, e com imagens (o Fail Blog foi ótima fonte de imagens) procurei explicar o conceito de usabilidade e algumas técnicas práticas de produção de interfaces com foco no usuário.
Depois da apresentação conversei com alguns encontristas que estavam lá, gostaria de fazer denovo! haha :)

7 – Você vai mudar do RS para São Paulo. Quais são suas expectativas em temros profissionais para isso?
Não sei exatamente o que esperar, mas a média salarial em São Paulo é melhor que no RS, existem mais cursos e eventos (e facilidade em comprar livros). Onde moro atualmente (Passo Fundo) a atividade cultural-nerd é praticamente zero: sem exposições, sem cursos, sem pós graduação, sem palestras… espero que estar mais perto “dos fatos” ajude no meu crescimento profissional, acompanhar tudo somente pela internet não é tão divertido.


8 – Como é para você que tem uma formação na área de criação/design estar a cada dia mais envolvido com programação e tecnologia?
Sempre gostei muito da área de tecnologia, porém não tenho formação nenhuma como desenvolvedor – apesar de gostar muito de programação. Gosto de ver coisas funcionando e neste ponto acho que design e programação são áreas com pensamentos MUITO próximos, devido a características dos profissionais: curiosidade, vontade de inovar, e ter como principal objetivo resolver problemas.
“Sei que nada sei” é o que mais se aplica neste momento a minha ligação com programação (server-side, php especificamente). Quanto mais estudo mais percebo que o caminho pela frente será longo.
Acredito que os fundamentos das duas áreas podem se complementar muito bem: as vezes consigo resolver um problema de programação utilizando alguns pensamentos do design e vice-versa, infelizmente percebo que em algumas empresas rola um certo desentendimento entre criação/desenvolvimento, pelo menos na parte web. Acho que saber como funciona “por trás” de um site ajuda muito na hora de criar um layout fácil de montar e dar manutenção.

Posted by Posted by Chris under Filed under Pensamentos, javascript Comments 3 Comments »