Blog

5 erros que você pode estar cometendo ao criar uma paleta de cores

5 erros que você pode estar cometendo ao criar uma paleta de cores

Eae? Tudo bele? Começarei este artigo te fazendo uma pergunta: você já criou uma paleta de cores? Se sim. Foi fácil para você? Se a resposta de novo foi sim, ou você é muito evoluído neste quesito, e eu tenho que sinceramente te parabenizar, ou você pertence a aquele grupo dos precipitados que não pararam para […]
O post 5 erros que você pode estar cometendo ao criar uma paleta de cores apareceu primeiro em Chief of Design.

5 erros que você pode estar cometendo ao criar uma paleta de cores
Fonte: Chef of Design

Como fazer um Currículo Criativo? Aprenda a criar o seu e potencialize as suas chances!

Como fazer um Currículo Criativo? Aprenda a criar o seu e potencialize as suas chances!

Eae, td bele? Talvez o primeiro passo que vem na mente de quem está a procura de um emprego seja a de elaborar um currículo (CV), né?! Só para quem é Designer, ou trabalha em alguma área criativa no geral, não basta a simples criação de um currículo feito em editor de texto, tipo Microsoft Word. […]
O post Como fazer um Currículo Criativo? Aprenda a criar o seu e potencialize as suas chances! apareceu primeiro em Chief of Design.

Como fazer um Currículo Criativo? Aprenda a criar o seu e potencialize as suas chances!
Fonte: Chef of Design

Você tem o controle de suas ações?

Você tem o controle de suas ações?

Eu sempre (nem sempre) me fiz essas perguntas: Será que eu tenho o controle de minhas ações? Será que eu realmente controlo tudo o que eu faço? E se eu quisesse fazer algo diferente, saberia por onde começar e como controlar isso?
Por que essas perguntas estavam rodeando minha cabeça?
Porque muitas vezes queremos aprender algo novo ou até mesmo focarmos em aprimorar o que já existe ou… Podem existir “n” motivos para você querer ter o real controle de suas ações, mas a grande pergunta – e dificuldade – é sobre como fazer isso. E, desses “n” motivos, pegarei duas situações para tomarmos como exemplo.
Situação 1:
Você trabalha como freelancer e precisa tocar 5 projetos em paralelo, sendo que o prazo deles é muito próximo um do outro. Para terminá-los você dividiu sua jornada diária entre os cinco, podendo assim, trabalhar em todos eles. Como controlar o seu tempo corretamente e saber como pode melhorar?
Situação 2:
Você está aprendendo uma nova linguagem e seu objetivo é dedicar 2 horas de seu dia para codar um pequeno projeto dela. Mas você também precisa manter as 5 horas diárias e ininterruptas de trabalho (sem contar os e-mails, notícias, mensagens no WhatsApp e notificações que precisa ler) e não pode parar as outras atividades que já faz. Como se organizar para isso?
Na segunda semana do mês de janeiro conheci o Wakatime, uma ferramenta sensacional para controlar o tempo e saber como você está empregando ele. O melhor é que ele realmente cumpre o que propõe.
Ele funciona da seguinte maneira: você instala os plugins – tanto em seu Editor/IDE (tem para quase tudo), em seu navegador (só tem pro Chrome memória Chrome) e no terminal. Depois de instalado a mágica começa a acontecer e esse cara simplesmente pega tudo o que você estiver fazendo no momento e coloca em métricas. Assim é possível saber o que está fazendo e quando está fazendo.
Melhor do que falar é mostrar o print das primeiras horas que usei o Wakatime:

Eu não uso chrome (e não vou usar), por isso ele não se encontra na minha métrica. Como você pode ver ele capturou o tempo que eu estive entre o terminal e o editor; mostra os projetos em que estive trabalhando e quanto tempo fiquei neles.
E isso não é tudo! O Wakatime ainda possui outros recursos, que fazem dele uma das ferramentas mais sensacionais que já vi. Com ele é possível definir objetivos, como “Codar X horas por dia”, podendo ou não definir um projeto ou linguagem específica. Além disso, você também pode integrá-lo em suas contas no Github, Gitlab e Bitbucket, além de Slack e Office365.

