Traduzindo sua aplicação Flex

Adobe FlexDepois de um tempo sumido e voltando a trabalhar com Flex 3, agora na Midia Web, me deparei com a questão de tradução de alguns componentes da aplicação, logo pesquisando um pouco aqui e fuçando acolá achei um jeito bastante interessante de traduzir todos os componentes de uma vez. Setando a lingua desejada direto compilador, vai a dica:

Baixe o arquivo pt_BR.zip

Extraia seu conteudo em C:\Arquivos de programas\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\locale

OBS: O caminho acima esta usando a versão 3.0.0, testei na 3.2.0 e 3.3.0 e funciona perfeitamente.

Abra seu projeto e com o botão direito vá até Properties / Flex Compiler e na opção Additional compiler arguments acrescente o parametro -locale pt_BR, salve e recompile seu projeto, isso deve resolver.

Para saber como como traduzir as aplicações em Flex 2 de uma olhada aqui.

Funciona tambem para Adobe AIR ja que o pacote fica a disposição do framework =)

BlogBeach 2009, quebrado mas fui

blogbeach

Demorei pra criar este post, mas estes dias “felomenais” (como diria Giovani Improta) me renderam acúmulo de pendências, mas não me arrependo nem um pouco.

Sol, praia, cerveja e falta de internet, tudo que um geek precisa pra descançar (e ficar louco!) por praticamente 3 dias,  14 e 15 de março de 2009 (sabado e domingo, mas eu cheguei na sexta e voltei na segunda) rolou a segunda edição do BlogBeach, evento cujo principal foco é o networking offline, pois como diz o lema do evento: A internet é feita de pessoas.

Como sabem caros amigos ainda estou quebrado, mas graças a solidariedade dos brothers pude ir para Bombinhas-SC confortavelmente com Paca, Graffo e Carol Reine, descida tranquila de aproximadamente 3:00 e chegamos ao paraíso, casa da familia da nossa amiga Dani Koetz e seu ilustríssimo marido Eduardo Hoffman.

Grandes agradecimentos e louvores ao Fernando Doege por ter cedido um de seus apartamentos em frente a sede do evento para hospedagem não só minha mas de vários integrantes do Curitiblogs como o Canha, Claudia Regina, Zastrich, Carol Reine, Paca e noso amigo paulistano Helder Santana.

Ir a praia e não entrar no mar é definitivamente inconcebivel para min, pois o Anderssauro não entrou, porém mais uma vez sou obrigado a contar com a ajuda dos irmãos como Marco De Toni e Graffo (de novo) entre outros não menos importantes que gentilmente me carregaram até a água e depois de volta a segurança das cadeiras, boiar foi demais.

Eu com o Tornozelo quebrado indo pra agua

Velhas figuras carimbadas que encontro em vários eventos também não deixaram de comparecer como Rafael Ziggy, Mirian Bottam, nossos amigos do HotWords, BlogBlogs, Susto (que nos agraciou com um show de stand by up commedy), Haznos e várias outras personalidades blogosféricas.

Foi bom rever os amigos e fazer novas amizades, segue lista de quem não citei no post, se esqueci de você e só comentar que atualizo:

Como é bom ter amigos e que venha o próximo Blogbeach.

Corrigindo o problema da gem mysql no Rails 2.2.2


rails_logoUma dica rápida, muitas vezes ao instalar a versáo 2.2.2 do Rails ocorre algum problema com a gem mysql devido a falta de uma lib causando o seguinte erro:

Building native extensions.  This could take a while…
ERROR:  Error installing mysql:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb install mysql
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lm… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lz… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lsocket… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lnsl… yes
checking for mysql_query() in -lmysqlclient… no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
 – with-opt-dir
 – without-opt-dir
 – with-opt-include
 – without-opt-include=${opt-dir}/include
 – with-opt-lib
 – without-opt-lib=${opt-dir}/lib
 – with-make-prog
 – without-make-prog
 – srcdir=.
 – curdir
 – ruby=/usr/bin/ruby1.8
 – with-mysql-config
 – without-mysql-config
 – with-mysql-dir
 – without-mysql-dir
 – with-mysql-include
 – without-mysql-include=${mysql-dir}/include
 – with-mysql-lib
 – without-mysql-lib=${mysql-dir}/lib
 – with-mysqlclientlib
 – without-mysqlclientlib
 – with-mlib
 – without-mlib
 – with-mysqlclientlib
 – without-mysqlclientlib
 – with-zlib
 – without-zlib
 – with-mysqlclientlib
 – without-mysqlclientlib
 – with-socketlib
 – without-socketlib
 – with-mysqlclientlib
 – without-mysqlclientlib
 – with-nsllib
 – without-nsllib
 – with-mysqlclientlib
 – without-mysqlclientlib

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out

