<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Mostly Harmless</title>
	<atom:link href="http://nasarabna.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nasarabna.wordpress.com</link>
	<description>&#34;I always thought something was fundamentally wrong with the universe&#34;</description>
	<lastBuildDate>Thu, 29 Dec 2011 05:27:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='nasarabna.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Mostly Harmless</title>
		<link>http://nasarabna.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://nasarabna.wordpress.com/osd.xml" title="Mostly Harmless" />
	<atom:link rel='hub' href='http://nasarabna.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Belling the Cat (or) How i made OrangeScape to tango with Tomcat</title>
		<link>http://nasarabna.wordpress.com/2011/12/27/belling-the-cat/</link>
		<comments>http://nasarabna.wordpress.com/2011/12/27/belling-the-cat/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 17:58:58 +0000</pubDate>
		<dc:creator>அன்பரசன் (Anbarasan)</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[orangescape]]></category>

		<guid isPermaLink="false">http://nasarabna.wordpress.com/?p=885</guid>
		<description><![CDATA[A month or two ago, a few colleagues of mine, wanted to run OrangeScape in Tomcat for their local testing,   just because they didn&#8217;t like jboss and run it.  I wanted them to run through the internet and do it by themselves, so i can chance upon and see if anyone is up there [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=885&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A month or two ago, a few colleagues of mine, wanted to run OrangeScape in Tomcat for their local testing,   just because they didn&#8217;t like jboss and run it.  I wanted them to run through the internet and do it by themselves, so i can chance upon and see if anyone is up there to pull into my team when the time comes.  But they got busy with other things, and forgot about running OrangeScape in Tomcat, and went with jboss.  Now, i am fed up of waiting.  So here i am documenting my findings on how to make OrangeScape tango with TomCat.</p>
<p><a href="http://nasarabna.files.wordpress.com/2011/12/300px-tomcat-logo-svg.png"><img class="aligncenter size-full wp-image-886" title="Apache Tomcat" src="http://nasarabna.files.wordpress.com/2011/12/300px-tomcat-logo-svg.png?w=600" alt=""   /></a></p>
<p>I have tested with  Tomcat 6.0.35 and 7.0.23 with JDK 1.6.29.   Running OrangeScape Application in Tomcat is really easier than what i had expected.  really.</p>
<p><strong>Getting the Application War files</strong></p>
<p>You can download the war of your application from the studio.  download the supporting war files (os-commons, runtime, static) from the corresponding build release notes from the <a href="http://community.orangescape.com" target="_blank">community</a>.  The Current release number being<a href="http://community.orangescape.com/forum/topics/release-notes-for-build-98" target="_blank"> 98</a>.</p>
<p><strong>Making changes to make it work in Tomcat</strong></p>
<p>You will have to make changes to 2 files for the OrangeScape Application to work in Tomcat.</p>
<blockquote>
<ul>
<ul>
<li><em><strong>app.war\WEB-INF\applicationContext.xml</strong></em>
<ul>
<li>search and find the line<br />
<em>&lt;prop key=&#8221;hibernate.connection.datastore&#8221;&gt;jdbc/{application-id}&lt;/prop&gt;</em></li>
<li>change it to look as below<br />
<em>&lt;prop key=&#8221;hibernate.connection.datastore&#8221;&gt;<strong>java:comp/env/</strong>jdbc/{application-id}&lt;/prop&gt;<br />
</em></li>
</ul>
</li>
<li><em><strong>app.war\META-INF\context.xml</strong></em>
<ul>
<li>this file does not exist in the war and you will have to create it. the content should be as follows.</li>
</ul>
</li>
</ul>
</ul>
<ul>
<ul>
<ul>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; ?&gt;</ul>
</ul>
</ul>
<ul>
<ul>
<ul>&lt;Context&gt;</ul>
</ul>
</ul>
<ul>
<ul>
<ul>        &lt;Resource</ul>
</ul>
</ul>
<ul>
<ul>
<ul>                name=&#8221;jdbc/{application-id}&#8221;</ul>
</ul>
</ul>
<ul>
<ul>
<ul>                auth=&#8221;Container&#8221; type=&#8221;javax.sql.DataSource&#8221;</ul>
</ul>
</ul>
<ul>
<ul>
<ul>                username=&#8221;{db-user- id}&#8221; password=&#8221;{db-user-password}&#8221;</ul>
</ul>
</ul>
<ul>
<ul>
<ul>                driverClassName=&#8221;com.mysql.jdbc.Driver&#8221;</ul>
</ul>
</ul>
<ul>
<ul>
<ul>                url=&#8221;jdbc:mysql://localhost:3306/{db-name}&#8221;</ul>
</ul>
</ul>
<ul>
<ul>
<ul>                maxActive=&#8221;20&#8243;</ul>
</ul>
</ul>
<ul>
<ul>
<ul>                maxIdle=&#8221;5&#8243;</ul>
</ul>
</ul>
<ul>
<ul>
<ul>        /&gt;</ul>
</ul>
</ul>
<ul>
<ul>&lt;/Context&gt;</ul>
</ul>
</blockquote>
<p>That&#8217;s it.  Now, just deploy it to tomcat, and access the url <em>http://localhost:8080/<strong>{application-id}</strong>/1/signin</em> to log in and start using your application.</p>
<p><strong>Note</strong>:</p>
<ul>
<li>The first time, you start the server after making the deployment,  (immediately after deployment, if you use the manager to deploy), you can see a HTTP 500  error will be thrown on the console.  That is because the application is not yet setup but the sla is checking if any jobs are there to execute.</li>
<li>as far as i have checked things work.  <del>Webservices &amp; reports were throwing errors.</del> But it could be due to some mistake of mine, since i was in a hurry, to go to sleep.UPDATE:  Everything works fine, as i had noted, it was because of one of my mistakes.</li>
</ul>
<p><strong>Reference</strong>:</p>
<ul>
<li><a href="http://tomcat.apache.org/tomcat-6.0-doc/config/context.html#Resource_Definitions">http://tomcat.apache.org/tomcat-6.0-doc/config/context.html#Resource_Definitions</a></li>
<li><a href="http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html#JDBC_Data_Sources">http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html#JDBC_Data_Sources</a></li>
<li><a href="http://wiki.apache.org/tomcat/TomcatHibernate">http://wiki.apache.org/tomcat/TomcatHibernate</a></li>
</ul>
<br />Filed under: <a href='http://nasarabna.wordpress.com/category/office/'>Office</a> Tagged: <a href='http://nasarabna.wordpress.com/tag/orangescape/'>orangescape</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nasarabna.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nasarabna.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nasarabna.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nasarabna.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nasarabna.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nasarabna.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nasarabna.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nasarabna.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nasarabna.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nasarabna.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nasarabna.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nasarabna.wordpress.com/885/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nasarabna.wordpress.com/885/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nasarabna.wordpress.com/885/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=885&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nasarabna.wordpress.com/2011/12/27/belling-the-cat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f13faf47f4c3fda78f553bef7c7f35e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anbarasan</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/12/300px-tomcat-logo-svg.png" medium="image">
			<media:title type="html">Apache Tomcat</media:title>
		</media:content>
	</item>
		<item>
		<title>User Management via SQL for OrangeScape Applications</title>
		<link>http://nasarabna.wordpress.com/2011/11/19/user-management-via-sql-for-orangescape-applications/</link>
		<comments>http://nasarabna.wordpress.com/2011/11/19/user-management-via-sql-for-orangescape-applications/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 06:57:48 +0000</pubDate>
		<dc:creator>அன்பரசன் (Anbarasan)</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[orangescape]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://nasarabna.wordpress.com/?p=881</guid>
		<description><![CDATA[User Management, is one of the new functionalities available in OrangeScape Applications created after the late september release. For those applications which were created before that release, during migration, the required fields would have been created. But, the developers will have to make the additional changes like, process, forms by going thru the User Management [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=881&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>User Management, is one of the new functionalities available in OrangeScape Applications created after the late september release. For those applications which were created before that release, during migration, the required fields would have been created. But, the developers will have to make the additional changes like, process, forms by going thru the User Management available in the newer applications.</p>
<p>This post is not about explaining the UserManagement part or about what changes have to be made for UserManagement to work in older applications. This post is about creating users and managing user roles via the backend, directly in the database.</p>
<p>First a small understanding about the models of User Management. UserManagement is made of the following models: User, UserChanges, RoleSubscription, AppRole</p>
<p><a href="http://nasarabna.files.wordpress.com/2011/11/photo1102.jpg"><img class="aligncenter size-medium wp-image-882" title="Photo1102" src="http://nasarabna.files.wordpress.com/2011/11/photo1102.jpg?w=300&#038;h=225" alt="" width="300" height="225" /></a><br />
I know the image is not so good. The diamonds are sightly wrong. Hope, atleast you will be able to understand the one and many sides. Ok.</p>
<p>So there is the AppRole model, which has all the roles which you have defined in the application. You don&#8217;t have to insert anything there, the application reads your process and creates the required records for the roles defined there. Next there is the User model, where all the user records are stored. Then There is the Role Subscription model, where you define the roles to which the user is assigned / subscribed to. The UserChanges model has the change history of the user&#8217;s details.</p>
<p>When you create a user a record is created in UserChanges model, and all required details are entered. Once you save the record, the actual User record is created. Once this is done, you can assign roles to the User, by inserting records to the RoleSubscription Model. To know how to do these things from the application, please refer the corresponding section in <a href="http://learn.orangesacpe.com" target="_blank">http://learn.orangescape.com</a>.</p>
<p>If you are wondering why the initial User details are being captured in UserDetails,. Once a record is created in User model for a User, the whole process of user creation is complete. When you do a create new in Orangescape Application, that record is immediately saved in the backend, and then only it is given for you to edit. Which means, when doing a create new in User Model, a new, empty User record will be created. which is BAD. I you want to know how this data entered in UserChanges syncs up with User and how all changes done for the User in UserChanges are listed from User, read the post <a title="The Cancel problem!" href="http://nasarabna.wordpress.com/2011/07/18/the-cancel-problem/" target="_blank">here</a>.</p>
<p>Ok. so now, we know a little of how User Management Works, (any questions / doubts, for the better good of other people, please ask them in the community forums). There is a beautiful &amp; easy UI provided in the application. Make sure you do check it out. But, as everyone knows, it is a pain to enter 60 or 70 user records. Well, then you have the CSV import option available, which even validates if your data is right or not. But, for some, for some reason, they need to insert data into the database directly. (In the case of integration). Lets proceed with inserting data directly back in to the backend.</p>
<p>NOTE:</p>
<p>This is for those versions where you use a database for backend. On Premise or GAE SQL. not for GAE noSQL (BigTABLE).</p>
<p>download this <a href="http://db.tt/4glYVfPS" target="_blank">SQL</a>. It has the sample queries, and the minimum required Columns and the data required for those columns. use those queries as templates, and insert the data as required in the backend.   Since updates would never make sense, with Cache in place, Modification are to be done via the application.</p>
<br />Filed under: <a href='http://nasarabna.wordpress.com/category/office/'>Office</a> Tagged: <a href='http://nasarabna.wordpress.com/tag/gae/'>gae</a>, <a href='http://nasarabna.wordpress.com/tag/orangescape/'>orangescape</a>, <a href='http://nasarabna.wordpress.com/tag/sql/'>sql</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nasarabna.wordpress.com/881/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nasarabna.wordpress.com/881/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nasarabna.wordpress.com/881/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nasarabna.wordpress.com/881/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nasarabna.wordpress.com/881/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nasarabna.wordpress.com/881/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nasarabna.wordpress.com/881/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nasarabna.wordpress.com/881/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nasarabna.wordpress.com/881/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nasarabna.wordpress.com/881/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nasarabna.wordpress.com/881/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nasarabna.wordpress.com/881/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nasarabna.wordpress.com/881/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nasarabna.wordpress.com/881/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=881&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nasarabna.wordpress.com/2011/11/19/user-management-via-sql-for-orangescape-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f13faf47f4c3fda78f553bef7c7f35e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anbarasan</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/11/photo1102.jpg?w=300" medium="image">
			<media:title type="html">Photo1102</media:title>
		</media:content>
	</item>
		<item>
		<title>Birthday Alerts app [version 2]</title>
		<link>http://nasarabna.wordpress.com/2011/08/21/birthday-alerts-app-version-2/</link>
		<comments>http://nasarabna.wordpress.com/2011/08/21/birthday-alerts-app-version-2/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 13:40:33 +0000</pubDate>
		<dc:creator>அன்பரசன் (Anbarasan)</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[What the...]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[orangescape]]></category>
		<category><![CDATA[Orangescape Studio]]></category>

		<guid isPermaLink="false">http://nasarabna.wordpress.com/?p=876</guid>
		<description><![CDATA[When i wrote last time how i made the birthday alerts app , i wrote, how, because of a property of SLA, the data had to be entered at that time of the day when you want to receive on the desired day.  (I know i am being confusing because i am trying to say it all in one line, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=876&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When i wrote last time how i made the <a href="http://nasarabna.wordpress.com/2011/03/04/birthday-alerts-app/">birthday alerts app</a> , i wrote, how, because of a property of SLA, the data had to be entered at that time of the day when you want to receive on the desired day.  (I know i am being confusing because i am trying to say it all in one line, read the previous post and you will understand).  Well now you don&#8217;t have to,  and have made the logic behind the app mucho simpler.  Well, the process flow part is just one activity, apart from start and end, unlike the previous time, when it was like, 7 or 8 activities.  It is still 7 fields, and all logics have been moved to actions.</p>
<p><a href="http://nasarabna.files.wordpress.com/2011/08/birthdayalerts.png"><img class="aligncenter size-full wp-image-877" title="birthdayalerts processdesign" src="http://nasarabna.files.wordpress.com/2011/08/birthdayalerts.png?w=600" alt=""   /></a>The activity Reminders has  a SLA set on it.  The time duration is obtained from the field RemindIn.  The two actions in this are, one to calculate the time, when to remind and the other one, to send the reminder and reset it for the next round.  The changed datamodel is as follows.</p>
<p><a href="http://nasarabna.files.wordpress.com/2011/08/birthdayalertsdatamodel.png"><img class="aligncenter size-full wp-image-878" title="birthdayalertsdatamodel" src="http://nasarabna.files.wordpress.com/2011/08/birthdayalertsdatamodel.png?w=600" alt=""   /></a></p>
<p>The calculations done to get the RemindIn time duration is as follows.</p>
<ul>
<li>DayNextYear = (DATE(YEAR(NOW())+1,MONTH(Birthday),DAY(Birthday)))</li>
<li>DayThisYear = (DATE(YEAR(NOW()),MONTH(Birthday),DAY(Birthday)))</li>
<li>RemindIn = IF(Birthday&gt;NOW(),(Birthday-TODAY()-1)*24+HOUR((TODAY()+1)-NOW()),IF(DayThisYear&gt;NOW(),(DayThisYear-TODAY()-1)*24+HOUR((TODAY()+1)-NOW()),(DayNextYear-TODAY()-1)*24+HOUR((TODAY()+1)-NOW())))</li>
</ul>
<div>Well that&#8217;s it.  Think anything is amiss, or some other thing, that should be there, lemme know.</div>
<div>About this app:</div>
<div>This is a simple app, which takes in the date on which you have to be reminded, and sends you a mail about what you want to be reminded.   It will automatically remind you every year [since, you see, birthday's / Anniversaries come only yearly].</div>
<br />Filed under: <a href='http://nasarabna.wordpress.com/category/office/'>Office</a>, <a href='http://nasarabna.wordpress.com/category/programming/'>programming</a>, <a href='http://nasarabna.wordpress.com/category/what-the/'>What the...</a> Tagged: <a href='http://nasarabna.wordpress.com/tag/ideas/'>ideas</a>, <a href='http://nasarabna.wordpress.com/tag/orangescape/'>orangescape</a>, <a href='http://nasarabna.wordpress.com/tag/orangescape-studio/'>Orangescape Studio</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nasarabna.wordpress.com/876/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nasarabna.wordpress.com/876/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nasarabna.wordpress.com/876/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nasarabna.wordpress.com/876/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nasarabna.wordpress.com/876/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nasarabna.wordpress.com/876/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nasarabna.wordpress.com/876/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nasarabna.wordpress.com/876/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nasarabna.wordpress.com/876/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nasarabna.wordpress.com/876/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nasarabna.wordpress.com/876/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nasarabna.wordpress.com/876/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nasarabna.wordpress.com/876/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nasarabna.wordpress.com/876/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=876&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nasarabna.wordpress.com/2011/08/21/birthday-alerts-app-version-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f13faf47f4c3fda78f553bef7c7f35e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anbarasan</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/08/birthdayalerts.png" medium="image">
			<media:title type="html">birthdayalerts processdesign</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/08/birthdayalertsdatamodel.png" medium="image">
			<media:title type="html">birthdayalertsdatamodel</media:title>
		</media:content>
	</item>
		<item>
		<title>The Cancel problem!</title>
		<link>http://nasarabna.wordpress.com/2011/07/18/the-cancel-problem/</link>
		<comments>http://nasarabna.wordpress.com/2011/07/18/the-cancel-problem/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 19:51:55 +0000</pubDate>
		<dc:creator>அன்பரசன் (Anbarasan)</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[orangescape]]></category>
		<category><![CDATA[Orangescape Studio]]></category>

		<guid isPermaLink="false">http://nasarabna.wordpress.com/?p=851</guid>
		<description><![CDATA[Anyone who has been using OrangeScape, will know about the auto save feature (in runtime).   (I use the word &#8220;auto save&#8221;,  just coz,  i could not think of any other word, which will explain what i am trying to say). Once you type in a field in your application, and move to the next [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=851&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Anyone who has been using OrangeScape, will know about the auto save feature (in runtime).   (I use the word &#8220;auto save&#8221;,  just coz,  i could not think of any other word, which will explain what i am trying to say).</p>
<p>Once you type in a field in your application, and move to the next field, the first field value will be automatically saved.   (Didn&#8217;t they say they use AJAX too).   But sometimes, this is not required.   So, for those who do not require that data be saved to the backend immediately, OrangeScape has three options which you can set, and control when the data is sent back to the server, to be saved to the backend.  In Form Design, in the Ribbon, under the category Cell,  you can see three options : Dont Submit, Submit, Submit on Dependency.    Lemme briefly say what these three options are.</p>
<ul>
<li><strong>Dont Submit</strong> : as the name says, the field data will not be sent to server, as and when the field data changes.  The whole form will be submitted when you submit the form.</li>
<li><strong>Submit</strong> : The field data will be sent to server on every change.</li>
<li><strong>Submit on Dependency</strong> : The data will be sent only if there are any formula / rule which depends on the value of the field which is currently being changed.  All data till that point which has been entered will be sent to server.  for ex.  if you have 3 fields, name, qty and amount.  Amount will be calculated based on formula which involves qty, then when you change qty, the name field value will also be sent to server.</li>
</ul>
<p>The default is <em>Submit on Dependency</em>.</p>
<p>Ok! after all these details, you must be thinking, then what is this Cancel button problem that i am talking about.  If you aren&#8217;t, then, after reading the scenario, you will.</p>
<p><strong>Disclaimer</strong>:  The following process / scenario / Persons in this scenario is a fictional one.  any resemblance to an existing process / scenario / Persons is purely coincidental.    Few words of technical mumbo-jumbo can be seen.  I apologize.</p>
<p><strong>Warning</strong> : This is a really long &amp; boring blog post.</p>
<p>Let&#8217;s assume, that you are updating profile details, which you created when you first logged in to this awesome application created with orangescape.  Let&#8217;s see what details are there in the  form.  There is the usual, first name, last name, date of birth,  address, country, state, city.  This person, who is editing, has moved to a city in another State.</p>
<p>Let&#8217;s make another assumption,  that all fields have been set as Dont Submit.  so what will happen, the user will change the address, the State in the State drop down, then will try to change the City in the City drop down.  But wait!  the city drop down is still showing cities belonging to the previous chosen State.  Why? because, the application does not know, what are the cities in the State which you have chosen.  It has to communicate with the server, and then find out what are the cities in the state you have chosen, and then show it to you.  But it has been set as Dont Submit, which means communications to server have been bared till you submit the page.</p>
<p>Now, this leaves us with no other choice, other than to change the setting to Submit on Dependency on the three drop downs (Country, State, City).    Now after changing the address, the person chooses the state, now, a request will be sent to server the fetch the data for the list of cities belonging to the state chosen.  At this point, in the request sent to the server, the data which has been modified till this point will be submitted.  Which means the address has been saved.</p>
<p>Well, what&#8217;s the problem you ask?! The person had a change of mind, and does not want to carry on with the update, and want to cancel and go back to how it was previously.  Unfortunately, it can&#8217;t be done.  the data has been changed and saved.  There is no way of getting it back.  Ah!  now you get the problem?!!</p>
<p>So how to do we solve this problem?!!  During a discussion at work, a person with whom i work with, gave this idea, which he had used in another application of his.  Which was good.  And this would also help those who want to track every change that their users did, during every submit.  Yeah!  you are thinking right.</p>
<p><strong>Data versioning</strong></p>
<p>Data Versioning,  essentially what you will be doing is, whenever you open a record to edit, you will be actually opening a copy of the data to edit, and if everything is ok, and you want to submit the changes, then they will be changed, else you can discard the data.  (or you can store it and see how the user changed the data from what to what, etc.,  But be responsible with what you do.)</p>
<p><em><strong>Whatever you wanna call this</strong></em> :  This is not the only way.  May be there are (will be) other alternatives.  If you are going to use this, welcome aboard.</p>
<p>Ok!  let&#8217;s say we have one model, for which we want to implement this.  Let&#8217;s see how to do it.</p>
<p>Now, keep only those fields, which are absolute necessary in this model.  Leave out fields for validations, flags for permissions and all those unnecessary stuff.  Create one more model, when you can write all those unnecessary stuff + all your fields which are absolute necessary.  Let&#8217;s call the model with absolute necessary fields as <em>Transactions</em> and the other model with all the unnecessary stuff + absolute necessary fields as <em>History</em>.</p>
<p style="text-align:center;"><a href="http://nasarabna.files.wordpress.com/2011/07/photo1040.jpg"><img class="aligncenter" title="dataversioning" src="http://nasarabna.files.wordpress.com/2011/07/photo1040.jpg?w=480&#038;h=360" alt="" width="480" height="360" /></a></p>
<p>We need 2 more fields in the Transaction model as connections to History model, and 1 field in History model as connection to Transaction model.    The following logic, will be really confusing, coz, i was getting confused with this logic, when listening, when explaining, and also when doing.  So most probably i will be writing this in the same confused way.  Be prepared to be confused.</p>
<p>In Transactions model i am going to create three actions.</p>
<ul>
<li>Create History</li>
<ul>
<li>A NEW Command which will create a copy of the current data in History model for editing</li>
</ul>
<li><a href="http://nasarabna.files.wordpress.com/2011/07/createhistory.png"><img class="aligncenter size-medium wp-image-858" title="CreateHistory" src="http://nasarabna.files.wordpress.com/2011/07/createhistory.png?w=300&#038;h=192" alt="" width="300" height="192" /></a>Update Transactions</li>
<ul>
<li>An UPDATE Command, which sets the value of Draft into Current.</li>
</ul>
<li><a href="http://nasarabna.files.wordpress.com/2011/07/updatetransactions.png"><img class="aligncenter size-medium wp-image-859" title="UpdateTransactions" src="http://nasarabna.files.wordpress.com/2011/07/updatetransactions.png?w=300&#038;h=119" alt="" width="300" height="119" /></a>Workflow</li>
<ul>
<li>An UPDATE Command, which releases the History command from draft state to commit state.</li>
<li>A Submit Command, to proceed in the workflow.</li>
</ul>
</ul>
<p><a href="http://nasarabna.files.wordpress.com/2011/07/workflow.png"><img class="aligncenter size-medium wp-image-860" title="workflow" src="http://nasarabna.files.wordpress.com/2011/07/workflow.png?w=300&#038;h=102" alt="" width="300" height="102" /></a>Now lets move to History Model.  Here i am going to create just one action</p>
<ul>
<li>Update Entries</li>
<ul>
<li>Two PARENTCALL Commands, first one to call Update Transactions, and 2nd one to call WorkFlow action.</li>
</ul>
</ul>
<div>In Transactions in all fields i have written <a href="http://community.orangescape.com/profiles/blogs/syntactic-sugar-dget">DGET() </a>to fetch data from History model, based on the &#8220;Current&#8221;  Reference Field.  As for the forms, i had designed the forms in History Model, and used that form as a Many To One form via Draft reference field.  and for the submit, i had used the Update Entries Action.  thats it.  O!  i totally forgot, that CreateHistory action, that will fire everytime a record comes to the activity, i have used the <em>Connect -&gt; Action</em> in the Process Design to set it.</div>
<div>So how it Works?!#@.</div>
<div>Once you create a new record or submit an existing record, the Create History will be called, and a new History record will be created with existing set of values.  For ex:  lets consider a simple model Transaction</div>
<div>
<table width="100%" border="0" align="center">
<tbody>
<tr>
<td><a href="http://nasarabna.files.wordpress.com/2011/07/transactions.png"><img class="aligncenter size-full wp-image-861" title="Transactions" src="http://nasarabna.files.wordpress.com/2011/07/transactions.png?w=600" alt=""   /></a></td>
<td><a href="http://nasarabna.files.wordpress.com/2011/07/transactionshistory.png"><img class="aligncenter size-full wp-image-862" title="TransactionsHistory" src="http://nasarabna.files.wordpress.com/2011/07/transactionshistory.png?w=600" alt=""   /></a></td>
</tr>
</tbody>
</table>
</div>
<p>So, when a new record is created / a record is submitted , CreateHistory action is called, and a History record is created via the NEW command, and reference to the newly created record is set in the Draft Reference Cell in Transactions model and a reference to Transactions model is set in History reference cell in History model.  Now based on the Draft reference cell, the newly created History model record will show in the form as a Many to one record.  The user will make changes / enter data in this form.    So, all data are being entered into History model record.  Till the user clicks submit button all data will reside in History model.  If the user decides to cancel, then you can either discard the History model record, or store it as editing history.</p>
<p>Ok!  So when the user submits, via the call child action we set the value of the Current Reference cell to the value in Draft Reference Cell.  Now, all DGET() functions in the Transaction model will fire based on the Current Reference Cell value, and sync the data which was entered / changed in the current submitted version of the History Record.  Then we will clear the Draft Reference Cell value to blank, so that the Current Referenced and Draft Referenced records are not the same records.</p>
<p>So That&#8217;s it.  I have done it and tested, and it is working.  But don&#8217;t take my word for it.  Please try it out, and understand what is really happening.  This may or may not get complex based on your scenarios.    I know,  i know, it is already confusing, and i am writing this whole thing, in the middle of the night, half asleep.</p>
<p>If you still got questions, please post your questions in the comments.  Or, if you think you have an even better idea, lemme know, we can make things work better,.</p>
<br />Filed under: <a href='http://nasarabna.wordpress.com/category/office/'>Office</a> Tagged: <a href='http://nasarabna.wordpress.com/tag/ideas/'>ideas</a>, <a href='http://nasarabna.wordpress.com/tag/orangescape/'>orangescape</a>, <a href='http://nasarabna.wordpress.com/tag/orangescape-studio/'>Orangescape Studio</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nasarabna.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nasarabna.wordpress.com/851/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nasarabna.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nasarabna.wordpress.com/851/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nasarabna.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nasarabna.wordpress.com/851/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nasarabna.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nasarabna.wordpress.com/851/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nasarabna.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nasarabna.wordpress.com/851/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nasarabna.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nasarabna.wordpress.com/851/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nasarabna.wordpress.com/851/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nasarabna.wordpress.com/851/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=851&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nasarabna.wordpress.com/2011/07/18/the-cancel-problem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f13faf47f4c3fda78f553bef7c7f35e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anbarasan</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/07/photo1040.jpg" medium="image">
			<media:title type="html">dataversioning</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/07/createhistory.png?w=300" medium="image">
			<media:title type="html">CreateHistory</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/07/updatetransactions.png?w=300" medium="image">
			<media:title type="html">UpdateTransactions</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/07/workflow.png?w=300" medium="image">
			<media:title type="html">workflow</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/07/transactions.png" medium="image">
			<media:title type="html">Transactions</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/07/transactionshistory.png" medium="image">
			<media:title type="html">TransactionsHistory</media:title>
		</media:content>
	</item>
		<item>
		<title>Delete records along with Worktop count change</title>
		<link>http://nasarabna.wordpress.com/2011/03/10/delete-records-along-with-worktop-count-change/</link>
		<comments>http://nasarabna.wordpress.com/2011/03/10/delete-records-along-with-worktop-count-change/#comments</comments>
		<pubDate>Thu, 10 Mar 2011 09:31:52 +0000</pubDate>
		<dc:creator>அன்பரசன் (Anbarasan)</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[What the...]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[orangescape]]></category>
		<category><![CDATA[Orangescape Studio]]></category>

		<guid isPermaLink="false">http://nasarabna.wordpress.com/?p=842</guid>
		<description><![CDATA[Well, well, well, sometimes, in your application you would have to delete your records because you created one request extra, or instead of raising a request in this you raised a request under another category. If the application is developed in Orangescape,  if you delete a record, the count in the worktop will not go [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=842&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well, well, well, sometimes, in your application you would have to delete your records because you created one request extra, or instead of raising a request in this you raised a request under another category.</p>
<p>If the application is developed in Orangescape,  if you delete a record, the count in the worktop will not go down, it will continue to show the count which was there before the record was deleted.  So how do you delete the records, and also have proper count in worktop?!!!</p>
<p>Orangescape, it seems is done with the assumption that no transaction record will be deleted, but will be archived.  Yeah, but in some places, it is not a requirement, you are free to delete the records.  So how to do that.  Let&#8217;s see how to do it.</p>
<p><em><strong>Warning </strong></em>:  This involves using System Models, if not done properly, could lead to problems, and i am not to be held responsible</p>
<p><em><strong>Assumptions </strong></em>:  I hope you know how to delete a record from inbox, because that is the method, am gonna use and am not going into the details.  Also, i hope that you guys understand the relationships which exist with your models and the system models.</p>
<p>Ok.  So, if you still reading, lets do it.  before that, a little explanation,  We will be dealing with one System Model =&gt; Process Instance.  But because of the procedure which we are going to do, data in two system models will be affected. They are =&gt; Process Instance, Process Audit.  Process Instance and Process Audit, together hold the who did what in the application,  information.    OK, lets get down, and get our hands dirty, shall we?</p>
<p>Open the Process Instance Model, Create a new action, and name it something, lets say, &#8220;Eraser&#8221;.  In that action, add the delete command.  Save the Model and close it.</p>
<p>Now, open the model where you want the delete functionality.  add a new action or you can also use the existing action which you have configured to delete the record.   The first command that you are going to add in this action is CallParentAction.  in CallParentAction properties,</p>
<ul>
<li>for Parent &#8211; Model you will choose ProcessInstance(ProcessInstance).</li>
<li>for ParentAction-Name you will choose the action which we created now, in this case &#8220;Eraser&#8221;</li>
</ul>
<p>the next command that you will add is the delete command. that&#8217;s it.  The action design should look like this.</p>
<p><a href="http://nasarabna.files.wordpress.com/2011/03/vaporize.png"><img class="aligncenter size-full wp-image-843" title="vaporize" src="http://nasarabna.files.wordpress.com/2011/03/vaporize.png?w=600" alt=""   /></a></p>
<p>Now add this action to the inbox&#8230;  Now Whenever you execute this action,  the Worktop count  will also be recalculated to reflect the changes&#8230;..</p>
<p>Woah!  Howzzzzat?!</p>
<p><em>Update</em>:  as <a href="http://twitter.com/Vaithi_G" target="_blank">@Vaithi_G</a> puts it, this is good for models with straight process flow, but if there are branches you will have to include atleast two more CallParentActions for each OR or AND branches, which will make the config tedious for every branching in process, as he had suggested, you can use RCall command once instead of CallParentAction command.  If you use RCall, the Parameter configuration is as follows</p>
<ul>
<li>Choose ProcessInstance in Model-Name list.</li>
<li>for CallAction-Name enter the Action Name, again in this case &#8220;Eraser&#8221;</li>
<li>for Search-Criteria enter =Criteria(ProcessInstance.InstanceId=SheetId)</li>
</ul>
<p><em>Another Update</em>: <a href="http://twitter.com/VivekMadurai">@VivekMadurai</a> says, that in next version, the first method (using CallParentAction) itself will delete all Process Instances even though there are multiple branches.  so for the sake of performance, don&#8217;t use the RCall Command method after 2 weeks.</p>
<br />Filed under: <a href='http://nasarabna.wordpress.com/category/office/'>Office</a>, <a href='http://nasarabna.wordpress.com/category/programming/'>programming</a>, <a href='http://nasarabna.wordpress.com/category/what-the/'>What the...</a> Tagged: <a href='http://nasarabna.wordpress.com/tag/ideas/'>ideas</a>, <a href='http://nasarabna.wordpress.com/tag/orangescape/'>orangescape</a>, <a href='http://nasarabna.wordpress.com/tag/orangescape-studio/'>Orangescape Studio</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nasarabna.wordpress.com/842/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nasarabna.wordpress.com/842/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nasarabna.wordpress.com/842/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nasarabna.wordpress.com/842/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nasarabna.wordpress.com/842/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nasarabna.wordpress.com/842/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nasarabna.wordpress.com/842/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nasarabna.wordpress.com/842/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nasarabna.wordpress.com/842/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nasarabna.wordpress.com/842/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nasarabna.wordpress.com/842/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nasarabna.wordpress.com/842/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nasarabna.wordpress.com/842/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nasarabna.wordpress.com/842/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=842&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nasarabna.wordpress.com/2011/03/10/delete-records-along-with-worktop-count-change/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f13faf47f4c3fda78f553bef7c7f35e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anbarasan</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/03/vaporize.png" medium="image">
			<media:title type="html">vaporize</media:title>
		</media:content>
	</item>
		<item>
		<title>Birthday Alerts App</title>
		<link>http://nasarabna.wordpress.com/2011/03/04/birthday-alerts-app/</link>
		<comments>http://nasarabna.wordpress.com/2011/03/04/birthday-alerts-app/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 05:29:25 +0000</pubDate>
		<dc:creator>அன்பரசன் (Anbarasan)</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[What the...]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[orangescape]]></category>
		<category><![CDATA[Orangescape Studio]]></category>

		<guid isPermaLink="false">http://nasarabna.wordpress.com/?p=835</guid>
		<description><![CDATA[A few months back during a discussion in the office @JohnPrawyn was talking about some difficulty in doing a birthday alerts app using orangescape, (orangescapian&#8217;s birthday alerts is his responsibility).  Then I just forgot about it. 2 days back,  i fell asleep while reading, and i had a dream about the implementation of the birthday app, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=835&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A few months back during a discussion in the office <a href="http://twitter.com/JohnPrawyn">@JohnPrawyn</a> was talking about some difficulty in doing a birthday alerts app using orangescape, (orangescapian&#8217;s birthday alerts is his responsibility).  Then I just forgot about it.</p>
<p>2 days back,  i fell asleep while reading, and i had a dream about the implementation of the birthday app,  I woke up and quickly noted down what ever i had remembered.  It was simple, but there were some small problems&#8230;.  So here is the process flow, which i had dreamed.</p>
<p><a href="http://nasarabna.files.wordpress.com/2011/03/birthdayreminder.png"><img class="aligncenter size-full wp-image-836" title="BirthDayReminderProcessFlowInOrangeScape" src="http://nasarabna.files.wordpress.com/2011/03/birthdayreminder.png?w=600&#038;h=91" alt="BirthDayReminderProcessFlowInOrangeScape" width="600" height="91" /></a></p>
<p>There are no ways to schedule things as of now (maybe some feature is on the pipeline!),   so i decided to use the SLA feature.  Checks are done to find the Birthday every month / week / day (based on the nearness of the alert day).</p>
<p>The above process flow, is flawless on the paper, now have set some data to check it.</p>
<p>So, are you still wondering what was the small problem that i had talked about.  Yeah, there is a problem there.  A feature of SLA is that the time duration to check will start off once the request reaches the particular activity.  which means, for ex.  In the Process Flow above, if the request reaches the activity Initialize, at say evening 4:30 and the SLA hours are set as 24 hours, then the activity will next happen tomorrow at 4:30 in the evening.  Which means, to get the reminder at the beginning of the day, i should sit at the beginning of the day and set the reminder.  Will need to find a work around on that.  (i have one, but let me first finish the testing of this first, it everything works fine, then i will implement it out.)</p>
<p>O!  and there are only 6 fields (+ system fields) in the model,</p>
<p><a href="http://nasarabna.files.wordpress.com/2011/03/birthdayremindermodel.png"><img class="aligncenter size-medium wp-image-837" title="BirthDayReminderModel" src="http://nasarabna.files.wordpress.com/2011/03/birthdayremindermodel.png?w=300&#038;h=187" alt="BirthDayReminderModel" width="300" height="187" /></a></p>
<p>Well anyway, i had dreamed of solutions before, but nothing of this sort has happened.  It would usually be like conversing with someone and coming up with something, but not the complete answer to a question.</p>
<br />Filed under: <a href='http://nasarabna.wordpress.com/category/office/'>Office</a>, <a href='http://nasarabna.wordpress.com/category/programming/'>programming</a>, <a href='http://nasarabna.wordpress.com/category/what-the/'>What the...</a> Tagged: <a href='http://nasarabna.wordpress.com/tag/ideas/'>ideas</a>, <a href='http://nasarabna.wordpress.com/tag/orangescape/'>orangescape</a>, <a href='http://nasarabna.wordpress.com/tag/orangescape-studio/'>Orangescape Studio</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nasarabna.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nasarabna.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nasarabna.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nasarabna.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nasarabna.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nasarabna.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nasarabna.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nasarabna.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nasarabna.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nasarabna.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nasarabna.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nasarabna.wordpress.com/835/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nasarabna.wordpress.com/835/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nasarabna.wordpress.com/835/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=835&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nasarabna.wordpress.com/2011/03/04/birthday-alerts-app/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f13faf47f4c3fda78f553bef7c7f35e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anbarasan</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/03/birthdayreminder.png" medium="image">
			<media:title type="html">BirthDayReminderProcessFlowInOrangeScape</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2011/03/birthdayremindermodel.png?w=300" medium="image">
			<media:title type="html">BirthDayReminderModel</media:title>
		</media:content>
	</item>
		<item>
		<title>A Ning Network + RSS Feeds + PHP cUrl + MySql + GAE -&gt; WTF?!</title>
		<link>http://nasarabna.wordpress.com/2011/02/11/a-ning-network-rss-feeds-php-curl-mysql-gae-gt-wtf/</link>
		<comments>http://nasarabna.wordpress.com/2011/02/11/a-ning-network-rss-feeds-php-curl-mysql-gae-gt-wtf/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 18:25:29 +0000</pubDate>
		<dc:creator>அன்பரசன் (Anbarasan)</dc:creator>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[gae]]></category>
		<category><![CDATA[ning]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://nasarabna.wordpress.com/?p=829</guid>
		<description><![CDATA[We use Ning in our company for the developer community activities around our product.  We wanted to know if there are any topics on forums are unanswered, or what are the topics that were being discussed in the last week, or were any blogs written, and things like that.  To make it simple and easy [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=829&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We use <a href="http://www.ning.com/" target="_blank">Ning</a> in our company for the <a href="http://community.orangescape.com/" target="_blank">developer community</a> activities around our product.  We wanted to know if there are any topics on forums are unanswered, or what are the topics that were being discussed in the last week, or were any blogs written, and things like that.  To make it simple and easy to understand, something like what happened in the past week / month.</p>
<p>Googled to see if anything as such is available,  as my luck would have, i didn&#8217;t find any.  So, i decided to write my own.  Went to Ning API documentation to see if there are any ways to get the data, again a dead end.  It is not available as of now.  But then, i remembered seeing a rss feed of activities in the site, so decided to dig a little more into it.  and land up at <a href="http://help.ning.com/cgi-bin/ning.cfg/php/enduser/std_adp.php?p_faqid=3837" target="_blank">this</a> page.  Armed with this piece of info, &amp; since this kind of stuff can&#8217;t be done as of now, with our product (if only they provided the data as SOAP service), i sat down to write something to parse the feed, read the data, get the required ones, store it and do the reports.</p>
<p>So sat down to write the feed parser.  decided to use the hosting which i signed up some time back, which i never used, for this purpose. Used PHP cUrl to read the feeds and process it and store it into mysql tables.  everything went well, until they blocked cUrl and socket programming.   I was not in a mood to search for another hosting which supported this.  also, this required me running the php page in a browser so that it can refresh every 15 minutes and get the new data.    So decided to look into something with scheduling and such.</p>
<p>When doing something similar at work, the idea of using <a href="http://code.google.com/appengine/" target="_blank">Google App Engine</a> for this dawned.  But then App Engine supported only python and Java, which would mean porting from php to any of these languages.  But then, it was Java which gave me a ray of hope.  Since there are many <a href="http://en.wikipedia.org/wiki/Java_Virtual_Machine#JVM_languages" target="_blank">JVM compatible languages</a> around, and if Java was supported, indirectly these languages should also supported.  after a little googling got this <a href="http://code.google.com/p/googleappengine/wiki/WillItPlayInJava" target="_blank">information</a>.  And there it was, PHP will work via <a href="http://quercus.caucho.com/" target="_blank">Quercus</a>.  Digging around their forums, and after looking around, decided to go about doing it.  If it comes up well, then Good, else, it would be one hellava ride, knowing App Engine, Quercus and stuff.</p>
<p>And Challenging it was.  though everything worked without major changes, except storing of data (i was not understanding the examples on how to do it), there was some problems cropping up.  First fetching of atom feeds was not working.  something was a miss.  going around making changes, i couldn&#8217;t wat fixed it, after a day it started to work.  But still there was some problem with getting the data, the feed parsing was not returning the feed data for certain tags, turned it did not return the description tag&#8217;s data in the rss feed (it was wrapped as CDATA, and was working inconsistently).  Couldn&#8217;t figure out why.  and since was pressed for time, decided to fight it another day, and scrapped the required data from another tag&#8217;s data.</p>
<p>Next it was Task Queues.  It was not a big difficulty.  actually it was the most easiest, i had a working example.</p>
<p>At this stage, i was at the verge of losing my patience.  It had taken close to 2 weeks, and i was still fighting ( i was on it only on weekends, and you can imagine, how the distractions will be. Cartoons, Movies, Parents, Cooking, Going Out, Cricket, Friends, Twitter, Facebook, Sleeping, Caring for the bike, etc&#8230;&#8230;).  i was pretty much tired of making changes, and just wanted something which will complete the work. Instead of using Data Store for storing the data, and then trying to figure out how to deal with aggregation and joins, decided to go with the mysql in my hosting.  so whipped out a quick script to send data to my hosting from GAE, a php page on my hosting to accept the data via post, validate it and store it into mysql, and another to display the information as  i had wanted it.</p>
<p>At last i have it, something that does what i wanted.  It was a kind of a bit messed up solution, which i had cooked up with all sorts of nonsense ideas ( it seems nonsense when i first thought of &#8216;em ) which i came up.</p>
<p>Now need to, convert it to make use of datastore to store data, which is a trivial task, but then, to do the reports, i think i should change a lot of things, possibly the datamodel structure which i am using now, since datastore does not support joins, it is going to be a challenge for me.  ( i am still the same person, who is not comfortable writing any queries other than select * from table where&#8230; and delete from table where&#8230;.  )</p>
<p>Like i said at the beginning, If it comes up well, then Good, else, it would be one hellava ride.  but frankly, it was both, and boy what a lot of fun it was&#8230;&#8230;&#8230;  : )</p>
<p>Links where i looked when i was stuck.</p>
<ul>
<li><a href="http://www.samaxes.com/2009/12/php-on-google-app-engine/">http://www.samaxes.com/2009/12/php-on-google-app-engine/</a></li>
<li><a href="http://brian.brispace.net/2009/04/09/php-on-google-app-engine/#post-398">http://brian.brispace.net/2009/04/09/php-on-google-app-engine/#post-398</a></li>
<li><a href="http://www.php-tutorials.info/phpOnAppEngine.php">http://www.php-tutorials.info/phpOnAppEngine.php</a></li>
<li><a href="http://blog.herbert.groot.jebbink.nl/search/label/GAE">http://blog.herbert.groot.jebbink.nl/search/label/GAE</a></li>
<li><a href="http://blog.caucho.com/?p=370">http://blog.caucho.com/?p=370</a></li>
</ul>
<p>The first three are essentially the same&#8230;   I would love to share what i had done.  I will, after completing the datastore part of it.</p>
<br />Filed under: <a href='http://nasarabna.wordpress.com/category/office/'>Office</a>, <a href='http://nasarabna.wordpress.com/category/programming/'>programming</a> Tagged: <a href='http://nasarabna.wordpress.com/tag/gae/'>gae</a>, <a href='http://nasarabna.wordpress.com/tag/ning/'>ning</a>, <a href='http://nasarabna.wordpress.com/tag/php/'>php</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nasarabna.wordpress.com/829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nasarabna.wordpress.com/829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nasarabna.wordpress.com/829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nasarabna.wordpress.com/829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nasarabna.wordpress.com/829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nasarabna.wordpress.com/829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nasarabna.wordpress.com/829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nasarabna.wordpress.com/829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nasarabna.wordpress.com/829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nasarabna.wordpress.com/829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nasarabna.wordpress.com/829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nasarabna.wordpress.com/829/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nasarabna.wordpress.com/829/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nasarabna.wordpress.com/829/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=829&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nasarabna.wordpress.com/2011/02/11/a-ning-network-rss-feeds-php-curl-mysql-gae-gt-wtf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f13faf47f4c3fda78f553bef7c7f35e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anbarasan</media:title>
		</media:content>
	</item>
		<item>
		<title>For those of you who missed chennai #techmeet 2 #chennaigeeks</title>
		<link>http://nasarabna.wordpress.com/2010/11/20/for-those-of-you-who-missed-chennai-techmeet-2-chennaigeeks/</link>
		<comments>http://nasarabna.wordpress.com/2010/11/20/for-those-of-you-who-missed-chennai-techmeet-2-chennaigeeks/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 15:38:55 +0000</pubDate>
		<dc:creator>அன்பரசன் (Anbarasan)</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[#chennaigeeks]]></category>
		<category><![CDATA[#techtalk]]></category>

		<guid isPermaLink="false">http://nasarabna.wordpress.com/?p=825</guid>
		<description><![CDATA[The Second Techmeet of Chennai Geeks happened today.  And like, the previous session, i recorded this session too.  For those who missed, here are the links of the recordings. Web Scale Computing by Mani Doraisamy Part 1 [107 mb], Part 2 [52 mb] MemCached by Sudar Part 1 [105 mb], Part 2 [59 mb] Filed [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=825&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The Second Techmeet of Chennai Geeks happened today.  And like, the previous session, i recorded this session too.  For those who missed, here are the links of the recordings.</p>
<blockquote><p>Web Scale Computing by Mani Doraisamy <a href="http://ubuntuone.com/p/Q56/">Part 1 [107 mb]</a>, <a href="http://ubuntuone.com/p/Q57/">Part 2 [52 mb]</a></p>
<p>MemCached by Sudar <a href="http://ubuntuone.com/p/Q58/">Part 1 [105 mb]</a>, <a href="http://ubuntuone.com/p/Q59/">Part 2 [59 mb]</a></p></blockquote>
<br />Filed under: <a href='http://nasarabna.wordpress.com/category/uncategorized/'>Uncategorized</a> Tagged: <a href='http://nasarabna.wordpress.com/tag/chennaigeeks/'>#chennaigeeks</a>, <a href='http://nasarabna.wordpress.com/tag/techtalk/'>#techtalk</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nasarabna.wordpress.com/825/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nasarabna.wordpress.com/825/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nasarabna.wordpress.com/825/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nasarabna.wordpress.com/825/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nasarabna.wordpress.com/825/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nasarabna.wordpress.com/825/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nasarabna.wordpress.com/825/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nasarabna.wordpress.com/825/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nasarabna.wordpress.com/825/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nasarabna.wordpress.com/825/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nasarabna.wordpress.com/825/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nasarabna.wordpress.com/825/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nasarabna.wordpress.com/825/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nasarabna.wordpress.com/825/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=825&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nasarabna.wordpress.com/2010/11/20/for-those-of-you-who-missed-chennai-techmeet-2-chennaigeeks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f13faf47f4c3fda78f553bef7c7f35e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anbarasan</media:title>
		</media:content>
	</item>
		<item>
		<title>For those of you who missed chennai #techmeet #chennaigeeks</title>
		<link>http://nasarabna.wordpress.com/2010/10/16/for-those-of-you-who-missed-chennai-techmeet-chennaigeeks/</link>
		<comments>http://nasarabna.wordpress.com/2010/10/16/for-those-of-you-who-missed-chennai-techmeet-chennaigeeks/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 19:49:59 +0000</pubDate>
		<dc:creator>அன்பரசன் (Anbarasan)</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[#chennaigeeks]]></category>
		<category><![CDATA[#techtalk]]></category>

		<guid isPermaLink="false">http://nasarabna.wordpress.com/?p=815</guid>
		<description><![CDATA[After a late decision to attend techmeet last night, was feeling bad for a few of my friends who felt bad about having to miss it.  So i decided to help them the only way that i can,  record it.  So here i am posting the links to the files, for the general public as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=815&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After a late decision to attend techmeet last night, was feeling bad for a few of my friends who felt bad about having to miss it.  So i decided to help them the only way that i can,  record it.  So here i am posting the links to the files, for the general public as well.</p>
<blockquote><p>Introduction of TechMeet by Dorait    <a href="http://ubuntuone.com/p/Kky/" target="_blank">Download [8.8mb]</a></p>
<p>Gist of Cloud by Dinesh Varadarajan   <a href="http://ubuntuone.com/p/Kkz/" target="_blank">Part 1 [117mb]</a>,  <a href="http://ubuntuone.com/p/Kl0/" target="_blank">Part 2 [12.7mb]</a></p>
<p>MongoDB by Vagmi Mudumbai   <a href="http://ubuntuone.com/p/Kl1/" target="_blank">Part 1 [127.1mb]</a>,  <a href="http://ubuntuone.com/p/Kl2/" target="_blank">Part 2 [81.6mb]</a></p></blockquote>
<p>I hope the presentations too will be posted by the speakers.</p>
<p><em>Warning</em>:  The audio quality is not that great.  (I was not in the right position, and my corby pro was a lill ill, and i really need to freshen up my memory on how to use Audacity).   Hearing on external speakers is ok.  But with headphones, may cause headache.  If some one could do some sort of cleanup, it would of great.</p>
<br />Filed under: <a href='http://nasarabna.wordpress.com/category/uncategorized/'>Uncategorized</a> Tagged: <a href='http://nasarabna.wordpress.com/tag/chennaigeeks/'>#chennaigeeks</a>, <a href='http://nasarabna.wordpress.com/tag/techtalk/'>#techtalk</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nasarabna.wordpress.com/815/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nasarabna.wordpress.com/815/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nasarabna.wordpress.com/815/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nasarabna.wordpress.com/815/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nasarabna.wordpress.com/815/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nasarabna.wordpress.com/815/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nasarabna.wordpress.com/815/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nasarabna.wordpress.com/815/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nasarabna.wordpress.com/815/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nasarabna.wordpress.com/815/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nasarabna.wordpress.com/815/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nasarabna.wordpress.com/815/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nasarabna.wordpress.com/815/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nasarabna.wordpress.com/815/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=815&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nasarabna.wordpress.com/2010/10/16/for-those-of-you-who-missed-chennai-techmeet-chennaigeeks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://ubuntuone.com/p/Kky/" length="9098132" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kky/" length="9098132" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kky/" length="9098132" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kky/" length="9098132" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kky/" length="9098132" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kky/" length="9098132" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kkz/" length="120125522" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kkz/" length="120125522" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kkz/" length="120125522" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kkz/" length="120125522" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kkz/" length="120125522" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kkz/" length="120125522" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl0/" length="13091635" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl0/" length="13091635" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl0/" length="13091635" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl0/" length="13091635" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl0/" length="13091635" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl0/" length="13091635" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl1/" length="131435366" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl1/" length="131435366" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl1/" length="131435366" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl1/" length="131435366" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl1/" length="131435366" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl1/" length="131435366" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl2/" length="84276260" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl2/" length="84276260" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl2/" length="84276260" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl2/" length="84276260" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl2/" length="84276260" type="audio/mp3" />
<enclosure url="http://ubuntuone.com/p/Kl2/" length="84276260" type="audio/mp3" />
	
		<media:content url="http://1.gravatar.com/avatar/7f13faf47f4c3fda78f553bef7c7f35e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anbarasan</media:title>
		</media:content>
	</item>
		<item>
		<title>How i stopped worrying and added a chart</title>
		<link>http://nasarabna.wordpress.com/2010/10/15/how-i-stopped-worrying-and-added-a-chart/</link>
		<comments>http://nasarabna.wordpress.com/2010/10/15/how-i-stopped-worrying-and-added-a-chart/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 07:35:50 +0000</pubDate>
		<dc:creator>அன்பரசன் (Anbarasan)</dc:creator>
				<category><![CDATA[Competition]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[orangescape]]></category>
		<category><![CDATA[Orangescape Studio]]></category>

		<guid isPermaLink="false">http://nasarabna.wordpress.com/?p=807</guid>
		<description><![CDATA[Ok.. Now everything is over.  Ok, it was over last week itself.  I even got a iPod shuffle!  I will let you all see what i was talking about that night. Nice isn&#8217;t it?!  Yeah, I know.  Many were not even wondering about how i got that ui.  (Seems they all know how to do [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=807&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ok.. Now everything is over.  Ok, it was over last week itself.  I even got a iPod shuffle!  I will let you all see what i was talking about <a href="http://nasarabna.wordpress.com/2010/10/04/postponed/">that night</a>.</p>
<p><a href="http://nasarabna.files.wordpress.com/2010/10/bogzilla_home_page.png"><img class="aligncenter size-full wp-image-808" title="bogzilla_home_page" src="http://nasarabna.files.wordpress.com/2010/10/bogzilla_home_page.png?w=600&#038;h=379" alt="Bogzilla" width="600" height="379" /></a></p>
<p>Nice isn&#8217;t it?!  Yeah, I know.  Many were not even wondering about how i got that ui.  (Seems they all know how to do it, it was not a secret afterall!).  They were only asking about the pie chart.  So lemme go about how i stopped worrying and added the chart.</p>
<p>Well actually it was not a big thing.  I used <a href="http://code.google.com/apis/chart/" target="_blank">Google Charts</a> for generating the chart image and then hooked it up into my form.  That is it.   Ok, i can understand you are starting to frown.  I will give you the details.    Basically i got all the details that i required for generating the charts using the DCOUNTA() function.  That is what appears in the right column above the chart.</p>
<blockquote><p>B8=DCOUNTA(Issue.CreatedBy,Issue.CurrentStatus,Issue.CurrentStatus=&#8221;New&#8221;,TRUE)</p>
<p>D8=DCOUNTA(Issue.CreatedBy,Issue.CurrentStatus,Issue.CurrentStatus=&#8221;Open&#8221;,TRUE)</p>
<p>F8=DCOUNTA(Issue.CreatedBy,Issue.CurrentStatus,Issue.CurrentStatus=&#8221;Resolved&#8221;,TRUE)</p>
<p>H8=DCOUNTA(Issue.CreatedBy,Issue.CurrentStatus,Issue.CurrentStatus=&#8221;ReOpen&#8221;,TRUE)</p>
<p>J8=DCOUNTA(Issue.CreatedBy,Issue.CurrentStatus,Issue.CurrentStatus=&#8221;Verified&#8221;,TRUE)</p></blockquote>
<p>Now i had got the url constructed for this chart using the CONCATENATE() function.</p>
<blockquote><p>=CONCATENATE(&#8220;&lt;img src=&#8217;http://chart.apis.google.com/chart?chs=200&#215;300&amp;cht=p3&amp;chco=93CE11|DF6800|FFEFCB|FF0000|CCCCCC&amp;chd=t:&#8221;, B8,&#8221;,&#8221;,D8,&#8221;,&#8221;,F8,&#8221;,&#8221;,H8,&#8221;,&#8221;,J8,&#8221;&amp;chdl=New|Open|Resolved|ReOpen|Verified&amp;chdlp=b&#8217; width=&#8217;200&#8242; height=&#8217;300&#8242; alt=&#8221; /&gt;&#8221;)</p></blockquote>
<p>Ok, i had also added the HTML tags to display the image along with this&#8230; Sheeh!  is it that bad to bend a little, afterall how will i ever let the form know that the output of this an image, if am not going to add HTML img tag.</p>
<p>Click <a href="http://chart.apis.google.com/chart?chs=200x300&amp;cht=p3&amp;chco=93CE11|DF6800|FFEFCB|FF0000|CCCCCC&amp;chd=t:7,2,0,0,0&amp;chdl=New|Open|Resolved|ReOpen|Verified&amp;chdlp=b" target="_blank">here</a> to see the same chart which you are seeing in the screen shot.  You can look at the address bar to see the constructed URL.</p>
<p>You can find the explanation for the url parameters <a href="http://code.google.com/apis/chart/docs/gallery/pie_charts.html" target="_blank">here</a>.  If you find it too daunting to go thru and read all the info there, use the <a href="http://imagecharteditor.appspot.com/" target="_blank">Chart Wizard</a> to construct the url and then change the values with your field names or variables.</p>
<p>Have fun!</p>
<br />Filed under: <a href='http://nasarabna.wordpress.com/category/competition/'>Competition</a>, <a href='http://nasarabna.wordpress.com/category/office/'>Office</a> Tagged: <a href='http://nasarabna.wordpress.com/tag/orangescape/'>orangescape</a>, <a href='http://nasarabna.wordpress.com/tag/orangescape-studio/'>Orangescape Studio</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/nasarabna.wordpress.com/807/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/nasarabna.wordpress.com/807/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/nasarabna.wordpress.com/807/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/nasarabna.wordpress.com/807/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/nasarabna.wordpress.com/807/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/nasarabna.wordpress.com/807/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/nasarabna.wordpress.com/807/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/nasarabna.wordpress.com/807/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/nasarabna.wordpress.com/807/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/nasarabna.wordpress.com/807/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/nasarabna.wordpress.com/807/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/nasarabna.wordpress.com/807/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/nasarabna.wordpress.com/807/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/nasarabna.wordpress.com/807/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=nasarabna.wordpress.com&amp;blog=10218787&amp;post=807&amp;subd=nasarabna&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://nasarabna.wordpress.com/2010/10/15/how-i-stopped-worrying-and-added-a-chart/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7f13faf47f4c3fda78f553bef7c7f35e?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">anbarasan</media:title>
		</media:content>

		<media:content url="http://nasarabna.files.wordpress.com/2010/10/bogzilla_home_page.png" medium="image">
			<media:title type="html">bogzilla_home_page</media:title>
		</media:content>
	</item>
	</channel>
</rss>
