Archive for the 'Desenvolvimento' Category

Projeto Softsul

Iniciou hoje a turma F4 na Feevale, do projeto da Softsul de capacitação tecnológica em Java e .NET. A turma superou minhas expectativas em relação à quantidade de alunos (14), no turno da manhã. Tivemos alguns problemas iniciais com o acesso à rede wireless, mas depois de resolvido conseguimos avançar bem no conteúdo.

Vou ministrar aulas de introdução à informática e sistemas operacionais, e em seguida de bancos de dados. Aí encaminho o pessoal para a principal disciplina, .NET. Já fazia um bom tempo que não dava aulas de introdução à informática, é um tipo de conteúdo mais teórico mas muito interessante, onde procuro trazer para as aulas exemplos de hardware como placas, processadores e periféricos para o pessoal pegar e ver os detalhes de funcionamento. De banco de dados será minha primeira disciplina 100%, pois acabava explicando em conjunto com PHP no outro curso de extensão, então aqui vai dar para trabalhar bastante e ver todos os pontos interessantes da SQL… :-)

O valor é muito acessível em virtude de subsídios do Governo. Se alguém tiver interesse em se inscrever, acho que ainda há vagas, com turmas nos turnos da manhã, tarde e noite, inclusive em Porto Alegre, na sede da Softsul. Mais informações sobre o curso.

Como não fazer um site

Tenho a mania de revisitar domínios antigos de tempos em tempos, para ver se encontro alguma novidade. Há alguns dias atrás tentei o www.newplay.com.br. Eita, quase não acreditei… Uma imagem vale por mil palavras, aí vai:

newplay_ubuntu

A primeira conclusão que tive, sem pensar muito, é a de um ótimo exemplo de como não fazer um site. Um leigo acessa isso aí e toma um susto… Browser, Internet Explorer, ASP, VBScript? Que @!$#% é essa??? E eu sei lá, só queria comprar o patinho amarelo… Tá bom, o Internet Explorer talvez o usuário saiba o que significa pois ainda é o navegador mais usado mundialmente. Mas citar termos de tecnologia para o usuário não é nem um pouco recomendado, deve ser evitado ao máximo.

Os usuários de Tecnologia da Informação — como por exemplo todos que acessam algum site na Web — não querem o site propriamente dito, eles querem a solução, querem o que o site pode fazer por eles. Querem que o site seja simples, rápido e fácil, seguro. Querem ganhar tempo, se sentirem úteis e produtivos. Se se sentirem encantados, melhor ainda.

Quem desenvolve um site deve procurar saber disso, e limitar o acesso a um tipo específico de navegador é uma das piores decisões a serem tomadas, na minha opinião. Vai no sentido totalmente contrário do acesso universal e amplo da Web.

O pior é que não é só isso: fui testar o site usando o IE, e qual foi a minha surpresa? Tcharaaaam… acredite se quiser:

newplay2

Ainda podemos ver outro erro grave nessa página: a utilzação de mensagem de teste (no caso, do tal do Eder que estava testando alguma coisa).

Controle de caracteres distintos em JavaScript

Mais um dia de trabalho, estava eu programando a aplicacao web de um cliente, quando precisei implementar um controle de senha de usuario, mas desta vez um pouco mais elaborado. A senha deve obedecer as seguintes regras:

  • Mínimo de 12 caracteres
  • Letras e números
  • Pelo menos 6 caracteres distintos

Os dois primeiros requisitos sao comuns e mais simples de se implementar, por exemplo:

senha.length < 12

para verificar o comprimento da senha, e

var regex = /[0-9][a-z]/i;
regex.test(senha);

para verificar se a senha eh formada por letras e numeros.

Buenas, entao troquei uma ideia com o meu amigo Diego, sobre uma expressao regular que fizesse a verificacao de caracteres nao repetidos em uma string qualquer. Alguns minutos de pesquisa do Google, documentacoes e e-books, entao desisti e parti para o bom e velho FOR :-) Depois de alguns minutos, saiu isso:

var i, j, distintos = "", jaTemCaractere = false;

for (i = 0; i < senha.length; i++) {
   for (j = 0; j < distintos.length; j++) {
      if (senha.substr(i, 1) == distintos.substr(j, 1)) {
         jaTemCaractere = true;
         break;
      }
   }

   if (!jaTemCaractere) {
      distintos = distintos + senha.substr(i, 1);
   }

   jaTemCaractere = false;
}

if (distintos.length < 6) {
   ret = false;
}

No proximo post sobre JavaScript vou compartilhar uma abordagem bem simples e direta para validacao de campos obrigatorios.

Dia da Liberdade de Software 2008 - Slides

Conforme prometido, segue o link dos slides da palestra de hoje, no Dia da Liberdade de Software.

Dia da Liberdade de Software 2008

No próximo sábado, dia 13 de setembro, vou participar da edição local do Dia da Liberdade de Software 2008, que ocorrerá na Feevale. A palestra/minicurso será sobre instalação e configuração de ferramentas de desenvolvimento para web no Linux. Ento, aproveito para convidar colegas e amigos!

Esta será a primeira vez que participo como ministrante, tentarei demonstrar algumas dicas e instruções de como desenvolver aplicação web no Linux, preparando um ambiente de trabalho completo com diversas ferramentas, dentre elas o Eclipse, o MySQL e o cliente de FTP FileZilla.

Em 2003, comecei a desenvolver para web em linux, utilizando Slackware, Quanta e PostgreSQL, no projeto do TC-online. De lá para cá fiz uma pausa e retomei em maio, agora com Ubuntu, utilizando no meu notebook, e estou muito satisfeito, obrigado. :-)

A programação completa do evento pode ser conferida no site da Feevale, vale a pena!

O primeiro AJAX a gente nunca esquece

Há alguns meses atrás, quando estava desenvolvendo o website da Imagemgrafia, surgiu na prática a necessidade de criar o meu primeiro código AJAX. Até então, já tinha lido alguns artigos e definições de funcionamento, mas continuava utilizando o bom e velho método do iframe oculto para atualizar determinadas partes ou elementos da página.

Optei por não utilizar nenhum framework ou toolkit de AJAX, justamente para tentar começar do zero e com algo que fosse bem simples… e foi! Aliás, geralmente recomendo esta metodologia. Muito provavelmente a solução que criei não foi a melhor possível — como geralmente ocorre quando criamos a versão inicial de alguma coisa –, mas ficou realmente simples, rápido e funcionando bem. Vou explicar o problema, bem típico de encontrar:

“O Sistema possui um cadastro de pedidos, sendo que cada pedido possui uma lista de itens. Mas para lançar cada item, é necessário selecionar o serviço e, conforme o serviço, ele possui determinados tamanhos e/ou cores, além da quantidade, valor unitário e texto de observações.”

Quando o usuário inicia um novo pedido, o Sistema apresenta por padrão 5 itens já montados. O AJAX entra em ação no botão “Adicionar”: ao clicar nele, é gerada uma nova linha na tabela de itens contendo os mesmos componentes dos demais (serviço, tamanho, cor, quantidade, valor e observação). Desta forma, o usuário pode inserir quantos itens forem necessários, que a aplicação controla dinamicamente.