Com esse tipo de métrica você terá muitos dados que o ajudarão a identificar os pontos a serem melhorados e poderá traçar estratégias para se tornar mais produtivo, focado e até capaz de identificar algum ponto técnico que você tem trabalhado pouco.
E você, já usou algum tipo de ferramenta assim? Conhece o Wakatime? Se sim, o que achou? Deixe seu comentário!
O post Você tem o controle de suas ações? apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Você tem o controle de suas ações?
Fonte: Locaweb

Proporção Áurea: Guia sobre o Número de Ouro no Design

Proporção Áurea: Guia sobre o Número de Ouro no Design

Eae, tudo bele? Neste artigo trago um assunto muito falado no meio criativo: a proporção áurea. Tem gente que afirma que ela faz toda a diferença em projeto, enquanto outras pessoas dizem que é uma falácia esse tal número. O fato é que se você trabalha com Design é bom conhecê-lo. Por isso hoje vamos […]
O post Proporção Áurea: Guia sobre o Número de Ouro no Design apareceu primeiro em Chief of Design.

Proporção Áurea: Guia sobre o Número de Ouro no Design
Fonte: Chef of Design

APIs descomplicadas no Rails 5 com Rails API

APIs descomplicadas no Rails 5 com Rails API

Uma das grandes novidades no Rails 5 é que o Rails API teve seu pull request aceito.
Como você já deve imaginar, agora o Rails API faz parte do core do Rails e isso fará com que o projeto ganhe mais mantenabilidade e visibilidade, uma vez que toda a comunidade que mantém o framework passará a olhar para ele.
A grande vantagem de se usar o Rails API é sua aplicação, que terá apenas os elementos que ela precisa para funcionar, se tratando de uma API. Basicamente você terá uma aplicação “leve”, contando somente com os middlewares que sua API precisará, sendo totalmente customizável. Isso significa também, que caso sua aplicação evolua e você precise de elementos de front end ou do assets pipeline do Rails, será bem simples de colocá-los de volta.
Visto suas vantagens, vamos então criar nossa primeira API com Rails API?
Para começar, vou assumir que você tem instalado ruby 2.2+ e o logicamente o Rails 5. Tendo os pré-requisitos em mãos, de acordo com a documentação, só o que precisamos fazer para criar nossa API é rodar o seguinte comando:

$ rails new pet_api –api

Eu não vou entrar em detalhes sobre como a diretiva –api impacta na criação da nossa aplicação Rails, mas é ela que vai fazer com que a nossa aplicação fique mais “leve”, como eu mencionei anteriormente. Basicamente, sua aplicação não incluirá os middlewares que são úteis para aplicações que utilizam o navegador (que não é o caso de uma aplicação em modo API).
Continuando nossa jornada, agora que já temos a aplicação criada, vamos então baixar nossas gems e configurar o nosso banco padrão da aplicação:

$ cd pet_api
$ rails db:setup db:migrate

Note que como estamos no Rails 5, podemos substituir o comando rake por rails.
Uma vez configurado o banco, podemos rodar nossa aplicação para testar se está tudo certo.

$ rails server

Se tudo deu certo, você verá a imagem abaixo:

Agora que já conseguimos criar e configurar a nossa aplicação em modo API, vamos utilizar os geradores automáticos do rails (scaffold) para gerar o código necessário para nossa API.

$ bundle exec rails g scaffold pet name kind

A saída para esse comando será a seguinte:

invoke active_record
create db/migrate/20170112232027_create_pets.rb
create app/models/pet.rb
invoke test_unit
create test/models/pet_test.rb
create test/fixtures/pets.yml
invoke resource_route
route resources :pets
invoke scaffold_controller
create app/controllers/pets_controller.rb
invoke test_unit
create test/controllers/pets_controller_test.rb

Como vocês podem perceber, uma vez que estamos em modo API nenhuma view é criada pois não teremos a necessidade delas na aplicação. Feito isso, precisamos rodar a migração de banco para o nosso novo modelo:

$ bundle exec rails db:migrate

Vamos analisar o código que foi gerado para podermos fazer alguns testes na nossa API. O nosso modelo é bem simples e não temos muito o que fazer aqui:

# app/models/pet.rb
class Pet < ApplicationRecord
end

No controller, podemos ver que temos as actions para inserir, atualizar, mostrar e excluir um registro (resource) em nosso banco:

#app/controllers/pets_controller.rb
class PetsController < ApplicationController
before_action :set_pet, only: [:show, :update, :destroy]

# GET /pets
def index
@pets = Pet.all

render json: @pets
end

# GET /pets/1
def show
render json: @pet
end

# POST /pets
def create
@pet = Pet.new(pet_params)

if @pet.save
render json: @pet, status: :created, location: @pet
else
render json: @pet.errors, status: :unprocessable_entity
end
end

# PATCH/PUT /pets/1
def update
if @pet.update(pet_params)
render json: @pet
else
render json: @pet.errors, status: :unprocessable_entity
end
end

# DELETE /pets/1
def destroy
@pet.destroy
end

private
# Use callbacks to share common setup or constraints between actions.
def set_pet
@pet = Pet.find(params[:id])
end

# Only allow a trusted parameter “white list” through.
def pet_params
params.require(:pet).permit(:name, :kind)
end
end

Outro arquivo importante para nós é o routes.rb onde são definidas quais serão as rotas da nossa API. Como podemos ver

# config/routes.rb
Rails.application.routes.draw do
resources :pets
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end

temos somente nossa resource pets o que já é suficiente para podermos realizar todas nossas requisições básicas. Podemos listar nossas rotas com:

$ rails routes

Prefix Verb URI Pattern Controller#Action
pets GET /pets(.:format) pets#index
POST /pets(.:format) pets#create
pet GET /pets/:id(.:format) pets#show
PATCH /pets/:id(.:format) pets#update
PUT /pets/:id(.:format) pets#update
DELETE /pets/:id(.:format) pets#destroy

Por último, ainda temos que arrumar uma maneira de serializar o que nossa API irá servir, porque em condições normais, geralmente, não iremos querer que nossa resposta JSON seja a representação de cada coluna do nosso banco de dados. Para isso, vamos utilizar o Active Model Serializer do próprio rails-api. Para isso adicione a seguinte linha ao seu Gemfile:

# Gemfile
gem ‘active_model_serializers’, ‘~> 0.10.0’

Basicamente, o que o Active Model Serializer faz é permitir que criemos um serializer para formatar como será nossa resposta JSON, e uma vez que ele cria uma camada entre o nosso model e o nosso controller, não vamos precisar alterar nada neste último, isto é, poderemos continuar chamando o método to_json com nosso objeto ActiveRecord normalmente.
Vamos atualizar o nosso bundle

$ bundle

E como sempre utilizando dos artifícios do rails, vamos usar nosso gerador automático para criar nosso serializer

$ bundle exec rails g serializer pet

Com isso temos nosso serializer

# app/serializers/pet_serializer.rb
class PetSerializer < ActiveModel::Serializer
attributes :id
end

Como vocês podem ver, só o atributo id foi gerado. Queremos retornar também o nome e o tipo do nosso animalzinho e então precisamos adicionar esses dados no serializer

# app/serializers/pet_serializer.rb
class PetSerializer < ActiveModel::Serializer
attributes :id, :name, :kind
end

Agora sim já estamos prontos e podemos testar nossa API. Vamos criar um pet. Eu vou utilizar o postman mas você pode fazer um simples curl se preferir. Vamos iniciar o servidor

$ bundle exec rails s

Se você estiver utilizando o postman também, crie uma nova requisição POST com os seguintes dados:
Endereço: http://localhost:3000/pets
Headers: Content-Type: application/json
Body: {“name”:”totó”,”kind”:”cão”}
e envie a requisição. A sua resposta deve ser a seguinte
{
“id”: 1,
“name”: “totó”,
“kind”: “cão”
}
Isso quer dizer que eu criei um pet com o nome totó e ele é do tipo cão e a id pela qual podemos fazer operações sobre ele é a 1. Podemos fazer todas as operações que criamos no nosso controller, mas eu vou deixar como exercício para vocês testarem.
Existem outras operações mais avançadas como versionamento e autenticação que não fazem parte do escopo deste artigo, mas que eu voltarei a falar em breve em outra postagem.
Como vocês puderam perceber, criar uma API com Rails 5 é relativamente simples, lembrando que utilizando o rails em modo API diminui e muito a stack da nossa aplicação. Isso faz com que poupemos recursos e ela seja mais leve e limpa.
Espero que tenha sido útil para vocês e sintam-se livres para fazer perguntas por meio dos comentários. Até a próxima!
O post APIs descomplicadas no Rails 5 com Rails API apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

