Trocando Jogos

Trocando Jogos

Há alguns dias, lançamos o site Trocando Jogos, um serviço que veio para facilitar a troca de jogos usados. Através da nossa plataforma você pode facilmente trocar seus jogos por outros que você procura e a economia do site é baseada na interação de troca, ao invés do seu dinheiro suado.

Funciona da seguinte maneira: Você disponibiliza os jogos que quer trocar e quando outro membro solicitar você envia e recebe a pontuação do mesmo na sua conta. Com esses pontos você pode solicitar outros jogos de seu interesse.

É muito simples e você não precisa encontrar outra pessoa que esteja disposta a receber o seu jogo em troca de outro que deseja.

Aguardamos você no Trocando Jogos.

Mad Mimi Gem

post mad mimi

Mad Mimi is an email marketing service that allows users to create, send and track email campaigns in a fresh novel way without using templates.

This gem adds a Mad Mimi integration in your ruby application to deliver emails and manage your Mad Mimi audience.

Install:



gem install mad_mimi

Documentation:



http://rdoc.info/gems/mad_mimi

Usage Examples:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
require "rubygems"
require "mad_mimi"

# Sets the MadMimi configuration options. Best used by passing a block.
MadMimi.configure do |config|
  config.username = "YourMadMimiEmailAddress"
  config.api_key  = "YourMadMimiApiKey"
end

# Sending transactional email
MadMimi.mailer.mail({ :promotion_name => "Welcome", :recipients => "Ozéias Sant'Ana <oz.santana@gmail.com>" })

# Performs an audience search and returns the up to the first 100 results.
MadMimi.audience.search

# Get Audience Members
MadMimi.audience.members

# Get all Audience Lists
MadMimi.audience.lists

# Add Audience List Membership
MadMimi.audience.add_to_list('Clients', {:first_name => 'Ozéias', :last_name => 'Santana', :email => 'oz.santana@gmail.com'})

# Remove Audience List Membership
MadMimi.audience.remove_from_list('Clients', 'oz.santana@gmail.com')

# Suppress an Audience Member
MadMimi.audience.suppress('oz.santana@gmail.com')

Contributing

In the spirit of free software, everyone is encouraged to help improve this project. Here are some ways you can contribute:

Submitting an Issue

We use the GitHub issue tracker to track bugs and features. Before submitting a bug report or feature request, check to make sure it hasn’t already been submitted. You can indicate support for an existing issuse by voting it up. When submitting a bug report, please include a Gist that includes a stack trace and any details that may be necessary to reproduce the bug, including your gem version, Ruby version, and operating system. Ideally, a bug report should include a pull request with failing specs.

Leave feedback, feature requests, or bugs below!

Recommend me on WWR | Follow me on Twitter

Protegendo seu código de um ataque XSS

post

Esta semana vários websites conhecidos como o Twitter, Orkut e o YouTube sofreram com ataques XSS.

O XSS (Cross-site scripting) é um tipo de vulnerabilidade encontrado normalmente em aplicações web que permite que crackers injetarem scripts client-side em páginas visualizadas por outros usuários. Os ataques de XSS somam aproximadamente 80% de todas as vulnerabilidades documentadas pela Symantec desde 2007. O impacto no website pode variar de um pequeno incômodo a um risco de segurança significativo, dependendo da sensibilidade dos dados tratados pelo website vulnerável e a natureza das eventuais reduções de segurança implementadas pelo proprietário do mesmo.

Ataque

Através de um XSS, o cracker injeta códigos JavaScript em um campo texto de uma página já existente e este JavaScript é apresentado para outros usuários.

Imagine que você tenha um campo de texto simples, para que o usuário possa atualizar seu status (What’s happening?) e uma tela para exibir esse status assim:

1
2
# form
<%= f.text_field :status -%>

1
2
# view
<%= @user.status -%>

Se um usuário malicioso preencher com:


<script>alert("Follow me on Twitter: @ozeias")</script>

Se não há nenhuma proteção contra XSS, cada vez que um usuário abrir a página, vai ver o alerta:

post

Proteção

