Assinar nosso FEED

Arquivo de janeiro, 2007

Banners randômicos para o sistema de afiliados da Visie

quarta-feira, janeiro 31st, 2007

O Maurício Fedato fez um pequeno javascript que randomiza os banners do sistema de afiliados Visie e me pediu para compartilhar com vocês:

banners.js

Copie e adapte ao seu gosto. Valeu Maurício!

Se mais alguém fizer algo que pode ser útil para os outros afiliados, por favor nos avise para que possamos compartilhar aqui. Criamos até uma categoria “Afiliados” neste blog para tratar do assunto.
Apesar de Janeiro ser o pior mês para a venda de treinamentos, já tivemos as primeiras vendas geradas por afiliados, e alguns de vocês já vão receber suas comissões no começo de Fevereiro. Depois do carnaval, se este ano repetir a tendência dos anteriores, o negócio esquenta um bocado. Preparem suas campanhas!

Progredindo

sexta-feira, janeiro 26th, 2007

Tableless I e Tableless II se tornam um único curso

Quando começamos, há quase quatro anos, a trabalhar com treinamentos em padrões web, algumas coisas eram muito diferentes de hoje.

Nosso público sempre foi o profissional de Internet. Nosso foco nunca foi o completo iniciante, mas o sujeito que já vivia de Internet, que já tinha experiência. O curso básico de HTML é nossa primeira experiência com o público iniciante.

E o profissional de Internet na época era um sujeito que já tinha muita experiência com tabelas. Então, como o próprio Zeldman sugeria fazer, começamos com o que o sujeito já sabia, ensinando a trabalhar com CSS e tabelas. Criamos um pacote com dois cursos. O primeiro, chamado de “Tableless I”, introduzia o sujeito nos padrões web, explicava as questões fundamentais, como a semântica e a separação entre layout e conteúdo, e ensinava o básico do CSS, guiando o aluno na construção de um layout híbrido (tabelas + CSS.) O segundo curso, chamado de “Tableless II”, explicava as minúcias do layout Tableless, com detalhes para as diferenças entre os navegadores e as técnicas para ser produtivo.

Outra coisa que era muito diferente era o suporte dos navegadores aos padrões. Haviam hacks para Opera, para Mozilla, para IE 5 Mac, para Konqueror e, claro, para IE 5 e 6 para Windows.

Hoje, muita coisa mudou. Raríssimas vezes precisamos usar hacks, e quando precisamos, é para apenas um navegador (adivinhe qual?) Os navegadores, de maneira geral, evoluíram muito no suporte aos padrões. E o nível de conhecimento do assunto no mercado também aumentou bastante.
Raramente hoje um aluno chega até nós sem saber pelo menos o básico de CSS. E pouquíssimos nunca fizeram pelo menos algumas boas tentativas de layout tableless. Já recebemos inclusive um bom número de alunos que nunca usou tabelas para layout nem edição visual.

Por isso, os cursos de Tableless I e Tableless II se tornaram um só, agora chamado simplesmente de “Tableless: Desenvolvendo sites com Padrões web“. Removemos dele as partes sobre layout híbrido e as minúcias sobre diferenças entre navegadores que ninguém usa mais. Ficou tudo muito mais divertido agora. O objetivo é tornar o aluno, que já tem conhecimento de HTML e desenvolvimento web, capaz de desenvolver layouts com CSS, funcionando bem em qualquer navegador atual, com código semântico leve e bem escrito, e ajudá-lo a se tornar realmente produtivo nisso.

Microformats: um passo além em semântica e funcionalidade

Parte de vocês já deve ter percebido que microformats é um assunto que me interessa muito, já há algum tempo. Faz parte de nossa política não lançar um curso simplesmente porque a tecnologia envolvida parece interessante. Por isso, estamos há algum tempo segurando a idéia de um curso de microformats. Mas, agora, não resta dúvidas de que os formatos serão, em pouco tempo, um diferencial competitivo para quem souber trabalhar com eles.

Por isso, acabamos de lançar o curso “Microformats: Agregando valor ao seu código“, assinado pelo Henrique C. Pereira. Nas palavras do Henrique:

O objetivo é introduzir o profissional no mundo dos microformats de modo que possa explorar semântica de HTML em outro nível, descrever melhor a informação para user agentes e mecanismos de busca (SEO), enteder a lógica dos parsers e interpretadores de microformats.

Vídeo!

Os cursos de Tableless e Javascript Crossbrowser agora contam com video tutoriais em alguns capítulos chave, ajudando o aluno a acompanhar o conteúdo. O aluno lê o capítulo, em seguida assiste o vídeo com uma demonstração prática do que foi dito. Nosso objetivo é que em pouco tempo cada capítulo que fale de código tenha uma demontração prática em vídeo. O próximo curso a ganhar vídeos será o de Ajax.

Semana que vem: vamos contar como foi o curso de Python, falar um pouquinho do curso de Ruby que começa dia 5/2 e contar como está sendo nossa experiência com o programa de afiliados da Visie.

Padrões Web e os Cursos Universitários

terça-feira, janeiro 9th, 2007

O Flávio escreveu:

…este post, como o título sugere, é sobre a grade curricular de alguns cursos superiores (e alguns técnicos) que encontro por aí nos sites das faculdades e universidades que ministram tais cursos.

Quando se olha a grade curricular destes cursos, voce vê de tudo lá, menos o que realmente importa prá começo de conversa: Os Padrões Web.

Bem, na curiosidade ampliada, você resolve dar uma olhada no código fonte do site das faculdades e universidades que oferecem tais cursos, e o que você encontra é um monte de tables, td, tr etc.

Enfim, a história é mais ao menos assim: “Se a sua casa é suja, você quer que eu te contrate pra limpar a minha?”

Bem colocado, embora nossa posição seja um pouco mais moderada. A coisa mais importante a se dizer é que o argumento de quem cria os cursos faz sentido. A faculdade é, ou ao menos deveria ser, algo pensado para valer para a vida inteira. Então, ao invés de se ensinar uma linguagem de programação, a faculdade deve ensinar a programar. Ou seja, ensinar a lógica, os conceitos, as técnicas, as características do bom trabalho de programação e todo aquele repertório de conhecimentos e soluções que um programador deve conhecer e que serão úteis em qualquer linguagem, mesmo daqui a dez anos.

Por isso, um dos fatos descritos pelo Flávio, de matérias chamadas “Programação para a Web” e “Banco de Dados”. Porque o que a proposta escrita da faculdade diz é que o curso deve apresentar os conceitos que serão úteis em qualquer linguagem, então tanto faz se a faculdade vai ensinar Python+Postgre, PHP+MySQL, Java+Oracle ou .NET+MSSQL Server porque os conceitos que o aluno aprender ali serão úteis em qualquer plataforma, em qualquer combinação de linguagem e banco de dados.

