<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NgeosOne - Instant messaging Bots (Msn, Yahoo,AOL,Google,Skype, Second Life, SMS), Code Generator</title>
	<atom:link href="http://www.ngeosone.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.ngeosone.com</link>
	<description>My writings about how i C.R.U.D. Technology</description>
	<lastBuildDate>Wed, 11 Nov 2009 17:55:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Iphone and Code Generation</title>
		<link>http://www.ngeosone.com/?p=39</link>
		<comments>http://www.ngeosone.com/?p=39#comments</comments>
		<pubDate>Sat, 10 Oct 2009 16:54:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[application generator]]></category>
		<category><![CDATA[code generator]]></category>
		<category><![CDATA[code generators]]></category>
		<category><![CDATA[Iphone]]></category>
		<category><![CDATA[mobile platform]]></category>
		<category><![CDATA[objective c]]></category>
		<category><![CDATA[sax parser]]></category>

		<guid isPermaLink="false">http://www.ngeosone.com/?p=39</guid>
		<description><![CDATA[There is no question that Iphone is the mobile platform of choice for many users and by extension to many developers. I&#8217;ve been learning Objective C and as with Java (many moons ago), i&#8217;ve found it very intimidating, then fun and then as a tool in my tool chest.
After doing some googling i found a [...]]]></description>
			<content:encoded><![CDATA[<p>There is no question that Iphone is the mobile platform of choice for many users and by extension to many developers. I&#8217;ve been learning Objective C and as with Java (many moons ago), i&#8217;ve found it very intimidating, then fun and then as a tool in my tool chest.</p>
<p>After doing some googling i found a now defunct company AppLoop (http://www.apploop.com/) that had an application to generate Iphone applications, basically a custom rss reader, with your own logo and a few customization options</p>
<p>Having a fixation with code generators, i was wondering how easy it would be to enable our TypeWriter project to generate native code for the Iphone.</p>
<p>While writing an offline reader (<a title="La Nacion Offline Reader" href="http://www.ngeosone.com/?page_id=38" target="_blank">http://www.ngeosone.com/?page_id=38</a>) for a news paper, a task i&#8217;ve found to be very tedious, is to write the code you would need to parse an xml file (sax parser) and all of the value objects you would need to store the information.</p>
<p>So here&#8217;s is the challenge, can i make TypeWriter go to an URL address pointing to an xml document and and make it write a custom parser and all value objects?</p>
<p>Well it seems very possible, and here&#8217;s is what we are going to do:</p>
<p>1) Write a java class that implements the Explorer interface, this class will read the xml document and store information on the attributes and elements even their cardinality.</p>
<p>2) Write <a title="Template engine" href="http://velocity.apache.org/engine/releases/velocity-1.6.2/" target="_blank">Velocity </a>templates that will use the info generated in step one to create source code</p>
<p>Below you will see how do the templates look, I will work on making this available via a REST api, please send your questions to <strong>&#x69;&#x70;&#x68;&#x6f;&#x6e;&#x65;&#x40;&#x6e;&#x67;&#x65;&#x6f;&#x73;&#x6f;&#x6e;&#x65;&#x2e;&#x63;om</strong> or follow us on twitter as <strong>ngeosone</strong></p>
<h1>Examples</h1>
<p>We need the url of the xml document you want to use as a model for the generator, a name you want to use for this model, a devkey, in this case we are using the one of our demo user, and email to send the results</p>
<h2>REST url Sample</h2>
<p>http://typewriter.ngeosone.com/api/generate/?devkey=hfu0xIhUgS1uXIF/DbZPnwB6LniwUNkf20iuwSpvUxY=&amp;modelName=NgeosOneRssFeed&amp;description=This+Is+Rest+Test&amp;url=http://www.ngeosone.com/?feed=rss2&amp;solutionId=1&amp;email=&#x79;&#x6f;&#x75;&#x72;&#x65;&#x6d;&#x61;&#x69;&#x6c;&#x40;&#x65;&#x6d;&#x61;&#x69;&#x6c;&#x2e;&#x63;om</p>
<h2>Test It!</h2>
<form action="http://typewriter.ngeosone.com/api/generate/" method="GET">
<input name="devkey" type="hidden" value="hfu0xIhUgS1uXIF/DbZPnwB6LniwUNkf20iuwSpvUxY=" />
<table border="0">
<tbody>
<tr>
<td>XML Url</td>
<td>
<input name="url" size="50" type="text" value="http://www.ngeosone.com/?feed=rss2" /></td>
</tr>
<tr>
<td>Model Name</td>
<td>
<input name="modelName" type="text" /></td>
</tr>
<tr>
<td>This model description</td>
<td><textarea name="description"></textarea></td>
</tr>
<tr>
<td>Email to send the files</td>
<td>
<input name="email" size="50/" type="text" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="Generate" />
<input name="solutionId" type="hidden" value="1" /> </form>
<p>Here are the templates</p>
<p><strong>To generate the header file for the parser</strong></p>
<p>#set($filename=&#8221;${baseDir}/${project}/Classes/${feedClassName}XMLParser.h&#8221;)<br />
#import &#8220;${root.getCleanName()}.h&#8221;<br />
#foreach($element1 in $allElements)<br />
#if($element1.needsClass() == true)<br />
#import &#8220;${element1.getCleanName()}.h&#8221;<br />
#end<br />
#end</p>
<p>@interface ${feedClassName}XMLParser : NSObject {<br />
NSMutableString *currentElementValue;</p>
<p>//Temporary objects<br />
#foreach($element1 in $allElements)<br />
#if($element1.parent.useArray(${element1.getCleanName()}) == true)<br />
//Parent: ${element1.parent.getCleanName()}.h<br />
NSMutableArray *${element1.plural()};<br />
#else<br />
#if($element1.needsClass() == true)<br />
${element1.getCleanName()} *${element1.getCleanName()};<br />
#end<br />
#end<br />
#end<br />
//End of temporary</p>
<p>//This is Root<br />
${root.getCleanName()} *${root.getCleanName()};<br />
}<br />
@property (nonatomic, retain) ${root.getCleanName()} *${root.getCleanName()};<br />
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict;<br />
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName ;<br />
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string ;<br />
- (BOOL)loadData;<br />
@end</p>
<p><strong>This is to generate the implementation</strong></p>
<p>#set($filename=&#8221;${baseDir}/${project}/Classes/${feedClassName}XMLParser.m&#8221;)<br />
#import &#8220;${feedClassName}XMLParser.h&#8221;</p>
<p>@implementation ${feedClassName}XMLParser<br />
@synthesize ${root.getCleanName()};<br />
- (${feedClassName}XMLParser *) initXMLParser {<br />
[super init];<br />
${root.getCleanName()} = [ [${root.getCleanName()} alloc] init];<br />
//NSLog(@&#8221;Initializing&#8221;);<br />
return self;<br />
}</p>
<p>- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict {<br />
//NSLog(@&#8221;Starting Element: %@&#8221;, elementName);<br />
#foreach($element1 in $allElements)<br />
#if($element1.needsClass() == true || $element1.parent.useArray(${element1.getCleanName()}) == true)</p>
<p>if([elementName isEqualToString:@"${element1.name}"]) {<br />
#if($element1.parent.useArray(${element1.getCleanName()}) == true)<br />
//Parent: ${element1.parent.getCleanName()}.h<br />
${element1.plural()} = [[NSMutableArray alloc] init];<br />
#else<br />
#if($element1.needsClass() == true)<br />
${element1.getCleanName()} = [[${element1.getCleanName()} alloc] init];<br />
#end<br />
#end<br />
#foreach($att in $element1.attributes)<br />
${element1.getCleanName()}.${att.getCleanName()} = [attributeDict valueForKey:@"${att.name}"];<br />
#end<br />
}<br />
#end<br />
#end</p>
<p>}</p>
<p>- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {<br />
@try{<br />
[currentElementValue setString : [currentElementValue stringByReplacingOccurrencesOfString:@"\n" withString:@""]];<br />
//NSLog(@&#8221;Ending %@ with  %@&#8221;,elementName,currentElementValue);<br />
#foreach($child in $allElements)<br />
#if($child.getCleanName() != $root.getCleanName())</p>
<p>if([elementName isEqualToString:@"${child.name}"]) {<br />
#if($child.parent.useArray(${child.getCleanName()}) == true)<br />
[${child.parent.getCleanName()}  addObject: ${child.getCleanName()}];<br />
[${child.getCleanName()} release];<br />
#else<br />
#if($child.needsClass() == true)<br />
${child.parent.getCleanName()}.${child.getCleanName()} =  ${child.getCleanName()};<br />
[${child.getCleanName()} release];<br />
#else<br />
${child.parent.getCleanName()}.${child.getCleanName()} = currentElementValue;<br />
#end<br />
#end<br />
}<br />
#end<br />
#end<br />
//NSLog(@&#8221;Ending %@ with  %@&#8221;,elementName,currentElementValue);<br />
}@catch (NSException *exception) {<br />
//NSLog(@&#8221;${feedClassName}: Caught %@: %@&#8221;, [exception name], [exception  reason]);<br />
}<br />
[currentElementValue release];<br />
currentElementValue = nil;<br />
}</p>
<p>- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {<br />
//NSLog(@&#8221;found characters %@&#8221;,string);<br />
if(!currentElementValue)<br />
currentElementValue = [[NSMutableString alloc] initWithString:string];<br />
else<br />
[currentElementValue appendString:string];<br />
//NSLog(@&#8221;currentElementValue %@&#8221;,currentElementValue);<br />
}</p>
<p>/*<br />
- (NSString *) extractName:  (NSString *)value  {<br />
NSRange srange = [value rangeOfString : @"("];<br />
NSRange erange = [value rangeOfString : @")"];<br />
//NSLog(@&#8221;Name contains no %d&#8221;,srange.location);<br />
if( srange.length == 0  ||  erange.length == 0){<br />
//NSLog(@&#8221;Name contains no (&#8212;)&#8221;);<br />
}else{<br />
NSRange deleteRange = NSMakeRange(srange.location, (erange.location &#8211; srange.location)+1);<br />
[value deleteCharactersInRange : deleteRange];<br />
}<br />
return value;<br />
}<br />
*/</p>
<p>- (BOOL) loadData {<br />
@try{<br />
NSURL *url = [[NSURL alloc] initWithString:@&#8221;${feedUrl}&#8221;];<br />
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];</p>
<p>//Set delegate<br />
[xmlParser setDelegate:self];<br />
//Start parsing the XML file<br />
BOOL success = [xmlParser parse];<br />
if(success){<br />
NSLog(@&#8221;${feedClassName}XMLParser: Data Loaded from  ${feedURL}&#8221;);<br />
}else{<br />
NSLog(@&#8221;${feedClassName}XMLParser: Error parsing ${feedURL}&#8221;);<br />
}<br />
return success;<br />
}@catch (NSException *exception) {<br />
NSLog(@&#8221;SB${feedClassName}: Caught %@: %@&#8221;, [exception name], [exception  reason]);<br />
}<br />
}</p>
<p>- (void) dealloc {<br />
[currentElementValue release];<br />
[super dealloc];<br />
}</p>
<p>@end</p>]]></content:encoded>
			<wfw:commentRss>http://www.ngeosone.com/?feed=rss2&amp;p=39</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let your Amazon wishes, be known.</title>
		<link>http://www.ngeosone.com/?p=35</link>
		<comments>http://www.ngeosone.com/?p=35#comments</comments>
		<pubDate>Tue, 26 Aug 2008 17:07:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[amazon wishlist]]></category>
		<category><![CDATA[Robotize Me]]></category>
		<category><![CDATA[viral marketing]]></category>
		<category><![CDATA[wishlist]]></category>

		<guid isPermaLink="false">http://www.ngeosone.com/?p=35</guid>
		<description><![CDATA[This is the deal you have an Amazon Wishlist that probably nobody knows about. How can you make you more public. That was my dilemma.
Being an IM robots fan, this solution was obvious to me, create a robot that while you are not at your computer will publish, silently your wishlist to your contacts, simply [...]]]></description>
			<content:encoded><![CDATA[<p>This is the deal you have an Amazon Wishlist that probably nobody knows about. How can you make you more public. That was my dilemma.</p>
<p>Being an IM robots fan, this solution was obvious to me, create a robot that while you are not at your computer will publish, silently your wishlist to your contacts, simply activate it before you leave your desk.</p>
<p>This idea kicked off the robotizeme.net project and here is how to use it.</p>
<p>1) Register and activate your account at <a title="Single Sign On" href="http://sso.ngeosone.com/" target="_blank">http://sso.ngeosone.com/</a>, if you haven&#8217;t.</p>
<p>2) Log into <a title="Robotize Me" href="http://www.robotizeme.net/" target="_blank">http://www.robotizeme.net/</a>, add the account you want to robotize, yeah that one all of your friends use to chat with you.</p>
<p>3) Click on the Amazon wishlist broadcast personality, fill a default message to send to your friends, click on configure and launch and enter the email you use as Amazon user.</p>
<p>4) Launch and run to one of your contacts desk, or call, and check to see if its working.</p>
<p>That&#8217;s It!!</p>]]></content:encoded>
			<wfw:commentRss>http://www.ngeosone.com/?feed=rss2&amp;p=35</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como enviar y recibir correos desde su telefono, via Mensaje de Texto (SMS)</title>
		<link>http://www.ngeosone.com/?p=34</link>
		<comments>http://www.ngeosone.com/?p=34#comments</comments>
		<pubDate>Tue, 26 Aug 2008 05:38:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ngeos One]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[celular]]></category>
		<category><![CDATA[Costa Rica]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[sms]]></category>

		<guid isPermaLink="false">http://www.ngeosone.com/?p=34</guid>
		<description><![CDATA[Si desea recibir copia de los correos que le envian mientras se encuentra lejos de la computadora o quiere enviar correos sencillos desde su celular, siga leyendo.
1) Registrese en http://sso.ngeosone.com/
2) Solicite que le envien el correo a su direccion regular con copia a  &#x73;&#x75;&#x6e;&#x6f;&#x6d;&#x62;&#x72;&#x65;&#x64;&#x65;&#x75;&#x73;&#x75;&#x61;&#x72;&#x69;&#x6f;&#x2e;&#x73;&#x6d;&#x73;&#x40;&#x73;&#x65;&#x6d;&#x61;&#x6e;&#x74;&#x69;&#x63;&#x73;&#x65;&#x6e;&#x73;&#x65;&#x2e;&#x63;om, si se registro como pepito, su dirección seria &#x70;&#x65;&#x70;&#x69;&#x74;&#x6f;&#x2e;&#x73;&#x6d;&#x73;&#x40;&#x73;&#x65;&#x6d;&#x61;&#x6e;&#x74;&#x69;&#x63;&#x73;&#x65;&#x6e;&#x73;&#x65;&#x2e;&#x63;om, y que [...]]]></description>
			<content:encoded><![CDATA[<p>Si desea recibir copia de los correos que le envian mientras se encuentra lejos de la computadora o quiere enviar correos sencillos desde su celular, siga leyendo.</p>
<p>1) Registrese en http://sso.ngeosone.com/</p>
<p>2) Solicite que le envien el correo a su direccion regular con copia a  <strong>&#x73;&#x75;&#x6e;&#x6f;&#x6d;&#x62;&#x72;&#x65;&#x64;&#x65;&#x75;&#x73;&#x75;&#x61;&#x72;&#x69;&#x6f;&#x2e;&#x73;&#x6d;&#x73;&#x40;&#x73;&#x65;&#x6d;&#x61;&#x6e;&#x74;&#x69;&#x63;&#x73;&#x65;&#x6e;&#x73;&#x65;&#x2e;&#x63;om</strong>, si se registro como pepito, su dirección seria &#x70;&#x65;&#x70;&#x69;&#x74;&#x6f;&#x2e;&#x73;&#x6d;&#x73;&#x40;&#x73;&#x65;&#x6d;&#x61;&#x6e;&#x74;&#x69;&#x63;&#x73;&#x65;&#x6e;&#x73;&#x65;&#x2e;&#x63;om, y que la linea de asunto (subject) sea descriptiva.</p>
<p>3) Para enviar correos cree un mensaje de texto con el siguiente formato: correo:asunto:mensaje, ej. <strong>&#x70;&#x65;&#x70;&#x69;&#x74;&#x6f;&#x40;&#x68;&#x6f;&#x74;&#x6d;&#x61;&#x69;&#x6c;&#x2e;&#x63;om:Tarea de la U:Favor no se olvide de traerme la tarea</strong>. envíelo al [buscando una mejor manera de hacer esto que no implique usar mi telefono personal, je je].</p>
<ul>
<li>No use este servicio para enviar información confidencial pues quedan copias en nuestros sistemas que eliminamos conforme tengamos tiempo.</li>
<li>Si su vida depende de que los mensajes le lleguen o sean enviados, no se atenga, todo puede fallar.</li>
<li>Este es un servicio gratuito, por ahora y nos encontramos en fase de pruebas, pueden ocurrir interrupciones o sencillamente dejamos de brindarlo.</li>
<li>Si le interesa podemos desarrollar una solución para su negocio.</li>
</ul>
<p>Gracias y buen provecho</p>]]></content:encoded>
			<wfw:commentRss>http://www.ngeosone.com/?feed=rss2&amp;p=34</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twittering desde su telefono con mensaje de Texto (SMS)</title>
		<link>http://www.ngeosone.com/?p=33</link>
		<comments>http://www.ngeosone.com/?p=33#comments</comments>
		<pubDate>Mon, 25 Aug 2008 00:46:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ngeos One]]></category>
		<category><![CDATA[Robotize Me]]></category>
		<category><![CDATA[Costa Rica]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.ngeosone.com/?p=33</guid>
		<description><![CDATA[Habia hecho un prototipo hace varios meses y lo habia archivado mientras resolviamos algunos problemas técnicos. Hoy lo resucitamos.
Como se hace
1) En ngeosone tenemos varios sistemas que van a ser de uso publico, asi que implementamos un sistema de Single Sign On o SSO, el primer paso es registrarse en htttp://sso.ngeosone.com/ luego de recibir el [...]]]></description>
			<content:encoded><![CDATA[<p>Habia hecho un prototipo hace varios meses y lo habia archivado mientras resolviamos algunos problemas técnicos. Hoy lo resucitamos.</p>
<h1>Como se hace</h1>
<p>1) En ngeosone tenemos varios sistemas que van a ser de uso publico, asi que implementamos un sistema de Single Sign On o SSO, el primer paso es registrarse en <a href="http://sso.ngeosone.com/">htttp://sso.ngeosone.com/</a> luego de recibir el correo debe activar su cuenta.</p>
<p>2) El programa que se va a encargar de recibir su mensaje de texto necesita saber que cuenta va a usar para hacer los updates, para esto usted debe logearse en <a title="Robotize Me" href="http://www.robotizeme.net/" target="_blank">http://www.robotizeme.net/</a> con el usuario y password que creo en el paso 1 y agregar informacion de su cuenta con twitter Twitter [si gusta y tiene cuentas con otros servicios puede 'travesear' los otros robots, ver <a title="Robotize Me Information" href="http://www.ngeosone.com/?p=7" target="_blank">http://www.ngeosone.com/?p=7</a>].</p>
<p>3)Listo!!, para hacer posts a twiters manda un mensaje al 83402383 con el siguiente formato: twtp[espacio en blanco] y su mensaje, la aplicacion busca por el numero de telefono de donde recibio el mensaje (paso 1) ubica la cuenta de twitter (paso 2) y hace el post.</p>
<p>4) Este es un sistema experimental, asi que puede ser que el sistema no este disponible o que los mensajes no se posteen. Para preguntas o ideas pueden escribir a &#x74;&#x77;&#x69;&#x74;&#x74;&#x65;&#x72;&#x40;&#x6e;&#x67;&#x65;&#x6f;&#x73;&#x6f;&#x6e;&#x65;&#x2e;&#x63;om</p>]]></content:encoded>
			<wfw:commentRss>http://www.ngeosone.com/?feed=rss2&amp;p=33</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update:  WebCams and MJPEg, Code Generation, REST</title>
		<link>http://www.ngeosone.com/?p=32</link>
		<comments>http://www.ngeosone.com/?p=32#comments</comments>
		<pubDate>Sun, 06 Jul 2008 16:38:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ngeos One]]></category>
		<category><![CDATA[Axis networked cameras]]></category>
		<category><![CDATA[code generator]]></category>
		<category><![CDATA[MJPEG]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[webservices]]></category>

		<guid isPermaLink="false">http://www.ngeosone.com/?p=32</guid>
		<description><![CDATA[WEBCAMS
We&#8217;ve been quiet for a few days/week, and it is because we are working in a project involving remotely controlling (zoom, pan, tilt)  AXIS networked cameras with http and a customized UI.
To save bandwith  (on the camera) we were required to create a way (we called a Streamer) that would create multiple threads one per [...]]]></description>
			<content:encoded><![CDATA[<p>WEBCAMS</p>
<p>We&#8217;ve been quiet for a few days/week, and it is because we are working in a project involving remotely controlling (zoom, pan, tilt)  AXIS networked cameras with http and a customized UI.</p>
<p>To save bandwith  (on the camera) we were required to create a way (we called a Streamer) that would create multiple threads one per each client that would receive a copy of the stream running on a webserver with more muscle.</p>
<p>COMING UP next&#8230;.</p>
<p>Generative coding: I mention our code generator in our site what so far i have not provided more information, links or demos i&#8217;ll be working on it, next week.</p>
<p>REST: Yeah i would like to do it. Im reading O&#8217;reilly&#8217;s Restful WebServices as a prelude to publising both GCE (Generative Coding Engine) and IME (Instant Messaging Engine) as RESTful services.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ngeosone.com/?feed=rss2&amp;p=32</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Implementing a contact form with Natural Language Processing</title>
		<link>http://www.ngeosone.com/?p=23</link>
		<comments>http://www.ngeosone.com/?p=23#comments</comments>
		<pubDate>Wed, 11 Jun 2008 16:15:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ngeos One]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[aiml]]></category>
		<category><![CDATA[camtasia]]></category>
		<category><![CDATA[contact form]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[natural language processing]]></category>
		<category><![CDATA[NLP]]></category>
		<category><![CDATA[program d]]></category>
		<category><![CDATA[second life]]></category>

		<guid isPermaLink="false">http://www.ngeosone.com/?p=23</guid>
		<description><![CDATA[Well is not a contact form, its a contact&#8230;point
Finally we decided to take a quick plunge into Natural Language Processing.
The goal was to have a robot to greet the many visitors we receive. For now its a very, very basic robot. You type &#8216;contact me&#8217; it gathers some information and send us an email, that [...]]]></description>
			<content:encoded><![CDATA[<p>Well is not a contact form, its a contact&#8230;point</p>
<p>Finally we decided to take a quick plunge into Natural Language Processing.</p>
<p>The goal was to have a robot to greet the many visitors we receive. For now its a very, very basic robot. You type &#8216;contact me&#8217; it gathers some information and send us an email, that is done in the servlet.</p>
<p>The UI is a flex application using HttpService to communicate with a servlet running on <a href="http://www.aitools.org/Main_Page">PROGRAM D</a> webapp.</p>
<p>AIML, Is very powerful, but not very AI, trying to cover all possible combinations to provide the user with a response, can be a daunting task. Anyway AIML is widely used to implement NLP robots.</p>
<p>The receptionist animation done in Second Life and using camtasia to produce a looping video.</p>
<p>Later I will post the code I used. Ideas are welcome (will be researching how to make the robot a guide to the site, perhaps substituting/duplicationg the search box function).</p>]]></content:encoded>
			<wfw:commentRss>http://www.ngeosone.com/?feed=rss2&amp;p=23</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Externalized message parsing and processing</title>
		<link>http://www.ngeosone.com/?p=17</link>
		<comments>http://www.ngeosone.com/?p=17#comments</comments>
		<pubDate>Sat, 07 Jun 2008 15:20:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Robotize Me]]></category>
		<category><![CDATA[aiml]]></category>
		<category><![CDATA[alicebot]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[parser]]></category>

		<guid isPermaLink="false">http://www.ngeosone.com/?p=17</guid>
		<description><![CDATA[Robotizeme.net&#8217;s architecture was conceived to decouple instant messaging from message processing.  Message processing consist in parsing (if required) the string that was typed by somebody and doing something with it.
Being a java application, 99% of the parsers were implemented in code, with one notable exception. The &#8216;Proxy&#8217; personality is programmed in  a way [...]]]></description>
			<content:encoded><![CDATA[<p>Robotizeme.net&#8217;s architecture was conceived to decouple instant messaging from message processing.  Message processing consist in parsing (if required) the string that was typed by somebody and doing something with it.</p>
<p>Being a java application, 99% of the parsers were implemented in code, with one notable exception. The &#8216;Proxy&#8217; personality is programmed in  a way that it sends an http get request to a url. Processing is done and the response is sent back to the user.</p>
<p>There is no restriction on the server technology used to implement the parser as long as it is capable of fulfilling a http GET request.</p>
<p>There are a couple of parameters to configure, the name of the parameter that will hold the message sent, and the name of the parameter that will hold the name or id of the person sending the message.  The later allow for session handling.</p>
<p>We recommend testing this personality using an AIML processor, such as PROGRAM D, they conveniently provide a java web application that you could use with some adaptations so provide Natural Language Processing (NLP) to your application.</p>
<p>You might be able to hook it up to services like <a href="http://pandorabots.com/botmaster/en/home">Pandora Bots. </a>For other AIML implementations (php, lisp, java),  <a href="http://www.alicebot.org/downloads/programs.html">alicebot.org</a>, There you can find information on how to use AIML</p>]]></content:encoded>
			<wfw:commentRss>http://www.ngeosone.com/?feed=rss2&amp;p=17</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Robotize Me !</title>
		<link>http://www.ngeosone.com/?p=7</link>
		<comments>http://www.ngeosone.com/?p=7#comments</comments>
		<pubDate>Tue, 20 May 2008 00:09:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Robotize Me]]></category>
		<category><![CDATA[aim]]></category>
		<category><![CDATA[aol]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[crawlers]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[IM]]></category>
		<category><![CDATA[instant messaging]]></category>
		<category><![CDATA[msn]]></category>
		<category><![CDATA[robots]]></category>
		<category><![CDATA[second life]]></category>
		<category><![CDATA[skype]]></category>
		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://blog.ngeosone.com/?p=7</guid>
		<description><![CDATA[For a time I&#8217;ve been working with instant messaging agents, computer programs that communicate with the user, using instant messaging.
The first robot I came across was while I was working for IBM, the stock bot, which lets you find the information about a particular stock.  Later I decided to start writing my own bots, [...]]]></description>
			<content:encoded><![CDATA[<p>For a time I&#8217;ve been working with instant messaging agents, computer programs that communicate with the user, using instant messaging.</p>
<p>The first robot I came across was while I was working for IBM, the stock bot, which lets you find the information about a particular stock.  Later I decided to start writing my own bots, the first being a bot that would check a log file in one of the servers, parse line by line, and send me a message if it found something that required my attention.</p>
<p>Then came the worldcup robot that checked the Worldcup (2006) official website.  It&#8217;s purpose was to do some scraping.  For example, if it detected that the match&#8217;s score changed, it would send a message to all users subscribed. Around that time came postales_mundial (for stamp collectors), you would enter a list of stamps you had, something like: 12,2,34,454,22 and the robot would match those you were missing with another user that had more than one, lets say of number 10.</p>
<p>Finally came que_jamo.  Tired of eating at  the same places, I turned a folder containing copies of the menus sent by restaurants, into a searchable database, accesible through IM.  This bot is currently running under &#x71;&#x75;&#x65;&#x5f;&#x6a;&#x61;&#x6d;&#x6f;&#x2d;&#x40;&#x2d;&#x68;&#x6f;&#x74;&#x6d;&#x61;&#x69;&#x6c;&#x2e;&#x63;om, &#x71;&#x75;&#x65;&#x2e;&#x6a;&#x61;&#x6d;&#x6f;&#x2d;&#x40;&#x2d;&#x67;&#x6d;&#x61;&#x69;&#x6c;&#x2e;&#x63;om, &#x71;&#x75;&#x65;&#x5f;&#x6a;&#x61;&#x6d;&#x6f;&#x2d;&#x40;&#x2d;&#x79;&#x61;&#x68;&#x6f;&#x6f;&#x2e;&#x63;om. (Please remove extra hyphens)</p>
<p>With all of that bot making came the idea to making creating bots something easy with a few preset &#8216;personalities&#8217;. Enter <a href="http://www.robotizeme.net">www.robotizeme.net</a></p>
<p>Here you will be able to configure and create robot instances with the most popular IM services (msn, yahoo, google, aim, Second life, skype, sms, and soon irc).</p>
<p>You can use your robot in 2 modes, <strong>stand in</strong> and <strong>full robot</strong> mode, in &#8217;stand in&#8217; you use any or all of your current accounts i have the robot interact with your contacts while you are not at the computer. In full robot you create (we recommend adding a .robot to your account name) or use any spare account you have, we recommend this mode because it will allow you to interact with the robot.</p>
<p>The process of launching your robot is simple</p>
<ol>
<li>Type the account information the robot will use to log in.</li>
<li>Choose a robot personality</li>
<li>Configure the parameters required by the personality</li>
<li>Launch the robot</li>
<li>Check status.</li>
</ol>
<p>Please note that for AOL accounts you will need to use a developer key, you can obtain those here <a title="http://dev.aol.com/aim/bots" href="http://dev.aol.com/aim/bots">http://dev.aol.com/aim/bots.</a></p>
<p>This is a preview release of the site so please be patient and post lots of comments.</p>
<p>Thanks</p>]]></content:encoded>
			<wfw:commentRss>http://www.ngeosone.com/?feed=rss2&amp;p=7</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BlackBerry in Costa Rica?!! not yet, but you can use LameBerry</title>
		<link>http://www.ngeosone.com/?p=6</link>
		<comments>http://www.ngeosone.com/?p=6#comments</comments>
		<pubDate>Wed, 14 May 2008 01:13:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ngeos One]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[cell phone]]></category>
		<category><![CDATA[celular]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[mensajeria de texto]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[single sign on]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[text messaging]]></category>

		<guid isPermaLink="false">http://blog.ngeosone.com/wp/?p=6</guid>
		<description><![CDATA[A few months back, I got a GSM modem as part of my research, its a MultiTech GPRS F4.
So as part of the Instant/Text Messaging project I&#8217;m developing, I wondered what if I could view Text messaging as another IM service and have a &#8216;robot&#8217; processing incoming messages and sending responses.
LameBerry allows you to :
Receive [...]]]></description>
			<content:encoded><![CDATA[<p>A few months back, I got a GSM modem as part of my research, its a MultiTech GPRS F4.</p>
<p>So as part of the Instant/Text Messaging project I&#8217;m developing, I wondered what if I could view Text messaging as another IM service and have a &#8216;robot&#8217; processing incoming messages and sending responses.</p>
<p>LameBerry allows you to :</p>
<p><strong>Receive a text message with the subject of email:  include</strong> <strong>&#x75;&#x73;&#x65;&#x72;&#x6e;&#x61;&#x6d;&#x65;&#x2e;&#x73;&#x6d;&#x73;&#x40;&#x73;&#x65;&#x6d;&#x61;&#x6e;&#x74;&#x69;&#x63;&#x73;&#x65;&#x6e;&#x73;&#x65;&#x2e;&#x63;om</strong> in email&#8217;s cc. example:  <em>&#x6a;&#x6f;&#x68;&#x6e;&#x64;&#x6f;&#x65;&#x2e;&#x73;&#x6d;&#x73;&#x40;&#x73;&#x65;&#x6d;&#x61;&#x6e;&#x74;&#x69;&#x63;&#x73;&#x65;&#x6e;&#x73;&#x65;&#x2e;&#x63;om</em> will send a text message containing the subject line of your email.</p>
<p><strong>Send a short email to any address</strong>, using the following format: <em>johndoe<span style="padding: 0pt; background-color: yellow; display: inline; font-size: inherit; color: black;">@</span>example.com:This is the subject:This is the content of the email you wish to send</em>. Sender will be <em>&#x73;&#x6d;&#x73;&#x40;&#x73;&#x65;&#x6d;&#x61;&#x6e;&#x74;&#x69;&#x63;&#x73;&#x65;&#x6e;&#x73;&#x65;&#x2e;&#x63;om</em> and your phone number would be included as part of the message. Messages should be sent to 83402383 (<strong>Costa Rica Only)</strong></p>
<p>Of course if you have internet service on your phone, you MIGHT NOT need this. This is for those that don&#8217;t have access or don&#8217;t want to pay for the internet service. <strong>Please register at <a title="Single Sign On" href="http://sso.ngeosone.com/" target="_blank">http://sso.ngeosone.com</a> and start using it.</strong></p>
<p>A few points to note:</p>
<ol>
<li>SMS is limited to more ore less 140 characters, so if somebody is going to send you an email. Tell them to cc you at &lt;yourusernamehere&gt;&#x2e;&#x73;&#x6d;&#x73;&#x40;&#x73;&#x65;&#x6d;&#x61;&#x6e;&#x74;&#x69;&#x63;&#x73;&#x65;&#x6e;&#x73;&#x65;&#x2e;&#x63;om, and provide a meaningful subject line.</li>
<li>Do NOT use to send information that you are prohibited to disclose. You&#8217;ve been WARNED!</li>
<li>Because of the potential for cell spam, in the future this service will work with an access list, only people on your list can send you messages.</li>
<li>DO NOT USE THIS SERVICE to: conduct any type of commercial activity, harass, insult or whatsoever, send or receive messages that your life or job depend upon them arriving in time (cough ICE!)</li>
<li>This is an experiment and willingly you may become part of it or not, no angry emails, just suggestions or cash or both.</li>
<li>Post your comments here.</li>
<li>This <strong>initially</strong> free service might become unavailable at any time, without warning, without any reason or explanation.</li>
<li>Yes we can build a custom solution for your company</li>
</ol>
<p>Thanks and enjoy</p>]]></content:encoded>
			<wfw:commentRss>http://www.ngeosone.com/?feed=rss2&amp;p=6</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NgeosOne goes blogistic!</title>
		<link>http://www.ngeosone.com/?p=3</link>
		<comments>http://www.ngeosone.com/?p=3#comments</comments>
		<pubDate>Tue, 13 May 2008 00:36:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ngeos One]]></category>
		<category><![CDATA[code generation]]></category>
		<category><![CDATA[messaging]]></category>
		<category><![CDATA[sms]]></category>
		<category><![CDATA[text messaging]]></category>

		<guid isPermaLink="false">http://blog.ngeosone.com/wp/?p=3</guid>
		<description><![CDATA[Today we start our new blog to help channel information on what are we working on , releases and other stuff.
Ngeos One is a  Java shop, but  we have some C# and Flex Coding knowledge, oh yeah flash as well.
At our main site www.ngeosone.com you will see some projects we&#8217;ve been working on:

The [...]]]></description>
			<content:encoded><![CDATA[<p>Today we start our new blog to help channel information on what are we working on , releases and other stuff.</p>
<p>Ngeos One is a  Java shop, but  we have some C# and Flex Coding knowledge, oh yeah flash as well.</p>
<p>At our main site <a title="NgeosOne" href="http://www.ngeosone.com" target="_blank">www.ngeosone.com</a> you will see some projects we&#8217;ve been working on:</p>
<ul>
<li>The Code Generator (or <strong>Generative Coding Engine</strong>), is an online tool that will generate text files. Annnd!?? you may ask&#8230; well that it what it does, and I kept its description a bit abstract because those text files can be source code for any programming language.  That saves a lot of time when you can follow coding patterns to write your programs.</li>
<li><strong><a title="SemanticSense" href="http://www.semanticsense.com/" target="_blank">SemanticSense.com</a>,</strong> is a tag based search engine, it allows to add tags and reviews to businesses. It started as a restaurant search application, now you can search other types of bussinesses. This application includes an embedded software agent so you can do your searches using IM.</li>
<li>Instant messaging and mobile communications is one of my favorite subjects. <strong> <a title="RobotizeMe" href="http://www.robotizeme.NET/" target="_blank">RobotizeMe.NET</a></strong>. allow you to create Software agents  that will communicate with you via instant messaging. Those &#8216;robots&#8217; will help you: promote your amazon wishlist, keep an eye on your favorite stock, create and run polls/surveys</li>
<li>And last but not least, our <strong>LameBerry</strong>, is an app that forwards mail to your cell phone, via a text message, it also allow&#8217;s you to send email from your cell, without an internet connection (Costa Rica only)</li>
</ul>
<p>Please tune in for more, thanks for reading so far.</p>
<p>PS: Coming up next&#8230;. How to use the <span style="text-decoration: line-through;">Black</span>LameBerry service.</p>]]></content:encoded>
			<wfw:commentRss>http://www.ngeosone.com/?feed=rss2&amp;p=3</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