Então é necessário instalar algumas libs manualmente junto com a gem, segue as libs necessárias:

sudo apt-get install libmysql-ruby libmysql-ruby1.8  libmysql++

Altere o comando para libmysql-ruby1.9 caso esteja utilizando Ruby 1.9, com isso basta instalar a gem manualmente com o comando:

sudo gem install mysql

Pronto, o Rake e Rails voltam a funcionar sem problemas.

Instalando Ruby 1.9 e Rails 2.3.2 no Linux

linux + rails

Alguns dias atrás postei aqui um texto explicando como instalar tudo o que se precisa para rodar satisfatoriamente Ruby e Rails no Ubuntu (ou qualquer distro Debian e outras apenas trocando o apt-get pelo gerenciador de pacotes da distro), algumas pessoas me questionaram sobre o Ruby 1.9. Escolhi o 1.8 por questões de compatibilidade com gems, ja que o foco era um ambiente de desenvolvimento.

Com o lançamento do Rails 2.3.2 atualizei o script que postei para instalar o Ruby 1.9 e a última versão do Rails, para quem já havia usado o script anterior, basta executar os seguintes comandos:

apt-get -y install ruby1.9-dev ruby1.9 ri1.9 rdoc1.9 irb1.9 libreadline-ruby1.9 libruby1.9 libopenssl-ruby

e
sudo gem install rails --source http://gems.rubyonrails.org

Para quem quer instalar do zero, baixe o script:

download

Descompacte e execute-o com o comando:

sudo sh installrubyrails-1.9-2.3.2.sh

Pronto, agora você tem um ambiente atualizado.

Monitorando a performance de suas aplicações web #Parte 2

Depois de vermos uma maneira simples de monitorar nossas aplicações vamos ver como analisar o desempenho.

Analisando Desempenho com YSlow

O YSlow é uma extensão do FireBug criada pelo Yahoo para analisar o desempenho de aplicações baseando-se em 13 fundamentos básicos de alta performance, sendo eles:

  1. Faça menos solicitações HTTP
  2. Use um Content Delivery Network
  3. Adicione um cabeçalho Expires
  4. Gzip Components
  5. Coloque CSS no Topo
  6. Mova Scripts para o Rodapé
  7. Evite expressões CSS
  8. Faça a JavaScript e CSS externo
  9. Reduzir DNS
  10. Minimize JavaScript
  11. Evite Redirecionamentos
  12. Remover Scripts duplicados
  13. Configure ETags

Baseado nessas regras o YSlow faz uma verificação da sua aplicação qualificando cada quesito com notas (conceitos) de A a F, como mostrado abaixo:

yslowDepois da analise você pode ver os conceitos individuais e o conceito geral da aplicação. Segundo o Yahoo é possível otimizar uma aplicaçção em até 50% seguindo as 13 recomendações.

Além disso a extensão lhe mostra um relatório de carga antes e depois do cache feito pelo navegado:

yslow statsAlém disso o YSlow ainda lhe mostra todos os componentes baixados durante o carregamento da aplicação na opção “Components” e em “Tools” é possivel vizualizar todo o código JavaScript e CSS da aplicação.

Estas dicas e ferramentas apenas lhe mostram no que sua aplicação pode melhorar, como implementar melhorias será abordado em outra série de posts que logo estarão disponíveis.

Monitorando a performance de suas aplicações web #Parte 1


Aplicações Web são cada vez mais comuns hoje em dia, muitas empresas (e cada vez mais) tem dado preferência ao software web ao desktop, apesar da popularização (o que abaixa o custo) da banda larga existem aplicações que são lentas, demorando a carregar ou falhando durante o processo.

