Author Archives: cmilfont

ExtJS e programação funcional

[disclaimer]
Os códigos desse post estão no Gist do Github, se não aparece no seu leitor de Feeds vai ter que entrar no site ou ir direto para o github
[/disclaimer]

Javascript possui funções como tipos de primeira classe na linguagem e implementa vários conceitos de programação funcional, mas essa forma de programar sempre é relegada quando escrevemos código com ExtJS.

Observe no código abaixo um trecho usando ExtJS para expandir as linhas de uma Grid:

Código imperativo comum encontrado nos projetos com ExtJS, o mesmo código conhecendo um pouco a API pode ser feito como se vê abaixo:

Você percebe que utilizando uma abordagem só um pouco mais funcional (como passar função como argumento de outra função) nem sempre vai ter menos código e pode até ser bem maior, mas observando a API com mais atenção você detecta que o método toggleRow pode receber tanto um index quanto o próprio Model, então você abusa mais um pouquinho e passa a própria função como argumento do método each (como podemos ver abaixo).

Comparando os dois códigos você pode até reclamar que a sintaxe imperativa vai ser mais fácil de ler, aí será questão de conhecimento em programação e experiência com essas outras abordagens, reconheço que programação funcional não é comum principalmente para quem programa com ExtJS no cotidiano.

Apesar de tudo vale a pena se esforçar um pouco e começar a escrever um código mais funcional.

Typically chemist’s shop can sale to you with discreet treatments for various heartiness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a much complicated matter. Matters, like “coupons for viagra“, are coupled numerous types of health problems. If you need to take formula medications, ask your druggist to check your testosterone levels before. Sometimes the treatment options may include erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

CEJS 0.0.3

CEJS é uma comunidade criada em consonância com os movimentos similares ao redor do mundo que se uniram para promover e disseminar o Javascript e suas ferramentas. A versão 0.0.3 do nosso encontro trará mais conteúdo e é gratuito.

Inscrição

Formulário para inscrição.

Local, Data e Horário

Faculdade 7 de Setembro. Endereço no rodapé no site da FA7.

Sábado, 10 de novembro de 2012. Início as 14:30.

Palestras

Notificações com HTML5

Descrição:

Apresentarei a utilização de notificações via push com HTML5, de duas maneiras diferentes:
– Uma utilizando uma infra-estrutura com NodeJS e Socket.io;
– Outra utilizando o serviço Pusher, que já provê essa infra-estrutura e torna o desenvolvimento mais transparente.

Sobre o Palestrante Rodrigo Oliveira:

“Desenvolvo há cerca de 8 anos, já me aventurei PHP, Ruby, Java, JavaScript e tenho brincado com Scala e Objective-C. Sou sócio-fundador da Pôr do Tom, empresa de desenvolvimento, consultoria e treinamentos.”

Do nada para a nuvem, á jato

Descrição:

O foco é mostrar como ferramentas modernas em javascript facilitam nosso trabalho de criar, manter e publicar aplicações web e/ou APIs para o mundo.

Vamos criar uma aplicação do zero e publicar na internet, utilizando ferramentas e frameworks modernos como: Sublime text 2, grunt.js (lint, minify, uglify, ciclo de desenvolvimento), angularjs + testacular (framework web + framework de testes) e couchdb (deploy local, e se tiver internet deploy na nuvem do cloudant).

Sobre o Palestrante Rodrigo Valério:

“Rodrigo Valério, trabalho com desenvolvimento de sistema a mais de 10 anos.
Tendo experiência em integração das mais deiversas aplicações e linguagens em várias empresas de todo o Brasil. Atualmente trabalhando nas farmácias paguemenos, em projetos inovadores como Ecommerce e Conferencia de mercadorias. http://www.linkedin.com/pub/rodrigo-val%C3%A9rio/5/643/4a5”

Plugins jQuery – level up

Descrição:

Desenvolver plugins jQuery simples é fácil, mas o que fazer quando seu plugin não é simples ?

Você precisa:
# “”despluginizar”” um elemento ?
# permitir o usuário do plugin reagir a eventos e preveni-los ?
# expor propriedades e métodos ?

Vou mostrar quais são os benefícios do jQueryUI widget factory e como usa-lo a seu favor.

Sobre o Palestrante Abraão Alves:

“Chamado de jQueryMan no tempo em que não sabia ‘bulufas’ sobre javascript de verdade, hoje sou um cara apaixonado por web, sobretudo por javascript e suas possibilidades.

linkedin: http://www.linkedin.com/in/abrahamalves”

Angry Carcarás: Uma Introdução ao cocos-2d e box2d em HTML5 e Javascript

Descrição:

Vamos conhecer as implementações do cocos-2D e do box2D para HTML5 e Javascript através da construção de um game simples inspirado no glorioso ‘Angry Birds’.
O objetivo é entender o funcionamento básico dessas engines e mostrar como você pode desenvolver seus games usando o poder do nosso querido Javascript.

Sobre o Palestrante Eduardo Braz do Vale:

Graduando em Sistemas de Informações FA7
Desenvolvedor Web
http://br.linkedin.com/pub/eduardo-braz-do-vale/24/699/98a

Backbone.js com Ruby on Rails. Integrando seu front-end com backend lindamente

Descrição:

Como construir aplicações com front-end atualizável em tempo real sem precisar submeter formulário e atualizar a tela à medida que o servidor atualizar. Backbone.js com Ruby on Rails é a casadinha perfeita.

Sobre o Palestrante Henrique Gogó:

“Henrique Gogó já tentou trabalhar com música, já foi publicitário, e, apesar de ter cursado letras, descobriu que o que gosta de fazer é programar.

Fez muito trabalho em Drupal, mas meter a mão no código é sempre melhor, por isso trabalha Ruby desde 2009 e C# com ASP.NET MVC de 2011.

Acredita que um front-end bem planejado é fundamental, e adora usar a casadinha HTML + CSS + JS.”

Da desordem ao MVEstrela

Descrição:

Desenvolver aplicações a partir do zero, é fácil pensar que é só usar uma biblioteca de manipulação DOM (como jQuery ou Zepto.js) e uma meia dúzia de plugins e o problema estará resolvido. Mas, se a aplicação for um pouco mais complexa que o usual, você estará perdido no meio de diversos callbacks e elementos DOM sem nenhuma estrutura: o velho código espaguete. Felizmente, foram desenvolvidas frameworks Javascript que podem nos trazer paz e ordem e reduzir a tortura dos processos de manutenção de longo prazo.

Sobre a Palestrante Jú Gonçalves:

“Jú Gonçalves é mestranda em Informática Aplicada pela Universidade de Fortaleza e Webdesigner na CPQi. Sempre esteve no contexto de criação e desenvolvimento de interfaces, caminhando entre design e javascript nos projetos em que atua.”

http://www.linkedin.com/pub/j%C3%BA-gon%C3%A7alves/19/851/290
http://jugoncalv.es/

Typically chemist’s shop can sale to you with discreet treatments for various heartiness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a much complicated matter. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take prescription medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Rails Rumble 2012, nós participamos

Mais uma vez participamos (@cmilfont, @rudrige, @alcidesqueiroz e @yuriadams) desse fantástico Hackathon da comunidade Rails que te desafia a escrever uma aplicação em apenas 48h. Havíamos participado da última edição do Rumble em 2010 com uma aplicação para organização/indexação de livros pessoais – uma pena não ter ocorrido em 2011.
Rails Rumble

Dessa vez resolvemos construir uma rede social para conhecermos os times e equipes de Brazilian JiuJitsu desde sua origem até os dias atuais, chamamos de Jiujitsu Team. Evidente que devido ao tempo e nossa disponibilidade não conseguimos fazer tudo que gostaríamos, mas fechamos um pequeno escopo e entregamos todo funcional, ao contrário de 2010.

Registramos o domínio uns dias antes e esboçamos um escopo do que gostaríamos de fazer – imagem a baixo.

Esboço do Projeto

No dia da competição eu ainda tentei fazer com TDD, mas ficou comprovado pra mim que eu não consigo “I TDD my spikes solutions“. Eu preciso de um tempo para maturar um projeto inicial, pelo menos a primeira versão “prototipal” nasce de experimentações num mexe-daqui-mexe-de-lá, mas depois voce consegue TDDar 🙂

# -*- encoding : utf-8 -*-
require 'spec_helper'
describe GraduationsController do
describe "GET belts" do
before do
@belts = []
7.times {|n| @belts << FactoryGirl.create(:belt, :name => "#{n} belt" )}
Belt.stub(:all).and_return @belts
end
it "should list all belts" do
get :belts, :format => :json
assigns[:belts].should == @belts
assigns[:belts].should have(7).belts
end
end
describe "POST create" do
before do
@graduation = Graduation.new :id => 1
@belt = Belt.new :id => 1
@graduation.stub(:belt_to).and_return @belt
controller.stub_chain(:current_user, :profile, :graduate_your_student).and_return(@graduation)
end
# @graduation = current_user.profile.graduate_your_student params[:student_id], params[:belt_id]
# respond_with @graduation, :include => :belt_to
it "graduate your student" do
post :create, :format => :json, :student_id => 1, :belt_id => 1
assigns[:graduation].should == @graduation
assigns[:graduation].belt_to.should == @belt
end
end
end

Participar de uma competição desse tipo é muito importante para nos testarmos sob pressão de tempo, validamos nossas crenças e ajustamos o que funciona ou não do “By The Book” com o suficiente necessário para um produto.

Profile no Jiujitsu Team

Dê uma navegada nos outros projetos para ver o que a comunidade de 500 times fez esse ano, se gostou do nosso projeto e quiser votar na gente, o link é esse.

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a highly complicated question. Matters, like “coupons for viagra“, are coupled numerous types of heartiness problems. If you need to take formula medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile malfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile malfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.