Mais alterações no knm (knetworkmanager)
Acrescentei uma aba para mostrar informações sobre a rede 3G:

O legal é que também acrescentei código para atualizar as (por enquanto) duas informações da aba. Se a força do sinal mudar o valor do Signal Strength muda também. Na verdade acho que vou mudar o nome de signal strength para signal quality, que é o nome usado pelo ModemManager.
Aproveitei e corrigi o problema dos IPs dos servidores de nomes (DNS) estarem invertidos. Pelo log do svn do KDE vi que alteraram isso há algum tempo atrás assumindo que os bytes do IP estariam na ordem correta, pelo visto isso não é verdade.
Read moreCuriosidade sobre o knetworkmanager
Enquanto vasculhava o código fonte do knetworkmanager descobri uma coisa interessante e que não sabia: ele é capaz de mostrar detalhes sobre as conexões. O problema é que os menus pra isso estão meio escondidos, para exibir os detalhes de uma rede wifi por exemplo você tem que clicar com o botão esquerdo no ícone na bandeja de sistema (system tray) e depois com o botão direito em cima da conexão, assim aparecerá o seguinte menu:

Clicando em "Proprerties" aparecerá a tela abaixo:

Bem, já deu pra perceber que o IP do DNS está invertido, mais um detalhe que podemos consertar. A aba Wireles 802.11 mostra as seguintes informações:

Muitas informações úteis. Para redes 3G (meu foco no knetworkmanager) temos só a aba IPv4:

Coisas que podemos acrescentar aí são um gráfico de velocidade, como existe no knemo por exemplo, e no caso de redes 3G estatísticas de tráfego (quantidade de bytes baixados e enviados) e uma forma de visualizar essas informações a partir do dia de início do ciclo da fatura (dia primeiro no meu caso, mas que pode ser qualquer dia do mês dependendo do vencimento da fatura), assim como o kppp e kppplogview fazem.
Infelizmente o feature freeze do KDE começa hoje, o que significa que as implementações que foram acrescentadas ao trunk do KDE a partir de amanhã só entrarão no KDE SC 4.6.0, que deve sair só lá para março do ano que vem. O KDE SC 4.5.0 está previsto para o início de agosto deste ano. Pelo menos vou ter bastante tempo pra implementar algumas coisas interessantes no knetworkmanager até lá
Apresentação
Ok, este post vai ser algo 'auto-promoção' mas acho que seria uma boa o pessoal que visita o site saber um pouco de quem faz parte do KDE-MG.
Meu nome é Lamarque Vieira Souza, tenho 32 anos (até julho de 2010 quando faço 33). Tenho mestrado em Ciência da Computação pela UFMG (2003) e bacharelado também em Ciência da Computação pela UFMG (2000). Conheço e uso o KDE desde 1997, ele nem era alfa ainda quando comecei a compilá-lo quase toda semana para poder usá-lo nos computadores do Departamento de Ciência da Computação da UFMG. Atualmente traballho para a Internacional Syst, empresa de Belo Horizonte cuja principal linha de produtos é o Metasys Linux, uma linha de distribuições Linux para diversas áreas. Além das distribuições a Syst também possui diversos programas para Linux, como o v-Class, PolicyControl e Neosyst.
Apesar de usar KDE (ou mais recentemente KDE Software Compilation) há mais de uma década, eu não tinha muito tempo para contribuir para o KDE. Ano passado eu comecei a me dedicar mais na parte de desenvolvimento e promoção do KDE. Desde então fiz diversas contribuições para o KDE (e no meio do caminho para outros softwares livres, como o kernel):
Bugs que resolvi ou tive grande participação na solução:
kde: Add MSN mail notification
kde: icons in quicklauncher are too small if in panel
kde: [PATCH] kopete ignores custom notifications
kde: Overflow in bytes accouting in kppplogview
kde: spell check causes crashes in KTextEdit
kde: Adds preliminary ModemManager support to solid (only three methods for now)
kde: Adds support to show signal strength and cellular operator name in tooltip
kde: Wrong word in Brazilian Portuguese translation
kernel: HID: blacklist Acer Ferrari 4005 optical mouse
kernel: V4L/DVB (12278): zr364xx: implement V4L2_CAP_STREAMING
kernel: V4L/DVB (12326): zr364xx: error message when buffer is too small and code cleanup
kernel: V4L/DVB (12325): Implement changing resolution on the fly for zr364xx driver
kernel: USB: More USB_QUIRK_RESET_RESUME devices
kernel: [IrDA] nsc-ircc: Configuration base address for PC87383
Para esses patches do kernel e qualquer outro que por ventura eu venha a contribuir use esse link para listá-los
Report de bugs:
kde: Kmenu's input actions not being saved when hitting apply button
kde: Wrong size in Shockwave flash's window when using npplayer plugin
Aqui eu coloquei só os bugs do KDE e kernel, também já ajudei a resolver problemas em outros programas mas não tenho mais acesso aos patches.
Read moreFlisol BH 2010
Festival Latino Americano de instalação de Software Livre em Belo Horizonte!
Irei palestrar sobre nosso amado KDE as 15:00h do dia 24/04 no CEFET – Campus II.
A palestra que irei apresentar será KDE para iniciantes já que o evento tem o foco de promover o Software Livre a pessoas que ainda não sabem o que esse bichinho come. =)
Mostrarei algumas telas do plasma, aplicações e o processo de tradução de software dentro do KDE.
http://www.flisol-bh.slparaleigos.org/2010/
Read more3G vs knetworkmanager
Estou fazendo algumas modificações no knetworkmanager e solid para acrescentar algumas informações sobre conexões 3G. Por enquanto adicionei no tooltip da conexão 3G duas informações: a porcentagem da força do sinal e o nome da rede da operadora. Infelizmente o tooltip não é atualizado depois que é criado, então agora estou tentando acrescentar uma "barra de progressão" que nem existe para os pontos de acesso wireless, assim será possível acompanhar as mudanças no sinal da conexão 3G. Os dois patches (uma para o solid e outro para o knetworkmanager) estão em http://reviewboard.kde.org/r/3769 e http://reviewboard.kde.org/r/3778 .
Read more
Vídeo interessante (e longo) sobre o KDE (em inglês)
No Akademy-br 2010, durante nossas conversas sobre promoção do KDE, o Hélio mencionou esse vídeo (em inglês) onde o Adriaan e o Aaron Seigo apresentam o KDE 4.0, isso há dois anos atrás. É bem interessante o vídeo pra quem entende inglês e tem paciência de vê-lo totalmente, pra falar a verdade eu ainda não o vi inteiro hehe.
Read more
Artwork no 1ºAkademy-BR 2010
Akademy – BR. 1° dia: 09 de abril de 2010:
Nosso primeiro dia no Akademy-BR estava chuvoso. Após tomarmos nosso café da manhã experimentando alguns deliciosos pães doces, nos dirigimos a sala para a apresentação que daria início ao Akademy-BR. Houve algumas breves palavras de todos os participantes. O primeiro, é claro, foi o Sandro – responsável pelo KDE-Brasil. Ele, que dirigia o evento, nos apresentou os propósitos do Akademy no país. Na sequência, vieram os outros integrantes. A maioria, até então, conhecia-se apenas por listas de discussão e e-mails.
Finalizada a apresentação, nos dividimos em vários grupos que ocuparam duas salas do albergue para o inicio do Sprint. Expliquei ao Sandro que eu estava interessado em ajudar o KDE e que tinha especial predileção pelo Artwork. Dessa forma, iniciei minha participação nesse grande evento.
Resumo do 1° dia:
1) Exposição do Sandro, destacando os objetivos do Akademy-BR;
2) Apresentação de todos os participantes do Akademy-BR;
3) Elaboração de mapa estrutural do Artwork, para entender melhor as relações existentes e o trabalho que ele realiza ou pretende realizar no Brasil.
4) Pesquisa e estudo para a elaboração da logo do Akademy-BR.
5) O grupo KDE-Games solicitou ao Artwork a criação de ilustrações para cartas de jogo em desenvolvimento.
Akademy – BR 2° dia: 10 de abril de 2010:
O 2º dia do Akademy-BR se inicia. Das 8h às 9h da manhã estávamos todos tomando café no albergue, preparados para mais Sprint. Antes, porém, visitamos a praia do Forte e o projeto Tamar. Experimentar o famoso acarajé foi lei. Depois disso, a galera ganhou energia o suficiente para após o almoço, ficar direto até altas horas da noite programando.
O Promo durante todo o evento trabalhou ao lado do Artwork, formando grande equipe.
Nesse dia, após algumas conversas com o Tomaz (programador) e o Sandro, clareou para mim as prioridades do Artwork no evento em si e no Brasil. Esclareceram que existe grande demanda de ícones para os programas no geral, bem como, para o KDE. Expuseram que, praticamente não há designers ou ilustradores colaborando com o Artwork no Brasil.
Esclarecida as questões, passei a trabalhar nas prioridades – pelo menos as do Akademy-BR. São elas: criação da logo do KDE-Brasil, criação da logo do Akademy-BR, criação da logo do KDE-mulheres, redesign da logo do KDE-RS, criação do ícone para o Plasmate, criação do ícone e dos ícones do Rocs.
Fiquei direto, até mais tarde, elaborando a logo do KDE Brasil. Criei algumas versões, porém, nenhuma satisfatória. A ultima, a principio pareceu-me boa e o pessoal gostou. Mas agora vejo que posso melhorá-la. Pretendo conceber nova versão.
À noite saímos em meio à chuva para comprar pizza, pois a fome era intensa. Comemos e conversamos, depois, fomos dormir.
Resumo do 2° dia:
1) Processo de concepção da logo do KDE-Brasil;
2) Processo de concepção da logo do Akademy-BR;
3) Processo de concepção da logo do KDE-mulheres;
4) Projeto de identidade visual do KDE Brasil para os eventos, em especial para o FISL;
5) Elaboração de briefing primário para concepção do ícone do Plasmate;
6) Solicitação de redesign da logo do KDE-RS;
7) Elaboração de briefing primário para concepção dos ícones do Rocs. Em especial os seguintes ícones: do programa, de arrastar, de adicionar um novo nó, de criar aresta, de seleção e, todos de alinhamento;
Akademy – BR 3° dia: 11 de abril de 2010:
Pela manhã, após tomarmos café, fomos todos tirar fotos aproveitando que ainda estávamos lá. Nesse dia, praticamente ficamos arrumando as nossas malas, pois, precisávamos liberar o albergue ao 12h00.
Alguns ainda estavam programando, mas a maioria realizava todos os preparativos para a volta ao seu estado.
Anotando os últimos contatos necessários para continuidade dos projetos, fomos nos despedindo dos novos amigos.
Saímos para almoçar e comprar os presentes para as esposas, namoradas, mães, pais, amigos, parentes e aderentes, tão necessários para volta harmoniosa à nossas casas. Afinal, estávamos na Bahia e, voltar de mãos abanando, seria um pouco… Digamos, complicado para alguns, rsrsrs!
Embarcamos às 16h50. Nosso voo de volta, felizmente, sem complicações chegou a Belo Horizonte.
Esse foi o 1º. Akademy no Brasil. Certamente todos nós ganhamos muita experiência em Sprint. O próximo, dizem fontes seguras: será em Minas Gerais. Já estamos ansiosos. Que venha o Akademy-BR 2ª Edição.
Akademy-BR 2010 – Praia do Forte – BA
Além de poder conhecer as pessoas que somente conhecia pela internet, pude aprender um pouco de cada coisa e de como funciona realmente um sprint. Concordo com a Camila que programar de modo extremo e interativo, com todos dando pitaco funciona muito bem. Tive o prazer de poder ajudar um pouco na infra-estrutura do evento e ajudar ao KDE-MG (grupo local de Minas Gerais pelo qual sou membro e co-fundador) à dar um UP no KDE-Promo.
Discutimos na sexta-feira à tarde sobre o que podemos fazer para promover o KDE não somente nos proximos eventos mas também manter uma política de promoção contínua. O envolvimento do ArtWork, que de certa forma foi conduzido pelo Anderson Viana, membro também do KDE-MG, é de grande importância para o promo. Por que?!
Colocamos alguns pontos que devem ser feitos para que possamos ter maior visibilidade dentro dos eventos e fora, como fizemos aqui em MG; as camisas do Grupo Local e do KDE.
- Bottons, Pins, Adesivos;
- Midias digitais como sugerida pelo Sandro onde podemos fazer a confeccao de Vídeos sobre o KDE como Hélio apresentou;
- Mais camisetas envolventes;
- Confeccao de Mídias para armazenar na Wiki ou similiar (fotos, videos, podcasts, etc)
- Canais de divulgacao nos principais meios de mídia como YouTube, Flikr e até mesmo uma comunidade no Orkut
Alem de outras discucoes que dentre elas sugerimos apos algumas conversas:
Deveriamos trabalhar, tambem, numa forma de nos organizarmos para os eventos no sentido da logística. Discuti esse assunto com o Lamarque, Anderson, Jordana, Amanda e o pessoal do promo. Como por exemplo: Não somente uma pessoa ficar por conta de organizar transporte e acomodacao mas sim haver mais interacao com o time local da cidade onde ira receber o evento, sempre quando o KDE participar. Vimos tanto no LatinoWare quanto no Akademy o quanto algumas pessoas ficaram "apertadas" com isso. Nao é mesmo Tomaz?!?!?!
(Muito Agradecido pela carona Inclusive. Voce e Sandro).
Melhor organizacão da Infra-estrutura: Sim, faz parte do promo. Como eu disse a todos, sempre que houver estes eventos por aqui, posso através do promo ficar responsável por tal. Sempre que tiver ao meu alcance.
Outro Detalhe importante é a definiçao de "regras e protocolos" para organizacao destes eventos, tipo, como irá ficar as organizaçoes dos Stands, se vao ter projetores ou nao, baloes, como colocar as camisas, promocoes e afins.
Outro ponto que fora colocado pelo Hélio que nos interessou bastante, é a tentativa de envolver algumas empresas de grande porte para que possamos ter a possibilidade de "distribuir" brindes como os Pendrives com o KDE.
Uma conclusão que tiro de minha participaçao é que preciso ajudar mais. Sendo assim, decidi fazer parte do time de traduçao e irei fazer muito report de Bugs. Já contatei a Aracele!
Aproveito para falar que no Proximo Flisol aqui em BHTE, irei utilizar a palestra do Sandro (KDE para iniciantes) e dar um palestra sobre o uso das aplicacoes do KDE no sentido de gerenciar o sistema sem ter a necessidade de recorer ao Konsole/terminal.
Se alguém do Promo tiver mais algum ponto à completar, este é meu post.
Grande Abraço a todos.
Read moreOpenSuse 10.3 e discos SATA
Sei que este artigo foge do escopo do KDE-MG e do KDE, mas como se trata de Software Livre em geral, tentarei manter o costume de sempre publicar alguma coisa que ocorra no meu dia-a-dia.
Recentemente eu e "minha equipe" estamos fazendo uma re-estruturação de infra-estrutura de T.I. em uma multi-nacional de desenvolvimento de softwares e estamos enfrentando um cenário nada nada fácil.
Um dos servidores (DELL PE T300) está configurado com uma Raid-1 com 2 discos de 250GB e um outro servidor (DELL PE T105) está configurado com um disco sem Raid.
Como precisamos de refazer toda a estrutura do PET300, pensamos na seguinte estratégia: Retiramos um dos discos da RAID-1 e bootamos o mesmo no PET105. Bingo! Assim poderíamos levar o PET300 feliz para o laboratorio e deixar o PET105 dando conta do recado por 2 semanas… Mero engano…
Foi ai que comecaram as minhas dores de cabeca com o OpenSuse 10.3.
Infelizmente o mesmo estava sem suporte à libata (que levanta os modulos para controladoras de discos pix_ii, sata_nv, sata_via, etc e principalmente o modulo ahci – o que nós precisavamos).
Para resolver o problema tivemos de rodar muito e ate mesmo pedir suporte local para a Novell que de nada adiantou.
Quando ja estavamos pra desistir, resolvemos dar uma checada no initrd do Kernel. Ai estava a surpresa.
Nao estava sendo levantado o modulo ahci e o disco ainda por cima era referenciado pelo seu ID, o que dificulta muito se a maquina estiver faltando bibliotecas de controladoras de discos e principalmente sem suporte a libata.
Para resumir o que fizemos foi:
1 – Gravar um DVD do OpenSuse 10.3 e iniciar o equipamento em modo Rescue;
2 – Assim que iniciar o sistema, devemos montar a particao raiz do disco (ex. /dev/sda1) em /mnt;
root@servidor:/#mount /dev/sda1 /mnt
2.1 – Montar o "/dev" no sistema de arquivos do disco – Isso fara com que os dispositivos reconhecidos no boot sejam mapeados corretamente quando usarmos o chroot;
root@servidor:/#mount -o bind /dev /mnt/dev
3 – Agora devemos utilizar o chroot no disco montado para que as alteracoes funcionem;
root@servidor:/# chroot /mnt
4 – Monte os sistemas de arquivos "proc" e "sys";
root@servidor:/# mount /proc; mount /sys; sync
5 – Altere o /boot/grub/menu.lst e /etc/fstab de acordo com seu disco:
DICA: Lembre-se de fazer um backup de cada um destes arquivos antes de altera-los.
root@servidor:/# fdisk -l
Disk /dev/sda: 18.3 GB, 18351959040 bytes <—– Disco que deverá ser iniciado.
255 heads, 63 sectors/track, 2231 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000b8ebb
Device Boot Start End Blocks Id System
/dev/sda1 * 1 1945 15623181 83 Linux <—– Particao onde esta o sistema.
/dev/sda2 1946 2231 2297295 82 Linux swap / Solaris
5.1 – Editando o menu.lst (grub);
title Debian GNU/Linux, kernel 2.6.26-1-686
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-1-686 root=/dev/sda1 ro vga=791 resume=/dev/sda2
initrd /boot/initrd.img-2.6.26-1-686
5.2 – Editando a Tabela de Sistemas de Arquivos (/etc/fstab);
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / reiserfs notail 0 1
/dev/sda2 none swap sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
/dev/mapper/data-data.var /var reiserfs notail,defaults 0 0
/dev/mapper/data-data.data /data reiserfs defaults 0 0
DICA: Lembre-se: O seu disco muito provavelmente irá estar referenciado por ID (by-id). Remova esta entrada e coloque a particao correspondente de acordo com o resultado de "fdisk -l".
Pronto! Ja estamos com o ambiente preparado para as alteracoes que agora devem ser feitas.
Primeiramente, vamos alterar as opcoes do kernel em "/etc/sysconfig/kernel" e procurar pela linha:
***
INITRD_MODULES="ahci …"
***
Importante dizer que para que Murphy não entre em ação, coloque o modulo ahci como primeiro da lista.
# – Reconstrua o Initrd do kernel;
root@servidor:/# mkinitrd
A partir deste momento, ja teremos feito todas as altercacoes necessarias para bootar nosso sistema novamente em outra maquina, como é o nosso caso.
Antes, nao se esqueca de desmontar os sistemas que montamos anteriormente;
root@servidor:/# umount /proc
root@servidor:/# umount /sys
root@servidor:/# CTRL+D
root@servidor:/# umount /mnt/dev
root@servidor:/# umount /mnt
root@servidor:/# sync
root@servidor:/# reboot
Sei que este artigo nao deve abranger a todos, mas decidimos coloca-lo aqui depois da raiva que passamos. Importante ressaltar que se trata de procedimento extremamente tecnico e que é um cenário particular mas que pode servir de ajuda para outras pessoas. Nem nós e nem o KDE-MG se responsabiliza pelas informacoes aqui colocadas bem como seus resultados tendo o leitor e executor a total responsabilidade sobre os atos que atraves deste forem feitos.
Em caso de Duvidas, estou a disposicao!
Read moreAkademy-BR 2010 – a volta
Este último final de semana, mais precisamente de 9 a 11 de abril, vários usuários de KDE de vários estados brasileiros se reuniram em um albergue na Praia do Forte na Bahia para o primeiro Akademy-br. Veio gente da Bahia, Minas Gerais, Piauí, Rio Grande do Sul, Santa Catarina e São Paulo, ao todo foram mais de 30 pessoas. As atividade foram bem variadas, indo desde programação de jogos e programas educacionais, a promoção do KDE no Brasil, logicamente sobrou um tempo pra conhecermos um pouco da Bahia e eu pude até rever Recife pois meu vôo de ida teve que pousar lá por causa da chuva forte em Salvador, três horas depois estávamos embarcando de Recife para Salvador. Com tantas atividades dividimos os grupos de trabalho e mãos à obra.
No primeiro dia do evento (dia 9) eu estava interessado na parte de promoção do KDE no Brasil, que iria começar à tarde e por isso fiquei com a manhã livre. Resolvi então participar também do grupo do Keduca, um programa do KDE 3.5 para aplicar provas em alunos e que alguns amigos e colegas de trabalho de Minas queriam portar para o KDE 4.x. Discutimos o que já existia de porte do Keduca para o 4.x, se valeria à pena continuá-lo ou começar do zero, formatos dos arquivos das provas. Nós de Minas já temos experiência com o v-Class nessa parte de aplicar provas e seria útil fazer com que o v-Class utilize um formato padrão de provras com o Keduca. O v-Class é um programa comercial feito em Qt pela empresa onde trabalhamos, roda em Linux e Windows. À tarde participei do grupo de promoção, discutimos o que poderia ser melhorado, criar documentação para ajudar novos grupos a organizarem estandes, brindes, e como mostrar o KDE nos grandes eventos de Software Livre no Brasil (FISL e Latinoware) e eventos regionais, como FLISOL, EMS e FSLBH. Também arrumei o notebook da Amanda que não estava abrindo o plasma desktop, como tínhamos uma carência de computadores pra tanta gente cada máquina rodando era importante. No final do dia o Felipe instalou o Kubuntu no notebook da Ysa (Yasmin), como ela ainda está aprendendo a mexer com Linux fui explicar para ela como funcionam as coisas no Linux e KDE. Amanda e Felipe são outros membros do KDE-MG e a Ysa é uma nova integrante do LiveBlue da Bahia e do novo grupo KDE Mulheres.
No segundo dia fiquei por conta de descobrir uma forma de implementar bytes accounting no Knetworkmanager. Eu utilizo 3G no meu notebook e/ou celular e pra mim interessa saber quantos bytes foram trafegados durante o ciclo que minha operadora utiliza para calcular a fatura, o kppplogview já faz praticamente isso, só falta uma forma fácil de fazer o somatório do tráfego por ciclo de fatura ao invés de por mês. Infelizmnete o kppp não está preparado para utilizar modems 3G de forma fácil. Por exemplo, ele não detecta modems automaticamente, nem suporta configurações específicas de cada operadora (APN), acrescentar configurações específicas de cada modem pode ser um desafio pois boa parte das configurações são feitas via comandos AT e o kppp limita a duas a quantidade de linhas de inicialização que podem ser configuradas para cada modem. Além disso o Knetworkmanager supporta outros tipos de conexão (cabeada, wireless) além de discada e 3G, então o mais lógico é implementar o que falta no Knetworkmanager. Depois de algumas pesquisas descobri que o pessoal do Networkmanager já tinha pensado em implementar isso e até já tinham pensado em uma forma de obter as estatísticas das interfaces de rede. Minha idéia é implementar polling no knetworkmanager para obter as estatísticas e salvá-las em algum arquivo (é isso que o kppp faz) e depois criar uma interface, talvez no próprio knetworkmanager, para ler as estatísticas e exibí-las na forma como o usuário quiser (isso é o que o kppplogview faz). Para quem usa 3G é importante medir o tráfego de dados durante o ciclo da fatura, que pode iniciar em qualquer dia do mês dependendo do dia de vencimento da fatura. Essa semana eu devo terminar o protótipo da parte de salvar as estatísticas, depois vou começar a implementar a parte de exibí-las, talvez até salve no formato que o kppplogview reconheça, assim poderíamos usá-lo para isso e até alterá-lo para exibir o somatório a partir de uma dia específico ao invés de sempre no dia primeiro. Não tive como programar muito nessa parte porque cedi meu notebook para que o pessoal de artwork pudesse trabalhar no novo logo do KDE-br.
No terceiro dia não foi possível fazer muita coisa, boa parte do pessoal tinha que voltar a Salvador para começar a jornada de volta para casa. Aproveitamos para tirar fotos com todos os participantes, comprar algumas lembrançinhas, almoçar e fomos para Salvador e depois de volta para BH.
Read more


