quarta-feira, 23 de novembro de 2011

Listas numeradas com sub-tópicos em CSS

2 comentários:

Para fazer listas numeradas com html básico, usamos as tags ol e il. A primeira indica uma lista ordenada e a segunda gera o item da lista propriamente dito.

Se usamos um ambiente ol dentro de outro, teremos uma lista com sub-tópicos. Assim:


  1. item 1
  2. item 2
    1. subitem 1
    2. subitem 2
  3. item 3

O código-fonte para esta lista fica assim:



Em editores de texto, é comum aplicar numeração de acordo com a numeração do tópico principal. Dessa maneira, a numeração dos subitens ficaria 1.1, 1.2, 1.3 e assim por diante. Depois de alguma pesquisa, encontrei um jeito simples de fazer isso usando apenas CSS. Veja como fica:

  1. item 1
  2. item 2
    1. subitem 1
    2. subitem 2
  3. item 3

A compatibilidade de navegadores é ampla. Eu postei essa resposta lá no StackOverflow. Confira o código-fonte (HTML + CSS):



sábado, 29 de outubro de 2011

Deixe seu site bonito sem saber CSS

Nenhum comentário:
É quase isso: o bootstrap do Twitter permite que você tenha um design bastante elegante sem precisar ser um mestre em CSS. Você só precisa baixar o CSS indicado e colocar no seu projeto. Depois, é só ajustar seu HTML para as classes indicadas. Fácil, fácil.

O que você ganha: design elegante e compatibilidade com navegadores, tudo que você sempre quis do CSS. O Bootstrap está hospedado no Github, e está licenciado pela Apache License 2.0.

terça-feira, 25 de outubro de 2011

Gnome shell no Ubuntu 11.10

Nenhum comentário:
O ambiente Gnome foi completamente reformulado na versão 3. Eu instalei o Ubuntu 11.10 assim logo após o lançamento e resolvi testar, além do Ubuntu Unity, o Gnome shell.

Estou achando o conceito bem interessante, mas adianto que é bem diferente da versão anterior. Um aspecto que senti falta em relação ao Unity é a integração dos menus dos aplicativos, no estilo Mac OS. Na verdade, a integração é da barra de título e do menu. Pode parecer bobagem, mas ganha-se um espaço legal com esta integração.

De qualquer forma, estou testando o Gnome shell, e ele está com um conceito mais parecido com aplicativos para navegador. Digo isso mais num sentido de prover o básico e permitir extensões com Javascript e CSS. Os temas e extensões podem ser feitos usando estes recursos. No Ubuntu 11.10, o gnome shell pode ser instalado pelo repositório, através do pacote gnome-shell. As extensões, entretanto, não fazem parte do repositório padrão e elas fazem bastante diferença no uso do shell.

Para instalar as extensões, você pode pode fazer a compilação ou usar um repositório que já distribui os pacotes compilados. Caso queira usar os pacotes, como eu, aí vai:

sudo add-apt-repository ppa:ricotz/testing

Para instalar as extensões, procure por gnome shell extension no Ubuntu Software Center. Os pacotes são baseados na versão estável mais nova disponível do Gnome (3.2), mas ainda são considerados como versões de teste, esteja atento.

Atualização: pode acontecer de uma das atualizações destes pacotes quebrar algumas aplicações, como o editor de configurações avançadas e o gerenciador de atualizações. Se acontecer com você (aconteceu comigo :P), será necessário fazer as atualizações via terminal antes de tudo voltar ao normal. Abra o terminal e digite sudo apt-get update && sudo apt-get upgrade e confirme as atualizações.

quinta-feira, 20 de outubro de 2011

Aprendendo inglês (e outros idiomas) sem curso

Nenhum comentário:

Muita gente me pergunta como eu aprendi a falar inglês. Provavelmente, é pelo fato de eu conseguir me comunicar com facilidade (sem falsa modéstia, tá?). Na verdade, eu sempre fico meio sem saber como responder, já que não frequentei curso de inglês.

Estes dias estive pensando em como responder esta pergunta, e me ocorreu que eu aprendi a falar inglês pela necessidade de comunicar. Explico: por motivos diversos, acabei tendo contato relativamente frequente com estrangeiros, e era necessário falar inglês. Nas primeiras vezes, a coisa não fluiu muito bem, evidentemente. Mas certamente me deu um bom motivo para estudar outro idioma e também oportunidades para praticar.

