Saltar para o conteúdo

Programando na Madrugada

Processing Labs: Game Of Life

Comecei a estudar processing. Processing é uma linguagem de programação para trabalhar com visualização de dados. Processing.js é um porte da linguagem para Javascript. Como primeiro experimento, o famoso Game of Life: int sx, sy; float density = 0.5; int[][][] world; void setup() { size(100, 100); frameRate(15); sx = width; sy = height; world = new int[sx][sy][2]; stroke(255); // Set random cells to 'on' for (int i = 0; i < sx * sy * density; i++) { world[(int) random(sx)][(int) random(sy)][1] = 1; } } void draw() { background(0); // Drawing and update cycle for (int x = 0; x < sx; x = x + 1) { for (int y = 0; y < sy; y = y + 1) { if ((world[x][y][1] == 1) || (world[x][y][1] == 0 && world[x][y][0] == 1)) { world[x][y][0] = 1; point(x, y); } if (world[x][y][1] == -1) { world[x][y][0] = 0; } world[x][y][1] = 0; } } // Birth and death cycle for (int x = 0; x < sx; x = x + 1) { for (int y = 0; y < sy; y = y + 1) { int count = neighbors(x, y); if (count == 3 && world[x][y][0] == 0) { world[x][y][1] = 1; } if ((count < 2 || count > 3) && world[x][y][0] == 1) { world[x][y][1] = -1; } } } } // Count the number of adjacent cells 'on' int neighbors(int x, int y) { return world[(x + 1) % sx][y][0] + world[x][(y + 1) % sy][0] + world[(x + sx - 1) % sx][y][0] + world[x][(y + sy - 1) % sy][0] + world[(x + 1) % sx][(y + 1) % sy][0] + world[(x + sx - 1) % sx][(y + 1) % sy][0] + world[(x + sx - 1) % sx][(y + sy - 1) % sy][0] + world[(x + 1) % sx][(y + sy - 1) % sy][0]; }

Ler mais →

25 de maio de 2010

Webcam Life Log

O Webcam Life Log é um utilitário que tira fotos com a webcam, em um intervalo de tempo definido. Desenvolvi ele utilizando o Adobe AIR. Para instalar, basta clicar na imagem abaixo. Please upgrade your Flash Player This is the content that would be shown if the user does not have Flash Player 6.0.65 or higher installed. // version 9.0.115 or greater is required for launching AIR apps. var so = new SWFObject("http://webcamlifelog.googlecode.com/svn/wiki/AIRInstallBadge.swf", "", "215", "180", "9.0.115", "#000000"); so.useExpressInstall("http://webcamlifelog.googlecode.com/svn/wiki/expressinstall.swf"); so.addVariable("airversion", "1.5.3"); so.addVariable("appname", "Webcam%20Life%20Log"); so.addVariable("appurl", "http://webcamlifelog.googlecode.com/files/WebCamLifeLog.air"); so.addVariable("appid", "com.luizpicanco.WebCamLifeLog"); so.addVariable("appversion", "0.1"); so.write("flashcontent"); Screenshot: Webcam Life Log screenshot

Ler mais →

23 de maio de 2010

SessionScope e FlushAction no Castle ActiveRecord

O Castle ActiveRecord é uma implementação do padrão homônimo feita em cima nHibernate. Um ORM bastante conhecido no mundo Java. Apesar de alguns comportamentos serem realizados pelo nHibernate, estarei aqui citando o ActiveRecord como responsável por tais comportamentos. Um problema muito comum que eu costumo me deparar, é com a utilização de lazy loading no ActiveRecord. Geralmente na utilização de lazy loading em aplicações web, é utilizado o padrão Session per Request para o SessionScope. Só que por padrão, o ActiveRecord persiste automaticamente (em algumas situações) as entidades, mesmo que seus métodos Save ou Update não tenham sido invocados. Isso costuma gerar uma série de problemas, como por exemplo, entidades com o seu estado interno inválido sendo persistido.

Ler mais →

9 de abril de 2010

O Gênesis em Java

No início, a terra era sem forma e vazia Então Deus criou o Java e viu que era bom Com o Java ele levou 6 dias para escrever o código-fonte do universo No 7º dia ele botou para compilar e foi descansar E assim, tudo teve início Powered by Java HotSpot Virtual Machine 6.0

Ler mais →

24 de fevereiro de 2010

Erro ao utilizar o mysql no ruby: LIBMYSQL.dll is missing

Um erro muito comum que costuma acontecer no ruby/rails, em ambiente windows é: “LIBMYSQL.dll is missing from your computer” erro E a mensagem também pode aparecer no console da seguinte forma: ruby.exe - Unable to locate Component This application has failed to start because LIBMYSQL.DLL was not found. Re-installing the application might fix this problem. Esse erro ocorre porque a dll do mysql, LIBMYSQL.dll, não foi localizada. Para resolver esse problema, faça o seguinte:

Ler mais →

21 de fevereiro de 2010

The Social Media Revolution

We no longer search for the news, the news find us… Are you ready ? UPDATE: 08/05/2010 Versão 2.0:

Ler mais →

25 de agosto de 2009

Obtendo as Properties pela ordem de declaração no C#

Em alguns momentos, pode ser necessário obter a lista de properties de um objeto. Um jeito simples de fazer isso é: private IEnumerable<PropertyInfo> GetProperties(Type type) { return type.GetProperties(); } O problema é que, segundo a Microsoft, a ordem em que as properties são retornadas não é garantido:

Ler mais →

18 de agosto de 2009

Jamais compre um notebook HP !!!

Eu fui proprietário de um notebook HP, modelo tx1070br, que parou de funcionar de forma repentina. Pesquisando nos fóruns, qual não foi a minha surpresa ao constatar que CENTENAS de pessoas tiveram o mesmo problema ? Em quase todos os casos, para não generalizar, a HP ignorou o caso e como a maioria dos problemas “estranhamente” ocorreram logo após o término de garantia, cobrou pelo serviço. Algumas pessoas pagaram e logo após receberem o notebook de volta(após 2 meses), o notebook apresentou o mesmo problema.

Ler mais →

2 de julho de 2009

Erro na instalação de uma Ruby Gem: no such file to load -- mkmf

Se ao instalar uma gem você se deparou com esse erro: Building native extensions. This could take a while... ERROR: While executing gem ... (Gem::Installer::ExtensionBuildError) ERROR: Failed to build gem native extension. ruby extconf.rb install mechanize extconf.rb:1:in `require': no such file to load -- mkmf (LoadError) from extconf.rb:1

Ler mais →

6 de maio de 2009

Guia rápido do Grails

É bom ver a comunidade Grails crescendo no Brasil. O Henrique Weissmann produziu esse ótimo guia sobre o Grails. O guia está divido da seguinte forma: 1 - Introdução 2 - Como instalar o Grails 3 - Groovy - O básico para quem for aprender Grails 4 - Grails Acesse aqui: Grails: um guia rápido e indireto ë /dev/Kico

Ler mais →

26 de abril de 2009