21 de Maio de 2008

Email e dados sensíveis

Hoje eu criei uma página nova aqui no blog contendo informação para pessoas que me mandam emails enganados. Como disse na página, isso é cada vez mais comum, tanto que resolvi escrever aquela página.

Mas o que mais me incomoda é que vira e mexe me mandam informações sensíveis assim, do nada (e eu até acabo passando alguns emails assim mesmo, com dados de acesso para um servidor ou outro). O interessante é que esse tipo de situação poderia ser evitado melhorando o email, ou detonando a tecnologia atual de email e começando uma nova. Sei lá, eu sei que esse lance é meio ideal mesmo, mas seria ótimo se pudéssemos usar chaves privadas e públicas para envio e recebimento de email. Ia ser legal e pouparia muitas dores de cabeça (e scams, phishing etc).

Eu ainda acho que deveria ser necessário um pouco de conhecimento para poder usar as ferramentas, sejam elas carros, computadores, fogões ou qualquer outra coisa… Oh vida. :P

Comentários Comentários | Categorias: Pessoal | Autor: Renato Trovão




18 de Maio de 2008

Ê nostalgia…

Acabei de voltar da missa na paróquia Santa Catarina de Labouré lembrando dos velhos tempos…

Acontece que neste fim de semana ocorreu um encontrão de jovens ali na paróquia e, aparentemente, a missa das 19:30 foi também a missa de encerramento do encontrão (e, para completar, hoje também é a missa da Santíssima Trindade). Como era de se esperar, ao final da missa, os jovens da comunidade fizeram sua festa característica e ouvi músicas como “Ontem de manhã” (faz, pelo menos, seis anos que eu não ouvia qualquer menção dessa música), “Seu amor é demais” e “Louvado seja o meu Senhor”. Esta última, provavelmente a primeira música da Igreja que eu aprendi a tocar.

Quando começaram a dedilhar as primeiras notas de “Ontem de manhã”, pensei “nó, será que é essa música mês?” (o sotaque mineiro se apoderou de mim) e fui remetido aos tempos do encontro de adolescentes e lembrei das panelinhas e os conflitos vividos naquela época (acredite-me, foram muitos). O interessante é que eu nunca havia feito a ligação entre um pedaço de um verso da música (”Jesus Cristo, super astro”) e a obra de Andrew Loyd Weber, Jesus Christ Superstar. Claro que não tem nada a ver, mas não pude deixar de relacionar essas duas coisas.

O legal disso tudo é que, ouvindo alguns animados (e desafinados) tomarem o microfone para cantar “por todas as suas criaturas” etc. me relembrou da esperança em Deus às vezes bombardeada devido à aridez religiosa dos meios onde normalmente me encontro. Foi legal ver essa animação mais uma vez, tanto que até deu vontade de estar ali no meio da bagunça. Oh vida…

Mas, quer saber? Isso não é nostalgia no sentido estrito da palavra, só uma boa lembrança (se você não sabe a diferença, procure no dicionário :D). Afinal, ainda estou curtindo bastante as coisas e, se Deus quiser, vou passar o resto da vida gostando de jogar videogame e ficando à toa com os amigos. O problema é que isso está se tornando cada vez menos freqüente. Mas isso é uma questão de “consertar” a vida hoje e não em ficar evocando o passado. :P

Ficam, então, as sábias palavras do pessoal da vila do seu Barriga: “Se você é jovem ainda, amanhã velho será. A menos que o coração sustente a juventude que nunca morrerá”.

PS: Tinha nada pra fazer sábado à noite e ouvi o workshop “How to make yourself do anything”. Apesar de ser auto-ajuda, foi bem legal e foi gratuito. No final o camarada propôs a venda de uns outros kits dele (nem injeção na testa é gratuita, né?), aí eu já não ouvi mais. Mas não perdi aquelas duas horas e meia. Se estiver de bobeira, dê uma ouvida (principalmente se você tiver problemas com: lack of focus; procrastination, perfeccionism, and other self-sabotage; not knowing what to choose as a goal in the first place). “Nothing happens without a deadline”.

Comentários Comentários | Categorias: Igreja, Pessoal | Autor: Renato Trovão




9 de Abril de 2008

open: a nice script?

É, eu sei, eu não gosto de textos em inglês em canais de informação em Português, mas como escrevi o post abaixo para o fórum do dropline GNOME e estou morrendo de preguiça de passá-lo para o Português, vai em inglês mesmo. Quem usa a linha de comando do Linux e possui o GNOME instalado pode gostar. O resto, melhor ignorar mesmo ;)

