sexta-feira, 19 de junho de 2015

[P12] Arquivos de Log de um site na Internet

     Criei um logger, um script para salvar os downloads do meu site pessoal na Internet em 19/06/2010 (foram 1826 dias de log). Cinco anos depois, em 19/06/2015, torno público os resultados obtidos. As capturas guardam a data de cada download, o arquivo que foi baixado e o endereço IP origem do download.
     É possível observar que em algumas datas, alguns endereços IPs foram mais utilizados que outros (provavelmente um ataque?), assim como existem arquivos que são mais baixados que outros.
     A seguir, apresento algumas informações interessantes sobre o endereçamento geográfico e distribuição de endereços IP pelo globo terrestre, para facilitar a implementação de alguns itens dos projetos.

Endereçamento dos Protocolos de Internet

     Existem duas formas de endereçar máquinas na Internet: através dos protocolos IPv4 e IPv6 (onde está o IPv5?). O IPv4 possui uma quantidade limitada de endereços, então está sendo gradualmente substituído (há uns 15 anos já...) pelo protocolo IPv6 que tecnicamente possui tantos endereços IP quanto partículas de areia no universo.
     Existe uma governança da Internet, mas quem controla os endereços é a ICANN - Internet Corporation for Assigned Names and Numbers - Corporação da Internet para Atribuição de Nomes e Números.
     Enquanto que o IPv4 endereça cerca de 4 bilhões (4x109) de endereços IP, o IPv6 consegue endereçar 3,4x1038 endereços. Este fato é particularmente interessante quando se sabe que a rede está expandindo à medida que o tempo passa com a adição de novos dispositivos (tablets, smartphones, etc). A seguir, são apresentados exemplos de endereços de cada protocolo:
IPv4 => 173.194.119.49
IPv6 => 2001:bce4:5641:3412:341:45ae:fe32:65
     O livro "IPv6 Address Planning: Designing an address plan for the future", escrito por Tom Coffeen (Publicação: O'Reilly Media, Data: November 2014, 286 páginas) apresenta uma tabela interessante sobre os endereçamentos dos protocolos (e outras contagens interessantes) - clique na imagem para expandi-la:


Dados

     Um único arquivo de dados contém tudo, com o seguinte cabeçalho:
#IP = 0 | ARQUIVO = 1 | DATA = 2 ; VALOR ; QUANTIDADE
     O primeiro campo é um valor 0,1 ou 2 indicando que se trata de um endereço IP, um arquivo ou uma data, seguido do valor correspondente e uma quantidade.

     IP é um endereço conforme o protocolo IPv4, com quatro sequências de 256 caracteres separadas por ponto ('.'):
XXX.XXX.XXX.XXX => XXX varia entre 0 e 255 (inclusive)
     DATA é uma data entre 19/06/2010 e 19/06/2015, no seguinte formato:
DD/MM/AAAA, onde D=Dia, M=Mês, A=Ano
     Se for um arquivo, mostra o nome do arquivo presente no site. Todos os arquivos que foram baixados pelo menos uma vez encontram-se na listagem.

     Cada país recebe uma faixa de endereços IP, sendo possível saber o país de origem do IP. Os dados foram obtidos do site http://services.ce3c.be/ciprg/ no dia 18/06/2015 (os dados mudam constantemente). O nome do arquivo é IP-RANGES-ALL COUNTRIES.txt, disponível para download.

     Baixe neste link os arquivos para este projeto

Questões interessantes deste projeto
  1. Aspectos gerais - estatísticas interessantes
    1. Quantos IP foram salvos, quantas datas e quantos arquivos existem no arquivo de log?
    2. Qual país possui o maior número de faixas nas atribuições da Internet?
  2. Sobre os endereços IP utilizados
    1. Qual é o endereço IP que mais baixou arquivos?
    2. Conforme o país do download, quais foram os países que mais baixaram arquivos?
    3. Conforme o continente, quantos downloads foram realizados? (considere: América do Sul, América do Norte, América Central, África, Ásia, Oceania e Europa)
  3. Sobre os arquivos baixados
    1. Qual foi o arquivo mais baixado?
    2. Quantos downloads de cada tipo foram feitos? (por exemplo, .pdf, .txt, .z0, etc)
    3. Quantos artigos foram baixados (um artigo possui um nome todo em maiúsculo seguido de um ano, por exemplo ICGSE2006.pdf)
    4. Quais são os N arquivos mais baixados (onde N é passado por parâmetro)?
  4. Sobre as datas de download
    1. Qual foi a data com maior número de acessos?
    2. Qual data possui o menor número de acessos? (mostre todos os empates de acessos)
    3. Quais são as N datas com mais acessos (onde N é passado por parâmetro)?
    4. Quantas datas possuem apenas 1 acesso?

sexta-feira, 5 de junho de 2015

[P11] Dados da Copa 2014 - Portal da Transparência

     Não é segredo para ninguém que a Copa 2014 no Brasil custou muito dinheiro a todos os contribuintes brasileiros. Foram jogadas 64 partidas a um custo estimado de R$ 27.346.140.056,43 (segundo o site - leia a seguir). Foram 27 bilhões de reais, ou seja, cada partida custou R$ 421.875.000. Foram marcados 171 gols durante as partidas sendo 26 gols extra de pênaltis, a um custo de R$ 157.894.736,84 por gol. Foram 157 milhões de reais por gol! No fatídico jogo dos 7x1 para a Alemanha, o Brasil PAGOU R$ 1.105.263.158,00 para levar 7 gols (sim, nós brasileiros pagamos 1 bilhão de reais para levar 7 gols e uma humilhação em casa), e ganhou apenas R$ 157 milhões de volta...
     Claro que muitos falam que muito dinheiro foi gasto por estrangeiros e por empresas que investiram por aqui e que mesmo custando bastante dinheiro foi interessante voltar a sediar uma Copa do Mundo, algo que não acontecia desde 1950 (os brasileiros tiveram que esperar 64 anos para voltar a ver uma copa do mundo). Muito dinheiro em infraestrutura foi investido e muitas obras com certeza nem teriam começado se não fosse pela copa.
     O governo montou um site onde disponibiliza diversos dados sobre os gastos da copa para efeitos de transparência. Muitos dos dados obtidos a seguir referem-se a este site. Um outro site que mostra diversas estatísticas dos jogos da Copa do Mundo 2014 encontra-se na Wikipedia.



     A tabela a seguir mostra uma listagem de todas as equipes que participaram da copa (ordenados alfabeticamente por nome do país em português):
#TimeTeam
1AlemanhaGermany
2ArgéliaAlgeria
3ArgentinaArgentina
4AustráliaAustralia
5BélgicaBelgium
6Bósnia e HerzegovinaBosnia and Herzegovina
7BrasilBrazil
8CamarõesCameroon
9ChileChile
10ColômbiaColombia
11Coreia do SulSouth Korea
12Costa do MarfimCote d'Ivoire
13Costa RicaCosta Rica
14CroáciaCroatia
15EquadorEcuador
16EspanhaSpain
17Estados UnidosUnited States of America
18FrançaFrance
19GanaGhana
20GréciaGreece
21HolandaNetherlands
22HondurasHonduras
23InglaterraUnited Kingdom
24IrãIran
25ItáliaItaly
26JapãoJapan
27MéxicoMexico
28NigériaNigeria
29PortugalPortugal
30RússiaRussia
31SuíçaSwitzerland
32UruguaiUruguay

     Foram feitos 65 gols no primeiro tempo e 106 no segundo tempo. A tabela a seguir mostra o total de gols por partida:
GolsTotal
07
112
28
320
49
54
62
71
81

     A tabela a seguir mostra os gols marcados por cada equipe:
TimeTotal de gols
Alemanha18
Argélia7
Argentina8
Austrália3
Bélgica6
Bósnia4
Brasil11
Camarões1
Chile6
Colômbia12
Coreia do Sul3
Costa do Marfim4
Costa Rica5
Croácia6
Equador3
Espanha4
Estados Unidos5
França10
Gana4
Grécia3
Holanda15
Honduras1
Inglaterra2
Irã1
Itália2
Japão2
México5
Nigéria3
Portugal4
Rússia2
Suíça7
Uruguai4



     Os seguintes estádios foram utilizados (total de 12 sedes):
#NomeLocalizaçãoCapacidade (oficial)PartidasPúblicoGols
01Arena AmazôniaManaus44.0004160.22714
02Arena da BaixadaCuritiba42.3724156.9918
03Arena das DunasNatal32.0504158.1675
04Arena Fonte NovaSalvador50.0256300.67424
05Arena PantanalCuiabá44.0004158.71712
06Arena PernambucoRecife44.3005204.88211
07Arena de São PauloSão Paulo66.7956375.59311
08Estádio Beira-RioPorto Alegre56.0005214.96922
09Estádio CastelãoFortaleza63.9036356.89617
10Estádio Nacional de Brasília Mané GarrinchaBrasília72.7887478.21820
11Estádio do MaracanãRio de Janeiro78.8387519.18910
12Estádio MineirãoBelo Horizonte61.8466345.35017
TOTAIS643.429.873171

     Foram marcados 171 gols em 64 jogos (para efeito de estatísticas não são contabilizados os gols provenientes de decisões por penalidades máximas). A média de gols ficou em 2,7 gols por partida, empatando com o recorde da Copa do Mundo de 1998 na França com o mesmo índice.



     Em termos de distâncias entre as cidades-sede da Copa do Mundo, algumas equipes tiveram que viajar muito mais do que outras, conforme a tabela a seguir (distâncias em quilômetros):

     Manaus prova ser uma cidade longe de todas as demais cidades-sede do Brasil (menos de Porto Alegre, onde Fortaleza consegue ser mais distante).

O desempenho do Brasil nos jogos da copa

     A tabela a seguir mostra os jogos apenas do Brasil (no arquivo de dados são disponibilizadas todas as partidas da copa):
FaseTime 1PlacarTime 2PênaltisDataHoraEstádio
Grupo ABrasil3x1Croácia 12/06/201417:00Arena de São Paulo
Grupo ABrasil0x0México 17/06/201416:00Castelão
Grupo ABrasil4x1Camarões 23/06/201417:00Mané Garrincha
OitavasBrasil1x1Chile3x228/06/201413:00Mineirão
QuartasBrasil2x1Colômbia 04/07/201417:00Castelão
Semi-finaisAlemanha7x1Brasil 08/07/201417:00Mineirão
Terceiro lugarBrasil0x3Holanda 12/07/201417:00Mané Garrincha
Brasil: 7 jogos, 11 gols pró e 14 gols contra

     No jogo do 7x1, dia 08/Julho/2014, no Mineirão (gentilmente apelidado de Minerazo em 2014, pois em 1950 havia tido um Maracanazo no Maracanã), a seguinte sequência de gols foi anotada:
JogadorMinuto
Thomas Müller11'
Miroslav Klose23'
Toni Kroos24'
Toni Kroos26'
Sami Khedira29'
Andre Schürrle69'
Andre Schürrle79'
Oscar dos Santos Emboaba90'
     A vantagem é que ficamos 11 minutos sem levar gols da Alemanha ou ficar atrás do placar!

Dados sobre o time brasileiro que jogou a partida dos 8 gols

     O sonho do Hexa-Campeonato Mundial foi desmanchado em 18 minutos (11' a 29') do primeiro tempo. Com 5x0, bastou que a Alemanha administrasse o jogo. O time brasileiro não esboçou nenhuma reação ou gana para tentar (de alguma forma) reverter o placar ou amenizá-lo. A zaga brasileira parecia um queijo suíço, e o jogo parecia de várzea de tão fácil que a Alemanha atacava. A impressão de todos era que aqueles jogadores brasileiros nunca haviam jogado futebol escrevendo para sempre esta escalação no imaginário das pessoas (ordenados pelo número da camiseta, exceto o goleiro):
NúmeroJogadorFunção
12Júlio CésarGoleiro
4David LuizZagueiro
5Fernandinho (Paulinho)Volante (Volante)
6MarceloLateral
7Hulk (Ramirez)Atacante (Volante)
9Fred (Willian)Atacante (Meia)
11OscarMeia
13DanteZagueiro
17Luiz GustavoVolante
20BernardAtacante
23MaiconLateral
     O Neymar teve a sorte das sortes e não jogou esta partida pois estava machucado por uma entrada covarde de um jogador da Colômbia, assim como o zagueiro Thiago Silva que também não jogou. Agora, a possibilidade é que a Alemanha alcance o Penta-Campeonato, mas meu palpite é que a Holanda será campeã do mundo antes.

Dados

     Os dados a seguir mostram alguns arquivos que mostram os gastos e as estatísticas da Copa do Mundo 2014. Faça o download dos seguintes arquivos:
  1. Dados gerais dos jogos: neste arquivo tem as distâncias das cidades-sede, os estádios da copa, as informações dos países que jogaram (PIB, população, etc - dados de Julho de 2014 obtidos no CIA World Factbook), a tabela da copa com o nome dos jogadores que marcaram gols e o tempo de jogo, e a listagem dos times participantes.
  2. Dados do Portal da Transparência - originais
  3. Dados do Portal da Transparência - formatados: os arquivos sofreram alguns tratamentos de formatação por exemplo para conter apenas um registro por linha e também foram retirados os nomes das colunas dos arquivos .txt e colocados como cabeçalhos nos arquivos .csv, para facilitar a construção de parsers específicos. Também foram removidos alguns problemas nos dados (por exemplo, em alguns pontos tinha caracteres ';' ou duas aspas duplas ("") no meio do texto que não poderiam ficar onde estavam)
     Sobre os dados obtidos do Portal da Transparência do Governo Federal, os seguintes arquivos são os mais interessantes:
  1. 20150412_AcaoGoverno.csv - ações do governo federal para a copa
  2. 20150412_Desembolso.csv - mostra os desembolsos realizados
  3. 20150412_ExecucaoFinanceira.csv - mostra dados interessantes sobre datas e gastos de toda a copa
  4. 20150412_FonteRecurso.csv - mostra as fontes de recursos em uma listagem
  5. 20150412_Instituicao.csv - mostra a lista das instituições que participaram de alguma iniciativa
  6. 20150412_PessoaFisica.csv - mostra o nome e o cpf de pessoas físicas que trabalharam nos projetos
  7. 20150412_RelatorioExecucao.csv - mostra relatórios (por exemplo, um relatório fotográfico) de algum projeto da copa
Questões interessantes deste projeto
  1. Baseando-se nas informações dos jogos
    1. Mostrar as estatísticas gerais das partidas: total de gols, conforme os placares, contando penalidades, gols contra e gols realizados em continuações (após 45' e após 90'), média de gols da copa (conforme o total de partidas)
    2. Mostrar o ranking dos gols dos jogadores (qual jogador marcou mais gols)
    3. Mostrar o total de partidas por país (ordenados pelo total de forma ascendente)
    4. Descobrir o jogo (da fase de grupos) com maior número de gols
    5. Mostrar a incidência de todos os placares: quantos 0x0, quantos 1x0, etc
    6. Mostrar estatísticas do total de gols marcados no primeiro (0' a 45') tempo e no segundo tempo (46' a 90')
    7. Conforme as vitórias (3 pontos) e empates (1 ponto), mostre a tabela de jogos (completa, com gols pró e gols contra) das oitavas de final
  2. Baseando-se nas informações dos países (#País;Área Total;População;EVH(Esperança de vida para homens);EVM(Esperança de vida para mulheres);PIB(Produto Interno Bruto))
    1. Qual é o país com menor PIB que ganhou o maior número de jogos? Qual é o país com menor PIB que fez mais gols?
    2. Qual é a relação (total de gols)/(população) que existe para todos os países na Copa do Mundo 2014?
    3. Qual é a relação (total de gols)/(área total) que existe para todos os países na Copa do Mundo 2014? Qual é o maior e o menor país em termos de área que fez mais gols?
    4. Qual país com a maior distância entre a Esperança de Vida entre Homens e Mulheres que fez mais pontos na fase de grupos da copa?
  3. Baseando-se nos dados do Portal da Transparência (formatados)
    1. Quanto foi gasto em todas as ações do governo para a Copa do Mundo e Copa das Confederações conforme os dados dos arquivos?
    2. Mostre uma lista das fontes de recursos da copa
    3. Crie um arquivo chamado instituicoes-datas.txt e coloque o nome da Instituição Contratante (campo IdInstituicaoContratante presente nos arquivos de Execução Financeira e IdInstituicao no arquivo de Instituições) e data inicial e final de vigência de todas as execuções financeiras da Copa do Mundo
    4. Mostre uma lista dos recursos destinados a pessoas físicas na Copa do Mundo (descubra os campos onde encontram-se estas informações)
  4. Desafios gerais do projeto
    1. DESAFIO 1: dada a lista de times e as distâncias entre as sedes, implemente uma tabela de jogos para a copa do mundo, escolhendo uma seleção para se deslocar o mínimo (não vale fixar a seleção em uma cidade-sede, ela tem que sair pelo menos 2 vezes durante seus jogos). Mostre o total em quilômetros que serão deslocados e os dados das partidas (duas seleções não podem jogar no mesmo horário, etc)
    2. DESAFIO 2: tente remontar um banco de dados a partir das informações presentes nos arquivos do Portal da Transparência