Vinícius Ebersol

vebersol.net

Palestra No 2º Evento SouWebel

2º Evento SouWebPel

Aos 47 do segundo tempo fui convidado a palestrar no 2º Evento SouWebPel, e fiquei muito feliz de mesmo sem muito tempo ter apresentado um tema interessante e de muito valor para desenvolvedores de regiões como Pelotas, que são exportadores de mão de obra, e por isso a situação de trabalhar com Equipes Distribuídas é cada vez mais comum.

Vi palestras muito boas, incluindo as presenças ilustres de Zeno Rocha e Bernard De Luna.

Aguardemos novos eventos semelhantes!

Pra quem viu e quer rever os slides, ou pra quem não viu, acompanhe abaixo:

Equipes Distribuídas, do escritório à nuvem

jQuery Custom Form Plugin

jquery custom forms example

Descrição:

jQuery Custom Forms é um plugin que eu fiz essa semana pra facilitar a vida dos desenvolvedores. Esse plugin não é nenhuma revolução na história, porém tem uma coisa que eu não vi em nenhum outro, ele mantém os formulários acessíveis, sem perder a beleza de um formulário customizado.

Demonstração

Veja a demo: http://vebersol.net/demos/jquery-custom-forms/

Download

Download do plugin no github: https://github.com/vebersol/jQuery-Custom-Forms

Ajax Crossdomain Crossbrowser

O título do link pode parecer feio, mas é isso mesmo. É possível fazer esse tipo de requisição assíncrona usando a função $.ajax do jQuery e o dataType JSONP.

Abaixo um exmplo do que eu fiz para testar. Ajax crossdomain testado inclusive no IE6.

Uma ressalva é importante: Eu usei o YQL que é uma API do Yahoo que retorna um jSON de uma URL qualquer.

<!doctype HTML>
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script type="text/javascript">
            // a variavel deve ser global para permitir a execução do callback em um javascript orientado a objetos.
            var externalAjax;

            var ExternalAjax = function() {
                this.url = 'http://vebersol.net';
                this.format = 'html'; //html, json
                this.jsonURL = 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22'+encodeURIComponent(this.url)+'%22&format='+this.format+'&diagnostics=true&callback=externalAjax.getJsonCallback';

                this.init();
            }

            ExternalAjax.prototype = {
                init: function() {
                    $.ajax({
                      url: this.jsonURL,
                      dataType: 'jsonp'
                    });
                },
                // o nome desta função é passada como parâmetro, chamado callback na variável jsonURL. Ela vai ser executada assim que a request for finalizada.    
                getJsonCallback: function(data) {
                    if (this.format == 'html') {
                        $('body').append(data.results[0]);
                    }
                    else if (this.format == 'json') {
                        // execute o seu código para usar o seu jSON como bem entender...
                        console.log(data);
                    }
                }
            }

            $(function() {
                externalAjax = new ExternalAjax();
            });
        </script>
    </body>
</html>