Se eu fosse formular uma receita, acho que seria mais ou menos assim:

  1. Comece a estudar seu idioma de interesse o quanto antes. Se não puder pagar um curso de idiomas, aproveite ao máximo o idioma oferecido em sua escola.
  2. Busque contato legítimo com o novo idioma. Isso pode ser feito de vários jeitos: lendo livros e notícias, ouvindo músicas, vendo filmes e coisas do gênero. Outra coisa simples mas que pode ajudar é usar seus aplicativos favoritos nesta língua.
  3. Comunique-se. Creio que esta é a parte que mais faz diferença. Por isso, se você tiver condições, receba estrangeiros. Leve-os para passear. Mostre as coisas legais da sua cidade. Ajude-os a escolher lembranças. Ensine expressões em português. Divirta-se.

    Como receber estrangeiros? Comigo aconteceu/acontece meio que por acaso, mas você pode oferecer sua casa como pousada em serviços online, como o couch surfing.

Uma pequena ressalva na receita apresentada: vai ser preciso repetir os passos algumas vezes. E vai ser preciso se esforçar e saber se relacionar ao receber pessoas. Especialmente se a casa não for sua.

E não esqueça de não parar de estudar!

quarta-feira, 5 de outubro de 2011

Estações Consolação e Paulista: uma nova Sé?

Nenhum comentário:
Tá bem, o título é sensacionalista.

É o seguinte: eu pego metrô todo dia. Ultimamente, sempre fazendo integração na linha amarela.

Para mim, ficou muito mais fácil ir trabalhar, e tenho certeza de também ficou para muitas outras pessoas. Digo isso porque vejo a estação cada vez mais cheia. E acho isso bem positivo, pois mostra o quanto o investimento em metrô é necessário.

Por outro lado, não consigo deixar de observar como engenheiro. E me preocupa um pouco a proximidade da capacidade máxima. Quer dizer, as estações acabaram de ser inauguradas e já acabou o espaço para circulação? E se a demanda aumentar,como fica? Eu já comentei antes sobre como se faz para conter o fluxo de pessoas no metrô, só espero que o futuro não nos reserve uma operação Embarque Melhor, tal qual a da estação Sé.

domingo, 2 de outubro de 2011

Erro na sincronização da agenda no Android

Um comentário:

Como já disse antes, uso um celular Android da LG, o GT540. Um dia desses, minha agenda do google parou de sincronizar, mas não parecia haver nada errado nas configurações.

Fiquei alguns dias buscando uma solução e nada. Agora, nem me lembro a fonte da informação, mas alguém recomendou o famoso reset, e realmente funciona.

Por isso, se você tiver problemas ao sincronizar sua agenda google no celular, tente verificar se há espaço na memória (para fazer cache) e desative / ative a sincronização com a agenda (configurações - sinc. e contas - sua conta google - calendário).

Nota: Android versão 2.1.

sábado, 1 de outubro de 2011

Diversidade e programação

Nenhum comentário:

Ontem começou a Pycon Brasil 7. Momento de rever colegas da comunidade e aprender truques legais, sem dúvida. O pessoal prometeu colocar vídeos e slides das apresentações à disposição. Assim que souber de novidades, passo o link.

Me chamou a atenção uma palestra do Steve Holden, da Python Foundation, sobre comunidade. Dentre as várias coisas que ele falou sobre manter uma comunidade funcionando bem (sim, é subjetivo mesmo), ele tratou sobre diversidade. Aliás, muitas das coisas tratadas na palestra dele eu abordei no meu texto de mestrado :).

De qualquer forma, achei muito legal como a comunidade python internacional aborda a diversidade. Eles criaram até um parágrafo para tratar do assunto. Além disso, ele mostrou um levantamento da composição da comunidade em si, indicando a presença baixa de mulheres. Abaixo, inclusive, dos números da indústria. A partir disso, ele propõe estabelecer como meta uma participação feminina parecida com a da indústria para os próximos anos. E ele espera ser apoiado pelos outros membros da comunidade, claro.