Some time ago I bought a macbook (I didn’t want my money to go to MS, then I preferred to “give” it to Apple) and started to use Mac OS X to see if it was as good as people said. I found out that although it is a nice OS, I still preferred Linux (slackware) + GNOME, then I installed slackware + DLG on the macbook and now I rarely boot into OSX.

While I was using that thing, I got used to the “open” command line application. Its behavior is quite simple, you type “open ” then it would figure out what was the filetype associated to that file and the default application that was supposed to open that file. Then, it would simply open the file inside that application.

Every now and then, when I was working with the command line (which tends to be VERY frequent), I remembered that the “open” command didn’t exist (at least by default) in Linux and got frustrated. I even looked for similar tools, but wasn’t able to find one. Knowing that programs like Nautilus already implemented such behavior, it was clear that it should be available to the rest of the GNOME desktop.

Well, I was lucky, as gnomevfs implemented everything I needed to create my own “open” command. The only hard part was to figure out what the functions did, since they were mostly undocumented.

I don’t know if anybody is interested in such an application, but since I wrote mine (in a quick, dirty and undocumented way) and found it useful, I thought that it would be nice to share it. If you want to take a look at it, please check http://dlg64.redos.si/trac/browser/open/trunk/open, download it to your PC, make it executable and run it.

Comentários 1 Comentário | Categorias: GNOME, Linux, Software, Software Livre | Autor: Renato Trovão




8 de Abril de 2008

Considerações sobre o artigo "RTSCup Project: Challenges and Benchmarks"

O artigo "RTSCup Project: Challenges and Benchmarks", apresentado no SBGAMES 2007 [1], apresenta o projeto RTSCup, um simulador de jogos RTS.

O artigo inicia dizendo que existe uma “moda” em usar ambientes de simulação como benchmarks que habilitam a avaliação desses sistemas em diferentes cenários de testes. O RTSCup, por sua vez, se encaixa nesse grupo de ferramentas para avaliação de diversas técnicas de inteligência artificial para implementação de times como sistemas multiagentes.

Após isso, o artigo justifica o uso de RTS como sistemas multiagentes por serem atraentes do ponto de vista da inteligência artificial, principalmente por que o time deve considerar:

  • O ambiente do jogo;
  • A limitação de percepção dos jogadores através da neblina de guerra;
  • Raciocínio sobre personagens com diferentes funções.

Além disso:

  • cada agente possui informação incompleta sobre o problema;
  • não existe um sistema de controle global;
  • os dados são descentralizados;
  • a computação é assíncrona

No artigo também é citado que o uso de benchmarks não é recomendado para avaliação de sistemas de múltiplos agentes, mas justifica o uso de simuladores de RTS como úteis para avaliação de técnicas de IA e novos algoritmos. Também comenta sobre a competição RoboCup Rescue.

Sobre as vantagens do uso de RTS como benchmarks, se destacam a necessidade de uma inteligência capaz de encontrar caminhos, patrulhar, alocar recursos, prever ações, coordenar tarefas e o processo de tomada de decisões táticas e estratégicas.

Depois, o artigo apresenta os simuladores e competições principais, avalia seus pontos fortes e fracos e, com isso, justifica a criação do projeto RTSCup como alternativa aos existentes.

A partir daí, é apresentado o projeto, sua arquitetura e tudo o mais. São apresentados os diversos simuladores comuns a jogos RTS. Apesar de o artigo dizer que todos os times em um jogo RTS possuem uma religião, isso não é bem verdade, pois em jogos como Command & Conquer, esse fator não está presente.

A arquitetura do RTSCup parece ser interessante e flexível e, provavelmente, é escalável, constituindo um bom projeto. Da maneira como foi implementado, os clientes podem ser escritos em qualquer linguagem, dando grande flexibilidade aos pesquisadores. Os jogos também possuem características parametrizadas, facilitando a criação de novos ambientes de simulação.

Perguntas sem respostas

  • Apesar de apresentar deméritos dos outros sistemas de RTS, esse artigo não apresenta quão bem o RTSCup se compara aos outros;
  • O artigo fala muito pouco sobre como o RTSCup pode ser usado e fala pouco sobre sua interface de programação;
  • Também não deixa claro qual o nível de granularidade usado para programar um agente do ambiente.

Link para o artigo.