Essa lentidão pode ser causada pelo servidor onde a aplicação esta hospedada, pela banda do servidor e do cliente, no entanto na maioria esmagadora dos casos é problema com a própria aplicação, sim, javascrip, Flash e Imagens são os grandes vilões, mas coisas simples como requisições desnecessárias, redireciomentos e repetição de scripts podem atrapalhar e muito a sua aplicação a se manter “saudável”.

Monitorar o load de sua aplicação te ajuda a identificar onde os problemas estão acontecendo, quais requisições estão lentas e onde existe load desnecessário de arquivos. A extensão para Firebug desempenha muito bem este papel, além do tratamento de css e javascript (a maioria das pessoas que vejo usando, utilizam apenas para este fim).

Monitorando com FireBug

Além das funções de css e javascript ja conhecidas do firebug, podemos monitorar o carregamento de arquivos junto com a aplicação, vendo:

  • A quantidade de requisições;
  • De onde elas vem;
  • O tempo de resposta de cada solicitação;
  • O Status de resposta das solicitações
  • O tempo total de carregamento da aplicação;

Como podemos conferir na figura abaixo:

firebug

Esta opção esta disponível na aba  Rede (Network) opção geral (imagem acima), podendo ser segmentada por:

HTML:

firebug html

CSS:

firebug css

JavaScript:

firebug javascript

XHR – XmlHTTPRequest (solicitações AJAX):

firebug XHR

Imagens:

firebug imagens

Flash:

firebug flash

Pode não parecer muito para alguns mas tendo estas informações em mão pode-se otimizar os pontos falhos de sua aplicação tornando-a mais rápida e confiável. Ainda podemos analisar o desempenho da aplicação usando o Firebug e mais um componente integrado ao mesmo, mas isto fica para a perte seguinte da série.

Instalando tudo que você precisa de Ruby e Rails no Ubuntu 8.10

Linux + Rails

Instalar software em linux pode ser mais facil que no Windows, porém sempre considerei a parte mais chata nesse processo as dependências que não são instaladas automaticamente, pois em linux qualquer ação que possa alterar seu sistema depende de aprovação e autorização do administrador.

Dias atras instalei uma máquina virtual com Ubuntu 8.10 no meu notebook e tive surpresas desagradáveis ao instalar Ruby e Rails 2.2.2 devido a falta de alguns pacotes essenciais, então abaixo segue como instalar tudo necessário para se rodar qualquer software do mundo Ruby/Rails sem dores de cabeça com alguns extras.

Primeiro precisamos atualizar o apt-get para atualizarmos os diretórios, depois instalamos algumas libs básicas para não termos maiores problemas com os pacotes mais a frente, aproveitando e já instalando sqlite e git-core:

apt-get update
apt-get -y install build-essential zlib1g zlib1g-dev libxml2 libxml2-dev libxslt-dev sqlite3 libsqlite3-dev locate git-core
apt-get -y install curl wget

Neste momento é importante instalar a lib ImageMagick, utilizada por alguns recursos posteriormente:

apt-get -y install libmagick9-dev

Agora finalmente ao Ruby e seus “periféricos”, usaremos o Ruby 1.8 MRI:

apt-get -y install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8 libreadline-ruby1.8 libruby1.8 libopenssl-ruby
ln -s /usr/bin/ruby1.8 /usr/bin/ruby
ln -s /usr/bin/rdoc1.8 /usr/bin/rdoc
ln -s /usr/bin/irb1.8 /usr/bin/irb
ln -s /usr/bin/ri1.8 /usr/bin/ri

Neste ponto temos uma parte um pouquinho chata, o RubyGems responsável pela instalação e gerenciamento de gems precisa ser baixado em .tar.gz e instalado a partir do fonte, pois a versão nos repositórios do apt-get ainda é antiga, mas nada complicado demais, aproveitamos para setar o github como source para procura de novas gems (por isso instalamos o git-core):

curl http://de.mirror.rubyforge.org/rubygems/rubygems-1.3.1.tgz | tar -xzv
cd rubygems-1.3.1 && ruby setup.rb install
cd .. && rm -rf rubygems-1.3.1
ln -s /usr/bin/gem1.8 /usr/local/bin/gem
gem sources -a http://gems.github.com

E falando em gems vamos instalar algumas gems básicas:

gem install rake nokogiri hpricot builder cheat daemons json uuid rmagick sqlite3-ruby fastthread rack