Na verdade, o assunto me levou a refletir o quanto a comunidade python brasileira é diversa, que é uma pergunta difícil de responder sem dados concretos. Uma observação no evento em si permite afirmar que há poucos negros e poucas mulheres, por exemplo, mas nada que chegue a ser exclusividade desta comunidade em particular. Pessoalmente, considero essa uma boa meta a ser cumprida, pois acredito na diversidade como um meio para expandir os horizontes, neste caso.

Sendo assim, me pergunto: como aumentar a diversidade da comunidade? E, por este motivo, fui falar com ele hoje à tarde. Dá,para imaginar que ele não tem a resposta, mas tem algumas ideias, cujo cerne é criar privilégios diferenciais. Exemplo do próprio Steve: baixar preço de inscrições em eventos para mulheres. Ou incentivar grupos como PyLadies.

Vamos ver no que isso vai dar.

sexta-feira, 30 de setembro de 2011

Teclado para Android

Nenhum comentário:
Ao comprar meu celular Android, me preocupei em como digitaria com ele, já que ele não tem teclado QWERTY. Por isso, busquei alguns aplicativos de teclado.

Achei o básico do sistema com poucos recursos; ele até vem com predição de texto, mas nada que tenha me impressionado. Pode ser só um palpite, mas a predição não parece ter relação com as palavras mais usadas.

Isso, na verdade, não é exatamente ruim: só não é tão bom quanto poderia. Para explicar, vou falar de dois aplicativos que testei, um baseado em predição por contexto e outro baseado em gestos. Um deles é o SlideIT e o outro é SwiftKey. O SwiftKey funciona por predição de contexto, enquanto o SlideIT é acionado deslizando o dedo pelas teclas, como o Swype.

O legal do SwiftKey é que ele sugere palavras baseado nas palavras digitadas anteriormente. Isso deve ser feito algum tipo de raking de qual é a próxima palavra mais provável. Além disso, me pareceu que há algum tipo de aprendizagem conforme você vai usando o aplicativo.

Já o SlideIT agiliza bastante por permitir digitação somente deslizando os dedos sobre o teclado. Pode não parecer, mas agiliza muito a digitação,você só só precisa lembrar da disposição das letras.

Ambos são aplicativos pagos no Android Market, mas recomendo testar as versões de avaliação. Sobre o Swype, não posso dizer, não consegui testar no meu telefone.

quarta-feira, 28 de setembro de 2011

Transferindo contatos do Wammu para sua conta Google

Nenhum comentário:
Eu usava o programa Wammu para manter uma cópia dos telefones da agenda do meu celular Nokia. Agora que uso um celular Android, não consegui sincronizar as agendas muito bem usando esse programa.

Minha estratégia então foi procurar um jeito de transformar o arquivo de backup do Wammu em algo que o resto do mundo entendesse, como um CSV. Para minha sorte, algum camarada já teve o mesmo objetivo e implementou um script em Perl para transformar o formato do Wammu em um CSV carregado diretamente nos contatos do Google! Legal né?

Antes de mais nada, você vai precisar fazer algumas conversões de codificação no seu arquivo de backup. Abrindo o arquivo com VIM, os comandos são os seguintes:

:set ff=unix
:set fileencoding=default
:w ConvertMe.txt

O script precisa de um arquivo chamado ConvertMe.txt para funcionar. Depois disso, é só colocar o script e o arquivo convertido na mesma pasta e rodar:

convert.pl > converted.csv

Importe os contatos para seu GMail e acabou!

segunda-feira, 26 de setembro de 2011

Menu de navegação horizontal

Nenhum comentário:
Voltei a trabalhar com web nas últimas semanas. Uma coisa que precisei fazer foi um menu horizontal para navegação geral. Há milhares de exemplos disso por aí, mas eu precisava de um pequeno detalhe a mais: uma imagem personalizada para a lista de itens do menu.

Para começo de conversa, as implementações desse tipo de menu usam listas (tag ul e li) com atributos de estilo para tornar a listagem horizontal. Pode ser display: inline ou float: left. O código fica assim:

HTML:



E o CSS para deixar horizontal pode ser:



ou



Aí podemos colocar a imagem para a listagem com o atributo list-style-image e colocando a URL da imagem:



Mas isso só funciona para o float: left, tá?

Agora o pulo do gato: cada navegador coloca um espaçamento diferente do lado esquerdo desta nossa imagem! Qual propriedade ajusta isso? Nenhuma!
Contornei este problema usando esta mesma imagem como fundo do elemento de lista e ajustando o espaçamento do lado esquerdo (padding-left) com o mesmo tamanho da imagem de fundo. O código final ficou assim:



Atualização: coloquei os códigos nos meus Gists do Github para colocar aqui. Temos destaque de sintaxe, agora!

quarta-feira, 21 de setembro de 2011

Dicas de uma viagem barata

Nenhum comentário:
The Ultimate Travel Hacking Guide

Excelente guia para planejar sua viagem, em inglês (dica do Ralph). As dicas deste guia tem cinco categorias para ajudar a baratear a viagem: passagens, estadia, atrações, alimentação e transporte local.

Uma parte que eu considero muito importante é a compra da passagem em si, e
sim, estou falando de viagem de avião. O preço da passagem tem impacto bem alto no custo final, em geral. O artigo lá fala bastante sobre comparadores de preço e milhagem em companhias aéreas.

Meu comentário é sobre serviços disponíveis no Brasil para as passagens e o transporte local.

Para passagens aéreas, eu uso o kayak para pesquisar as melhores datas, depois vejo as melhores condições de pagamento em lojas online nacionais, submarino, decolar, saraiva, e companhias aéreas. Não sei exatamente como é nos EUA, mas aqui também tem o Multiplus Fidelidade, que te permite acumular pontos de lojas diferentes e usá-los em compras ou benefícios em lojas participantes do programa. Vale a pena conferir.

Quanto ao transporte local, recomendo fortemente pesquisar se sua cidade de destino tem algum tipo de bilhete unificado para transporte público. Em São Paulo, por exemplo, temos o Bilhete Único: você pode pegar até 4 ônibus (ou 3 ônibus + 1 metrô/trem) num período de três horas. Ajuda bastante.

Sinta-se à vontade para indicar outros serviços que eu não mencionei.

domingo, 18 de setembro de 2011

De volta

Nenhum comentário:
Eu nasci em Mogi das Cruzes. Moramos muitos anos lá, praticamente durante toda minha infância e um pouco mais ainda.

Sempre que volto, sinto como se estivesse revivendo meu passado. E é até curioso como as pessoas que vejo reforçam estas lembranças. É como olhar para mim mesmo e ver as mesmas esperanças, os mesmos sonhos, os mesmos medos, os mesmos problemas.

quinta-feira, 15 de setembro de 2011

Mais uma sobre o 11 de setembro

Nenhum comentário:
Faz dez anos, eu me lembro desse dia, ainda. Eu era estagiário na Sinc do Brasil. Fiquei assustado, claro. As consequências não pareciam óbvias, e, para dizer a verdade, ainda não são, mesmo depois de tanto tempo.

Quando eu ainda escrevia para o jornal O Politécnico, fiz um texto sobre os atentados do onze de setembro. O texto foi publicado na edição de aniversário de 60 anos do jornal estudantil em 2004; confira:

Link no Google Docs.

A versão publicada no jornal provavelmente sofreu alguns cortes; esta é a versão original sem cortes (literalmente);

sexta-feira, 9 de setembro de 2011

Escrevendo mais e melhor

Nenhum comentário:
Se você olhar o arquivo do blogue em 2010, vai notar que escrevi bem pouco por aqui. E no primeiro semestre deste ano, também. Justifico: estive escrevendo meu texto de Mestrado.

Uma coisa que considero difícil é escrever. Minha nossa! Mas foi um dos motivos para eu começar este blogue: tentar escrever melhor. Aqui, tento expor minhas ideias e compartilhar experiências, e, se o texto tiver um qualidade mínima,as pessoas vão pelo menos entender o que eu quis dizer.

Não me considero um "bom escritor" (no sentido de conseguir transmitir ideias), mas tenho certeza se que a prática da escrita me ajuda a melhorar. Esta impressão eu já tinha ao escrever por aqui, e reforcei ao escrever meu texto de Mestrado.

Durante um longo período no Mestrado, eu tinha a impressão de que nunca acabaria. Não conseguia estruturar o texto, não tinha texto para completar capítulo, quando tinha alguma ideia legal, não conseguia colocar no papel direito, as poucas ideias que tinha também não faziam muito sentido. Adicione agora a dificuldade intrínseca do tema e o rigor científico para calcular qual era progressão em páginas por dia. É como escrever dez palavras para depois apagar nove e escrever de novo.

