InterCon 2008

14 Nov 2008 In: meta
InterCon 2008

InterCon 2008

Não precisa falar muito do InterCon porque tudo foi dito.

Todas as palestras que eu assisti (participei? sintonizei?) foram ótimas. Cris Dias, Marco Gomes, Van Amstel, Manoel Lemos, Daniel Heise e até o Paulino Michelazzo arrasaram. Só ficou a vontade de ver uma palestra do Luli - vontade que eu matei na OAH.

Se tem uma coisa pra dizer da Intercon 2008, é que Foi Foda.

Fórum Nokia Code Camp

14 Nov 2008 In: meta

O Nokia Code Camp foi um evento técnico, feito pra discutir o desenvolvimento de aplicações para celulares Nokia.

Palestras introdutórias mostraram as grandes “famílias” de celulares Nokia: S40 (muitos celulares, segmentados para o público) e S60 (celulares mais caros e com mais recursos) e o que você pode usar pra desnvolver aplicações nelas. Java está em todos eles. Nos S60, que rodam Symbyan OS, você pode criar aplicações nativas com OpenC/C++, Python e Web Runtime Widgets.

WRT (Web Runtime) é um ambiente que executa aplicações feitas com XHTML, CSS e Javascript como uma aplicação nativa do celular - e você pode fazer Cross Site Script Requests. É a opção mais indicada pra quem quer uma versão mobile de um serviço web. No workshop cada dupla tinha três horas pra fazer uma aplicação. Eu e minha dupla fizemos um cliente pra Twitter, que oferece uma API REST muito bacana. (Ganhamos um E71! =D).

Resumo do que foi dito lá: Se você for criar aplicações pra celulares Nokia, use WRT se quiser uma interface pra um serviço web ou Python se precisar de muita integração com os recursos - câmera, GPS - do celular. Você só vai precisar pensar em outra plaforma se tiver uma necessidade mais específica - se precisar rodar em muitos celulares diferentes pode usar java, se precisar de muito desempenho dá uma olhada em OpenC/C++.

CONAPHP

12 Nov 2008 In: meta
Palestra sobre PHP6 no CONAPHP

Palestra sobre PHP6 no CONAPHP

Participei esses dias do CONAPHP (Congresso Nacional de PHP), que aconteceu dentro do Conisli.

Curti o evento, mas esperava que algumas das palestras fossem um pouco melhores. A impressão que tive, principalmente numa palestra com o tema “POG Nunca Mais” sobre boas práticas com PHP, é que a comunidade PHP ainda não acordou pra temas importantes como testes automatizados, controle de versão. Pouca gente ouviu falar em TDD, quase ninguém faz Integração Contínua. Os slides do evento estão aqui.

Andrei Zmievski falou sobre PHP 6. Em resumo, PHP6 === PHP5 + UTF8.

A palestra sobre o Doctrine foi até interessante. Esse é um ORM que se inspira no Hibernate mas se assemelha um pouco ao ActiveRecord. O que me preocupou é que o palestrante, core team member do Doctrine, disse que a tendência é que ele se afaste do ActiveRecord e se torne mais parecido com o Hibernate. Tô fora, já cansei de Hibernate.

Gostei muito da palestra do Élcio Ferreira, que mostrou como o PagSeguro funciona e como integrá-lo a uma aplicação PHP. Se você está fazendo uma loja virtual recomendo que dê uma olhada no PagSeguro, pode te poupar um trabalho imenso. Fiquei até devendo um plugin pra Rails. Vai sair daqui a um tempinho (espero).

Outra palestra que curti foi do Felipe Ribeiro, nordestino também, sobre RESTful Webservices com PHP, com muitos conceitos e uma prática pequena no final.

A melhor palestra do evento foi sobre Integração Contínua em projetos PHP. O Daniel Diego Tremper mostrou o phpUnderControl e diversas ferramentas para análise de código, code coverage, automação de build.

O que falta na comunidade PHP é que pessoas que trabalham com metodologias ágeis, testam, fazem tudo “certinho”, façam mais barulho e se tornem a maioria. Espero ver isso em algum próximo CONAPHP.

Decidi aprender Rails. E agora?

21 Oct 2008 In: Aprendendo Rails