Agora vem nosso querido Rails junto com suas dependências:

gem install activerecord activesupport actionmailer activeresource actionpack rails
export PATH=$PATH:/var/lib/gems/1.8/bin

Estes passos não são obrigatórios, mas aproveito para instalar o Apache com Phusion Passenger (mod_Rails):

echo "deb http://apt.brightbox.net hardy main" > /etc/apt/sources.list.d/brightbox.list
wget -q -O - http://apt.brightbox.net/release.asc | apt-key add -
apt-get update
apt-get -y install libapache2-mod-passenger

Suporte a PHP5:

apt-get -y install php5 libapache2-mod-php5 php5-mysql
/etc/init.d/apache2 restart

Mysql Server 5:

apt-get install mysql-server-5.0

E só pra garantir um pouco mais de segurança já que instalamos o Apache recomendo a instalação de um firewall para restrição de acesso, deixando abertas apenas a porta 80:

apt-get -y install ufw
ufw allow to 0.0.0.0/0 port 80
ufw enable

Caso queira liberar mais portas é só seguir o modelo, por exemplo porta 22 para SSh e 25 para Email:

ufw allow to 0.0.0.0/0 port 22
ufw allow to 0.0.0.0/0 port 25

Este firewall é bastante básico, não recomendo uso em um servidor de produção.

Para facilitar a vida ainda mais criei um script Shell para instalação de tudo que foi citado no post, as partes opcionais são opcionais no script também, basta seguir o “wizard”, faça o Download aqui:

Download

No terminal entre como root e digite:


sh installrubyrails.sh

Pronto, o script te guiará pela instalação.

Scott Guthrie fala sobre tecnologia Microsoft e MIX09

mix09

Scott Guthrie, sim ele, o famoso fala em uma  entrevista sobre o aguardado (todo ano) MIX 2009, Silverlight 3, VS 2010 Tools para o Silverlight e Expression.

MIX é uma conferência para os desenvolvedores e designers de user experience, suas participações ficam em torno de 50%-50%. É uma oportunidade para desenvolvedores e designers web encontrarem e compartilharem suas experiências uns com os outros.

Este ano no MIX 2009, a Microsoft apresentou o Silverlight 3, o Visual Studio 2010 Tools destinado a desenvolvedores Silverlight, Expression Encoder 3, ASP.NET 4.0, e outras tecnologias da web. O Silverlight 3 conterá melhorias de gráficos, GPU hardware acceleration, mais gráficos de operações intensivas, efeitos 3D. Ele irá basicamente incorporar muitas das características que só estavam disponíveis via AJAX ou Flash até agora. Leia mais sobre Silverlight 3 no MIX 09 na InfoQ.

Scott considera que User Experience (UX) importa mais e mais para lojas na Internet e sites Web 2.0, tornando-se muito importante nestes dias e para os próximos 30-40 anos. Uma aplicação corporativa interna standard normalmente parace aborrecida e faz a gente acreditar que exista algo errado com ela. Um bom workflow é necessário porque ajuda com a produtividade e total interação com a aplicação, que é também uma parte do UX. Comentando sobre os progressos realizados até agora, Scott admite que “nós ainda estamos tentando descobrir como designers de user experience e desenvolvedores trabalahm juntos.” o que impede vários projetos de todos os portes de obterem o máximo de sucesso.

Em seguida, Scott falou sobre a linha de produtos Expression. A visão do Expression era oferecer um produto complementar ao VS para os designers, focados em UX, o workflow, sem perturbar o designer com uma ferramenta debugging ou código. Uma das características a ser intrduzidas este ano é o controle do código fonte integração entre VS e Expression para uma melhor colaboração entre os dois. O designer deve ser capaz de trabalhar na interface de um objeto fornecido por um desenvolvedor sem ver o código em si, o que pode se tornar a realização de sonhos de equipes de desenvolvimento.

Fonte: InfoQ

Retomada e problemas com feeds

Novos Feeds

O blog andava abandonado, eu sei, pretendo dar mais atenção ao pobre daqui pra frente e pretendo manter meus poucos leitores e adquirir novos com o passar do tempo.

