Categoria:Programação

Construindo uma rede social com o Open Source Social Network

A alguns meses atrás me deparei com o Open Source Social Network, aplicação/site/serviço (não sei, as definições mudam toda hora) em PHP que permite a criação de uma rede social, de forma rápida e fácil. A versão gratuíta está no site www.opensource-socialnetwork.org e a versão com recursos mais avançados pode ser comprada no site www.openteknik.com, que possui algumas instâncias disponíveis para demonstração.

As imagens acima são da versão premium, retiradas do openteknik.com

O que mais me chamou a atenção foi o framework e a base de dados. O framework permite que um componente se sobreponha a outro, o que dá muita flexibilidade para criação de novos recursos ou ainda, melhorar um componente já existente. Já o banco de dados é estruturado de uma forma que eu nunca havia visto antes, e tenho certeza que se apresentasse ele em sala de aula, nos idos de dois-mil-e-nokia-1100, ia levar bronca. São menos de 15 tabelas pra postagens, álbuns, fotos, chat, usuário, configurações, propagandas, amizades, gerenciamento de componentes, etc. Pra efeito de comparação, eu vi um sistema para gerenciamento de biblioteca francês (não direi o nome, pra não fazer divulgação) com mais de 500 tabelas. Umas quantas com os campos código e nome. E atire a primeira pedra quem nunca fez isso 🙂

Nesse meio tempo, vi que precisava melhorar meus conhecimentos sobre github e inglês, língua base do sistema. Juntando o útil ao agradável, comecei a escrever alguns componentes e a ajudar outros membros do fórum do site. O que já fiz:

Notification Sample: Componente criado para entender o funcionamento do sistema de notificações. Disponibilizei ele para ajudar outros desenvolvedores;

Home Page Posts: Permite ao usuário ver as publicações da linha do tempo dos amigos ou de todos os usuários. Por padrão do OSSN, é o administrador do site que decide o que será visto.

Send images in OssnMessages: Permite ao componente de mensagem o anexo de imagens. Como existem no OSSN 2 componentes para mensagens, por enquanto me dediquei ao sistema principal, que funciona em desktop e celulares.

Remove conversation: Com esse componente, é possível remover a conversa da lista das conversas recentes. Só o usuário deixa de ver as mensagens. A conversa em si continua existindo.

O licenciamento do OSSN é regido pelos seus próprios termos, de acordo com o License.md do GitHub. Não use comercialmente sem ler o que diz lá. Vai que…

“Meu Celular, Meu Vício”

Tem 3 semanas que estou divulgando via redes sociais que estou coletando dados para a minha dissertação e esqueci de registrar isso nesse pequeno blog 😛

A pesquisa é sobre dependência de smartphone, um tipo de vício comportamental que está em crescimento na população brasileira. Até o Governo está atento ao assunto, com o programa de Detox Digital Brasil, promovido pelo Ministério da Mulher, da Família e dos Direitos Humanos.

O foco da pesquisa são os estudantes das Instituições Públicas de Ensino Superior, nas esferas Federais, Estaduais e Municipais (sim, existe Universidade Municipal) . Um site reúne todas as informações da pesquisa. O endereço é http://mcmv.rafaelamorim.com.br

Para o desenvolvimento da pesquisa, escrevi um aplicativo para Android chamado “Meu Celular, Meu Vício” que apresenta 2 questionários na primeira vez que é aberto. Um trata de medir o perfil de dependência de smartphone e o outro é um questionário sócio econômico. Depois disso, o aplicativo coleta periodicamente algumas informações, como percentual de bateria e ciclos de carga e descarga, tempo que o aparelho é utilizado, aplicativos utilizados e ações realizadas no aparelho, como aquela conferidinha no relógio que muitas vezes a gente precisa fazer 2 vezes, por que a primeira foi tão rápida que nem deu tempo de ler a hora. Eu sou um que faço isso o tempo todo…hehehehe