Você ouviu falar de Rails e agora quer aprender? Vou passar uma sugestão de caminho. Não é o único, mas é um caminho possível e interessante.

ps. Aprenda inglês. Indispensável.  A maior parte do material nessa lista (e em qualquer lugar) é em inglês.

Se você ainda não conhece HTML e CSS, aprenda. Pode usar o Curso Online de Desenvolvimento Web do +web ou o Open Web Standards Curriculum da Opera.

Agora entre no Aprendendo Rails, pra tirar as dúvidas que aparecerem pelo caminho.

O próximo passo é Ruby. Se você nunca programou, pode ler o Learn To Program (traduzido). Se você já programa, recomendo o Why’s Poignant Guide to Ruby ou o Tutorial do TaQ. Tem também, pra quem gosta de papel, tem o livro Programming Ruby.

Tá ferinha no Ruby? Parta pra Rails. O Learning Rails Podcast é o material mais bacana que eu conheço, com muitos podcasts e screencasts. Tem também o Rails para sua diversão e lucro v2 e o Agile Web Development with Rails.

Agora que você já manja de Rails, aprenda Git e leia sobre Desenvolvimento Ágil.

Se você ainda não começou um side project, deve estar cansado de ler e doido pra por a mão na massa. Você pode se juntar a um dos grupos menores do Aprendendo Rails (passa lá pra saber que grupos são esses) e dar uma olhada no código de umas aplicações Rails opensource - aproveita pra colaborar.

E pra se manter atualizado no mundo Rails, começa a seguir o Nome do Jogo, blog do Carlos Brando, e o Akita On Rails. E escuta o Rails Podcast Brasil, que os dois fazem (quase) toda semana.

Você pode começar a procurar um emprego com Rails, mas o aprendizado não para por aqui. Você pode ficar fuçando o que vai vir nas próximas versões do Rails, pode agitar a comunidade, escrever código que todo mundo usa. O importante é não parar!

Rails Summit: Eu fui!

20 Oct 2008 In: +web, Aprendendo Rails, meta
Aprendendo Rails no Rails Summit

Galera do Aprendendo Rails: Thiago Freire, PotHix, Nihil, Eu, William e Juarez

Rails Summit numa frase: Foi do caralho!

As palestras foram todas de altíssimo nível, com a maioria sendo mais motivacional que técnica. Chad Fowler, com “Be Remarkable” arrebentou. Obie Fernandez deixou muita gente doida pra mudar de emprego (eu! eu!) quando mostrou “The Hashrocket Way”. Vinicius Teles, Carlos Brando, Manoel Lemos e todos os outros mandaram muito bem.

Como o Akita falou bem, o sucesso do evento foi a comunidade. A parte mais legal do evento foi conhecer a galera do Aprendendo Rails, dos blogs, do twitter. Galera simpática, descolada, divertida pra caramba. Rolou até um vídeo-fail-cast durante o evento (o Davis Cabral soltou um “Putz, não tava gravando” depois de meia hora de vídeo). Mesmo sem vídeo, foi divertido pra caramba participar da gravação!

E por falar em divertido participar, peguei o macbook bugado do Thiago Freire e fui falar sobre grupos de estudo no BoF. Fiquei mais nervoso que imaginei que fosse ficar, mas foi muito legal! Fiquei muito, muito surpreso e contente com a reação do pessoal. A galera me parabenizou, twittou e comentou em blogs. Tive meus 15 minutos de fama, e foi da hora. O mais legal foi que eu conheci mais gente ainda graças ao BoF, e teve gente me procurando pedindo dicas pra montar um grupo e dizendo que ia pro Aprendendo Rails. Fiquei com a impressão que fiz o que queria fazer: agitar pelo menos uma pessoa. (quem quiser saber o que eu falei, vê o post do @spicee). =D

Como eu tô com preguiça de falar mais sobre o evento, você pode dar uma olhada no Livestream, nas fotos, e ler o que os blogueiros acharam: Akita, Thiago Freire, @spicee, Marcos Ricardo, Nando Vieira, Sea Tecnologia, Klaus Paiva, Ricardo Almeida, Fabricio Nascimento, Bluesoft, Desi, e todos os outros. ;)

