sábado, 20 de fevereiro de 2010

Análise de Redes Sociais

OK! Esta é minha volta aos trabalhos de pesquisa que lentamento tenho tentado levar mesmo fora de um grande centro (como era meu caso - UFCG). No momento, tanto tenho alguns orientandos no FIP/SI, como tenho pesquisado por conta própria coisas relacionadas à Redes Sociais, análise dos grafos emergentes daí, e busca de informação latente nestas estruturas.

Depois de fazer um breve levantamento bibliográfico (vide: Link Prediction, Linked, Organization of Complex Systems, etc.), as idéias começaram a surgir... pena que o tempo é tão curto e eu ainda tão desorganizado. Além disso, neste momento, estou procurando ganhar experiência no uso de Python e algumas API's para implementarmos um portal acadêmico (e experimental) onde poderemos coletar dados mais "nossos", e podermos chegar a conclusões mais interessantes para a nossa comunidade.

Por que Pyhton? Bom... em primeira instância estou me sentindo um dinossauro por ser fluente em apenas uma tecnologia. Depois, gostei muito de Django e da facilidade que é colocar algo para rodar rapidamente. Como nosso intuído é mais experimental, nos preocuparemos com escala depois (além de já saber que o povo de Python já se preocupa com isso). Por fim, encontramos o Pinax, que é um conjunto de aplicações Django, reunidas de forma a facilitar a montagem de portais, tendo como exemplo base o Cloud27 que é exatamento uma rede social.

No mais, o meu objetivo atual é integrar alguma biblioteca de grafos na parte do Pinax que lida com usuários, profiles, tribos, mensagens, etc. para depois implementar alguns algoritmos para análise.

quarta-feira, 13 de janeiro de 2010

O paradigma da computação

Ainda estudante de graduação, me pegava pensando sobre a finalidade da minha formação como Bacharel em Ciência da Computação. Hoje, trabalhando com Sistemas de Informação a pergunta ecoa novamente, principalmente quando estou desempenhando atividades de ensino. Neste meu vai e vem entre áreas, e entre um livro e outro, acabei me deparando com este pequeno artigo da revista Communications (da ACM - pena que é material reservado a assinantes). Abaixo buscarei ressaltar alguns pontos que achei interessantes.