Como contornei isso? Escrevendo, apenas. 100% do tempo e sem distração. Resolvi tirar férias só para escrever, no começo do ano (na verdade, não tinha muita opção). Fui escrevendo menos preocupado com frases bonitas e sim com chegar ao final do texto, explorando o tópico. Nem preciso dizer que ficou um monte de frases confusas para revisar, mas pelo menos terminei. Inúmeras revisões depois eu tinha um texto completo e que finalmente fazia sentido.

Curiosamente, minha experiência tem tudo a ver com textos que li esta semana, no Liberal, Libertário, Libertino (este e este outro) e no Coding Horror. Os textos estão em contextos separados, mas são excelentes, recomendo. Escrever é um exercício, e tenho dito.

segunda-feira, 5 de setembro de 2011

E o assunto agora é: metrô

Nenhum comentário:
Ando de ônibus e metrô em São Paulo praticamente todos os dias há alguns anos. Que ter metrô perto de onde se quer chegar é muito bom, ninguém discorda, e eu, menos ainda.

É sabido, também, que o metrô opera acima do beirando o limite de sua capacidade. Se você tiver pego metrô alguma vez em horário de pico, já sabe do que estou falando.


Mas o que eu quero dizer, afinal? Bem, para evitar transtornos ainda maiores do os que vemos todos os dias, a estratégia é basicamente de tentar conter o fluxo de pessoas. Por exemplo: liberar poucas catracas para entrar nas estações e a operação Embarque Melhor na estação Sé.


Esta manhã, percebi algo que vejo acontecer todos os dias de um jeito diferente. Na ligação das estações Consolação e Paulista, há esteiras para agilizar o trajeto, já que a distância é razoavelmente grande. Agora o detalhe: sempre tem pelo menos uma esteira desligada. Eu sempre achei que fosse um caso de incompetência, mas considerando o fluxo de pessoas entre as estações e a disponibilidade de trens, pode não ser. Não duvido que seja somente uma maneira de evitar pessoas demais andando nos túneis.


Atenção: você acabou de ler mais um relato de usuário do transporte público de São Paulo.

segunda-feira, 15 de agosto de 2011

UCA: formação de professores

Nenhum comentário:
Talvez eu já tenha disso isto no blog, mas eu trabalho no LSI - USP, no Núcleo de Aprendizagem, Trabalho e Entretenimento. Lá, entre outras coisas, atuei no projeto UCA (Um Computador por Aluno) do governo federal.

Por mais de uma vez, me encontraram no Youtube falando sobre a participação do LSI no UCA. Não pretendo falar do projeto em si, apenas deixo ao visitante um vídeo sobre o projeto. O vídeo, na verdade, foi feito há algum tempo atrás, como parte de uma parceria entre MEC, BID, universidades parceiras do projeto e escolas participantes. Além dos vídeos, as universidades produziram conteúdos relatando as experiências nas 5 escolas participantes da primeira fase.

Como já me perguntaram destes vídeos mais de uma vez, estou colocando aqui um dos vídeos feitos pelos colegas do LSI. Se você estiver interessado em mais vídeos, acesse esta página no Youtube.

quarta-feira, 27 de abril de 2011

E a Engenharia de software, é engenharia mesmo?

2 comentários:

Algum tempo atrás, eu li artigo argumentando que fazer software não deveria ser considerado um processo de Engenharia. Na época, o argumento pareceu bastante razoável, pois eu acabei lendo estes artigos durante meu período de estudos iniciais de metodologias ágeis (programação extrema em mais detalhes). No laboratório em que trabalho tivemos até um debate acerca do tema e tal, e no final ficou realmente a impressão de que o caráter "artesanal" é forte na maioria das vezes. Daí a ligação fraca entre o processo de fazer software e o processo de Engenharia.

Mesmo assim, sempre me incomodou uma inconsistência: se a Engenharia nada mais é que resolver problemas, porque a designação não serve para os problemas resolvidos por programas de computador?

Depois de um tempo, ao desenvolver meu texto do Mestrado, li um (monte de) artigo(s) muito interessante(s)  sobre as origens dos métodos ágeis, algumas contadas pelos criadores do próprio manifesto ágil.