E que venha o Rails Summit 2009!

Café da Manhã Firefox!

13 Oct 2008 In: +web
I support the Open Web!

I support the Open Web!

Olá, pessoal

Esse mês virei Mozilla Campus Rep., e agora tenho a missão de divulgar o Firefox no campus, e fazer as pessoas passarem pada o lado laranja-e-legal da força. Como já costumava fazer isso, a diferença é que agora estou munido de pulseirinhas e a assinatura do meu email ficou maior.

Pra comemorar, aproveitei o 5º Sábado+web que rolou sábado (11/10) e chamei o pessoal pra chegar mais cedo e fazer o Café da Manhã Firefox. A gente conversou sobre Firefox, se divertiu, e quem ainda não usava Firefox se comprometeu a usar (yeah!).

Dá uma olhada nas fotos.

Brincando com a API do Twitter

25 Sep 2008 In: meta

Ontem me bateu uma curiosidade: Será que é muito difícil fazer ulguma coisa pro Twitter? Fui caçar a API e esbarrei na twitter4r, biblioteca em Ruby que encapsula a API do Twitter. E é bem mais simples do que eu pensava. Instalei a versão de desenvolvimento que tinha umas coisinhas que eu precisava.

Armado da gem, fui pro código. Esses dias recebi um carão porque reclamava demais, então decidi criar um perfil que reclamasse por mim. Como eu não ia ficar trocando de perfil toda hora, queria um jeito de mandar uma d (direct message) ou reply pro perfil e ele reclamar. Uni o (não-tão-)útil ao bem agradável.

Com um .rb de 35 linhas tá pronto o nosso mini-mini-bot. Dá uma olhada no código, que tá feinho mas é auto-explicativo. Viva REST!

require 'rubygems'
require 'twitter'
require 'time'

gem('mbbx6spp-twitter4r')

Twitter::Client.configure do |conf|
	conf.application_name = 'Reclamão'
	conf.application_url = 'http://maisweb.org/blogdoelomar'
end

def reclamacao(name, text)
	interjeicoes = [
		'foda!',
		'complicado, né?',
		'sério mesmo?',
		'caraléo!',
		'eu pegava ar!'
	]

	"@#{name} tá reclamando: '" +
		text[text.index(' ') + 1, text.length] + "'. " +
		interjeicoes[rand(interjeicoes.length)]
end

client = Twitter::Client.new(:login => 'reclamao', :password => 'xxxx')

my_last = client.timeline_for(:me, :count => 1).first

received_messages = client.messages(:received)

received_messages.each do |message|
	client.status :post, reclamacao(message.sender.screen_name, ' ' + message.text)
	client.message(:delete, message)
end

replies = client.timeline_for(:replies)

replies.each do |r|
	if my_last.id < r.id
		client.status :post, reclamacao(r.user.screen_name, r.text)
	end
end

Meu primeiro teste

23 Sep 2008 In: Aprendendo Rails
Red: Test fails - Green: Test pass - Refactor: Clean code + tests

Red: Test fails - Green: Test pass - Refactor: Clean code + tests

Comecei uma pequena aplicação em Rails, e como eu quero aprender direito tô tentando criar testes primeiro - TDD. Uma surpresa boa que eu tive: criar testes (que por enquanto ainda não são “bons” testes) é mesmo tão simples quanto parece.

Por enquanto estou usando a biblioteca padrão do Rails para testes, Test::Unit. Os testes não são ‘bonitinhos’ como os do RSpec, mas é muito fácil aprender.

Primeira coisa que eu fiz foi um scaffolding, só pra ter alguma coisa pra testar.

app$ script/generate scaffold Event title:string \

description:text user:references

O scaffolding já vai gerar uns testes funcionais pra servirem como base. =D

O passo seguinte foi testar o modelo.

Abri - no meu Gedit tunado - o arquivo ‘test/units/event_test.rb’ e o ‘app/models/event.rb’.

Como meu Evento tem que ter um título, eu escrevi:

def test_should_require_title
event = Event.new({
:description =&gt; 'Bring your own bomb',
:user =&gt; users(:aaron)
})
event.save
assert event.errors.on(:title)
end

Depois, rodei:

app$ rake test:units

E ban! uma linda failure. Fui no event.rb e acrescentei:

validates_presence_of :title

Rodai os testes outra vez - e passaram!

Próximo teste - user é obrigatório. Voltei pro teste e fiz dei um ctrl+c - ctrl+v no teste de cima:

def test_should_require_user
event = Event.new({
:title =&gt; 'SOAD Party',
:description =&gt; 'Bring your own bomb',
})
event.save
assert event.errors.on(:title)
end

Rodei os testes - red - coloquei a validação - green. Voilà!

Mas uma coisa tava me incomodando - a duplicação nos testes. Voltei pra lá e fiz umas mudanças:

require File.dirname(__FILE__) + '/../test_helper'

class EventTest &lt; ActiveSupport::TestCase
fixtures :users, :events

def test_should_require_title
event = create_event(:title =&gt; nil)
assert event.errors.on(:title)
end

def test_should_have_a_user
event = create_event(:user =&gt; nil)
assert event.errors.on(:user)
end

protected
def create_event(options = {})
record = Event.new({
:title =&gt; 'SOAD Party',
:description =&gt; 'Bring your own bomb',
:user =&gt; users(:aaron)
}.merge(options))
record.save
record
end
end

Melhorou (ainda dá pra fazer mais!) e os testes continuaram passando. Fomos, em pouquinho tempo, nas três fases principais do TDD: red - green - refactor.

Muito simples, não é? O importante, pra quem ainda não testa, e criar o hábito e testar sempre. Com o tempo e experiência seus testes vão melhorando.

Aproveita e da uma lida no Guia para testar aplicações em Rails.

Esperem mais posts nos próximos dias sobre coisas legais que eu vou aprendendo com minha app de estimação. Alguém se interessaria em uma série de posts com tudo que eu vou fazendo com ela? Mais uma série ‘creating a rails app from scratch’?

Google Chrome - o navegador do Google

1 Sep 2008 In: Novidade

O Google está criando um navegador. Não precisa dizer mais nada pra saber o nível do projeto. Baseado no Webkit, foi pensado pras novas necessidades da web. E a divulgação foi feita com uma HQ! Bacana, não?

Vai lá ver os quadrinhos do Google Chrome e volte aqui pra dizer o que achou.

Resultados do 4º sábado+web

30 Aug 2008 In: +web
Elomar França falando sobre Desenvolvimento Web

Elomar França falando sobre Desenvolvimento Web

Aconteceu hoje [30/8] o 4º sábado+web, encontro do grupo de estudos de desenvolvimento web +web.

O “acaso” não tava de bom humor e resolvou tirar onda com a gente, mas mesmo com uma sucessão de coisas querendo não dar certo (sala ocupada, ustream que não prestava, …) a gente foi lá e fez. =)

A primeira palestra foi minha. Eu me empolguei falando de “Introdução ao Desenvolvimento Web Server Side” e falei de MVC bem mais que tinha planejado - mas foi muito legal! Rails fez sucesso, a gente vai se aprofundar nos próximos encontros.

A palestra seguinte foi do Phillip Pimenta sobre “Trabalhando com MySQL em suas aplicações PHP”. Perdi a maior parte (ficar nos bastidores não é nada fácil!) mas foi bem legal. Só uma dica: não risque a parede, só o quadro mesmo. =)

Depois Evandro falou sobre as principais bibliotecas Javascript - e, claro, do utm, framework que ele está desenvolvendo. Foi bem legal!

Eu ainda mostrei o vídeo do Ubiquity e tentei instigar o pessoal a pensar no poder dele + microformats. Ubiquitty owna!

Fotos e slides na página do evento.

Espero te ver no próximo! E em breve teremos grandes novidades. Té mais!

Sou um desenvolvedor web, 17 anos, de Natal - RN. Trabalho com PHP e adoro Rails.

Fundei, junto com uma galera massa, um grupo de estudos de desenvolvimento web - o +web, que tenta divulgar por essas bandas a boa web.

Qualquer coisa, você pode mandar um email pra elomar@maisweb.org ou adicionar esse email no MSN ou GTalk. Ou ainda seguir @elomar no Twitter. Eu tô sempre por lá.