APIs descomplicadas no Rails 5 com Rails API
Fonte: Locaweb

[LIVE] Como se adaptar ao mercado atual de Design?

[LIVE] Como se adaptar ao mercado atual de Design?

Eae! Td bele? Hoje trago para você o hangout ao vivo que fiz com a a galera do blog Designimador sobre:como se adaptar ao mercado de Design? O projeto Designimador, do qual faço parte, nasceu para ser um portal de compartilhamento de conhecimento sobre design, criatividade, freelancer, comunicação, arte e conteúdos relacionados. Nessa conversa que tive com […]
O post [LIVE] Como se adaptar ao mercado atual de Design? apareceu primeiro em Chief of Design.

[LIVE] Como se adaptar ao mercado atual de Design?
Fonte: Chef of Design

Instalando o PostgreSQL no Mac OS X via Brew

Instalando o PostgreSQL no Mac OS X via Brew

Instalar o postgreSQL no Mac OS X é muito fácil quando utilizamos o gerenciador de pacotes mais popular deste sistema operacional: o Homebrew (apelidado de Brew). Abra o terminal de sua preferência e digite:

$ brew update
$ brew install postgres

O primeiro comando atualiza os repositórios do brew e o seguinte simplesmente instala o postgresql. Uma vez instalado, vamos iniciá-lo. Temos duas opções, iniciar somente para nossa sessão atual

$ postgres -D /usr/local/var/postgres

ou configurar para que ele inicie automaticamente todas as vezes que o computador for iniciado

# Esse primeiro comando só é necessário se esse diretório ainda não existir
$ mkdir -p ~/Library/LaunchAgents
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

Escolhida uma das duas opções, vamos criar nosso banco de dados

$ createdb

Esse comando irá criar um novo banco de dados com o nome do usuário do sistema, no meu caso, pablosilva. Caso queira criar um banco com outro nome, precisa especificar com aspas

$ createdb ‘teste’

Entretanto, para a primeira vez é necessário que crie o banco com o mesmo nome do seu usuário de sistema que foi criado quando instalamos o banco, porque senão não vamos conseguir conectar ao postgres para testar a instalação. Agora que temos o nosso banco, vamos nos conectar ao postgres

$ psql</span>

Isso irá te logar ao console do postgres. Você pode ver a lista de banco de dados executando o seguinte comando

=# l

Para o meu caso a saída foi

Vocês podem ver que eu tenho o banco pablosilva e o teste que foram bancos que eu criei.
O restante foi criado pela instalação. Você pode ver também quais usuários foram criados e quais são as permissões que eles possuem, ao executar o seguinte comando:

=# du

Se quiser saber mais comandos, acessa esse cheatsheet bacana!
Feito isso, você está preparado para usar o PostgreSQL agora mesmo! Espero ter ajudado e até a próxima.
O post Instalando o PostgreSQL no Mac OS X via Brew apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Instalando o PostgreSQL no Mac OS X via Brew
Fonte: Locaweb

8 Dicas de PHP que você deveria conhecer

8 Dicas de PHP que você deveria conhecer

Um tempo atrás foi postado uma pesquisa no Twitter aqui da Locaweb  para saber qual a sua linguagem de programação preferida.
O resultado me surpreendeu, pois o bom (ou não tão bom) e velho PHP desbancou o Ruby, o Python e o Java (desbancar o Java não foi surpresa). A surpresa foi grande porque a maioria dos Devs que conheço reclamam do PHP por N motivos, mas acredito que a vitória se deu justamente devido a popularidade do PHP que segundo a Tiobe (acrescentar link) em outubro  estava na 6 posição de linguagem mais usada no mundo.