De tempos em tempos, esses dados são enviados via internet para um banco de dados centralizado, sem revelar quem é o participante. O que é acessado, escrito ou lido, além das fotos e vídeos são coisas privadas do participante e assim permanecem. Eu não acesso a isso e não tenho como saber quem é a pessoa na base de dados. Uma mostra dos dados que estão na base (além da estrutura da base) pode ser acessada no endereço https://mcmv.rafaelamorim.com.br/sampledata.php

A coleta dos dados vai até meados de dezembro. Então, peço que instale o app, ou se não se enquadrar na pesquisa, divulgue a pesquisa e me ajude 🙂

Abraço!

Upgrade no HeatMap

Desde abril de 2018, com a mudança do servidor, o projeto do heatmap ficou capenga. Inicialmente o banco de dados era o PostreSQL, e o servidor novo só possui MySQL. Além disso, o PGSQL lida de forma diferente com dados geográficos, o que me obrigou a repensar quase todo o banco de dados, pois as consultas convertidas ficaram incrivelmente demoradas.

Por fim, percebi que era mais rápido pegar do Strava todas as atividades outra vez do que migrar o banco de dados. Isso gerou uma mudança no funcionamento do sistema. Antes, as atividades vinham doações de usuários e de uns grupos que faço parte. Agora só tem atividade doadas. Então quem quiser colaborar, precisa clicar no botão “Adicionar atividades ao mapa” e seguir as orientações.

Na parte da programação, reescrevi quase tudo. Dessa vez fazendo uso do CodeIgniter como framework. Só depois que o código já estava adiantado é que descobri que a biblioteca para pegar as atividades do Strava em CodeIgniter estava em um estágio muito embrionário. A solução foi melhorar o código existente e devolver a comunidade. Tá aqui nesse link do GitHub.

O resultado final está no mesmo endereço de antes.

www.rafaelamorim.com.br/heatmap

Sobre os dados

Os dados coletados e armazenados são manipulados de forma automática e utilizados para fins estatísticos e de composição do mapa. Tanto o mapa quanto as estatísticas não fazem nenhuma correlação com o atleta que criou a atividade.

Em nenhuma hipótese, os dados aqui armazenados serão compartilhados ou vendidos. Toda a informação gerada aqui é de divulgação pública. O uso das informações é permitido desde que eu seja notificado via e-mail no endereço amorim@rafaelamorim.com.br.

HeatMap de atividade física

Em conversa com um vereador do município de Santana do Livramento (RS) sobre a falta de atenção do poder público municipal para os ciclistas da cidade, fiquei sabendo que não existem informações sobre o assunto. Em nossa conversa, comentei sobre o Strava Global HeatMap, uma iniciativa do Strava que, utilizando mapa do tipo heatmap, aplica cores mais intensas aos traçados com maior utilização. Porém tal site não é atualizado desde 2015 e segundo a empresa, não há interesse em atualizar tal mapa. Dessa data até hoje, muitas pessoas começaram a fazer e registrar suas atividades físicas. Sendo assim, os dados ali apresentados não representam o cenário atual. Daí surgiu a necessidade de construir uma ferramenta que permita aos gestores públicos, ou quem mais se interessar em ajudar o movimento ciclo ativista a obter dados atualizados sobre a nossa realidade.

Além de ver quais os pontos mais movimentados da cidade, é possível ver, através de gráficos, os dias e meses com maior número de atividade e distâncias percorridas. Conforme a necessidade, outros dados podem emergir.

Para acessar o mapa, acesse www.rafaelamorim.com.br/heatmap.

Após construir o sistema básico para registrar os dados e o mapa para o município de Santana do Livramento (RS) percebi que dados de outras cidades e outros tipos de atividades também foram capturados. Então inclui filtros para algumas cidades (ou regiões, dependendo do caso), atividades (caminhada, corrida e pedalada) e período (2015, 2016 e 2017).

Colabore com o mapa

Os primeiros dados adicionados ao mapa foram obtidos através das atividades dos atletas participantes de alguns clubes do Strava que estou acompanhando. Porém, a estrutura do Strava só divulga as ultimas 200 ultimas atividades registradas nos clubes, o que limita o desenvolvimento do mapa para períodos anteriores a criação do site (set/2017). Além disso, a quantidade de atletas que ingressam nos clubes não reflete a quantidade de atletas em uma localidade, já que a participação do atleta em clubes é opcional.