Até o Rails 2.3, para sanitizar qualquer entrada gerado pelo usuário, utiliza-se o método h().

1
2
# view
<%= h @user.status -%>

No Rails 3, por padrão, toda saída é automaticamente sanitizada e por isso não há necessidade de colocar o método h(). Caso você queira exibir a string sem sanitizar, use o método raw():

1
2
# view
<%= raw @user.status -%>

Para quem tem aplicação em produção usando Rails 2.3 e não quer correr o risco de esquecer de sanitizar alguma entrada de usuário, pode utilizar o plugin RailsXSS, instalando-o no seu projeto:


./script/plugin install git://github.com/rails/rails_xss.git

Este é um assunto importante que quem desenvolve para a web precisa entender e lembrar de sempre sanitizar qualquer entrada gerada pelo usuário e isso provavelmente vai lhe poupar muito tempo no futuro.

Mais informações

Foto by Defensor Fortis

Recommend me on WWR

Aruba - Como testar suas linhas de comando com Cucumber

Que tal testar seus scripts ruby com Cucumber? Agora é possível e da mesma forma que testamos as nossas aplicações web. Aruba, do mesmo criador do Cucumber, fornece uma ambiente familiar para testes de saída, status e comandos do sistema. Abaixo um pequeno exemplo para um teste de status de saída:

Para usar aruba, basta instalar a gem:


sudo gem install aruba

e, em seguida, adicione em seu env.rb ou em qualquer arquivo em features/support


require 'aruba'

What is our limit, when will we max out?

Carla and Henriette Hochdorfer

Estamos Contratando

For Hire

A Amanaiê está procurando um profissional para desenvolvimento de Aplicativos Sociais. Contamos com uma equipe de railers de excelente nível, várias aplicações pontuais e projetos em desenvolvimento.

Requisitos:

O salário inicial é de nível Junior, o trabalho é remoto e o horário é bastante flexível. Ganha pontos quem mandar algum projeto próprio ou pelo menos trechos de código para análise, github, twitter e blog.

Se alguém tiver interessado por favor, entre em contato comigo por: ozeias@amanaie.com.br.

Rails Summit 2009

Disabling Cache in the Orkut Sandbox

bypass

Orkut caches application XML specs to minimize the number of times that each file has to be fetched, saving bandwidth and reducing user latency. Caching is great for cases where many users are requesting your application, but can be disruptive during application development when you want to see each change as soon as you update your application's code.

Fortunately, you can disable this caching mechanism by appending &bpc=1 to the URL of any profile or application canvas page. This "bypass cache" parameter instructs orkut to pull a fresh version of the gadget XML from your server rather than the version currently in its cache.

For example, if you are viewing:


http://prod.sandbox.orkut.com/Main#Application?uid=#####&appId=#####

You can view the uncached version by navigating to:


http://prod.sandbox.orkut.com/Main#Application?uid=#####&appId=#####&bpc=1

But it is very tedious task to append &bpc=1 to the application pages everytime you want to see the latest version. Now, you can use this greasemonkey script for fix that problem.

First you need install Greasemonkey plugin for Firefox/Flock and later, you need install this userscript Bypass Orkut Cache.

Você está trabalhando com Rails? Diga ao mundo!

Recommend Me

O Working With Rails, mais conhecido como wwr, é uma app que indexa todos os desenvolvedores que trabalham com Rails. Oferece formas de analisar a comunidade por autoridade, popularidade e por país.

Falando em país, posso dizer que já estivemos quase no top, mas hoje estamos amargando a 4 posição - atrás dos United States, United Kingdom e India.

Temos muito mais que 1000 desenvolvedores por aqui e precisamos mostrar isto. Nós, brasileiros, não estamos acostumados a cuidar do nosso marketing pessoal, perdemos feio para os Indianos - nossos maiores concorrentes no mercado de offshore outsourcing.

Após criar sua conta, não se esqueça de recomendar-me. Aproveite e deixe o link do seu wwr nos comentários.

Amanaiê

amanaie

