É possível fazer análise de big data com MySQL?

Sim. Na realidade, o MySQL já é usado na análise de big data (ou megadados) — tanto quanto o PostgreSQL.
No caso do MySQL, as estruturas InnoDB organizadas em índices oferecem vantagens para as atividades de análise de megadados — boa estrutura name-value-pair (ou par-valor-nome), que é mais útil para análise do que os índices secundários.
Para fazer análises de big data, você passa por processo semelhante ao que passaria usando o Hadoop, por exemplo:

  • organizar preliminarmente os dados
  • criar estruturas otimizadas especificametne para a sua análise
  • criar a estrutura de busca

Com um grande “parque de máquinas”, é desejável paralelizar o processo e usar scripts de análise que o façam localmente, em cada instância — com um subprocesso de agregação dos resultados ao final.
Se for usar o Hadoop de forma mais tradicional sobre dados desestruturados, use o MySQL para armazenar os resultados agregados pelo Hadoop.

Soluções de análise de big data com o MySQL

De maneira geral, há 2 maneiras de realizar a análise de megadados no MySQL:

  • O MySQL pode ser usado em conjunto com um sistema mais tradicional para lidar com big data — como o Hadoop.
    Grandes quantidades de dados podem ser armazenados em HDFS e processados com o Hadoop — com o resultado armazenado no MySQL, para a análise.

    O HDFS (Hadoop Distributed File System) é um sistema de arquivos distribuído, que armazena dados em commodity machines oferecendo grande largura de banda para fluxo de dados em um cluster.

    Por exemplo, a métrica crua pode ser armazenada em HDFS, mas os dados agregados e sumarizados são enviados ao MySQL, onde são analisados.

  • O MySQL pode ser usado como um grande armazém de dados.
    Tipicamente, ele ficará fragmentado para suportar tal volume de dados.
    Neste caso, os mecanismos de armazenamento mais adequados são o InnoDB ou o TokuDB. Alternativamente, os mecanismos InfoBright ou InfiniDB também podem ser empregados.

Sendo o banco de dados de código aberto líder na web em aplicações baseadas na nuvem (cloud based applications), o MySQL se integra às plataformas de big data.
O uso de soluções MySQL com Hadoop é o que ajuda a resolver problemas envolvendo big data.
Referências sobre o Hadoop: http://hadoop.apache.org/docs/r1.2.1/hdfs_design.html.

Quais as grandes alterações feitas pelo Android no Linux?

O GNU/Linux de que estamos falando é o mesmo usado em 99% dos 500 computadores mais poderosos do mundo. A questão é qual a diferença entre este e aquele instalado nos nossos smartphones ou smartwatches?

Naturalmente, no curso do seu desenvolvimento, desenvolvedores do Google fizeram algumas mudanças ao kernel Linux. A quantidade de mudanças não chega a ser extremamente grande — aproximadamente 250 patches, com mais ou menos 3 Mb de diferenças em 25 mil linhas de código.

logo android and linux
As mudanças incluem uma variedade de adições ao código, algumas grandes outras pequenas.
As alterações vão da adição de todo um sistema de arquivos para mídias SSD (YAFFS2) a pequenas mudanças no sentido de aumentar a segurança no Linux (paranoid networking).

O interessante no design do Android é o quão pouco modificamos o kernel. (Robert Love, desenvolvedor do Google)

Muitos sistemas embarcados fazem mudanças drásticas no kernel Linux e quase não alteram o user-space.
No caso do Android, foi feito o mínimo de mudanças no kernel — e profundas alterações no user-space ou espaço do usuário — com o objetivo de torná-lo visualmente distante do desktop.

Um sistema operacional moderno divide a memória virtual entre o espaço do kernel e o espaço do usuário — com o intuito de proteger os dados e a funcionalidade do sistema contra falhas.
O primeiro espaço é reservado estritamente para executar as operações do kernel, suas extensões e a maioria dos seus drivers.
Do outro lado, o espaço do usuário é onde os aplicativos e alguns dos drivers rodam.
Comumente chamado “userland”, o espaço do usuário se refere a todo código executado fora cerne do sistema operacional.

Em uma lista (bem concisa) as principais alterações introduzidas no kernel GNU/Linux são as seguintes:

  • ashmem ou Android Shared Memory — um sistema de compartilhamento de memória baseado em arquivo (file-based).
  • Binder, um sistema de comunicação inter-processos (IPC) e sistema de chamada de procedimento remoto.
  • logger, um mecanismo de logging de alta velocidade, implantado no núcleo e otimizado para escrita.
  • Paranoid networking um mecanismo criado para restringir fluxo de dados na rede a determinados processos.
  • pmem — um driver para mapeamento de largas quantidades de memória física no espaço do usuário.
  • Viking Killer — em substituição ao OOM Killer. Implementa á lógica do Android de “matar os processos recentes e menos usados” em condições de memória escassa.
  • wakelocks — uma solução única do Android para gestão de energia, no qual o estado padrão do dispositivo é o modo sleep. O sistema requer uma ação explícita (através de um wakelock) para sair deste estado.
  • Os alarm timers dão suporte ao gestor de alarmes do sistema para avisar ao kernel sobre os agendamentos para “acordar o sistema”, usando um wakelock.

Além destas implementações, citam-se todos os drivers, os recursos para a arquitetura ARM e outras associadas ao código de baixo nível, necessárias para garantir o suporte do Android a ampla variedade de aparelhos.
Conte ainda os drivers acrescentados para o funcionamento do GPS, bluetooth etc em plataformas móveis.

Referência: http://elinux.org/Android_Kernel_Features#List_of_kernel_features_unique_to_Android
O Android Mainlining Project trabalha para incluir as mudanças do Android no kernel GNU/Linux.

Geeqie

Visualizador de imagens é uma ramificação de outro projeto.

Geeqie

O Geeqie é um programa para apresentar/visualizar imagens. O projeto nasceu em Março de 2008, após 3 anos de inatividade do GQview, cujo código foi aproveitado pelos desenvolvedores. Por isto, aqueles que já usavam o programa anterior (o GQview), se sentirão em casa aqui.

Sua tela inicial se divide em um navegador, onde você escolhe os arquivos que deseja visualizar, as pastas que quer abrir e uma janela, à direita, onde as imagens selecionadas são exibidas.

Profissionais ou aficcionados por fotografia podem gostar muito da velocidade e eficiência com que ele trata imagens RAW (formato que contém todos os dados da imagem tal como foi captada pelo sensor da câmera. Normalmente, estes arquivos não são comprimidos).

Entre os recursos que eu achei interessantes está a janelinha de confirmação de exclusão de um arquivo, em que o Geeqie exibe uma prévia da imagem a ser removida. Pode evitar acidentes.confirmação

Usuários do Ubuntu, podem instalá-lo facilmente através da Central de Programas do Ubuntu, que pode ser acessada do Menu de Aplicativos (Alt + F1). Pros(as) aventureiros(as), sempre tem a linha de comando:

sudo apt-get install geeqie