Os problemas, que levam alunos (e futuros alunos como o Flávio) a reclamar, incluem:

  1. Na maioria dos casos, o professor não leu, ou não entendeu, ou entendeu e não está afim de cumprir o que diz a proposta pedagógica da faculdade. O que acaba acontecendo é um curso de uma tecnologia específica, por um professor que é especialista naquela tecnologia e não nos conceitos que podem ser abstraídos para o desenvolvimento em qualquer linguagem.
  2. Na maioria dos casos, o aluno também não entendeu nada. E a culpa é da faculdade. A proposta de ensino não é detalhada, o currículo consiste apenas numa lista de matérias e não há nem mesmo uma descrição do que é cada uma e quais os objetivos de se estudar aquilo. O aluno apenas ouviu as pessoas, no serviço ou sabe-se lá onde, dizendo que ele deve aprender “Java”, ou “PHP”, ou “SQL”, ou … bem, você entendeu. O que ele quer é aprender determinada tecnologia, e a faculdade não explica porque acha que é melhor aprender os fundamentos, conceitos e técnicas.
  3. Não dá para dissociar tanto assim os conceitos das tecnologias. As ferramentas de programação funcional, a introspecção e a tipagem forte e dinâmica do Python levam a um jeito de programar e a um repertório de técnicas e soluções diferentes das de um programador Java. Evite o flamewar: veja bem, eu não disse que as soluções do Python são melhores que as do Java, ou que a linguagem é melhor do que Java, embora eu prefira trabalhar com Python. Disse apenas que são diferentes. O arroz-com-feijão, ou seja, a lógica de programação, os fundamentos da orientação a objetos e boa parte das boas práticas de desenvolvimento são úteis em qualquer linguagem. Mas quando as coisas vão chegando a um nível de abstração que se espera de alguém se preparando para programar profissionalmente, as soluções vão se tornando diferentes. Às vezes, radicalmente diferentes.
  4. Para algumas coisas, não há resposta certa. Veja, por exemplo, as discussões a respeito de Design Patterns. Ou tente pesquisar a web para escolher entre Unified Process ou eXtreme Programming, e em seguida leia o Getting Real para ver uma abordagem radicalmente diferente dos dois. Cada tecnologia e ferramenta é criada baseada em conceitos e idéias. Java foi criada para oferecer aos gerentes e arquitetos controle, para evitar que o programador faça besteira. Python e Ruby foram criados com um conceito diferente, oferecendo ao programador liberdade. Você pode fazer besteira se quiser. Mas também pode fazer coisas impossíveis em Java. Para saber qual é melhor para você, é preciso avaliar muita coisa, incluindo a cultura da empresa onde você trabalha. O problema é que as faculdades de maneira geral ensinam uma ou duas linguagens de programação e passam longe do resto, dando aos alunos uma visão unilateral. Quando você só conhece uma resposta, ela é sempre certa para você.
  5. A web é especial. As coisas que estamos fazendo na web são muito diferentes, em vários aspectos, de tudo o que foi feito até aqui em desenvolvimento de software. E a web é um conjunto de tecnologias, ou seja, se seu curso é sobre desenvolvimento de software, você certamente tem uma série de respostas certas para cada pergunta, mas quando você vai falar da web, em muitos assuntos, por enquanto há uma resposta certa. Por exemplo, não dá para falar de web sem falar de HTTP. Só existe uma web, e ela é feita com HTTP. Você pode falar dos conceitos de “redes mundiais distribuídas”, mas só existe uma Internet, então é melhor falar dela logo. Pode falar de “protocolos de rede para transferência de hipertexto”, mas só existe uma web, então a escolha certa ao falar de desenvolvimento web é a dobradinha HTTP sobre TCP/IP. Da mesma forma, não dá para falar de web sem falar de navegadores, de XML, HTML, XHTML, CSS e Javascript. E, desde o final do século passado, as respostas certas nessas tecnologias específicas são os padrões web.

Mas, em tecnologia, a maioria das faculdades está alguns anos atrás do resto do mundo, embora algumas poucas estejam alguns anos a frente de todos nós.

Jabá: o curso de Ruby on Rails daqui a duas semanas falar bastante de HTTP, tão importante, útil e desconhecido por tantos desenvolvedores. Vale a pena conhecer os detalhes do protocolo e descobrir o que você pode fazer com ele.

Tableless II e Python para programadores semana que vem!

segunda-feira, janeiro 8th, 2007

Começam segunda-feira que vem:

Tableless II. Esse é o curso para quem já conhece CSS e XHTML, e quer entender os segredos da construção de layouts com CSS, as diferenças entre os navegadores e as estratégias para produtividade. Ministrado pelo Diego, do Tableless.com.br, de segunda a quinta, das 18h30 às 22h30.

Python para programadores. Este é o curso para quem programa em outra linguagem e deseja conhecer os segredos do Python, altamente produtivo e divertido. Ministrado por mim, de segunda a quarta, das 09h30 às 17h30.
E vem aí: Ruby on Rails, Javascript DOM Crossbrowser e Ajax!

Arquivos PHPConference e Cursos em Janeiro

quinta-feira, janeiro 4th, 2007

Senhoras e senhores: http://files.elcio.com.br/phpconference/ (desculpem a demora.)

Restam apenas três vagas para o curso de Python, diurno, que começa dia 15. Dia 15 também começa o curso de Tableless, noturno.

E dia 29, Ruby on Rails. Não deixe para a última hora!