<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>versant &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/versant/</link>
	<description>Feed of posts on WordPress.com tagged "versant"</description>
	<pubDate>Sun, 27 Dec 2009 07:37:01 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Versant [New Arrival]]]></title>
<link>http://aerialnoise.com/2009/12/11/versant-introducing/</link>
<pubDate>Fri, 11 Dec 2009 05:00:22 +0000</pubDate>
<dc:creator>aerial noise</dc:creator>
<guid>http://aerialnoise.com/2009/12/11/versant-introducing/</guid>
<description><![CDATA[Versant is a brand new project hailing from Sweden.  Led by Carah Faye, the former frontwoman of Shi]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a rel="attachment wp-att-865" href="http://aerialnoise.com/2009/12/11/versant-introducing/versant/"><img class="aligncenter size-medium wp-image-865" title="versant" src="http://aerialnoise.wordpress.com/files/2009/12/versant.jpg?w=400" alt="" width="400" height="164" /></a></p>
<p><a href="http://www.myspace.com/versantmusic">Versant</a> is a brand new project hailing from Sweden.  Led by Carah Faye, the former frontwoman of <a href="http://www.myspace.com/shinytoyguns">Shiny Toy Guns</a>, the group hit big on a couple of feel-good pop gems. Faye has removed herself from the scene that her previous project confined her too.  The new project is an adaption into a new direction where she hope&#8217;s to inspire others through musical healing.  Interesting stuff to stay the least.</p>
<p>Versant are playing a handful of dates over the next little while- tune in through <a href="http://www.myspace.com/versantmusic">myspace</a> for those.  Versant will drop their self-titled debut on February 17, 2010.  Stay tuned for that.</p>
<p><span style='text-align:left;display:block;'><p><object type='application/x-shockwave-flash' data='http://wordpress.com/wp-content/plugins/audio-player/player.swf' width='290' height='24' id='audioplayer1'><param name='movie' value='http://wordpress.com/wp-content/plugins/audio-player/player.swf' /><param name='FlashVars' value='&amp;bg=0xf8f8f8&amp;leftbg=0xeeeeee&amp;lefticon=0x666666&amp;rightbg=0xcccccc&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fwww.mediafire.com%2Ffile%2Fo2zzxhynjjl%2FPush%20Away.mp3' /><param name='quality' value='high' /><param name='menu' value='false' /><param name='bgcolor' value='#FFFFFF' /></object></p></span></p>
<p><a href="http://www.mediafire.com/file/o2zzxhynjjl/Push Away.mp3">Versant &#8211; Push Away (DEMO)</a></p>
<p><span style='text-align:left;display:block;'><p><object type='application/x-shockwave-flash' data='http://wordpress.com/wp-content/plugins/audio-player/player.swf' width='290' height='24' id='audioplayer1'><param name='movie' value='http://wordpress.com/wp-content/plugins/audio-player/player.swf' /><param name='FlashVars' value='&amp;bg=0xf8f8f8&amp;leftbg=0xeeeeee&amp;lefticon=0x666666&amp;rightbg=0xcccccc&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fwww.mediafire.com%2Ffile%2Frnrnmfm2h5z%2FVersant%20-%20Quick%20Escapes%20%28Demo%29.mp3' /><param name='quality' value='high' /><param name='menu' value='false' /><param name='bgcolor' value='#FFFFFF' /></object></p></span></p>
<p><a href="http://www.mediafire.com/file/rnrnmfm2h5z/Versant - Quick Escapes (Demo).mp3">Versant &#8211; Quick Escapes (DEMO)</a></p>
<p><span style='text-align:left;display:block;'><p><object type='application/x-shockwave-flash' data='http://wordpress.com/wp-content/plugins/audio-player/player.swf' width='290' height='24' id='audioplayer1'><param name='movie' value='http://wordpress.com/wp-content/plugins/audio-player/player.swf' /><param name='FlashVars' value='&amp;bg=0xf8f8f8&amp;leftbg=0xeeeeee&amp;lefticon=0x666666&amp;rightbg=0xcccccc&amp;rightbghover=0x999999&amp;righticon=0x666666&amp;righticonhover=0xffffff&amp;text=0x666666&amp;slider=0x666666&amp;track=0xFFFFFF&amp;border=0x666666&amp;loader=0x9FFFB8&amp;soundFile=http%3A%2F%2Fwww.mediafire.com%2Ffile%2Fcwjzzzajjcn%2FVersant%20-%20Out%20of%20Touch%20%28Demo%29.mp3' /><param name='quality' value='high' /><param name='menu' value='false' /><param name='bgcolor' value='#FFFFFF' /></object></p></span></p>
<p><a href="http://www.mediafire.com/file/cwjzzzajjcn/Versant - Out of Touch (Demo).mp3">Versant &#8211; Out of Touch (DEMO)</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Versant (what Carah Faye did next&hellip;)]]></title>
<link>http://electronicrumors.com/2009/11/04/versant-what-carah-faye-did-next/</link>
<pubDate>Wed, 04 Nov 2009 01:58:46 +0000</pubDate>
<dc:creator>Crash</dc:creator>
<guid>http://electronicrumors.com/2009/11/04/versant-what-carah-faye-did-next/</guid>
<description><![CDATA[So, what’s the worst decision once great Indie-Electro act Shiny Toy Guns ever made? Quite simply it]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://electronicrumors.files.wordpress.com/2009/11/versant.jpg"><img style="display:inline;border:0;" title="Versant" src="http://electronicrumors.files.wordpress.com/2009/11/versant_thumb.jpg?w=396&#038;h=162" border="0" alt="Versant" width="396" height="162" /></a></p>
<p>So, what’s the worst decision once great Indie-Electro act Shiny Toy Guns ever made? Quite simply it was ditching vocalist Carah Faye Charnow in favour of some reality TV wannabe, this has been proved by their disappointingly mediocre second album.</p>
<p>The decision, however, seems to have turned out for the best for Carah. Now based in Sweden she’s back with her new outfit <a title="Versant @ MySpace" href="http://www.myspace.com/versantmusic" target="_blank">Versant</a> and dropping the kind of powerful Indie-Electro that the STG’s album wishes it was.</p>
<p>Just check these three demos here; from the huge Electro Rock of ‘Out Of Touch’ to the more intimate ‘Push Away’ these tracks would work just as easily on the dancefloor or in a gritty rock club and see a welcome return of Carah’s voice powering through cutting synths and dirge guitars.</p>
<p>♫ <a title="Versant - Out of Touch (Demo.)" href="http://www.yousendit.com/download/TzY3ZXQzcVhCMTZGa1E9PQ" target="_blank">Versant &#8211; Out of Touch (Demo.)</a> <a title="Versant - Out of Touch (Demo.)" href="http://www.zshare.net/audio/679279319dc3875c/" target="_blank">(zShare)</a> <a title="Versant - Out of Touch (Demo.)" href="http://www.mediafire.com/?gzwmyym0yzm" target="_blank">(MediaFire)</a></p>
<p>♫ <a title="Versant - Push Away (Demo.)" href="http://www.yousendit.com/download/TzY3ZXQzcVhwcFYzZUE9PQ" target="_blank">Versant &#8211; Push Away (Demo.)</a> <a title="Versant - Push Away (Demo.)" href="http://www.zshare.net/audio/6792803376aac665/" target="_blank">(zShare)</a> <a title="Versant - Push Away (Demo.)" href="http://www.mediafire.com/?o2mnwm3zywz" target="_blank">(MediaFire)</a></p>
<p>♫ <a title="Versant - Quick Escapes (Demo.)" href="http://www.yousendit.com/download/TzY3ZXQ2eFgrV3pIRGc9PQ" target="_blank">Versant &#8211; Quick Escapes (Demo.)</a> <a title="Versant - Quick Escapes (Demo.)" href="http://www.zshare.net/audio/6792823669ed8a20/" target="_blank">(zShare)</a> <a title="Versant - Quick Escapes (Demo.)" href="http://www.mediafire.com/?jmnjwj1aej1" target="_blank">(MediaFire)</a></p>
<p>If I was a surviving member of Shiny Toy Guns I would be kicking myself!</p>
<p>Versant release their self-titled début album on February 17th 2010, until them go show them some big MySpace love!</p>
<p><a title="Versant @ MySpace" href="http://www.myspace.com/versantmusic" target="_blank">Versant @ MySpace</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Carah Faye Introduces New Band VERSANT]]></title>
<link>http://cwsplace.wordpress.com/2009/10/09/carah-faye-introduces-new-band-versant/</link>
<pubDate>Fri, 09 Oct 2009 18:50:15 +0000</pubDate>
<dc:creator>cwsplace</dc:creator>
<guid>http://cwsplace.wordpress.com/2009/10/09/carah-faye-introduces-new-band-versant/</guid>
<description><![CDATA[Self-titled record drops February 17, 2010 &#8211; with a highly anticipated U.S. appearance at SXSW]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img src="http://cwsplace.wordpress.com/files/2009/10/versantbandphoto.jpg" alt="versantbandphoto" title="versantbandphoto" width="400" height="164" class="aligncenter size-full wp-image-1610" /><br />
Self-titled record drops February 17, 2010 &#8211; with a highly anticipated U.S. appearance at SXSW</p>
<p>Sweden, the unofficial headquarters of sparkling electro-pop, seems an inevitable launching pad for Versant. Led by Carah Faye, former frontwoman of the Grammy-nominated Shiny Toy Guns, and producer Daniel Johansson, Versant synthesizes the melodicism of a true pop siren with up-to-the-minute textures that can ignite both dance floors and rock clubs.</p>
<p>&#8220;Versant is a summation of dreams,&#8221; says Carah Faye. &#8220;It&#8217;s music we believe &#8216;belongs&#8217; but is rarely understood, much less brought to reality.&#8221; Lyrically, Faye draws from real-life experiences and reveals their difficult, but ultimately transcendent, lessons: &#8220;I will wait for the truth to find me/ But I will never leave it to you&#8221; (&#8220;Out of Touch&#8221;). Faye and Johansson&#8217;s goal is that they, and the band, are &#8220;helping people to heal or be inspired to hope.&#8221;</p>
<p>Johansson and Faye met in the most organic of ways-on the road. Johansson worked as soundman for Shiny Toy Guns as well as for fellow Swedes The Sounds, who tapped him to produce the title track of their 2009 release, Crossing the Rubicon. Unsurprisingly, they draw artistic inspiration from a diverse playlist. &#8220;Mew, Kent, Coldplay, The Cardigans and Michael Jackson have been in rotation in 2009-anybody with an individual sound who likes espresso and walks on the beach,&#8221; Carah laughs. </p>
<p>Now splitting their time between Sweden, where they will be touring through November, and America, which will feature a highly anticipated showcase at South by Southwest, Versant will drop their self-titled debut on February 17, 2010. Reaction to demos posted on their MySpace page (<a href="http://www.myspace.com/versantmusic" target="new">http://www.myspace.com/versantmusic</a>) has been unanimous: Although only debuting, Versant exceeds high expectations, and introduces loyal fans to a bristling new musical collaboration.</p>
<p>Versant is:</p>
<p>Carah Faye: Vocals<br />
Daniel Johansson: Guitar/Keys<br />
Johan Grettve: Guitar/Keys<br />
Richard Ankers: Drums<br />
Nicholas Oja:  Bass</p>
<p>Versant online:</p>
<p>MySpace: <a href="http://www.myspace.com/versantmusic" target="new">http://www.myspace.com/versantmusic</a></p>
<p>Twitter: <a href="http://twitter.com/VersantMusic" target="new">http://twitter.com/VersantMusic</a></p>
<p>Carah has appeared on The Late Show with David Letterman, Late Night with Conan O&#8217;Brien, Jimmy Kimmel Live, and Carson Daly. In addition, her music has been featured on iTunes as a &#8220;Single of the Week&#8221; and has appeared in advertisements for both Motorola and Apple.</p>
<p>Source &#8211; PAI Media</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Push away --- Versant]]></title>
<link>http://makethebeatgoharder.wordpress.com/2009/10/03/push-away-versant/</link>
<pubDate>Sat, 03 Oct 2009 22:34:42 +0000</pubDate>
<dc:creator>rikva</dc:creator>
<guid>http://makethebeatgoharder.wordpress.com/2009/10/03/push-away-versant/</guid>
<description><![CDATA[Push away Come the day we understand Will we shout out at once? Do we always run away on our own tim]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p style="text-align:center;"><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/nPE4uPXhIe0&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/nPE4uPXhIe0&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p style="text-align:center;">
<p style="text-align:center;"><strong>Push away</strong></p>
<p style="text-align:center;">Come the day we understand<br />
Will we shout out at once?<br />
Do we always run away on our own time?</p>
<p style="text-align:center;">You thought I would leave you down<br />
When the weight was too much<br />
I will lift you from the ground</p>
<p style="text-align:center;">Don&#8217;t you feel we&#8217;re both in the storm?<br />
(take, take another life)<br />
I keep fighting the wind so you know why<br />
Even those that doubt us believe<br />
(take, take another life)<br />
We must be the only ones breathing<br />
Still you push away</p>
<p style="text-align:center;">Call the ones that hold your hand<br />
Do they shout out at once<br />
Make a point to fall in line and remind you?</p>
<p style="text-align:center;">You thought I would leave you down<br />
When the weight was too much<br />
I will lift you from the ground</p>
<p style="text-align:center;">Don&#8217;t you feel we&#8217;re both in the storm?<br />
(take, take another life)<br />
I keep fighting the wind so you know why<br />
Even those that doubt us believe<br />
(take, take another life)<br />
We must be the only ones breathing<br />
Still you push away<br />
Still you push away</p>
<p style="text-align:center;">All the words found alone<br />
All the homes found in pieces<br />
Climb around<br />
Why the doubt?<br />
Where&#8217;s the liar?<br />
What&#8217;s the reason?</p>
<p style="text-align:center;">You thought I would leave you down<br />
When the weight was too much<br />
I will lift you from the ground</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Writing C++ Applications for Versant]]></title>
<link>http://blogsai.wordpress.com/2009/07/15/writing-c-applications-for-versant/</link>
<pubDate>Wed, 15 Jul 2009 05:05:40 +0000</pubDate>
<dc:creator>blogsai</dc:creator>
<guid>http://blogsai.wordpress.com/2009/07/15/writing-c-applications-for-versant/</guid>
<description><![CDATA[In this write up we shall see what does it take to develop applications using Versant&#8217;s Object]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In this write up we shall see what does it take to develop applications using Versant&#8217;s Object Oriented Database. I have been involved in developing and debugging applications with Versant as the database for bit over an year and this write up is just a recap of the kind of work I have been doing with Versant using its C++ libraries. There are options to use other languages like Java, but I&#8217;ve used C++.</p>
<p><strong>NOTE:</strong> This write up is only contains the approach with brief reference to its C++ API classes. It does not describe the C++ API in detail. For that you would need to get your hands on the Versant Usage Manual and Versant Reference Manual for C++.</p>
<p><span style="text-decoration:underline;"><strong>Definitions</strong></span></p>
<p><strong>Firstly what is an Object Oriented database ?</strong></p>
<p>Object Oriented database (a.k.a Object database) allows its user to represent information as Objects. The schema is created as a set of classes and the instances of the class are persisted into the database and are called objects. The advantage of using an Object database is its easy to represent classes you have designed into the database directly. You could use all the advantages of object oriented(-ness) for your database objects. You could design base classes and derive classes with more special functionality. And invoke virtual methods on the base-class (after loading them from the database) which could invoke a derived class functions. And use complex object composition to represent one object holding other objects.</p>
<p>(Also See: http://en.wikipedia.org/wiki/Object_database)</p>
<p><strong>Some Basics of Versant</strong></p>
<p>Before we begin developing applications we need to be aware of some concepts, classes, tools, and procedures that Versant provides its users/developers.</p>
<p><strong>Concepts</strong></p>
<p>Once you have your persistent classes ready (we will see how to get these classes later). You could stream the schema into the database. And then populate them with data (object instances).</p>
<p><em><strong>Query Language</strong></em></p>
<p>All queries to the versant database are written in a propreitary query language called VQL (Versant Query Language). You could refer to the reference manual to learn about this.</p>
<p><strong><em>Internal Representation</em></strong></p>
<p>Each object is uniquely identified by OID (Object Identifier). An OID is a numeric string that takes the form of &#8220;dd.nn.nnnn&#8221; where dd, nn and nnnn are integers. Example -</p>
<p>1.0.4941,</p>
<p>32.36.43204 &#8230; etc.</p>
<p><em><strong>Concept of Transaction and Writes</strong></em></p>
<p>When modifying the object instances in the database using the APIs, we could begin a transaction and start modifying the data, each of the data we modify we mark it as dirty. And at the end if the transaction is committed only that data which was marked dirty actually gets written to the database.</p>
<p><em><strong>Templates and Prerequisites</strong></em></p>
<p>Many of the Versant&#8217;s C++ API classes makes extensive use of Templates (parameterized classes). If you are not familiar with C++ templates you could just do a quick read up on the basics of it. As we would only use the already provided template classes it shouldn&#8217;t be that hard.</p>
<p><em><strong>Types of Objects</strong></em></p>
<p>Objects in versant can be</p>
<p>Persistent &#8212; those ones which were / can be  saved to the database.</p>
<p>Transient &#8212; those which only reside in memory.</p>
<p>Versioned Objects &#8212; Objects could be versioned. You could have a persistent object and create newer versioned objects based on the base/parent object. You could have a version tree of the objects.</p>
<p><strong>What Versant Persistent Classes can Encapsulate</strong>?</p>
<p>Versant Persistent classes can encapsulate the portable data types that are shown below and other persistent classes, collection classes. However it cannot encapsulate enums, unions, and C style pointers or C++ references. If you want to indicate you want to refer to another class as a link, then you should use <strong>Link&#60;type&#62;</strong> classes of Versant.</p>
<p><em><strong>Important Versant Classes</strong></em></p>
<blockquote><p><em><strong>PObject</strong> : Is the base-most class. For any persistent Versant Object. This has methods  -</em></p>
<p><em>acquirelock &#8212; acquire a lock on itself, </em></p>
<p><em>as &#8212; method to down-cast to a more specific derived class </em></p>
<p><em>operator new &#8212; Creates a new persistent object for any sub-type. There are some helper macros for this like &#8211; O_NEW_PERSISTENT<br />
</em></p>
<p><em>delete &#8212; delete itself from memory and database based on the type of object it is (destructor is called).</em></p>
<p><em>releaseobj &#8212; release the object from memory.<br />
</em></p>
<p><em><strong>PVirtual (inherits from PObject) : </strong>This<strong> </strong>class has methods for hashing and searching.</em></p></blockquote>
<p><em><!--more--><br />
</em></p>
<blockquote><p><em><strong>VDate, VTime </strong>- Represent date and time </em></p>
<p><em><strong>VString</strong> &#8211; Represent strings.</em></p>
<p><em><strong>VCollection </strong>- Template class representing base of various collections. Some of the popular collection classes are -</em></p>
<p><em>VEArray&#60;T&#62;, VEList&#60;T&#62;, VIList</em><em><strong>&#60;T&#62;</strong></em><em>, VESet</em><em><strong>&#60;T&#62;</strong></em><em>, VISet</em><em><strong>&#60;T&#62;</strong></em><em>, VEDictionary</em><em><strong>&#60;K,V&#62;</strong></em><em>, VIDictionary&#60;K,V&#62; etc. These are all template classes.</em></p>
<p><em><strong>PDOM</strong> &#8211; This is an important class that you would use quite often in programming. PDOM has methods that perform database operations such as &#8211; </em></p>
<p><em>beginsession (i.e. begin a transaction)</em></p>
<p><em>abort (abort transaction)</em></p>
<p><em>commit()</em></p>
<p><em>connectdb()</em></p>
<p><em>createdb()</em></p>
<p><em>and many many more&#8230;</em></p>
<p><em><strong>VSession (extends PDOM)  &#8211; </strong>This class has all the useful methods that operate on the database. PDOM is on the deprecation list and VSession will take its place.</em></p>
<p><em><strong>PClass / PClassObject&#60;type&#62;</strong> &#8211; To operate on Class (i.e. OODBMs Table equivalent), you could use these classes PClass and PClassObject. These classes contains methods like -</em></p>
<p><em>createIndex &#8211; create various types of Indexes<br />
</em></p>
<p><em>dropIndex &#8211; delete the index on the class.<br />
</em></p>
<p><em>select &#8211; equivalent to SELECT query. To query data. It uses <strong>PPredicate </strong>class which is used to specify conditions.</em></p>
<p><em><strong>PClassObject&#60;type&#62; </strong>- is just a templatized wrapper over PClass. It has some methods to extract the PClass&#8217;s object pointer, reference etc. You can call all PClass methods and it would be directed to the PClass &#60;type&#62; it wraps around.</em></p>
<p><em><strong>Link Classes (Link&#60;type&#62;)</strong> &#8211; Link is like a persistent pointer. It is represented by the OID (Object Identifier discussed above). There many kinds of Link variants available -</em></p>
<p><em><strong>Link&#60;type&#62;</strong> &#8211; Link to the particular &#8220;type&#8221; (or subtype ofcourse).<br />
</em></p>
<p><em><strong>LinkAny</strong> &#8211; Link to any type (like a void*).<br />
</em></p>
<p><em><strong>LinkVstr&#60;type&#62;</strong> &#8211; Represents a collection of links to type (array of pointers of type).<br />
</em></p>
<p><em><strong>LinkVstrAny</strong> &#8211; Represents a collection of links to any type (like an array of void*).</em></p>
<p><em>These have many helper methods (operator-&#62;, operator*, operator== etc.) to convert them to c-style pointers/addresses while writing code. They also have methods to check if the link is NULL, set it to NULL etc. You could invoke many of the PObjects methods aswell.</em></p>
<p><em><strong>Vstr classes </strong>- These unlike the LinkVstr types store the actual objects. The types are Vstr&#60;type&#62;, VstrAny.</em></p>
<p><em><strong>VString/PString</strong> &#8211; Represents strings. Many functions similar to std strings. This cannot be used as a independed / standalone persistent class by itself. But can be used as an attribute (i.e. like the column of a table) of the class. There are helper overrides that easily convert to and from char*.<br />
</em></p>
<p><em><strong>Container (extends PObect)</strong> Class &#8211; This class allows its user to operate on a set of heterogeneous objects. If I understand right, a container is more like a view in the RDBMS world but a bit different in the following ways -</em></p>
<p><em> This allows user to operate on a set of objects at once. Retrivals are faster.</em></p>
<p><em>User can put locks on the entire container thus locking all the objects in the container. </em></p>
<p><em>Write the container&#8217;s contents to the database (provided no one else has obtained locks on the objects).</em></p>
<p><em>Container classes needs to have a unique name in the database.</em></p>
<p><em>Some of the methods a container has are -</em></p>
<p><em>add(), remove(), read(), write(), load() etc.</em></p>
<p><em><strong>Collection Classes</strong> &#8211; Like discussed above, collection classes fall under the category of Array, List, Set and Dictionary. There is a separate iterator (<strong>V{collectiontype}Iterator</strong> for e.g. VIDictionaryIterator) class available to iterate over the collection. Each of the collections have classes like V<span style="text-decoration:underline;"><strong>E</strong></span>Array, V<span style="text-decoration:underline;"><strong>I</strong></span>Array, and V<span style="text-decoration:underline;"><strong>V</strong></span>Array (similarly dictionary and list and set). </em></p>
<p><em>E -&#62; Content of the collection is an element (VElemental)</em></p>
<p><em>I -&#62; Content of the collection is a identity (i.e. Link)</em></p>
<p><em>V -&#62; Content of the collection is a Value (by value).</em></p>
<p><em>So comparisions are done on each of these types.<br />
</em></p></blockquote>
<p><em><strong>Versant Portable Datatypes / Type definitions<br />
</strong></em></p>
<p>o_1b &#60;&#8211;&#62; char (1 byte)</p>
<p>o_2b &#60;&#8211;&#62; short (2 bytes)</p>
<p>o_4b &#60;&#8211;&#62; int (4 bytes)</p>
<p>o_float, o_double,</p>
<p>o_date, o_time, o_timestamp</p>
<p>There are some unsigned versions for the above mentioned types. Refer to the manual for details.</p>
<p>The notes so far gives us a fair idea of the classes that are involved for developing applications using Versant as the DB.</p>
<p>Now lets get a birds eye view of the steps involved in writing code, compiling them, generating schema, etc. So we will see the complete cycle for developing the application -</p>
<p><a href="http://blogsai.wordpress.com/files/2009/07/flowchart.png"><img class="aligncenter size-full wp-image-191" title="flowchart" src="http://blogsai.wordpress.com/files/2009/07/flowchart.png" alt="flowchart" width="634" height="634" /></a></p>
<p>Now lets perform the steps mentioned in the flowchart above with a small example. We will see how do we write the C++ code, compile it, generate schema and finally create a database and upload the schema to the database.</p>
<p>Lets consider &#8220;Employee&#8221; to be the entity of our discussion -</p>
<p>I would follow the convention of naming persistent classes suffixed with a _p. So our employee entity would be Employee_p.</p>
<p>Lets say Employee_p fields are -</p>
<ul>
<li>id &#8211; Employee id</li>
<li>name &#8211; Employee name</li>
<li>address &#8211; Employee address</li>
<li>joining_date &#8211; Employee joining date</li>
</ul>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:1827px;width:1px;height:1px;">a33a38</div>
<p>Lets begin by writing the C++ code for the persistent class.</p>
<hr /><strong>Filename : Employee_p.h</strong></p>
<hr />#ifndef _EMPLOYEE_P_H_<br />
#define _EMPLOYEE_P_H_</p>
<p>#include &#60;cxxcls/pobject.h&#62;<br />
#include &#60;cxxcls/vtime.h&#62;</p>
<p>class Employee_p : public PObject<br />
{<br />
public:<br />
Employee_p();<br />
Employee_p(Employee_p&#38;);</p>
<p>virtual ~Employee_p();</p>
<p>static LinkVstr&#60;Employee_p&#62; find();<br />
static LinkVstr&#60;Employee_p&#62; find(const o_4b empid);</p>
<p>o_4b id;<br />
PString name;<br />
PString address;<br />
VTime joining_date;<br />
O_TS_TIMESTAMP;<br />
};</p>
<p>#endif // _EMPLOYEE_P_H_</p>
<hr /><strong>Filename: Employee_p.cpp</strong></p>
<hr />#include &#8220;Employee_p.h&#8221;</p>
<p>Employee_p::Employee_p()<br />
{<br />
VPP_CLASS_CONSTRUCTOR1(Employee_p);<br />
}</p>
<p>Employee_p::Employee_p(Employee_p&#38;)<br />
{<br />
VPP_CLASS_CONSTRUCTOR1(Employee_p);<br />
}</p>
<p>Employee_p::~Employee_p()<br />
{<br />
}</p>
<p>LinkVstr&#60;Employee_p&#62; Employee_p::find()<br />
{<br />
return PClassObject&#60;Employee_p&#62;::Object().select(NULL, FALSE, NULL_PREDICATE);<br />
}</p>
<p>LinkVstr&#60;Employee_p&#62; Employee_p::find(const o_4b empid)<br />
{</p>
<p>returnPClassObject&#60;Employee_p&#62;::Object().select(NULL, FALSE,</p>
<p>PPredicate(PAttribute(&#8220;Employee_p::id&#8221;) == empid));<br />
}</p>
<hr />Now lets create a database so that we could upload the generated schema -</p>
<p>## makedb -g -logging -locking -promptpasswd &#60;DatabaseName&#62;</p>
<p><strong>$ makedb -g -logging -locking -promptpasswd testdb</strong></p>
<p><strong>## </strong>Now create<strong> </strong>an entry in the osc-db file for the database testdb</p>
<p><strong>$ dbid -c -t2 testdb<br />
</strong></p>
<p>The above command would prompt you for the DBA password which you could set. And create a database.</p>
<p>## oscp &#8212; command prints versant db configuration paths, etc.</p>
<p>Next we write the schema file -</p>
<hr /><strong>Filename: Schema.imp</strong></p>
<hr />#include &#8220;Employee_p.h&#8221;</p>
<p>O_CAPTURE_SCHEMA ( Employee_p );</p>
<hr />Now compile the schema file using the &#8217;schcomp&#8217; file as follows -</p>
<p><strong>$ schcomp -I`oscp -d`/h Schema.imp</strong></p>
<p>The above command would generate the following files -</p>
<ul>
<li>schema.sch &#8211; This would be uploaded into the database.</li>
<li>schema.cxx &#8211; This would be linked with your application.</li>
</ul>
<p>To upload the schema.sch into the database testdb use the following command -</p>
<p><strong>$ sch2db -y -D testdb schema.sch</strong></p>
<p>The above command would upload the class/entity into the database. You could use the object inspector to view the classes.</p>
<hr />Some of the frequently used commands in versant -</p>
<p>Create a database<br />
============<br />
$ makedb -p -logging -locking -promptpasswd &#60;DatabaseName&#62;</p>
<p>-p : Personal database<br />
-logging : Enable logging<br />
-locking : Enable locking<br />
-promptpasswd : Prompt for DBA password<br />
&#60;DatabaseName&#62; : Name of your database.</p>
<p>Database configurations can be changed by altering the contents of profile.be file.</p>
<p>Remove/Delete a database<br />
===================<br />
$ removedb -f -rmdir &#60;DatabaseName&#62;</p>
<p>-f : Force remove<br />
-rmdir : Remove its associated files on the disk.<br />
&#60;DatabaseName&#62; : Name of your database.</p>
<p>Start a database instance<br />
=================</p>
<p>$ startdb &#60;DatabaseName&#62;</p>
<p>Stop a database instance<br />
=================</p>
<p>$ stopdb -f &#60;DatabaseName&#62;</p>
<p>-f : forcefully shutdown the database</p>
<p>Backup or Restore a database<br />
====================</p>
<p>$ vbackup -dev &#60;path_to_backup_file_name&#62; -backup &#60;DatabaseName&#62;</p>
<p>The above command will backup the database specified to the &#60;path_to_backup_file_name&#62; specified.</p>
<p>$ vbackup -dev &#60;path_to_backup_filename&#62; -restore &#60;DatabaseName&#62; -rename &#60;DifferentRestoreName&#62;</p>
<p>The above command restores the database from the backup file into DifferentRestoreName. If rename is not specified then it restores it under the name it was backed-up.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Lacul Cuejdel]]></title>
<link>http://turismneamt.wordpress.com/2009/05/19/lacul-cuejdel/</link>
<pubDate>Tue, 19 May 2009 20:13:07 +0000</pubDate>
<dc:creator>turismneamt</dc:creator>
<guid>http://turismneamt.wordpress.com/2009/05/19/lacul-cuejdel/</guid>
<description><![CDATA[Lacul Cuejdel este situat in bazinul Cuejdiului, afluent al Bistritei pe stanga, la circa 20 km nord]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><strong>Lacul Cuejdel </strong>este situat in bazinul Cuejdiului, afluent al Bistritei pe stanga, la circa 20 km nord-vest de Piatra-Neamt.<strong> Lacul Cuejdel</strong> are la origine o alunecare de teren de mari dimensiuni, cu o suprafata de peste 35 ha, care a afectat versantul stang al vaii Cuejdiului, in mai multe etape, incepand din anul 1978 si pana in anul 1991 cand masa alunecarii de teren a barat in totalitate albia paraului, favorizand acumularea apei.</p>
<p><strong>Lacul Cuejdel</strong> este un lac de baraj natural, de aceeasi origine ca si binecunoscutul Lacu Rosu. Fiind mai putin cunoscut si popularizat constituie, mai ales pentru locuitorii din zona Piatra-Neamt, un punct de atractie deosebit (drumetii, pescuit).</p>
<p>Datorita precipitatiilor abundente, procesul de alunecare s-a reluat si amplificat in <strong>Lacul Cuejdel</strong>. Astfel, fundul albiei in <strong>Lacul Cuejdel</strong>, cuprins intre km 0,5 si 1,5 amonte de confluent, a Cuejdiului, a fost umplut cu materiale provenite de pe versant, prin alunecare. In anumite sectoare acest proces a antrenat, in mod violent, pe langa materiale deluviale si strate de roci si copaci, astfel incat grosimea depozitelor alunecate variaza intre 5 si 25 m. Deluviile care nu au fost dispuse uniform in lungul vaii au generat aparitia, in sectoarele neocupate complet, a inca patru lacuri mai mici ale caror suprafete variaza in jurul a catorva sute de metri patrati.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Versant Releases Full Demo Track - Hell Yes!!]]></title>
<link>http://morgandempsey.wordpress.com/2009/01/14/versant-releases-full-demo-track-hell-yes/</link>
<pubDate>Thu, 15 Jan 2009 00:56:51 +0000</pubDate>
<dc:creator>morgandempsey</dc:creator>
<guid>http://morgandempsey.wordpress.com/2009/01/14/versant-releases-full-demo-track-hell-yes/</guid>
<description><![CDATA[Man, finally. Versant has posted a full demo track on their MySpace. And I&#8217;m so in love! Time ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Man, <i>finally</i>.</p>
<p>Versant has posted a full demo track on their <a href="http://www.myspace.com/versantmusic">MySpace</a>.</p>
<p>And I&#8217;m so in love! Time to grab the mp3 of it&#8230;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[NetVersant Solutions Asset Auction Cancelled]]></title>
<link>http://netdockets.wordpress.com/2008/12/19/netversant-solutions-asset-auction-cancelled/</link>
<pubDate>Fri, 19 Dec 2008 06:39:41 +0000</pubDate>
<dc:creator>Randall Reese</dc:creator>
<guid>http://netdockets.wordpress.com/2008/12/19/netversant-solutions-asset-auction-cancelled/</guid>
<description><![CDATA[The auction for all or substantially all of the assets of NetVersant Solutions, Inc. has been cancel]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>The auction for all or substantially all of the assets of NetVersant Solutions, Inc. has been cancelled.  NetVersant previously received authority to hold an auction for its assets from the bankruptcy court on December 4th.  No reason was provided by the company for the cancellation of the auction, nor has it been rescheduled. </p>
<p><a href="https://www.netdockets.com/signup" target="_blank">A copy of the notice of cancellation, as well as every other document filed in NetVersant&#8217;s bankruptcy cases, can be viewed here.</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[White Apple Tree]]></title>
<link>http://morgandempsey.wordpress.com/2008/12/05/white-apple-tree/</link>
<pubDate>Fri, 05 Dec 2008 13:30:07 +0000</pubDate>
<dc:creator>morgandempsey</dc:creator>
<guid>http://morgandempsey.wordpress.com/2008/12/05/white-apple-tree/</guid>
<description><![CDATA[White Apple Tree &#8211; Zombies Can&#8217;t Dance (better version available through their MySpace, ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>White Apple Tree &#8211; <a href="http://www.imeem.com/people/p4rKj2/music/hIkCypeh/white_apple_tree_zombies_cant_dance/">Zombies Can&#8217;t Dance</a> (better version available through their <a href="http://www.myspace.com/whiteappletree">MySpace</a>, as well as their song Snowflakes)</p>
<p>I found these guys through the friends list of <a href="http://www.myspace.com/versantmusic">Versant</a> (who really need to release a full track already). Sorry there&#8217;s no youtube vid, but the only thing I could find was a live version of Zombies Can&#8217;t Dance, wherein the lead&#8217;s voice was startlingly reminiscent of Blake Schwarzenbach. I suppose you&#8217;ll have to deal with hearing the streaming elsewhere. Sorry.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