Notas

[1] O SBGAMES é um simpósio brasileiro e os autores do artigo também são. Ainda assim, o artigo foi escrito em um “inglês” que poderia ser melhor escrito do que efetivamente foi. Isso prejudicou em muito minha leitura, pois ela não fluiu de maneira suave - outro artigo que sofre do mesmo problema é o “RTSAI: a game tool for IA research”, que terminarei de ler caso tenha paciência para suportá-lo :-)

Comentários Comentários | Categorias: mestrado, papers | Autor: Renato Trovão




19 de Março de 2008

Resenha sobre o artigo "An integrated token-based algorithm for scalable coordination"

Em "An integrated token-based algorithm for scalable coordination", Yang Xu e equipe tratam um problema de coordenação em ambientes multiagentes. Sua motivação é de que os algoritmos do estado da arte atuais não são acapazes de alcançar uma coordenação efetiva e eficiente quando os grupos são grandes. A idéia deles é a de usar tokens para encapsular qualquer coisa que precise ser compartilhada pelo time, incluindo informações, tarefas e recursos.

Segundo resultados apresentados, o algoritmo proposto consegue coordenar um grande número de agentes diferentes de maneira integrada e escalável. Para isso, eles usaram três idéias:

  • Encapsular todas as interações de coordenação, inclusive informações, tarefas e recursos compartilhados, em tokens;
  • Os agentes usam modelos locais de decisão para determinar quando e como passar os tokens (para isso eles modelam um processo de decisão de Markov parcialmente observável);
  • Usar toda a informação disponível para a criação de modelos do time, especificamente usando o movimento de um token para informar o movimento de outros tokens.

Para resolver o problema de coordenação em larga escala, os pesquisadores usaram uma “rede de conhecidos” (um agente conhece apenas poucos agentes e suas interações de tokens se darão entre estes e esse). Também apresentam o algoritmo desenvolvido para modelagem do raciocínio dos agentes, fazem referências à matemática usada por eles e apresentam os resultados experimentais.

Link para o artigo

Comentários Comentários | Categorias: mestrado, papers | Autor: Renato Trovão




Considerações sobre o artigo "Agent architecture considerations for real-time planning in games"

Este artigo, escrito por Jeff Orkin, um dos responsáveis pela inteligência artificial do jogo F.E.A.R. apresenta em alto nível a arquitetura de inteligência artificial usada em F.E.A.R. A motivação principal para o artigo é a de apresentar o planejamento de ações em tempo real como uma alternativa para as técnicas mais comuns de descrição de comportamento de NPCs (personagens não jogáveis), como máquinas de estados finitos e scripts.

Além de possuir algumas referências interessantes que aumentam a base de conhecimento em planejamento de personagens, Orkin discute as considerações que devem ser feitas quando se projeta NPCs que planejam em tempo real. Todas as considerações são feitas baseadas nas experiências vividas no desenvolvimento do jogo.

Alguns resultados interessantes foram obtidos, como em situações do jogo, membros de um esquadrão preferirão atender a um objetivo de prioridade mais alta que tentar responder ao chamado do esquadrão. Como exemplo, um NPC preferirá correr de uma granada prestes a explodir para salvar sua vida a mander a formação para cobrir um aliado.

De uma maneira geral, a arquitetura dos agentes é composta de um “quadro negro” (que eu ainda não sei o que é), sua memória, um conjunto de subsistemas e alguns sensores. Os sensores são arquiteturados tanto como dirigidos por eventos quanto usando polling. Dependendo da aplicação.

Para computação, o planejador de tarefas usa sensores para amortizar o custo de operações computacionais caras por muitos quadros e armazenas os resultados na memória corrente. Orkin também discute os erros cometidos durante o projeto do jogo e a implementação corrente.

Além de distribuir o processamento, os agentes realizam cache das computações como fatos na memória para evitar que computações caras sejam repetidas de maneira desnecessária.

Além disso, os agentes são modelados com valores de confiança para poder ponderar sobre os fatos, possuem conhecimento centralizado, coleta de lixo de memória, usam planejamento usando o algoritmo A*, discutem sobre as dependências entre ações que os agentes podem executar para que seu raciocínio seja correto e apresenta exemplos de como os agentes refazem seu planejamento.

Link para o artigo.

Comentários Comentários | Categorias: mestrado, papers | Autor: Renato Trovão




Bad Behavior has blocked 144 access attempts in the last 7 days.