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

<channel>
	<title>VCreate Logic Blog</title>
	<atom:link href="http://blog.vcreatelogic.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.vcreatelogic.com</link>
	<description>Visual Meaning to Concenpts</description>
	<lastBuildDate>Wed, 29 Feb 2012 07:44:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>GCF 2.6 Released</title>
		<link>http://blog.vcreatelogic.com/2012/01/gcf-2-6-released/</link>
		<comments>http://blog.vcreatelogic.com/2012/01/gcf-2-6-released/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 06:19:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News And Events]]></category>

		<guid isPermaLink="false">http://blog.vcreatelogic.com/?p=116</guid>
		<description><![CDATA[GCF (Generic Component Framework), based on Qt, allows developers to compose applications as a collection of components. GCF offers a ready made application architecture to manage loading, initialization and unloading of components, configure components using XML files and merge their GUI into a single application container widget help easily discover functionality offered by other components [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.vcreatelogic.com/products/gcf/" target="_blank"><img class="alignnone" title="New GCF Logo" src="http://www.vcreatelogic.com/img/gcf_3001.png" alt="" width="182" height="96" /></a></p>
<p><a href="http://www.vcreatelogic.com/products/gcf/" target="_blank">GCF (Generic Component Framework)</a>, based on Qt, allows developers to compose applications as a collection of components. GCF offers a ready made application architecture to</p>
<ul>
<li>manage loading, initialization and unloading of components,</li>
<li>configure components using XML files and merge their GUI into a single application container widget</li>
<li>help easily discover functionality offered by other components</li>
<li>automatically download and install component updates from one or more update servers,</li>
<li>communicate with components on other applications within and outside the host computer (IPC),</li>
<li>create signal/slot connections between objects residing in different processes (IPC)</li>
<li>load KParts and ActiveX components with ease</li>
<li>load GCF components on GCF Application Server for remote access from HTML web-applications running in a browser</li>
</ul>
<p>Today, we are happy to announce the release  of  <a href="http://www.vcreatelogic.com/products/gcf/" target="_blank">GCF &#8211; Version 2.6</a>.  With this new release, developers can</p>
<ul>
<li><a href="http://www.vcreatelogic.com/docs/gcf-2.6.0/html/extending_guixml.html" target="_blank">extend the format of GUIXML files </a></li>
<li>explicitly specify and manage component dependencies in GUIXML files using <a href="http://www.vcreatelogic.com/docs/gcf-2.6.0/html/guixmlref.html#guixmlref_requires" target="_blank">&lt;depends&gt; XML element in GUIXML</a></li>
<li>specify per-component stylesheets using the <a href="http://www.vcreatelogic.com/docs/gcf-2.6.0/html/guixmlref.html#guixmlref_stylesheet" target="_blank">&lt;stylesheet&gt; XML element in GUIXML</a></li>
<li>make use of specialized classes to manage <a href="http://www.vcreatelogic.com/docs/gcf-2.6.0/html/class_g_c_f_1_1_abstract_object_list.html" target="_blank">QObject and IContainer  pointer lists / map</a>s</li>
<li><a href="http://www.vcreatelogic.com/docs/gcf-2.6.0/html/gcfappserver_rest.html" target="_blank">offer access to web-services through CleanURLs </a></li>
<li>use GCF with Qt 4.8 and Visual Studio 2010</li>
</ul>
<p>The complete change log can be read here:  <a href="http://www.vcreatelogic.com/docs/gcf-2.6.0/change-log.txt">http://www.vcreatelogic.com/docs/gcf-2.6.0/change-log.txt</a></p>
<p>We have made available source-code and pre-compiled binaries for Windows  (Qt 4.8 with VS2010) from  <a href="http://www.vcreatelogic.com/resources/downloads/">http://www.vcreatelogic.com/resources/downloads/</a>. We invite you to  download and use a copy of the latest version of GCF today!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vcreatelogic.com/2012/01/gcf-2-6-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple JSON Parser / Streamer in Qt</title>
		<link>http://blog.vcreatelogic.com/2011/12/simple-json-parser-streamer-in-qt/</link>
		<comments>http://blog.vcreatelogic.com/2011/12/simple-json-parser-streamer-in-qt/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 14:47:31 +0000</pubDate>
		<dc:creator>prashanthudupa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.vcreatelogic.com/?p=111</guid>
		<description><![CDATA[Today XML and JSON are hot formats for data exchange. While Qt natively supports XML, it doesnt support JSON (well directly). Most developers use external libraries like qjson to serialize QVariantMap objects to a json-string and parse json-string into QVariantMap. One of the key disadvantages of using qjson (or maybe even other libraries) is the [...]]]></description>
			<content:encoded><![CDATA[<p>Today XML and JSON are hot formats for data exchange. While Qt natively supports XML, it doesnt support JSON (well directly). Most developers use external libraries like qjson to serialize QVariantMap objects to a json-string and parse json-string into QVariantMap. One of the key disadvantages of using qjson (or maybe even other libraries) is the license. qjson for example is a LGPL library, which means using it in mobile phone apps might not be a good idea, where the general interest is to not have external dependencies. So the question is &#8211; &#8220;<strong>is it possible to have a JSON serializer/parser using Qt only &#8211; <span style="color: red">without too much of an effort</span>&#8220;</strong>. The answer is YES!</p>
<p>We would want to have a really simple class that does all the serializing and parsing, so we declare a class like the one below.</p>
<pre>struct JSONData;
class JSON
{
public:
    static JSON&amp; instance();
    ~JSON();

    QVariantMap parse(const QString&amp; string) const;
    QString serialize(const QVariant&amp; value) const;

protected:
    JSON();

private:
    JSONData* d;
};</pre>
<p>We begin implementing the class as follows. The static <strong>instance()</strong> method is implemented as</p>
<pre>JSON&amp; JSON::instance()
{
    static JSON theInstance;
    return theInstance;
}</pre>
<p>That was easy! We now implement the <strong>constructor</strong>. One of the tricks we will be using in the implementation is this &#8211; we make use of the JavaScript JSON object to perform the serializeing and parsing for us. Towards that, we implement the constructor as follows</p>
<pre>struct JSONData
{
    QScriptEngine engine;
    QScriptValue parseFn;
    QScriptValue serializeFn;
};

JSON::JSON()
{
    d = new JSONData;

    const QString script = "function parse_json(string) { return JSON.parse(string); }\n"
                           "function serialize_json(object) { return JSON.stringify(object); }";
    QScriptValue result = d-&gt;engine.evaluate(script);

    d-&gt;parseFn = d-&gt;engine.globalObject().property("parse_json");
    d-&gt;serializeFn = d-&gt;engine.globalObject().property("serialize_json");
}</pre>
<p>Notice how we are creating JavaScript functions to parse and serialize objects. In the constructor we basically QScriptValues of the parse and serialize functions. Next, lets see how the <strong>parse()</strong> function is implemented.</p>
<pre>QVariantMap JSON::parse(const QString&amp; string) const
{
    QScriptValue result = d-&gt;parseFn.call(QScriptValue(), QScriptValueList() &lt;&lt; QScriptValue(string));
    QVariantMap resultMap = result.toVariant().toMap();
    return resultMap;
}</pre>
<p>Really really simple isnt it!</p>
<p>The <strong>serialize()</strong> function is equally simple &#8211; but for a <strong>CreateValue</strong> function dependency.</p>
<pre>QString JSON::serialize(const QVariant&amp; value) const
{
    QScriptValue arg = ::CreateValue(value, d-&gt;engine);
    QScriptValue result = d-&gt;serializeFn.call(QScriptValue(), QScriptValueList() &lt;&lt; arg);
    QString resultString = result.toString();
    return resultString;
}</pre>
<p>The <strong>CreateValue</strong> function basically converts any QVariant to a QScriptValue. QtScript module doesnt make it easy for us (no QScriptEngine::newVariant() is not useful here for all cases). We implement the <strong>CreateValue</strong> function as follows</p>
<pre>QScriptValue CreateValue(const QVariant&amp; value, QScriptEngine&amp; engine)
{
    if(value.type() == QVariant::Map)
    {
        QScriptValue obj = engine.newObject();

        QVariantMap map = value.toMap();
        QVariantMap::const_iterator it = map.begin();
        QVariantMap::const_iterator end = map.end();
        while(it != end)
        {
            obj.setProperty( it.key(), ::CreateValue(it.value(), engine) );
            ++it;
        }

        return obj;
    }

    if(value.type() == QVariant::List)
    {
        QVariantList list = value.toList();
        QScriptValue array = engine.newArray(list.length());
        for(int i=0; i&lt;list.count(); i++)
            array.setProperty(i, ::CreateValue(list.at(i),engine));

        return array;
    }

    switch(value.type())
    {
    case QVariant::String:
        return QScriptValue(value.toString());
    case QVariant::Int:
        return QScriptValue(value.toInt());
    case QVariant::UInt:
        return QScriptValue(value.toUInt());
    case QVariant::Bool:
        return QScriptValue(value.toBool());
    case QVariant::ByteArray:
        return QScriptValue(QLatin1String(value.toByteArray()));
    case QVariant::Double:
        return QScriptValue((qsreal)value.toDouble());
    default:
        break;
    }

    if(value.isNull())
        return QScriptValue(QScriptValue::NullValue);

    return engine.newVariant(value);
}</pre>
<p>Thats it! You can now simply make use of JSON class to parse and serialize JSON objects.</p>
<pre>// Parsing json strings
QString jsonString = ....
QVariantMap jsonObject = JSON::instance().parse(jsonString);

// Serializing json objects
QVariantMap jsonObject = ...
QString jsonString = JSON::instance().serialize(jsonObject)</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.vcreatelogic.com/2011/12/simple-json-parser-streamer-in-qt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GCF 2.6 Release Postponed</title>
		<link>http://blog.vcreatelogic.com/2011/09/gcf-2-6-release-postponed/</link>
		<comments>http://blog.vcreatelogic.com/2011/09/gcf-2-6-release-postponed/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 17:46:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News And Events]]></category>

		<guid isPermaLink="false">http://blog.vcreatelogic.com/?p=108</guid>
		<description><![CDATA[We are very sorry to announce that the release of GCF 2.6 is delayed by 1.5 months. The feature list for 2.6 has not yet been implemented. We have had a lot of new consulting work coming our way and we had not been smart enough with managing the bandwidth &#8211; to make sure that [...]]]></description>
			<content:encoded><![CDATA[<p>We are very sorry to announce that the release of GCF 2.6 is delayed by 1.5 months. The feature list for 2.6 has not yet been implemented. We have had a lot of new consulting work coming our way and we had not been smart enough with managing the bandwidth &#8211; to make sure that 2.6 was ready for release. We apologize for the delay.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vcreatelogic.com/2011/09/gcf-2-6-release-postponed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We are hiring still!</title>
		<link>http://blog.vcreatelogic.com/2011/08/we-are-hiring/</link>
		<comments>http://blog.vcreatelogic.com/2011/08/we-are-hiring/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 06:51:09 +0000</pubDate>
		<dc:creator>prashanthudupa</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News And Events]]></category>

		<guid isPermaLink="false">http://blog.vcreatelogic.com/?p=90</guid>
		<description><![CDATA[At VCreate Logic, we are hiring. We are looking for really good Qt/C++ developers to join our team. Now, this statement is rather blur &#8211; in that it does not quantify what &#8220;really good Qt/C++ developer&#8221; means AND it does not quantify how many developers we are looking for. In this blog post, we would [...]]]></description>
			<content:encoded><![CDATA[<p>At VCreate Logic, we are hiring. We are looking for really good Qt/C++ developers to join our team. Now, this statement is rather blur &#8211; in that it does not quantify what &#8220;really good Qt/C++ developer&#8221; means AND it does not quantify how many developers we are looking for. In this blog post, we would like to clarify both.</p>
<h2>How many developers are we looking to hire?</h2>
<p>We are looking to hire 3-5 developers. What does that mean? It means that we are going to hire 3 developers at-the-minimum, because we are in urgent need of 3 developers for working on our products and projects. Over and above that, we have budget to hire 2 more developers who can work on projects that are currently in ideation stage and need a lot of developer love to bootstrap. This means that developers will have a mix of production and research work over here!</p>
<h2>How we attempt to asses the quality of a developer?</h2>
<p>We are looking for Qt/C++ developers and not BE/BTech/ME/MTech/MS/PhD holders. So, as far as we are concerned we honestly dont care if you were a university topper or if you flunked several times in college. What we __do__ care is whether you can write good Qt/C++ code or not. That&#8217;s really really it!</p>
<p>The way we asses the quality of a developer is by giving him/her a programming challenge. Because <a target="_blank" href="http://www.youtube.com/watch?v=Pk-vmA0zYXI">You do not truly know</a> someone <a target="_blank" href="http://the-hydra.blogspot.com/2005/02/you-wont-truly-know-someone-until-you.html">until you fight them</a>.</p>
<blockquote><p>If a developer has already been making good contributions to a open-source project and if we can have a look at it; then we are more than happy to talk to you about our offer without giving you the programming challenge!</p></blockquote>
<p>The programming challenge we give you is usually an application/problem that you write/solve using Qt/C++ &#8211; within a time frame of 2-3 hours. The programming challenge is usually held in our office, because it gives prospective team members an opportunity to have a look at our office and get clear/comfortable with what our office has to offer. We dont have a large office building with glass doors, swipe cards, coffee/tea stations, canteen etc. We have an office that has comfortable tables and chairs for developers to sit and work. We have a TT table to steam out. There are quite a few hotels / fast-food places nearby where you can buy coffee/tea/milk/soft-drink/food. For people who dont reside in Bangalore or anywhere near Bangalore, we send them the programming challenge over email and expect to hear from them within one working day.</p>
<p>While working on the programming challenge, you can</p>
<ul>
<li>Use any sort of documentation resource (books on Qt/C++/Philosophy/Yoga/Cooking etc.., Qt Assistant, the Internet)</li>
<li>Use any IDE/build system. We use Qt Creator at work, but you can use any IDE of your choice, as long as you dont force us to buy licenses of them for you AND you dont install any Pirated software on our (of for that matter your own) computers.</li>
<li>Copy/Paste relevant parts of any sample code you can find in Qt source code and/or any other resource on the Internet. But make sure you dont copy any copyrighted/patented material.</li>
<li>Ask us for help/clarifications. [However, if you ask us - how do we solve this problem? OR how do we write this application? --- you can expect nothing more than a frown from us!]</li>
<li>Take a coffee/tea break in the middle or go for a walk to crystallize your ideas/algorithms for solving the problem.</li>
<li>Go to the loo or even comfortably sit there.</li>
</ul>
<p>So, we expect you to work on the programming challenge in a real development environment.</p>
<p>After attempting the programming challenge,</p>
<ul>
<li>We expect to get a complete and working solution written in Qt/C++. However many times we are happy to talk to you about our offer even if your solution is only partially complete. We are as much interested in your approach as we are in the final solution.</li>
<li>We take a look at the way you write your code. Things like indentation, function/variable naming conventions, comments etc..</li>
<li>We ask questions on the code you have written. For example, things like &#8211; why did you choose this approach over another approach.</li>
</ul>
<h2>The programming challenge</h2>
<p>Programming challenges are typically small problems that we pick up from one or more of our existing projects/products. We pick our a small problem and generalize it so that you wont have a clue as to where the problem came from. We try to keep our programming challenges interesting and fun; so that you can enjoy working on them as well. The programming challenge is not a complicated problem, it is not a blatantly simple one either. It gives us an opportunity to take a look at how one approaches a problem.</p>
<p>For example, one of the programming challenges that we have been giving out for the past month or so is this.</p>
<p>Write a widget called <code>PuzzleWidget</code> that can take any image, divide it into a 4&#215;4 grid puzzle for users to work and assemble the tiles into the original image. For example, consider an image as follows (filename = image.jpg):</p>
<p><img src="http://2.bp.blogspot.com/_EZ16vWYvHHg/St_AwMekIoI/AAAAAAAAFlk/sRWkKvt7rUY/s1600/img7.jpg" alt="" width="576" height="360" /></p>
<p>We write a program as shown below that makes use of the <code>PuzzleWidget</code> class.</p>
<pre>#include &lt;QtGui&gt;
#include "PuzzleWidget.h" 

int main(int argc, char** argv)
{
    QApplication a(argc, argv); 

    QImage puzzleImage("image.jpg");
    PuzzleWidget puzzleWidget;
    puzzleWidget.setPuzzleImage(puzzleImage);
    puzzleWidget.show(); 

    return a.exec();
}</pre>
<p>When the above program is compiled and executed, we get a window in which</p>
<ul>
<li>the given image is split into a 4&#215;4 grid</li>
<li>one of the tiles (in the 4&#215;4 grid) is randomly removed</li>
<li>the other tiles are randomly dispersed</li>
<li>the user can click on a tile next to the empty spot to move it.</li>
<li>by repeatedly rearranging tiles, the user can reassemble the image.</li>
</ul>
<p>Take a look at the <a target="_blank" href="http://www.youtube.com/embed/cLNq-3QDfXE">expected output</a>.</p>
<p>In our office, the lowest time taken for implementing a complete working solution for the programming challenge above is 12 minutes. On an average developers take about 40 minutes to come up with a complete working solution. The complete program is about 200 lines of code. This means that 3 hours is more than sufficient to work on the programming challenge.</p>
<h2>Why do we take the programming challenge?</h2>
<p>Because <a target="_blank" href="http://www.youtube.com/watch?v=Pk-vmA0zYXI">You do not truly know</a> someone <a target="_blank" href="http://the-hydra.blogspot.com/2005/02/you-wont-truly-know-someone-until-you.html">until you fight them</a>. Moreover the projects/products that we are working on requires our developers to come up with solutions on their own. We require that our developers can produce results on their own as-much-as-possible. At the moment, we do not have the capacity to give training on Qt/C++ to hired developers. We also do not have the capacity to pre-solve problems that we face in our products/projects, explain the solution and then just expect team members to simply write code for it. We need our team members to create solutions by themselves for the most part. The programming challenge, for us, is the best way to figure out if we can work with a prospective candidate or not.</p>
<h2>Note to prospective candidates</h2>
<p>We welcome you to consider joining our company. We would love to hear from you! We will do as much work as possible to keep you happy in our company. In exchange for that, we would really love it if you can CODE! Our request is that &#8211; you take a look at this blog post, and attempt the above programming challenge by yourself. If you are confident, then please drop in an email expressing your interest to join us. We will then have a phone conversation with you and invite you for taking up the programming challenge. If you are through with that, WELCOME ABOARD!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vcreatelogic.com/2011/08/we-are-hiring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GCFApplicationServer and Clean-URLs</title>
		<link>http://blog.vcreatelogic.com/2011/08/gcfapplicationserver-and-clean-urls/</link>
		<comments>http://blog.vcreatelogic.com/2011/08/gcfapplicationserver-and-clean-urls/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 04:07:40 +0000</pubDate>
		<dc:creator>prashanthudupa</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.vcreatelogic.com/?p=86</guid>
		<description><![CDATA[GCFApplicationServer provides a neat platform for hosting Qt/GCF components and then accessing objects and their methods from an external system like a browser or remote GCF application. Up until GCF 2.5.0 we have been supporting AJAX style access to objects and their methods (available on GCFApplicationServer). Over the last week, we have implemented Clean-URL access [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://vcreatelogic.com/docs/gcf-2.5.0/html/gcfappserver.html">GCFApplicationServer</a> provides a neat platform for hosting Qt/GCF components and then accessing objects and their methods from an external system like a browser or remote GCF application. Up until GCF 2.5.0 we have been supporting AJAX style access to objects and their methods (available on GCFApplicationServer).</p>
<p>Over the last week, we have implemented Clean-URL access to objects and their methods. For example, when we launch GCFApplicationServer and click on the system-tray icon, we can see the application server window with information about all the objects and methods available on it. One of the sample server components bundled (as an example) with GCF 2.5, is the <strong>FractalService</strong> component. This component has objects <strong>MengerSquareFractal </strong>and <strong>SierpinskiTriangleFractal</strong>. Both of these objects offer a method called <strong>generateFractal</strong>, which can take as parameters the iteration count and image-size. Once called, the function returns a fractal-image.</p>
<p><img class="alignnone" src="http://prashanthudupa.com/images/gcf-app-server-window.jpg" alt="" width="446" height="249" /></p>
<p>Until 2.5.0, to access the generateFractal method in either FractalService.MengerSquareFractal or FractalService.SierpinskiTriangleFractal; we had to either write a web-application with some javascript that made use of <a href="http://vcreatelogic.com/docs/gcf-2.5.0/html/gccfappserver_gcfmessage.html">GCFMessage.js</a> to call the method and show its output &#8212; OR &#8212; we had to write a Qt/GCF desktop application to make an asynchronous call either using <a href="http://vcreatelogic.com/docs/gcf-2.5.0/html/class_g_c_f_1_1_remote_object.html">GCF::RemoteObject</a> or using <a href="http://vcreatelogic.com/docs/gcf-2.5.0/html/class_g_c_f_1_1_remote_app_access_point.html">GCF::RemoteAppAccessPoint</a>. Now, we have yet another approach: Clean-URL access.</p>
<p>We can now, simply launch a browser and type a URL into the address-box in the format</p>
<p><code>http://{host}:{port}/{component-name}.{object-name}.{method-name}/{param-1}/{param-2}/{param-3}....</code></p>
<p>Where,</p>
<ul>
<li>{host} &#8211; is the server on GCFApplicationServer is running. <em>localhost</em> if you are testing it on your own computer.</li>
<li>{port} &#8211; is the port-number on which GCFApplicationServer is running. 4232 by default.</li>
</ul>
<p>The remaining parts are obvious.</p>
<p>So, if we want to call on FractalService.MengerSquareFractal object, the generateFractal() method with iterations as 6 and image size as 400; we can simply construct a Clean-URL as follows and type it into the browser &#8211; and see the result in the browser itself!</p>
<p><code>http://localhost:4232/FractalService.MengerSquareFractal.generateFractal/6/400</code></p>
<p>The output would be</p>
<p><img class="alignnone" src="http://prashanthudupa.com/images/clean-url-output1.jpg" alt="" width="428" height="180" /></p>
<p>The resulting output is a GCF-XML message. This message can then be parsed and used on the client side. On the other-hand if you just need to see the result as output in the browser itself; you can just the following url</p>
<p><code>http://localhost:4232/<strong><span style="color: red">RESULT</span></strong>/FractalService.MengerSquareFractal.generateFractal/6/400</code></p>
<p><img class="alignnone" src="http://prashanthudupa.com/images/clean-url-output2.jpg" alt="" width="428" height="180" /></p>
<p><a href="http://www.vcreatelogic.com/resources/downloads/">Checkout/Update your copy of GCF</a> from the SVN and take a look at this for yourself!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vcreatelogic.com/2011/08/gcfapplicationserver-and-clean-urls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GCF Version 2.5 Released</title>
		<link>http://blog.vcreatelogic.com/2011/05/gcf-version-25-released/</link>
		<comments>http://blog.vcreatelogic.com/2011/05/gcf-version-25-released/#comments</comments>
		<pubDate>Tue, 03 May 2011 09:53:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News And Events]]></category>

		<guid isPermaLink="false">http://www.vcreatelogic.com/p/?p=79</guid>
		<description><![CDATA[Bangalore, India (3rd May 2011) VCreate Logic announces the release of  GCF &#8211; Version 2.5. GCF (Generic Component Framework), based on Qt, allows developers to compose applications as a collection of components. GCF offers a ready made application architecture to manage loading, initialization and unloading of components, to configure components using XML files, to merge [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Bangalore, India (3rd May 2011)</strong> VCreate Logic announces the release of  GCF &#8211; Version 2.5.</p>
<div>GCF (Generic Component Framework), based on Qt, allows developers to compose applications as a collection of components. GCF offers a ready made application architecture</div>
<div id="_mcePaste">
<div id="_mcePaste">
<ul>
<li>to manage loading, initialization and unloading of components,</li>
<li>to configure components using XML files,</li>
<li>to merge GUI offered by different components into a single application container widget,</li>
<li>to have components easily discover functionality offered by other components,</li>
<li>to automatically download and install component updates from one or more update servers,</li>
<li>to communicate with components on other applications within and outside the host computer (IPC),</li>
<li>to create signal/slot connections between objects residing in different processes (IPC)</li>
<li>to load KParts and ActiveX components with ease</li>
<li>to load GCF components on GCF Application Server for remote access from HTML web-applications running in a browser</li>
</ul>
</div>
</div>
<div id="_mcePaste">Today, we are pleased to announce the availability of GCF Version 2.5.</div>
<div id="_mcePaste">The main new feature in this version is that the &#8220;GCF Application Server&#8221; tool, that was first released in version 2.4, is now capable of handling multiple requests simultaneously due to its request-broker architecture (<a href="http://www.vcreatelogic.com/docs/gcf-2.5.0/html/gcfappserver_roadmap.html">http://www.vcreatelogic.com/docs/gcf-2.5.0/html/gcfappserver_roadmap.html</a>). In addition to this, GCF Application Server is now able to respond to requests from both HTML Web Applicaitons and remote desktop Qt/GCF applications simultaneously.</div>
<div id="_mcePaste">In addition to the above, the latest version of GCF</div>
<div id="_mcePaste">
<div id="_mcePaste">
<ul>
<li>Works with Qt 4.7</li>
<li>Offers Wizards for QtCreator (<a href="http://www.vcreatelogic.com/docs/gcf-2.5.0/html/gcfwithqtcreator.html">http://www.vcreatelogic.com/docs/gcf-2.5.0/html/gcfwithqtcreator.html</a>)</li>
<li>Has improved documentation to help beginners get started with GCF (<a href="http://www.vcreatelogic.com/docs/gcf-2.5.0/html/">http://www.vcreatelogic.com/docs/gcf-2.5.0/html/</a>)</li>
</ul>
</div>
</div>
<div id="_mcePaste">We have made available source-code and pre-compiled binaries for Windows and Linux platforms <a href="http://www.vcreatelogic.com/resources/downloads/">http://www.vcreatelogic.com/resources/downloads/</a>. We invite you to download and use a copy of the latest version of GCF today!</div>
<div><strong>About VCreate Logic</strong>: VCreate Logic (VCL) is a visualization products company based in Bangalore, INDIA. VCL provides products and solutions to help build large visualization software. Their flagship products are Generic Component Framework (GCF) and VTK Designer.  VCL also provides expert consultancy services in areas of Qt, GCF, OpenGL, VTK and OpenHaptics.  For more details please visit www.vcreatelogic.com.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.vcreatelogic.com/2011/05/gcf-version-25-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GCF 2.5 Release Delayed</title>
		<link>http://blog.vcreatelogic.com/2011/05/gcf-25-release-delayed/</link>
		<comments>http://blog.vcreatelogic.com/2011/05/gcf-25-release-delayed/#comments</comments>
		<pubDate>Sun, 01 May 2011 03:55:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News And Events]]></category>

		<guid isPermaLink="false">http://www.vcreatelogic.com/p/?p=77</guid>
		<description><![CDATA[GCF 2.5 is almost ready. We are completing the documentation work on GCF 2.5, which is taking longer than expected. We will be releasing GCF version 2.5 by 15th of May. We encourage developers to use the code from GCF SVN (https://svn2.hosted-projects.com/vcreatelogic/GCF2/trunk/GCF) to get a taste of the upcoming version. We apologize for the delay [...]]]></description>
			<content:encoded><![CDATA[<p>GCF 2.5 is almost ready. We are completing the documentation work on GCF 2.5, which is taking longer than expected. We will be releasing GCF version 2.5 by 15th of May. We encourage developers to use the code from GCF SVN (https://svn2.hosted-projects.com/vcreatelogic/GCF2/trunk/GCF) to get a taste of the upcoming version. We apologize for the delay and regret any inconvenience caused.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vcreatelogic.com/2011/05/gcf-25-release-delayed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We are hiring!</title>
		<link>http://blog.vcreatelogic.com/2011/03/we-were-hiring/</link>
		<comments>http://blog.vcreatelogic.com/2011/03/we-were-hiring/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 10:18:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News And Events]]></category>

		<guid isPermaLink="false">http://www.vcreatelogic.com/p/?p=73</guid>
		<description><![CDATA[An updated version of this blog-post is available here http://blog.vcreatelogic.com/2011/08/we-are-hiring/ &#160; &#160; &#160; We are looking for developers who have working experience in developing Qt/C++ applications to join our team, that creates desktop software for diverse domains. Our Work: Our flagship product is Generic Component Framework or GCF. GCF, based on Qt, allows developers to [...]]]></description>
			<content:encoded><![CDATA[<h2>An updated version of this blog-post is available here <a href="http://blog.vcreatelogic.com/2011/08/we-are-hiring/">http://blog.vcreatelogic.com/2011/08/we-are-hiring/</a></h2>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>We are looking for developers who have working experience in developing Qt/C++ applications to join our team, that creates desktop software for diverse domains.</p>
<p><strong>Our Work:</strong> Our flagship product is Generic Component Framework or GCF. GCF, based on Qt, allows developers to compose applications as a collection of components. GCF offers a ready made application architecture to manage plugins, automatically download and install software updates and communicate with applications within or beyond the host computer system. The last version includes a tool called &#8220;GCF Application Server&#8221; using which developers can now create and host GCF components for access from a web-application. We are looking for developers to join us, further develop GCF and build solutions around Qt/GCF for our customers.</p>
<p><strong>Work Culture: </strong>At VCreate Logic, we have a very open work culture. You will know every one in the company and will be a part of key decision making processes. In short you will be the company <img src='http://blog.vcreatelogic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Hiring Process:</strong> Our hiring process is simple &#8211; we first process the resumes that we receive. Short-listed developers will be personally contacted to know more about their work experience. If we can take a look at any code that you have developed &#8211; then great, otherwise; we will send across a Qt/C++ based programming challenge via email. You can revert back with your code for the programming challenge within 48 hours and we will get back to you after evaluating your code.</p>
<p>If all of this sounds interesting for you, send your resume to <a href="mailto:careers@vcreatelogic.com">careers@vcreatelogic.com</a>.</p>
<p><strong>About Us: </strong>We are a software products and services company, based out of Bangalore (India). For the last 6 years we have been developing applications for different domains (like Medical Visualization, EDA and Radar Display) using a combination of Qt/C++, OpenGL, VTK and our home-grown product GCF (<a href="http://www.vcreatelogic.com/products/gcf">http://www.vcreatelogic.com/products/gcf</a>). Going forward we have plans to further the capability of GCF in allowing developers to make available their Qt/GCF components available as web-services &#8211; there by enabling developers to take their Qt/Desktop applications to the web! We are also currently working with companies that are using GCF for development of large visualization applications. For more information please visit <a href="http://www.vcreatelogic.com/home">http://www.vcreatelogic.com/home</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vcreatelogic.com/2011/03/we-were-hiring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bug Reporting and Tracking Tool</title>
		<link>http://blog.vcreatelogic.com/2010/12/bug-reporting-and-tracking-tool/</link>
		<comments>http://blog.vcreatelogic.com/2010/12/bug-reporting-and-tracking-tool/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 06:21:57 +0000</pubDate>
		<dc:creator>prashanthudupa</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News And Events]]></category>

		<guid isPermaLink="false">http://www.vcreatelogic.com/p/?p=69</guid>
		<description><![CDATA[For a long while now, users have been asking us if there is a public forum where they can report bugs/issues and track their progress. So far the only way they could report bugs/issues to us was to drop an email and to be frank we were not doing a great job at getting back [...]]]></description>
			<content:encoded><![CDATA[<p>For a long while now, users have been asking us if there is a public forum where they can report bugs/issues and track their progress. So far the only way they could report bugs/issues to us was to drop an email and to be frank we were not doing a great job at getting back to people about bugs and issues. Although we were factoring issues, suggestions and bug reports into our updates and releases &#8211; we did not have an organized system to track them.</p>
<p>Going forward we want to be very neat and clean about bug reporting and tracking. Towards this we now have a flashy new web-site: <a href="http://bugreports.vcreatelogic.com">http://bugreports.vcreatelogic.com</a>. This web-site is built using <a href="http://www.thebuggenie.com/">Bug Genie</a>. From now on anyone can register in that web-site and post their bug reports / feature requests. From our-end, we are committed to attend to all reports/requests posted by users of GCF &#8211; both commercial and open-source users. Commercial users will ofcourse be given preference!</p>
<p>Very soon we will be coming up with discussion forums and mailing-list infrastructure to help make communication between users and developers easy and productive.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vcreatelogic.com/2010/12/bug-reporting-and-tracking-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GCF 2.4 Released</title>
		<link>http://blog.vcreatelogic.com/2010/11/gcf-24-released/</link>
		<comments>http://blog.vcreatelogic.com/2010/11/gcf-24-released/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 09:39:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[News And Events]]></category>

		<guid isPermaLink="false">http://www.vcreatelogic.com/p/?p=65</guid>
		<description><![CDATA[Bangalore, India (24th November 2010): VCreate Logic announces the release of GCF &#8211; Version 2.4. GCF (Generic Component Framework), based on Qt, allows developers to compose applications as a collection of components. GCF offers a ready made application architecture to manage loading, initialization and unloading of components, to configure components using XML files, to merge GUI [...]]]></description>
			<content:encoded><![CDATA[<p><em>Bangalore, India (24th November 2010)</em>: <strong>VCreate Logic announces the release of  GCF &#8211; Version 2.4.</strong></p>
<p>GCF (Generic Component Framework), based on Qt, allows developers to compose applications as a collection of components. GCF offers a ready made application architecture</p>
<ul>
<li>to manage loading, initialization and unloading of components,</li>
<li>to configure components using XML files,</li>
<li>to merge GUI offered by different components into a single application container widget,</li>
<li>to have components easily discover functionality offered by other components,</li>
<li>to automatically download and install component updates from one or more update servers,</li>
<li>to communicate with components on other applications within and outside the host computer (IPC),</li>
<li>to create signal/slot connections between objects residing in different processes (IPC)</li>
<li>to load KParts and ActiveX components with ease</li>
</ul>
<p><strong>Today, we are pleased to announce the availability of GCF Version 2.4.</strong></p>
<p>The main new feature in this version is the &#8220;<strong>GCF Application Server</strong>&#8221; tool. Using this tool developers can now create and host GCF components for access from a web-application. This means that you can now create web-services using Qt/GCF and write AJAX style web applications to call on methods exposed by objects in your GCF components. Visit <a href="http://www.vcreatelogic.com/docs/gcf-2.4.0/html/gcfappserver.html">http://www.vcreatelogic.com/docs/gcf-2.4.0/html/gcfappserver.html</a> to know more!</p>
<p>In addition to the above key new feature, the latest version of GCF</p>
<ul>
<li><strong>works with Qt 4.6 and Qt 4.7</strong> (infact the minimum requirement is 4.6)</li>
<li>has an updated plugin to help to create GCF applications using <strong>Qt Creator 2.0.1</strong>. <strong>Pre-compiled binaries</strong> (Windows and Linux) for Qt Creator 2.0.1 available.</li>
<li>enables <strong>IPC over HTTP protocol</strong></li>
</ul>
<p>Download the latest release of GCF by visiting <a href="http://www.vcreatelogic.com/resources/downloads/">http://www.vcreatelogic.com/resources/downloads/</a>.</p>
<p><strong><span style="text-decoration: underline;"><em>About VCreate Logic</em></span></strong>: VCreate Logic (VCL) is a visualization products company based in Bangalore, INDIA. VCL provides products and solutions to help build large visualization software. Their flagship products are Generic Component Framework (GCF) and VTK Designer.  VCL also provides expert consultancy services in areas of Qt, GCF, OpenGL, VTK and OpenHaptics.  For more details please visit <a href="http://www.vcreatelogic.com">http://www.vcreatelogic.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.vcreatelogic.com/2010/11/gcf-24-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