Como os meus dados serão manipulados?

Os dados coletados e armazenados são manipulados de forma automática e utilizados apenas para fins estatísticos e de composição do mapa. Tanto o mapa quanto as estatísticas não fazem nenhuma correlação com o atleta que criou a atividade. Em nenhuma hipótese, os dados aqui armazenados serão compartilhados ou vendidos.

Em nenhuma hipótese, os dados aqui armazenados serão compartilhados ou vendidos. Toda as informações geradas aqui (mapas e gráficos) são de divulgação pública. O uso das informações é permitido desde que o autor do trabalho seja notificado via e-mail no endereço amorim@rafaelamorim.com.br e que receba o devido crédito.

Como faço para doar minhas atividades?

Para iniciar o processo, clique no botão “Adicionar minhas atividades ao mapa” na lateral do site e siga as instruções que aparecerão. Inicialmente serão importados ao mapa as suas últimas 200 atividades. Periodicamente será executado um comando para importar ao mapa as suas novas atividades.

Obrigado pela colaboração!

Uma solução para o NavSincro Lite

Dia desses recebi um pedido de um amigo para ver se havia atualização no GPS dele, um NavCity Way 40.

Navcity_way40
Fonte: NavCity

Encontrei no site do fabricante a informação de que poderia atualizar o aparelho após baixar e instalar um aplicativo. O site é o http://www.navcity.com.br/navsincro.php. Mas link para download não funciona. Depois de pesquisar, descobri que o download do aplicativo teria que ser feito pelo site http://www.hunteradar.com.br/site/downloads.php.

Depois de baixado e instalado, começam as dores de cabeça. O programa abre e na sequencia, fecha. Achei que era versão do windows (Windows 10 64 bits). Tentei no Windows Vista (sim, tenho ele rodando em um pc velho). Mesmo erro. Culpei o Windows 10 por ser novo e o Windows Vista por ser o Vista. Em modo de compatibilidade em ambos os sistemas, o programa exibiu o mesmo comportamento.

Nesse meio tempo encontrei vários usuários com o mesmo problema, mas sem nenhuma ideia de solução. Nem via reclame aqui o fabricante deu uma solução. E são umas quantas reclamações.

Hoje instalei o aplicativo no PC do trabalho, que roda Windows 7 32 bits. O programa abre e fecha. Via modo de compatibilidade, desci a versão do Windows até o windows 95. Nada. Fui no diretório da instalação do aplicativo e encontrei no arquivo chamado debug.txt informações sobre o problema. E por tabela a “solução”. E essa “solução” serve para todas as versões do GPS que usam o NavSincro Lite: Way 30, Way 40, Way 45, Way 55, Way 75, NC750, NC550, NC540, NC450, NC440, NC500, NC430, NC350, NC300, NAV 400 e NAV 430.

A solução é simples: COMPRE OUTRO APARELHO OU COMPRE OUTRO APLICATIVO PARA O APARELHO. Segundo li, é possível instalar o iGO no WAY 40, mas como esse aparelho não é meu tenho que ver com o dono o que será feito. Nos outros modelos eu não sei.

A explicação:

----------------------------------------
 INÍCIO DO LOG - Atualizador da base de radares
 =============
 Hora: 18/12/2015 XX:XX:XX
 Versão do Sistema Operacional: Microsoft Windows NT 6.1.7601 Service Pack 1
 Versão do .NET Framework: 2.0.50727.5485
 ----------------------------------------

Verificando versões dos aplicativos...
 Url de versões sendo acessadas: http://www.servdados.net/atualizador/versaoNavSincroLite.txt
 Stream de versões NULL. Falha.

Tentei acessar via browser esse link, sem sucesso. Tentei acessar o raiz do site (www.servdados.net), sem sucesso também. Via Whois. Os DNS apontam para tgssolucoes.com.br que também está fora do ar.

E é isso. Se algum dia o sistema voltar a vida, aviso por aqui.