Archive for Março, 2009

Hora do Planeta

Sábado, Março 28th, 2009

Somos nós que decidimos se queremos ou não cuidar do planeta. Se a ideia for popular, então até os senhores com muito dinheiro se interessam. Porque se há “procura”, há “oferta”.

Vamos então pensar nisto a sério, e cuidar do planeta. E não, não temos de abdicar de nada no processo. Até podemos viver bem melhor! Tenho um post long due sobre isto que tenho de publicar.

Até lá, sejam biopositivos!

OPC - OLE (Open?!) Process Control

Segunda-feira, Março 9th, 2009

In my industrial meanderings, I’ve been using some I/O modules for wich I write device drivers (for my data layer abstraction). One of these involves the OPC protocol (OLE for Process Control). It’s actually a pretty good ideia (badly implemented).

The ideia is that all data devices should be easily accessible by a standard communications protocol. There’s the ideia of an OPC server, an application that connects to the devices and exposes their data on the OPC protocol. Then, an OPC client connects to these servers and reads/writes on those devices. The problem is that they based OPC on a Microsoft-only (thus Windows-only) technology, DCOM. DCOM has a history of being difficult and picky to configure remote access and, because of this, almost nobody goes to the length (and risk) of configuring a system remotely (permissions problems, etc), and clients and servers are usually run on the same machine (defeating half the purpose).

Still, the ideia is too good to let go, and there are OPC servers for almost everything on the market. Getting OPC to work was one of my first projects at work, but since I write almost everything in Java (so that it runs on Windows, Mac and Linux) I had to find a way to get access to OPC from Java.

Back then, I developed a small TCP/IP proxy, socket-based, with a simple ASCII protocol, on Visual Basic (using the native OPC DLL). It not only brought along the lost OPC purpose (distributed access), but I could have access from just about anything (Java, Ruby…). Still, it was slow, configuration was local, and it did not implement all of the OPC protocol.

Later, I found almost exactly what I was looking for: a couple of companies were proposing JNI-based Java wrapper libraries, giving access to OPC. The problem: they cost as much as the OPC server (about 600 Euro) and, just like the server, I had to purchase one library license for each deployment.

I never understood this business model; I would hapilly buy the library once and deploy to my hearts content, as this would probably be cheaper than developing the library myself (I do this with JFreeChart, for example). But if I have to pay for every deployment this is simply not economical, since with the money of 2 or 3 deployments I was definitely able to develop the library from scratch. I was seriously thinking of developing the library myself and selling it with JFreeChart’s business model (I had no competition anyway), until I found JEasyOPC.

Antonin Fisher developed an OPC wrapper library based on JNI (and Delphi) and offered it with a LGPL license. I’m testing the library now and it seems to perform very well on Java 5. It crashes on Java 6 though (apparently due to multithreaded issues).

If Antonin ever gets around to fix this issue on Java 6, we’ll have a winner! :)

Tempos medievais

Quinta-feira, Março 5th, 2009

Fui dar uma vista de olhos a um jogo de browser, online, que uns meus colegas de trabalho têm andado a jogar. Chama-se Tribos (ou Tribal Wars em inglês) e está em http://tribos.com.pt.

A ideia é engraçada, nada de novo claro, mas o facto de ser online e de ser de evolução relativamente lenta torna o jogo interessante. Podemos dar uma voltinha pela nossa aldeia todos os dias à noite e manter aquilo a evoluir.

A maior parte das pessoas pensa em atacar os vizinhos para ganhar supremacia na sua área, mas eu (só para ser do contra) estou a assumir uma postura altamente defensiva (treino muitas tropas de defesa, tenho muralhas gigantes, e ajudo o pessoal a defender-se). Há uma aldeia mesmo pertinho da minha que já me atacou várias vezes e não respondia aos meus pedidos de paz:

Senhor(a),

Os meus mensageiros não me trouxeram boas novas no regresso. Aliás, não trouxeram novas nenhumas de vossa parte. Se estes mensageiros não retornarem com uma mensagem de paz, vou assumir esse facto como um acto hostil.

Sinceramente prefiro ter amigos a ter inimigos, pelo que rogo que respondeis pacificamente a esta missiva. A vossa aldeia está muito mal vista pelo meu povo (e pelo povo dos nossos amigos e aliados), mas ainda estamos a tempo de podermos viver pacificamente e com objectivos semelhantes.

Apesar de sermos pacíficos e defensivos, não responderei pelo meu Mestre de Armas se esta situação se mantiver por mais algum tempo.

Paz!

O povo de Albergaria da Serra

Tive de atacar a aldeia (por motivos de defesa própria, claro). Vamos a ver se o jogo premeia esta estratégia ou a castiga! :)

O jogo faz-me lembrar vagamente o The Settlers, que adorava e jogava horas a fio no meu Amiga 4000T, com um amigo meu. A velocidade de evolução das coisas era obviamente mais rápida no The Settlers (cada jogo demorava 1-3 horas), mas mantinha-se muito lenta em relação a outros RTS (como por exemplo o Dune 2 - Battle for Arrakis, um dos primeiros RTS).

Depois de jogar um bocadinho, fiquei a pensar em como seria interessante mesclar um jogo destes com uma engine 3D em tempo real. Uma coisa tipo Tribos, mas com o mundo modelado em 3D estilo MMORPG. O jogador poderia a qualquer momento encarnar o seu Paladino e passear-se pelo mundo. As batalhas, ao invés de serem resolvidas instantâneamente (como são no Tribos), seriam mais tipo The Settlers (demoravam alguns minutos) e poderiamos utilizar o Paladino para ajudar os nosso guerreiros (e talvez procurar o Paladino do oponente e dar-lhe uma sova… ou não). Claro que nada nos deveria impedir de passearmos pelo mundo, ver a nossa aldeia a crescer perante as nossas ordens (tipo The Settlers), viajar a cavalo pelas paisagens e florestas do mundo (tipo Zelda), etc.

A propósito do Tribos, lançaram hoje o Mundo 8, caso alguém queira experimentar.