Latest Entries »

Daqui há poucos dias (03 de março), vai rolar em Porto Alegre, o RS-JS. No evento serão abordados os mais diversos assuntos, que se tornaram importantes nos dias de hoje, tais como: performance e acessibilidade (que tem ganho grande atenção nos últimos dois anos), além de boas práticas, programação funcional com haskell entre outros. Sem falar os N assuntos que irão surgir nas conversas durante o evento.

O site do evento é http://rsjs.org/, dá uma olhada lá em busca de mais informações a respeito de uma nova abertura de inscrições. Pois é, os oitenta lugares esgotaram em poucas horas. O que isso significa? Tem demanda para esse tipo de evento e 2012 irá mostrar isso.

Meu principal objetivo é trazer novos conceitos sobre performance e ver o que o pessoal irá falar sobre a API do HTML5 para JavaScript. Será a minha primeira vez na cidade de Porto Alegre e quero aproveitar para rever alguns colegas de profissão e amigos.

O evento vai acontecer no Edel Trade Center, no centro da cidade. Fica a poucos kilômetros do aeroporto e do hotel onde quero ficar.

Quando voltar, pretendo preparar um post especial sobre o evento.

Há um certo tenho venho preparando conteúdo sobre alto desempenho e boas práticas em JavaScript. Um fato que me motivou a estudar ainda mais sobre o assunto foi o desempenho de algumas aplicações em ExtJS que desenvolvo. Algumas delas, por sua própria constituição, possuem muitos campos que precisam ser preenchidos de uma só vez pelo usuário. Apesar de utilizar de algumas boas práticas, notei que precisava de algo mais, algo que elevasse o desempenho causando o mínimo de impacto ao desenvolvedor. Uma das soluções que encontrei foi o carregamento de scripts sob demanda.

A ideia em si é bastante simples: Carregar as classes apenas quando realmente for precisar delas. Desta forma podemos carregar

Quando o navegador encontra uma tag script, ele para de renderizar a página e inicia o download do arquivo. Em alguns casos isso pode fazer com que a aplicação leve muito tempo para carregar. Aí que entram as opções de carregamento posterior seletivo e de desbloqueio.

Uma opção é carregar inicialmente apenas os scripts necessários criando dois arquivos, um deles com o script para carregar dinamicamente os arquivos e outro com apenas o básico para sua aplicação roda. Fique tranquilo, o restante será carregado.

O primeiro arquivo conterá o seguinte código:

function loadScript(url, callback) {

var script = document.createElement(“script”)
script.type = “text/javascript”;

if (script.readyState){  //IE
script.onreadystatechange = function(){
if (script.readyState == “loaded” ||
script.readyState == “complete”){
script.onreadystatechange = null;
callback();
}
};
} else {  //Others
script.onload = function(){
callback();
};
}

script.src = url;
document.body.appendChild(script);
}

O seguindo arquivo, deverá conter apenas o básico para sua aplicação, não importa o conteúdo, desde que seja minificado e seja do menor tamanho possível. Nós queremos um carregamento rápido e que não bloqueie a renderização.

loadScript(“TotalApplicationCode.js”, function(){
Application.init();
});

O código HTML de sua página será mais ou menos este:

<html>
<head>
<title></title>
</head>
<body>
<script type=”text/javascript” src=”loadScript.js”></script>
<script type=”text/javascript” src=”BasicApplicationCode.js”></script>
<script type=”text/javascript”>
loadScript(“TotalApplicationCode.js”, function(){
Application.init();
});
</script>
</body>
</html>

O primeiro parâmetro do método loadScript será a URL do arquivo a ser baixado. Já o segundo, será a função de callback, que será executada assim que o arquivo for carregado.

Eu li sob sobre este recurso originalmente no livro “High Performance JavaScript, by Nicholas C. Zakas. Copyright 2010 Yahoo!, Inc., 987-0-596-80279-0”.

Se você desenvolve com ExtJS, talvez possa se interessar por este post: http://www.extdesenv.com.br/tutoriais-estudos/carregar-codigo-ext-sob-demanda/

Coderockr Jam

Na última semana, fui convidado pelo Elton Minetto (@eminetto) da Coderockr,  para ir a Joinville no da 06/08 para o primeiro Coderockr Jam e, claro que aceitei sem vacilar.

Como o assunto é livre, farei um laboratório com a minha palestra sobre Alto Desempenho e Boas Práticas em JavaScript. Assim poderemos através das contribuições dos presentes melhorar o conteúdo e torna-lo mais didático.

A ideia da Coderockr é realizar o evento mensalmente, trazendo amigos para conversarem sobre os mais diversos assuntos ligados à tecnologia.

A iniciativa é importantíssima e a comunidade de desenvolvedores precisa se espelhar na Coderockr e organizar encontros do tipo. A integração entre profissionais é o primeiro passo para o fortalecimento e amadurecimento do setor.