O texto começa lembrando dos debates que ainda existem sobre em qual paradigma a computação deve ser enquadrada: ciência, engenharia ou matemática. Obviamente que isto não impediu a necessária criação dos vários cursos de formação hoje existentes em sub-área particulares. Fiquei com a impressão de que esta definição de paradigmas envolve questões mais políticas e filosóficas, o que permite o andar da carruagem. O autor cita algumas tentativas de unificação das três áreas, buscando a definição de um paradigma próprio da computação sendo estes:
  1. "Processos da Informação" de meados da década de 1960;
  2. "Programação: a arte de criar processos da informação" do fim da mesma década (visão de personalidades como Knuth e Dijkstra;
  3. "Automação de processos da informação" de meados da década de 1970.
Esta discussão foi levada a comitês (incluindo na ACM) com expansão da área na década de 1980 e no final do século (até hoje eu diria) parecia que o termo TIC - Tecnologia da Informação e Comunicação - havia por fim fechado a definição da área. Porém a coisa se voltou muito ao mundo do hardware e a definição de um paradigma para a computação nos tempos atuais exigem "migrar a atenção de volta aos processos da informação". Além disso, o novo framework de princípios (que me parece ter sido definido pelo autor) considera ciência, matemática e engenharia como motores igualmente importantes para a computação; argumentando ainda que esta deve ser considerada o quarto grande domínio da ciência, ao lado da física, biologia e ciências sociais.

Por fim, a distinção mais interessante que o autor traça entre "os motores" da computação, e esta própria, é que os primeiros se posicionam do lado de fora dos universos estudados, ou seja, como observadores. Já a computação é mais insider no sentido de "representar os processos da informação como expressões que 'realizam trabalho'", ou seja, não apenas representam algo para o observador, mas também são geradoras de ações, que podem inclusive ser auto-referenciáveis. Estas duas características abrem um leque de possibilidades poderoso, como é o caso dos estudos sobre a computabilidade (e.g. problema da parada) baseados em muita matemática de personagens como Turing e Gödel.

Confesso que não procurei pensar além dos conceitos do autor, apenas adicionei pitadas de coisas que já tenho na cabeça. Talvez o leitor possa comentar e ajudar a expandir os meus horizontes.

Abraços.

PS.: O mais interessante foi que acabei de ler hoje mesmo o livro "Um louco sonha a Máquina Universal - Janne Levin - Companhia das Letras", sobre o qual prometo lincar depois meus comentários.

terça-feira, 8 de dezembro de 2009

O oráculo e o sol!

Além de este post estar ressuscitando este blog criado há algumas eras, escrevo-o para comentar algumas impressões que tive depois de participar do primeiro dia do SunTechDays 2009-2010!

A primeira coisa é: tenho orgulho de ser quem eu sou e vir de onde vim! Putz... Ou não se fazem mais geeks como antigamente, ou essa galera daqui não sabe onde está! Um evento muito bem estruturado como este, com intervalos ao som de Rock, e a galerinha não se agita, não vibra com a entrada de James Gosling, nem entende as piadas nerds dos palestrantes do mais alto nível. Ou eu entendi errado, ou tá faltando o gingado do forró por aqui! Estou feliz por saber que estou acompanhando o nível do evento, e por ser um paraíba da UFCG e das FIP!

Um segundo ponto é: Estou triste pela SUN... Estou triste pela incerteza atual em relação a esta fantástica fábrica de idéias... Hoje me peguei comparando-a com um artista desses geniais, que "faziam o inferno" mas morreram de fome, ou não conseguiram se manter (como foi o caso). No mínimo não se sabe o futuro de ferramentas incríveis como o MySQL e Netbeans, tendo a Oracle investimentos em outros SGBDs e no Eclipse. Na média, o clima da empresa já é outro e cabeças pensantes, desenvolvedoras de ideias, estão confusas e improdutivas! As ferramentas que se vê em cada estande são de um nível altíssimo. Bastando citar os três tracks que estruturaram o evento:
  1. Java e Desktop
  2. JEE e Software Corporativo
  3. OpenSolaris e seu ZFS
Por fim, a impressão do momento é que o SunTechDay é um evento de 70% venda de idéias e de comunidade, e claro, 30% de venda de produtos diretamente. Acredito que estou numa posição confortável por aqui: de um lado, tudo que vejo me dispara inúmeras idéias para a sala de aula e para orientações de pesquisa; por outro, tenho contato com as tecnologias que farão de minha empresa algo mais e melhor.

No mais, até amanhã... E não esqueçam de sintonizar em @nigini!

domingo, 18 de novembro de 2007

Google, Sun e o mundo mobile!

Sem dúvida é por aqui que vamos...

Várias são as linhas de evolução tecnológica que mostram que em alguns anos todos andaremos comandando nossos negócios com aparelhos de bolso e com alta capacidade de interação. O mundo está evoluindo para um boom de computação mobile + web 2.0!!!

Quantos de vocês já perceberam que a maior parte do tempo que passamos nos desktops hoje está baseada num navegador Web? Claro, existem os que passam uma boa parte nos seus IDEs favoritos, mas esta população precisa enxergar outras mudanças no mundo da TI que não vêm ao caso. Já outros passam bem nos seus jogos favoritos, estes sim ainda precisarão de suas placas aceleradoras de 256Mb (apesar de já existirem empresas como a EA trabalhando numa linha de entretenimento para handsets).

As últimas novidades deste mundo estão ligadas ao lançamento da Google à frente de um consórcio desenvolvedor de tecnologia mobile. Chama-se Android (vide http://www.openhandsetalliance.com/) e consiste em uma pilha de aplicativos que busca facilitar homogeneizar os sistemas destes aparelhos (vide http://code.google.com/android/what-is-android.html).

Jonathan Schwartz (CEO e presidente da SUN) escreveu em seu blog, "o Android é um sistema Linux/Java", e essa declaração tem rendido muito bate-papo na rede. O que acontece é que o Android não utiliza a JVM da SUN em seu aparelho, mas sim uma outra implementação denominada Dalvik, dita mais eficiente para este tipo de plataforma. Ela é capaz de executar código Java através de uma conversão do .class para .dex (Dalvik Executable). Mas como grande parte das aplicações da pilha são JAVA, não vejo porque a negação da existência desta tecnologia no Android. Pelo que lembro, a JVM é uma especificação e sempre pôde ser reimplementada.

O que tem preocupado a comunidade é o particionamento da tecnologia, neste caso "Sun-JME x Android-Dalvik", principalmente porque ambas são open source e podem ser melhoradas por qualquer um. Tudo bem que uma fragmentação não é coisa simples, pois cria a necessidade de plataformas compatíveis, mas como estamos falando de um jogo de gigantes, empresas que possuem suas próprias plataformas e sistemas operacionais podem complicar a situação.

O importante é perceber a tendência de mercado direcionada ao mundo de tecnologias móveis e estar sintonizado nos próximos passos.

Abraços.