Mês passado recebi um convite da Amanaiê, por meio do Mario Nogueira - Gerente de Projetos da empresa e fundador do Pagestacker - para gerenciar uma equipe de desenvolvimento que seria criada.

A Amanaiê cria, produz e distribui aplicativos sociais, que trazem novas maneiras para as pessoas se relacionarem entre si, além de tornarem seu dia-a-dia mais fácil e divertido.

Fundada por Gilberto Alves Junior - designer de interfaces há 8 anos e mantenedor do blog prati.ca. Foi um dos primeiros a trabalhar com Web 2.0 e escrever sobre o assunto no Brasil - e por Michael Nicklas - que tem trabalhado com desenvolvimento de software e integração nos últimos quinze anos. Tem grande habilidade em identificar novas tecnologias e implementar modelos de negócio inovadores, ajudando empresas como Viacom, Univision, IBM, Nielsen e Disney a desenvolver iniciativas estratégicas de tecnologia. Michael também é sócio da Thirst, uma empresa de serviços de design e desenvolvimento de software, baseada em Nova York, onde mora - tem sido destaque na mídia nacional e estrangeira.

Alguns dias depois, aceitei o desafio de criar excelentes produtos sociais para o mercado nacional. Junta-se ao nosso time, nos próximos dias, Dante Regis - Grande filósofo :) - e um outro cara que dispensa apresentações - ainda não posso dizer quem é :).

UPDATE:

Querem saber quem é o outro cara? De uma olhada aqui.

Let's Rock!

Modismo - Ágil e Rails

post

Todos aqui devem saber que eu sou um defensor de Metodologias Ágeis e de Rails. Tive o prazer de começar com Rails a uns 3 anos atrás, e a uns 2 anos com Ágil - Scrum, XP, Lean. Durante este tempo tenho colhido bons frutos das minhas escolhas e, como bom evangelista, eu prego aquilo que acredito e o que faço.

Mas nem tudo são flores, tenho me deparado com algumas coisas que me deixaram um pouco frustrado: O modismo. Modismo? Sim, Modismo. Modismo, é aquela tendência de comprar, fazer, falar e ser o que todos são no momento, ou seja, um indivíduo sem idéias fixas e definidas, que são guiados pela mídia - A ditadura que domina a cabeça das pessoas.

Mas isto é legal. Todos usando Rails e sendo "ágil"!!! Não é este o problema, vamos fazer uma análise: Quando comecei com Rails, tínhamos poucos desenvolvedores, tanto no Brasil quanto lá fora, e era mais do que nossa obrigação divulgar. Era o que podíamos fazer para conseguir expandir o mercado de trabalho e poder trabalhar profissionalmente com aquilo que aprendemos a gostar. E sabe o que tínhamos na época? Um monte de feras como o Akita, Tino Gomes, Lucas Húngaro, Tapajós, Ronaldo Ferraz, Rodrigo (caffo), Demetrius Nunes (dema), Bruno Miranda e outros. Isto era muito bom, porque era uma comunidade super pequena mas de alto nível, qualquer assunto levantado era discutido por quem sabia o que estava falando. Hoje nós temos uma comunidade “inchada”, com poucos excelentes programadores Ruby/Rails e um monte de “usuários” do framework.

Conheço um monte de “usuários” Rails que não sabem nada de Ruby. Alguns outros chegam a chamar o Rails de linguagem, pasmem, isto é o cumulo da ignorância. A rails-br se tornou uma lista de newbie, com perguntas que são facilmente respondidas fazendo uma busca no Google ou no próprio grupo, tornam-se extensas threads inúteis.

O mesmo está acontece com as metodologias ágeis: todos estão falando de ágil, cursos novos, certificações e um monte de blah, blah, blah. Está cheio de consultores e consultorias pronto para moldar um Scrum para sua empresa. Conseguem criar um produto "bonito" e cheio de marketing sem entender os conceitos, regras e fundamentos das metodologias. São apenas aberrações.