Como minha experiência com PHP é maior que nas outras linguagens resolvi trazer algumas dicas que podem facilitar o trabalho dos PHPzeiros.
1. php -f nome-do-arquivo.php
Muitas vezes você está querendo testar um script isolado que é responsável por uma única função dentro do sistema.
No terminal você usa php – f nome-do-arquivo.php e executa somente este arquivo no terminal.
2. php – a
Quem nunca precisou testar algo? Esse cara facilita muito na questão de testes, pois ele abre um terminal do PHP que você pode usar o PHP a vontade.

3. Esqueça (de vez) o ‘?>’ no final dos arquivos.
Nas versões atuais do PHP não é mais necessário usar o ?> para fechar seus scripts, isso evita diversos erros que pode ser ocasionados por espaços em branco ou caracteres estranhos antes do fechamento, esse erro seria lançado no browser e ficaria explícito ao usuário, no caso de não usar o fechamento seria lançado um erro pelo parser no PHP.
4. Interpolação de strings
Existem uma série de formas de você construir uma string no PHP entre elas as mais conhecidas e utilizadas são a concatenação, interpolação e o heredoc.
Recentemente eu realizei uma bateria de testes para saber qual delas realmente é mais vantajosa. A interpolação de strings usando aspas dupla e {} para identificar as variáveis é a forma mais rápida de realizar a tarefa principalmente se você estiver com um sistema que faça isso com muitos usuários acessando ao mesmo tempo.

5. Evitando aquele maldito erro dos Ifs
Quem nunca esqueceu de um ‘=’ no if fazendo if x = 1 ?
Esse erro é muito comum e pior de tudo é que não acusa erro porque x = 1 é sempre true  para evitar esse tipo de erro é  bom costume inverter a ordem da variável no if, ficando if 1 = x , desta forma quando for esquecido um = o PHP irá indicar o local do erro e será muito mais rápido de corrigir.

6. Utilize os operadores === e !==
Os operadores === e !== são pouco utilizados porém são muito úteis já que eles comparam valor e tipo.
O PHP tem tipagem dinâmica sendo assim quando usamos o operador == podemos ter resultados que não queremos, por exemplo

7. isset() brincando de strlen()
Em alguns casos você pode substituir o strlen por isset.
Essa substituição lhe dará dois ganhos, primeiro o isset e mais performático que o strlen e segundo que caso a variável não esteja setada você iria tomar um erro com o strlen, coisa que com o isset não aconteceria.

8. Métodos em cadeia
O PHP a partir da versão 5 ganhou um suporte maior e melhor a orientação a objetos e esse suporte permite que você faça um encadeamento de objetos de uma mesma classe desde que nos métodos dessa classe retornem o próprio objeto.

Tem mais alguma dica que se acha legal? Agora um desafio pra vocês que leram, em um dos exemplos eu coloquei um errinho e o primeiro que comentar e acerta o erro irá ganhar uma camiseta da Loca, gostou? Deixa seu comentário e boa sorte.
O post 8 Dicas de PHP que você deveria conhecer apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

8 Dicas de PHP que você deveria conhecer
Fonte: Locaweb

Melhorando o entendimento de testes com RSPEC

Melhorando o entendimento de testes com RSPEC

Trabalho com Ruby há alguns anos e sempre utilizei RSPEC para fazer os testes dos projetos. Desde sempre, tentei aplicar as boas práticas de programação, como o DRY, nos códigos de teste. Isso ajudaria numa possível refatoração ou alteração dos testes.
Para isso, aprendi a usar coisas como o let, subject do RSPEC, que ajudam a reduzir a duplicidade (DRY) do código.
Com essas ferramentas realmente conseguimos deixar os testes bem mais enxutos e “bonitos”, mas não tínhamos a noção do pior.
Passado um tempo, quando se tenta rever esses testes, pode ser difícil entender o que está acontecendo, pois o código acaba não sendo linear.
Um exemplo abaixo:

Para entender o que a linha 12 está testando, é necessário seguir o seguinte fluxo:

O is_expected da linha 12 pega o resultado do subject, que está na linha 7
O subject da linha 7 pega o range_start da linha 10 (pois está dentro do contexto)
O subject da linha 7 pega o range_end da linha 3