Vale lembrar que a Kactoos dá dando aquela força patrocinando o evento.

Para maiores informações, beba da fonte acessando: http://www.coderockr.com/blog/2011/07/coderockr-jam/

O The Developers Conference é um evento organizado pela Global Code e reune diversas comunidades de desenvolvedores, desde Java, passando por CSS3, HTML5 e chegando ao PHP.

O evento que já ocorreu em São Paulo de 06 a 10 de Julho, será agora realizado em Florianópolis, nos dis 20 e 21 de agosto. Será composto por 14 trilhas nos dois dias de evento.

No ano passado, pude comparecer ao evento como congressista e isso me incentivou a submeter na edição deste ano a palestra que venho idealizando a um certo tempo. Soube na última sexta-feira (29/07) que ela foi aprovada. Maneiro!

O título da palestra é “Alto Desempenho e Boas Práticas em JavaScript”. O objetivo dela é levar aos desenvolvedores e interessados técnicas e atitudes que elevam o desempenho de suas aplicações que utilizam o JavaScript. Originalmente foi idealizada para aproximadamente 2 horas porém, para este evento foi condensada para ocorrer em 50 minutos.

Infelizmente, não será possível explicar de forma aprofundada cada técnica apresentada mas, creio que será o suficiente para fazer com que os presentes em sala tenham interesse em pesquisar sobre estas técnicas e no futuro desenvolverem suas aplicações com mais qualidade. É isso que importa: desenvolver com mais qualidade.

Para mim, será um desafio profissional pois será minha primeira palestra fora do ambiente acadêmico mas, darei o meu melhor para fazer valer a pena a presença de todos. Vejo vocês lá.

TDC 2011 - Florianópolis

Para acompanhar informações sobre o evento no twitte, siga @thedevconf.

Desconferência.com.br

Sabe, há tempos eu buscava um podcast sobre tecnologia que fosse interessante, que fosse feito por gente que entende e que esta na área, foi aí que encontrei o Desconferência, que fala sobre muitos asssuntos e principalmente sobre desenvolvimento front-end e back-end.

É um projeto bacana dos profissionais: @bernarddeluna, @leobalter, @osuissa, @jaydson e o @felipenmoura. Atualmente, já foram disponibilizados 11 episódios sobre os mais diversos assuntos, que foram desde JavaScript, passando pelo Mercado de trabalho até o HTML 5.

Vale a pena ouvir, o conteúdo fluir com características de conversa de boteco sabe? Não puxa pro lado comercial apelativo, exatamente por não ter esse fim e não é tão mecanizado, o que facilita a fluidez da evolução do papo.

Coloque este podcast na sua lista de favoritos e acompanhe os novos episódios, mas não deixe de ouvir os anteriores pra conhecer bem os participantes e já se identificar com eles.

Site do Podcast

Front In Rio 2011. Eu Fui!

No último dia 19, tive a oportunidade de ir ao Rio de Janeiro participar do Front In Rio 2011, um evento focado em front-end web que contou com palestras maneiríssimas de gente que manja muito, alguns deles: Maujor, o cara que manda muito em CSS, uma referência nacional no assunto. Leo Balter, nossa! quantas vezes tirei dúvidas sobre javascript no blog desse cara. Ele destrói em JS e tem uma didática ótima. Um outro profissional também palestrou e que tive a oportunidade de conhecer pessoalmente foi o Thiago Belem. Um cara super simpático e sorridente, cara esperto, novo e cheio de experiência pra compartilhar. Claro que muitos outros profissionais deveriam ser citados mas esse post ficaria longo demais.

O evento rolou na UNIRIO e teve palestras interessantíssimas, listo abaixo cinco delas:

Alinhando o design às métricas e conversões – Rafael Lima

Esta foi a palestra que eu mais curti, já que fez surgir uma nuvem enorme de novas ideias a respeito do evento que pretendo organizar aqui em florianópolis. Conversei diretamente com o Rafael e ele topou em adaptar o conteúdo dessa palestra e somar o conhecimento dele em conversões para bolar uma palestra bacana focada em sistemas internos. Nunca vi uma palestra desse tipo e creio que com a desenvoltura e o know-how do andré, com certeza terá ótimos feedbacks.

Testando com Jasmine – André Fonseca

Infelizmente, não consegui assistir à toda a palestra, o taxista me deixou há uns 800 metros do local do evento e levei alguns preciosos minutos caminhando, ajudando um casal de cegos a chegar na UNIRIO (é sério) e perguntando pros funcionários do local onde deveria ir. O André deu uma passada superficial no Jasmine e mostrou pro pessoal os principais recursos da ferramenta, apesar de eu ter outras ferramentas de testes na lista esta palestra foi ótima para me familiarizar um pouco mais com ela.

Engenharia de Frontend de Alta Performance – Anderson Solano