Já trabalhei com diversas metodologias, incluindo RUP, Espiral, Cascata e Incremental - que eu lembre foram estes, e o que diferencia estas metodologias tradicionais são o enfoque e os valores, a idéia das metodologias ágeis é o enfoque nas pessoas e não em processos ou algoritmos, a preocupação de gastar menos tempo com documentação e mais com a implementação. Mas para alcançar resultados é exigido muito de cada pessoa, da equipe e da organização, precisa de comprometimento, sacrifício, acreditar – ter fé, saber trabalhar em equipe, o que diga-se de passagem é impossível para a maioria das pessoas - no seu orgulho besta e infantil. Não adianta rotular como ágil sua empresa e não ter atitude. Melhor continuar sem o rótulo ou você vai ferrar com seu projeto/empresa.

Tenha em mente que Ruby não é a solução para tudo, e Ágil também não. O importante não é o que você usa: é quem e como usar. As pessoas ficam entusiasmadas com tudo que escutam e acabam por colocar o carro na frete dos bois.

Leia também:

4º Circuito Paraná de Software Livre

4º Circuito Paraná de Software Livre - 2008

Nos dias 24 e 25 de abril, estará sendo realizado na Faculdade Sul Brasil - FASUL de Toledo, o 4º Circuito Paraná de Software Livre

Novamente estarei palestrando, e vou falar sobre Desenvolvimento Ágil de Software e a difícil adaptação das equipes. Aqui está a programação do evento para Toledo.

Maiores informações aqui e inscrições aqui.

Divulguem e não deixe de participar


View Larger Map

Ozéias Sant'ana for hire

For Hire

After some few months working at TownConnect, various challenges and learning, my work on the project has ended.

Well, I'm anxious to start a new project to work on.

I'm looking for full-time projects, with the minimum of three months contract, flexible hours, motivated team and small team is desired.

You will hire a professional self-motivated and goal oriented, dedicated, hard-working team player, self-learner and focused on results. Easy adaptation to new working environments and good problems solving skills. Highly skilled in Web Technologies.

Ruby / Ruby on Rails enthusiast, specialist and evangelist. Software architect, consultant, developer and analyst.

It would be wonderful if you can share this post with anyone who would benefit from having me on their team.

I can be contacted at oz.santana@gmail.com.

Contrate o Ozéias Sant'ana

Após alguns meses de trabalho na TownConnect, diversos desafios e aprendizados, infelizmente o desenvolvimento do projeto teve que parar.

Bom, estou ansioso para começar a trabalhar em um novo projeto.

Procuro por projetos em tempo integral, com no mínimo 3 meses de contrato, com horário flexível, equipe motivada e de preferência pequena.

Você irá contratar um profissional motivado e com metas, dedicado, com excelente trabalho em equipe, autodidata e focado em resultados. Fácil adaptação ao ambiente de trabalho e com muita habilidade na resolução de problemas. Especialista em desenvolvimento web.

Entusiasta, especialista e evangelizador de Ruby / Ruby on Rails. Arquiteto, consultor, programador e analista de Sistemas.

Agradeceria se você pudesse compartilhar este post com quem se beneficiaria em ter-me na equipe.

Você pode entrar em contato comigo através do email oz.santana@gmail.com.

Ativando o 1Password no Safari 4 Beta

Safari 4

Hoje pela manhã a Apple liberou o Safari 4 beta. Foram diversas as modificações, entre elas, a Nitro Engine - JS, que chega a ser 30 vezes mais rápido que o browser da Microsoft, suporte a HTML 5, CSS3 e o primeiro browser não-experimental a passar no Acid3 Test atingindo a maior nota possível: 100/100.

Os usuários do 1Password perceberam que ele não funciona na nova versão. Para que ele volte a funcionar, feche o Safari e o 1Password e edite o seguinte arquivo:


/Applications/1Password.app/Contents/Resources/SupportedBrowsers.plist

Procure uma chave nomeada com Safari e o valor da chave MaxBundleVersion. Você encontrará o valor 5528.1, que é a versão máxima suportada. Bom, basta alterar para 5528.16, salvar e fechar. Agora reabra o Safari e pronto.

O verdadeiro teste de qualidade do código

The only valid measurement of code quality!