E assim por diante…
Os testes deveriam ser de simples compreensão pois eles nos ajudam a entender o porquê de algumas implementações em alguns casos, e acabam servindo como documentação. Sendo difíceis de entender, não atingem esse objetivo.
Um jeito mais fácil de fazer esse teste seria assim:

Desse jeito fica muito mais claro entender o que está sendo feito no teste. Claro que perdemos o DRY se tivermos outro IT, pois várias coisas irão se repetir, mas acho que vale muito mais a clareza e a boa comunicação através de cada uma das especificações.
Vale comentar sobre o estilo de teste usado, conhecido como xUnit, que aprendi com o pessoal da Plataformatec, e tem mais detalhes neste link.
Como aprendizado, fica refletirmos quando vale a pena ou não utilizar esse tipo de abordagem. Em alguns casos, podemos ter repetições que podem ser resolvidas com um before ou até definindo um helper method que facilita a compreensão do código.
Confira mais detalhes nos artigos Improve your test readability using the xUnit structure, Let’s Not e What does “DAMP not DRY” mean when talking about unit tests?
O post Melhorando o entendimento de testes com RSPEC apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Melhorando o entendimento de testes com RSPEC
Fonte: Locaweb

Como foi participar do #RailsGirlsSP2016

Como foi participar do #RailsGirlsSP2016

Recentemente tive o prazer de participar do #RailsGirlsSP2016, evento gratuito que incentiva mulheres a ingressarem no mundo da programação.

O evento aconteceu em dois dias, lá no #VivaReal. Além dos organizadores, DEVs se voluntariaram como coaches para ajudar as participantes a dar os primeiros passos e diminuir a barreira entre quem busca uma oportunidade e quem já teve a oportunidade – e se vê naquela pessoa que está iniciando.

No primeiro dia, palestras evidenciaram o quão importante é ampliar a diversidade na área de desenvolvimento e como ingressantes e veteranos podem e precisam se empenhar para isso. Após as palestras, as participantes receberam ajuda para preparar o ambiente de desenvolvimento em suas máquinas.

O segundo dia começou com palestras para apresentar a sintaxe do Ruby. Dois times foram formados e cada um discutiu a ideia de seu projeto e começou a programar de fato, com a orientação dos coaches.

Ao fim do dia os projetos foram apresentados e ficou nítido o quão gratificante foi aprender a programar e transformar suas ideias em algo real, com algumas das participantes saindo com os projetos para serem utilizados de fato em seu dia a dia. Foi incrível!
O que aprendi no RailsGirls e porque já quero voltar

O formato do Rails Girls é desafiador: em um curto espaço de tempo as participantes recebem muita informação sobre desenvolvimento (Git, Agile, Ruby, Rails, REST, etc.) e coloca tudo isso imediatamente em prática. Como coach me esforcei ao máximo para tentar transmitir o que sabia, para que cada pessoa do meu time tivesse a oportunidade de fixar ao máximo tudo o que aprendeu codando.

No momento das apresentações, foi muito gratificante ver o brilho de “Eureka” nos olhos das garotas, a alegria em produzir algo real em tão pouco tempo.

A troca de experiências também foi sensacional, alguns coaches partilharam sobre como é seu dia a dia ou como foi seu começo e como é importante continuar a insistir para ser uma boa programadora.

Gostaria de ter participado de um projeto assim lá atrás quando comecei a programar, mas agora, poder colaborar um pouco que seja com iniciantes, foi um dos melhores momentos como programadorA.

Espero que as participantes continuem a estudar para se qualificarem como desenvolvedoras, estarei sempre disponível a ajudá-las sempre que a necessidade surgir.

A toda galera da organização, aos patrocinadores e a #Locaweb, que me incentivou a partilhar no evento um pouco de como foi e é a minha carreira como mulher na área de desenvolvimento, o meu muito obrigada!

Para quem deseja continuar os estudos ou relembrar o básico de forma rápida, deixo um link abaixo com os passos básicos para criar um projeto: Rails Cheatsheet.
O post Como foi participar do #RailsGirlsSP2016 apareceu primeiro em Blog Locaweb – Notícias sobre tecnologia, programação e muito mais..

Como foi participar do #RailsGirlsSP2016
Fonte: Locaweb