Apesar do Anderson estar um pouco nervoso e cometer uns pequenos deslizes a palestra foi bacana, pra quem desenvolve e se preocupa com desempenho foi um prato cheio. Foi uma das palestras que me acenderam novamente a vontade de palestrar sobre alto-desempenho no JavaScript.

WTF Javascript – Leo Balter

Uma das palestras mais esperadas por mim, o Leo Balter mostrou diversos exemplos de convenções e padrões JavaScript. Também mostrou alguns exemplos de pegadinhas que costumam ocorrer quando o programador se distrai um pouco e acaba perdendo horas preciosas do seu tempo a procura de um erro simples, que só ele não vê. Gostei bastante.

Otimizando o carregamento de sites com jQuery – Thiago Belem

O thiago palestrou pela primeira vez e digo que o mano mandou muito bem. Diversas dicas de otimização de carregamento com jQuery, com slides caprichados e simples. Apesar do jQuery não estar em meus domínios, o assunto rendeu boas perguntas de alto nível e eu tive a oportunidade de colaborar com o meu ponto de vista a respeito da otimização de carregamento de páginas.

Também conheci pessoalmente o @andredal, a princípio o único que me conhecia no twitter. Foi uma pena não termos tido tempo de conversar mais, mas valeu a pena e com certeza teremos mais oportunidade de trocar ideias.

Depois do evento rolou o #horaextra mas infelizmente não pude participar pois tive de correr pro aeroporto iniciar o trajeto de volta à Florianópolis.

Quem não foi perdeu um evento maneiro, com gente bacana e conteúdo de qualidade.

Muitos profissionais que trabalham com Internet, assim como eu, via de regra comentam que é difícil ocorrerem eventos totalmente focados em JavaScript e que esperam anciosamente por eles.

Eis que surge o Brazil JS, um evento inicialmente idealizado pelo Christiano Milfont e que depois recebeu o apoio de peso do Jaydson Gomes e do Felipe Moura, profissionais reconhecidos na comunidade nacional.

O evento ocorrerá em Fortaleza/Ceará, nos dias 13 e 14 de maio e abordará diversas tecnologias que fazem parte do nosso cotidiano e muitas delas que com certeza muitos de nós temos dúvidas a respeito. O assuntos vão desde o desenvolvimento de extensões para browser com JavaScript, passando por testes unitários e até temas mais novos como desenvolvimento JS para Android e as WebAPPs.

As vagas estão esgotando e creio que temos menos de 100 restantes agora.

Se você é um profissional que investe em si mesmo e busca se atualizar constantemente, compareça, faça uma forcinha e prestigie o Brazil JS. Ninguém melhor para cuidar da sua carreira do que você próprio. O investimento valerá a pena.

Vejo vocês lá!

Site oficial do evento: http://braziljs.com.br/2011/

Em um projeto pessoal no qual trabalho, desenvolvi um software para uma instituição de ensino. Me deparei com um problema relacionado a nomes próprios e que por coincidência foi logo solucionado com a classe GUtils, desenvolvida pelo amigo Fausto Cintra.

O sistema possui um recurso de sincronização com o sistema interno, que por sua vez foi desenvolvido por outra empresa. O recurso se resume na importação diária da base de alunos para o site, o problema é que a base de alunos dele, que possui aproximadamente 9500+ registros, enquanto alimentada, não recebeu o devido tratamento, e isso resultou em nomes em minúsculo, sobrenomes em maiúsculo e todas as variações possíveis. Além da base de alunos, o problema também ocorreu com os nomes de disciplinas, cursos e grupos.

O problema é que essas informações são utilizadas para criação de menus no site, listagens internas e diversos outros lugares, o que inevitavelmente afeta a qualidade visual quando a página possui uma listagem mais extensa. A solução seria normalizar todos os nomes, e foi aí que a GUtils entrou em ação.

A classe em si é destinada a objetivos variados, a primeira versão foi lançada com um método maneiríssimo de normalização de nomes e foi exatamente este método que me poupou tempo de trabalho. Os comentários são explicativos e bem didáticos.

Este método transforma JOÃO DA SILVA E SOUZA em João da Silva e Souza. A utilização do método não tem segredo algum, veja o exemplo:

include ( “GUtils.php” );

$NomeAluno = GUtils::normalizarNome( ‘JOÃO DA SILVA E SOUZA’ );

echo $NomeAluno; //João da Silva e Souza.

Pronto! Para um nome parece ser uma tarefa simples, mas quando a massa de dados envolve muitos registros, 9500+ no meu caso, a diferença final é notável. Eu fiquei um pouco receoso por normalizar 9500+ nomes em um processo que por si só já é demorado, mas a diferença é mínima e o resultado final é ótimo. Claro se quiser normalizar os nomes em outro processo também é possível e bastante válido.

Espero que tenham gostado.

Sigam o @g0nc1n no twitter e acompanhe os próximos commits com atualizações da classe.

JOÃO DA SILVA E SOUZA