O primeiro passo rumo a esta nova “jornada” foi consertar os problemas com os feeds, aproveitando para adicionar adsense aos mesmo, afinal também preciso alimentar as crianças o que com esta crise está cada vez mais dificil, então por favor “reassinem” meu feed.

Também não posso deixar de citar que eu e o Canha do Digital Paper voltamos a gravar o antigo DigitalPaperCast num novo formato e com novo nome, agora nosso podcast se chama HTTPod e ja esta na sua 2° edição, não deixem de conferir também.

Falando em crise e crianças (que eu ainda não tenho) lembrei de contar a vocês meus caros amigos que agora além de homem de bem, sério e respeitável sou também noivo, sim estou me amarrando aos poucos. Esta nova etapa da minha vida provavelmente tomará mais do meu tempo, mas isso será ótimo, ando muito relaxado com a vida, deixando tudo para depois e sempre sem concluir nada.

Confesso que sinto falta de ver a opinião das pessoas no meu blog, gosto de saber o que as pessoas pensam sobre o que eu penso e isso é de fato gratificante, espero em breve rever comentários neste blog.

Vida longa!

Diário de um acidentado #001

Impressionante quando as coisas mais inesperadas acontecem e nos fazem ver a vida e as situações de ângulos diferentes, veja só esse caso:

Domingo, 18 de janeiro de 2009, as 19h36, voltando de moto da zona leste de Curitiba sentido minha casa (extremo oeste), empolgado e com o tempo relativamente curto, pois ainda necessitava arrumar as malas para o Campus Party pra qual partiria a meia-noite do mesmo dia com o Luc e Slonick. Mesmo assim, a empolgação não interferia de forma alguma na velocidade ou trajeto adotado. Sempre faço o mesmo caminho na mesma velocidade (média), porém naquele dia uma surpresa desagradável me esperava logo à frente, próximo a minha casa.

No fim da estrada velha do Barigui, na rua Eduardo Sprada, em frente a Igreja do bairro Campo Comprido, após a lombada, aproveitei a reduzida de velocidade para ultrapassar um Gol que seguia desde o inicio da subida. Sim, é uma subida de curvas bem acentuadas e a estrada é estreita e inapropriada para ultrapassagens, somente no trecho onde me encontrava pode-se ultrapassar seguramente. Deixei o carro um pouco para trás e desacelerei, pois o sinal estava vermelho e apesar de estar a mais de 50 metros do cruzamento, o ideal é segurar o veiculo numa distancia bem anterior ao limite, pois além de não forçar o veiculo, ainda há a possibilidade de o sinal ficar verde, permitindo a retomada de maneira facilitada. E foi justamente isso que aconteceu.

Ao esverdear o sinal retomei a aceleração para chegar a velocidade de 60km/h (limite da via naquele trecho), por uma questão pessoal e apesar de nenhuma regra de transito obrigar ou sugerir, adquiri o habito de atravessar cruzamentos desacelerando o veiculo (seja carro ou moto) para manter um maior controle e segurança. Pois, logo abaixo do sinal há o cruzamento em T das ruas Eduardo Sprada e João Falarz (bem conhecidas e movimentadas na região), em tal cruzamento é permitida conversão para ambos os sentidos. Porém, a preferencial mesmo com o sinal aberto (verde) é para quem se mantém na Eduarda Sprada, que era o meu caso. Aproveitando-me desta vantagem ia passar socegadamente pelo cruzamento quando numa visão de câmera lenta observo um dos carros da fila de conversão invadindo a pista, meu coração deve ter parado na boca.

Como reação imediata surtiu a frenagem, pisando levemente no freio traseiro e apertando ferozmente no freio dianteiro (sem perigo de capotar, pois o sistema de freio da moto – Honda Twister 250cc – é a disco) em questão de 5 metros reduzi quase metade da velocidade (estando a 30km/h em média), como outra reação ao ver o perigo se aproximando foi desviar dentro na mesma mão da pista a qual me encontrava, mesmo sendo um movimento rápido ainda foi pouco para me salvar.