Em um deles, Williams e Cockburn [1] argumentavam que fazer software é, sem dúvida, um processo de Engenharia. O motivo? Bem, processos de Engenharia podem ser vistos de duas formas: formais ou empíricos. Os processos de formais estabelecem modelos capazes de repetição gerando sempre resultados consistentes. Os processos industriais têm essa característica de repetição. Neste sentido, fazer um carro é um processo que, uma vez formulado, pode ser repetido em outras localidades.

Os processos empíricos, por outro lado, são executados de acordo com a situação, precisando de pequenos ajustes ao longo da própria execução. Cockburn argumentava que fazer software é justamente um processo não-repetitivo, em que cada situação necessita de uma solução distinta. Para mim, este argumento aproxima muito o "fazer software" de Artesanato. Quem prefere não usar o termo Engenharia de software talvez esteja fazendo alguma relação entre programar e o artesanato. Eu, particularmente, a acho a analogia super válida, só não acho que programar deixa de ser Engenharia por isso.

EDIÇÃO: obrigado ao Flávio por apontar que faltou a referência.

[1] - WILLIAMS, L.; COCKBURN, A. Agile software development: it's about feedback and change. Computer, v. 36, n. 6, p. 39-43, 2003. ISSN 0018-9162. Link para o artigo original.

sexta-feira, 22 de abril de 2011

Android e eu

Nenhum comentário:

Eu comprei um telefone celular LG GT 540 há pouco tempo atrás. Como um bom nerd, estou adorando a novidade. É claro que fiquei um tempo explorando os recursos do aparelho, já que o grande interesse estava justamente no sistema operacional. Tenho de confessar minha satisfação com o produto, não sei se pela qualidade do Android em si ou pelo conjunto da obra. Eu que sempre usei celulares Nokia, estranhei uma coisa apenas, a falta de atribuir Ringtone específicos para cada grupo.

Claro, como qualquer entusiasta de Linux fico muito contente com a excelente usabilidade do sistema. Até pouco tempo atrás, Linux era exclusivamente para nerd, a evolução foi grande sem dúvida. A grande desvantagem, com certeza é deixar todos os dados vinculados a uma conta no Google. Se você, como eu, também já usa para vários outros fins, provavelmente não vai ser um problema. O que quero dizer é que as coisas ficam bem integradas usando contas do Google. Coisas como sincronização de contato funcionam sem precisar fazer nada além de uma simples autenticação. É mais ou menos assim, se você, por algum motivo não usa serviços do Google, o Android pode não ser para você, entendeu?

Uma pequena atualização depois de uma conversa com o Leandro Biazon, que trabalha comigo: é mais provável que a usabilidade do Android seja boa de fato para geeks. Isso faz bastante sentido levando em consideração quem compra esse tipo de celular. Afinal, se você você só vai fazer ligações, um smartphone é matar formiga com canhão.

quarta-feira, 13 de abril de 2011

Como ir para a USP do metrô Butantã

2 comentários:

Há 2 semanas tenho vindo para a USP pelo metrô Butantã. Sem dúvida que facilitou bastante, mas como a estação não é tão próxima da universidade, tenho de pegar um ônibus para chegar.

Atualização: essas recomendação não vale mais, pois agora há 2 linhas de ônibus do metrô para a USP circulando normalmente.

Bem, é aí que vou compartilhar minha visão. Eu vejo dois jeitos de se chegar: um mais fácil e outro mais rápido. Vamos a eles.

O jeito fácil

Na própria estação há um terminal de ônibus; um dos que sai de lá vem justamente para a USP. Portanto, é uma opção sem grande chance de erro, boa para quem não conhece a região. Só tenha um cuidado: esta linha só funciona enquanto o metrô está aberto (entre 8h e 15h, por enquanto).

O jeito rápido

Se você souber andar na região, há uma opção mais rápida para chegar até a USP: pegar ônibus fora da estação. É claro que vai ser necessário andar um pouco, mas nada além de 5 minutos. A grande vantagem em pegar ônibus fora da estação é que há mais linhas disponíveis, logo, sua chance de chegar rápido é maior comparado a ficar na estação.

Aqui está o mapa da caminhada até a rua Valdemar Ferreira (a mesma do Rei das Batidas):

Neste ponto, as linhas para a USP são: 177H, 177P, 7181, 107T, 702U, 701U. Melhor que esperar por uma só linha, né?