<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/2.5.1" -->
<rss version="0.92">
<channel>
	<title>RubyAgent</title>
	<link>http://www.rubyagent.com</link>
	<description>Ruby on Blackboard</description>
	<lastBuildDate>Wed, 09 Apr 2008 22:02:06 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Scheduling of Ruby Agents using Cron</title>
		<description>One of the main principles of agent-oriented modeling is agent's proactivness - living and acting continuously on its own. Technically, this means that the piece of code is running in a kind of loop receiving messages, acting upon them and sending out other messages. This is the heartbeat of each ...</description>
		<link>http://www.rubyagent.com/2008/02/scheduling-of-ruby-agents-using-cron/</link>
			</item>
	<item>
		<title>New Author</title>
		<description>I would like to welcome a new author, a good friend of mine, Ruby and agent-based systems fan: Viktor Zigo (viz).
His first post will be about scheduling agents.
Welcome :) </description>
		<link>http://www.rubyagent.com/2008/02/new-author/</link>
			</item>
	<item>
		<title>Pattern: Shutdown Flag</title>
		<description>Problem: An agent should consider a shutdown flag presence.

Solution: The solution is to use a modified Boolean Flag Pattern, where the flag specific operation is to break the loop for reading an n-tuple, i.e. the Agent Life Cycle pattern.


(life cycle, boolean flag and shutdown flag patterns)


loop do
  begin
  ...</description>
		<link>http://www.rubyagent.com/2007/12/pattern-shutdown-flag/</link>
			</item>
	<item>
		<title>Pattern: Boolean Flag</title>
		<description>Problem: An agent should consider a flag presence.

Solution: The solution is to set a timeout for a read or take operation, where the timeout value specifies how often a flag appearance should be checked, and if the flag is presented to perform the flag specific operation.

The Agent Life Cycle pattern ...</description>
		<link>http://www.rubyagent.com/2007/12/pattern-boolean-flag/</link>
			</item>
	<item>
		<title>Pattern: Agent Life Cycle</title>
		<description>Problem: An agent should be able to check the blackboard for an n-tuple and to process the obtained n-tuple. (It is a trivial pattern.)

Solution: The solution is to perform operation read or take in a loop.


loop do
  read or take n-tuple

  process n-tuple
end


Example:


loop do
  t = ts.take ...</description>
		<link>http://www.rubyagent.com/2007/12/pattern-agent-life-cycle/</link>
			</item>
	<item>
		<title>Access Blackborad With Timeout</title>
		<description>Operations that access a blackboard to retrieve information, i.e. operations read and take, have a second parameter that defines how long should this operation wait until there will be a matching n-tuple or, simply, timeout. A value of the parameter specifies number of second.

Example:

	To read a tuple and if there ...</description>
		<link>http://www.rubyagent.com/2007/12/access-blackborad-with-timeout/</link>
			</item>
	<item>
		<title>Simple Example - Calculator Agent</title>
		<description>Now, we have enough knowledge to create a simple example: a calculator.

The example shows how to:

	Create an agent.
	Locate the blackboard.
	Write a tuple (a calculator operation).
	Take a tuple (a calculator operation result).
	Differentiate between different operations (plus and minus).
	Handle a simple ID.


The calculator agent will be able to handle two kinds of ...</description>
		<link>http://www.rubyagent.com/2007/05/simple-example-calculator-agent/</link>
			</item>
	<item>
		<title>Read Message On Blackboard</title>
		<description>To finish the overview of the backboard operations, let's show how to use the read operation. It only checks, if a blackboard contains a wanted tuple (in the previous posts I used the term message, but now we are more experienced :).

The following functionalities will be shown:

	Creation of an agent.
	Locating ...</description>
		<link>http://www.rubyagent.com/2007/05/read-message-on-blackboard/</link>
			</item>
	<item>
		<title>Message and Tuple</title>
		<description>In the last posts a term message was used. In the Rinda documentation you would not probably find this term; it is called more accurately: tuple.



What is a tuple?

	[1, 2] is a tuple
	[:message, 'Hi there!'] is a tuple
	['Hi there!', :message] is also a tuple
	[:result, 42, 'John', 'Susanne', 'London'] is a ...</description>
		<link>http://www.rubyagent.com/2007/04/message-and-tuple/</link>
			</item>
	<item>
		<title>Take Message From Blackboard</title>
		<description>The Rinda multi-agent system environment is already running, on the blackboard is written a message, so the last step is to read it :)

The following functionalities will be shown:

	Creation of an agent.
	Locating the blackboard.
	Taking a message.



Although a logical opposite operation to the write operation should be the read operation, it ...</description>
		<link>http://www.rubyagent.com/2007/03/take-message-from-blackboard/</link>
			</item>
</channel>
</rss>