Em uma situação como esta que a colisão torna-se inevitável o único recurso é enrijecer o corpo e esperar pela melhor situação de aterrizagem. Como num piscar de olhos, os 5 metros entre o carro e eu sumiram e senti, de maneira bastante pavorosa e violenta, meu joelho esquerdo literalmente destruindo a lanterna esquerda do veiculo seguida de uma bela pancada de tornozelo no parachoque do “oponente”. Com a violência da batida, mais uma vez o instinto entra em ação olhando para a perna esquerda para tentar calcular os estragos. Para minha surpresa, encontro a perna indo ao ar acompanhada de meu tronco que começara a torcer, pensando comigo mesmo “me fudi”. Larguei o guidão pra ser lançado num giro de 360 graus, aterrizando violentamente no asfalto a uma distancia aproximada de 30 cm do meio fio.

Confesso que a sensação de pânico não é das melhores, não vi minha vida passar diante dos olhos, mas com certeza quase borrei as calças, no entanto era só o começo da agonia. Me encontrando agora face a face com o meio fio da esquina, abro o olho e permaneço imóvel sem sentir nada, apenas uma forte formigação na perna esquerda. Em 10 segundos me permiti experimentar os sentidos e movimentos corporais, primeiro as mãos sujas pelo asfalto, o movimento dos braços ( que me permitiram soltar o capacete), sem identificar nenhuma dor ou moleza no pescoço ou cabeça tirei o capacete que começava a me sufocar e soltei a alça da pequena mochila que tinha nas costas, pois bem é hora de verificar como estão as pernas.

Fiquei feliz em verificar que a perna direita estava intacta, nem um arranhão, batida ou sinal de dor, no entanto ao retirá-la de cima da perna esquerda (ambas estavam praticamente trançadas) é que levo o maior susto. Observo que a perna esquerda esta metade em cima do meio fio e metade no asfalto, neste momento o formigamento passa a forte latejação seguida de uma dor aguda, algumas pessoas que estão em volta me pedem calma e para não me mexer pois o SIATE já esta a caminho. No entanto, um homem de meia idade me estende um celular e pede para eu conversar com a atendente que me faz algumas perguntas relacionadas a peso, sexo e idade, curiosamente ela me pergunta:

_ A vitima esta consciente?

Como que por um impulso me passou a hipótese de ser sarcástico, porém a perna esquerda não me deixava esquecer dela e foi melhor dizer logo:

_ Minha filha a vitima sou eu e estou com a perna esculhambada no meio fio, rápido, por favor.

A atendente tenta me acalmar dizendo que o atendimento de emergência é rápido, etc. Porem a dor não teve muita calma e foi logo aumentando.

Impressionei-me com a solidariedade e prestatividade das pessoas ao redor me olhando com pesar, o mesmo homem de meia idade que me passara o celular, para falar com a atendente do SIATE, pergunta se eu quero avisar alguém, ao tentar com o meu celular e verifico que ele está sem bateria, logo ele me estende a mão e diz para usar a vontade pois é de conta e ilimitado. Avisei pessoas chaves (como o @virus94 meu quase irmão e vizinho e o @lenteaberta que iriamos dali algumas horas embarcar rumo a São Paulo para a Campus Party), eis que nesse momento surge uma viatura da ROTAM (PM), muito atenciosos e prestativos, todos os meus anteriores encontros com a ROTAm não tinham sido tão amáveis quanto esse. Logo, ao longe, escuto sirenes e a ROTAM sai dando lugar ao SIATE. Dois rapazes singelos e sorridentes descem da ambulância e chega a hora da verdade.

Rápido como devem ser um dos socorristas vem perguntar algumas informações básicas sobre mim e meu estado, e o outro se direciona a perna sobre o meio fio. Com cuidado, o mesmo desce a perna e posiciona-a, o mais reto possível, sobre o asfalto plano (tudo isso seguidos por alguns Aiiiiii da minha parte), com uma tesoura começou rapidamente a cortar minha calça (nova, segunda vez que a usava) para expor a perna e poder de fato ver o que aconteceu. Quando chegou a altura do joelho (que eu sentia muita dor e sentia o sangue escorrendo) cortou com mais cuidado e fez uma cara não muito agradável, me fez lembrar novamente da batida e cheguei a pensar em fratura exposta, pois alem da dor, podia senti o sangue escorrendo por dentro da calça e não sentia a panturrilha. Quando o socorrista pegava nesta região eu a sentia amortecida, sem mais delongas me colocaram na maca, acompanhado da dor. O caminho ao hospital e os acontecimentos seguintes, ficam para uma outra narrativa.