<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-13389163</id><updated>2007-11-06T08:37:16.628+05:30</updated><title type='text'>Prashant Deva's blog</title><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default?start-index=26&amp;max-results=25'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml'/><author><name>Prashant Deva</name></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>73</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13389163.post-9006469731555093780</id><published>2007-10-17T13:22:00.000+05:30</published><updated>2007-10-17T14:24:33.800+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Virtual Ant released!</title><content type='html'>The long, long wait is finally over. After almost 2 years in development, &lt;a href="http://placidsystems.com/virtualant"&gt;Virtual Ant&lt;/a&gt; is finally here.&lt;br /&gt;&lt;br /&gt;This release marks the start of a new era for build tools.  Gone are the days of struggling with lines of xml and 500 page manuals which took you weeks to write a single build script. With Virtual Ant, even a non programmer can create highly complex build scripts within minutes.&lt;br /&gt;&lt;br /&gt;So for those who cant wait, here is the link to the &lt;a href="http://placidsystems.com/virtualant/download.aspx"&gt;download page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Do check out some of the &lt;a href="http://placidsystems.com/virtualant/videos.aspx"&gt;new videos&lt;/a&gt; we have added, to get a feel for all the new functionality.&lt;br /&gt;As of writing this post, there are very few videos on the page but we will be adding a lot more of those and a lot more &lt;a href="http://placidsystems.com/virtualant/docs.aspx"&gt;documentation&lt;/a&gt; as the week progresses.&lt;br /&gt;&lt;br /&gt;There are a couple of issues regarding this release that I need to address -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;IDE integration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As of writing this post IDE plugins are not available.&lt;br /&gt;However, plugins for Eclipse, Intellij IDEA and Jetbrains are under development and will soon be available. And no, we &lt;span style="font-style: italic;"&gt;wont&lt;/span&gt; be charging separately for the plugins.&lt;br /&gt;IDE integration has been on my mind since the very first day development for Virtual Ant began, so rest assured we will do a great job on it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Custom Tasks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As of this release, Virtual Ant does not support custom tasks.&lt;br /&gt;However, very soon we will be coming out with a (free) GUI tool which will allow you to turn your custom tasks into 'virtual' tasks that can be run on Virtual Ant.&lt;br /&gt;Yes, in our trademark style of simplicity we wont be bothering you with learning any new APIs to make virtual tasks, instead the GUI will allow you to convert your existing tasks into 'virtual' tasks within minutes.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/10/virtual-ant-released.html' title='Virtual Ant released!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=9006469731555093780' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/9006469731555093780'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/9006469731555093780'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-2848231775699236676</id><published>2007-10-13T12:33:00.000+05:30</published><updated>2007-10-13T13:09:49.095+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='features'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Working with Properties</title><content type='html'>So here is the first of my posts describing some of the new features coming up in the final release of Virtual Ant. Today we will talk about Ant properties.&lt;br /&gt;&lt;br /&gt;For the curious ones, you can skip the rest of this post and go straight to &lt;a href="http://placidsystems.com/virtualant/video/properties/propertiesdemo.htm"&gt;the 2 min video demonstrating the features in Virtual Ant to work with Ant Properties&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As anybody who has created an ant build script will tell you, properties are a very fundamental concept in Ant. They are akin to variables in a programming language and are usually used to hold pathnames to relevant dir. Thus instead of saying &lt;span style="font-style: italic;"&gt;'.product/1.0/src'&lt;/span&gt; , you usually assign that value to a property like &lt;span style="font-style: italic;"&gt;${src.dir}&lt;/span&gt; and use that everywhere the path is needed. This way when it comes to release 2.0 of your software, you can just change one line and your script will continue to run perfectly.&lt;br /&gt;&lt;br /&gt;Thus since properties are so important, we just had to put in some special features in Virtual Ant to make it easy to work with them. The basic theory here is that you perform operations on what you see and Virtual Ant can take care of putting in the appropriate properties for you in the task. Here is an example to clear things up -&lt;br /&gt;&lt;br /&gt;Lets say you have a property ${build.dir} which has a value of '&lt;span style="font-style: italic;"&gt;./1.0/build&lt;/span&gt;'. Now lets say you browse to &lt;span style="font-style: italic;"&gt;'./1.0/build'&lt;/span&gt; in Virtual Ant and you select the 'build' directory and you hit the delete button. Virtual Ant will recognize  that you have a property declared for that folder's path and in the resulting 'delete' task it generates, it will use the property name instead of the path itself.&lt;br /&gt;&lt;br /&gt;Virtual Ant is pretty smart in that even if you deleted something inside the '&lt;span style="font-style: italic;"&gt;build&lt;/span&gt;' directory, say you deleted '&lt;span style="font-style: italic;"&gt;./1.0/build/asdf&lt;/span&gt;', but you dont have any property defined for it,  Virtual Ant will put in '&lt;span style="font-style: italic;"&gt;${build.dir}/asdf&lt;/span&gt;' instead of the entire path.&lt;br /&gt;&lt;br /&gt;This way you only deal with what you see visually and let virtual ant take care of handling the details. Just in case you dont want Virtual Ant guessing the properties, you can  turn this off so it will put the entire path in the generated task.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/10/working-with-properties.html' title='Working with Properties'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=2848231775699236676' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/2848231775699236676'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/2848231775699236676'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-2735974715420981440</id><published>2007-10-03T12:14:00.000+05:30</published><updated>2007-10-03T12:53:04.413+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='features'/><category scheme='http://www.blogger.com/atom/ns#' term='beta'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Nested datatypes in Virtual Ant and How we screwed up the Beta</title><content type='html'>As it turns out , I just recently noticed that a minor mistake on our part greatly screwed up the beta experience for all the users. If you did try the beta then don’t worry, it doesn’t affect your system in any way but it does affect the experience you had with Virtual Ant, meaning you didn’t get to see everything we had put in there.&lt;br /&gt;&lt;br /&gt;So what was the problem? Well as it turns out when they tell you to avoid hardcoding absolute paths in your code they are absolutely right. But as it turns out, in the heat of coding someone got a little tempted and the path to one of the images in the beta version of Virtual Ant had an absolute path to the directory containing it.&lt;br /&gt;&lt;br /&gt;That images was for one of the buttons in Virtual Ant. Since the button is custom drawn on the GUI, without the image you wont be able to see it at all. The problem went unnoticed for so long because all the machines we tried it on had the image in the right place.  The mistake was finally noticed when just last week we went to update that portion of the code.&lt;br /&gt;&lt;br /&gt;So by now, you are probably wondering what does the button actually do and where should it have been found. Well as it turns out when you select one of the running tasks in Virtual Ant, you see all its attributes on the right. Below the attributes are bars which allow you to add datatypes like 'fileset', 'filelist', etc to the task right from the gui. The image in question refers to the button which allow you to add datatypes to the task.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://placidsystems.com/blog/uploaded_images/olddatatypes-787758.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://placidsystems.com/blog/uploaded_images/olddatatypes-787757.PNG" alt="No buttons to add datatypes!" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Since you cannot see the button, you cannot add datatypes to the task, rendering Virtual Ant almost useless.  Thus you can imagine my horror when I noticed this error so late in the game and realized how we royally screwed up the beta release.&lt;br /&gt;&lt;br /&gt;But now since we are past that, its time to show you how the attributes view in the final release will look like.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://placidsystems.com/blog/uploaded_images/datatypes-751784.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://placidsystems.com/blog/uploaded_images/datatypes-751783.PNG" alt="The new attributes view" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Clicking on the 'green' plus button next to each datatype allows you to add datatypes to that task. Many datatypes have a special dialog associated with them which gives you a special gui to define that datatype easily. If the datatype has a dialog associated with it, it will pop up when you click on the 'plus' button. Here is the dialog for adding selectors to a task which supports them.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://placidsystems.com/blog/uploaded_images/selectorDialog-753256.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://placidsystems.com/blog/uploaded_images/selectorDialog-753254.PNG" alt="Selector dialog" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Special gui dialogs like this are defined for many ant datatypes like fileset, filelist etc.&lt;br /&gt;&lt;br /&gt;That said we are now extremely close to the final release. We have added an insane amount of functionality since the beta. I will be talking about some of the major new features for the final release in my next few posts.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/10/nested-datatypes-in-virtual-ant-and-how.html' title='Nested datatypes in Virtual Ant and How we screwed up the Beta'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=2735974715420981440' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/2735974715420981440'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/2735974715420981440'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-2263218049952282211</id><published>2007-08-30T18:21:00.000+05:30</published><updated>2007-08-30T18:28:29.011+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Beta expires today</title><content type='html'>Today the beta of Virtual Ant expires. Although we had planned to do a release by this time we came across some major problems accommodating some of the new features in Virtual Ant (not present in the beta).&lt;br /&gt;&lt;br /&gt;I would remind the readers again to not to judge the quality of Virtual Ant by the beta since a &lt;span style="font-weight: bold;"&gt;lot&lt;/span&gt; has changed since then. The current beta was more like an alpha really. If things go well we will try to come up with a 2nd, more complete beta before the final release.&lt;br /&gt;&lt;br /&gt;As a hint of the new features, Virtual Ant can now handle multiple build files and allows stepping in/out of tasks.  So tasks like 'import', 'ant', 'antcall' now work seamlessly in Virtual Ant. I will talk more about this along with screenshots very soon.&lt;br /&gt;&lt;br /&gt;Of course, we would love to hear your feedback on how you found the beta so keep them coming :)</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/08/beta-expires-today.html' title='Beta expires today'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=2263218049952282211' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/2263218049952282211'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/2263218049952282211'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-216683408875950833</id><published>2007-08-04T12:54:00.000+05:30</published><updated>2007-08-11T18:22:27.243+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Inside Virtual Ant : Script Writer's Dilemma</title><content type='html'>Today I will talk a little about the design of the Virtual File System (VFS). The VFS lies at the core of Virtual Ant and it is what allows Virtual Ant to have all its magical capabilities.&lt;br /&gt;&lt;br /&gt;One of the major problems we encountered while designing the VFS,and which has affected the design of the VFS in many ways, is what I like to call '&lt;span style="font-style: italic;"&gt;The Script Writer's Dilemma&lt;/span&gt;' .&lt;br /&gt;&lt;br /&gt;Here is how I like to define it -&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;The Script Writer's Dilemma&lt;/span&gt; occurs when the state of the file system while writing the build script is different from that when it is run. In such a case the person writing the build script may see a different result on running his build script or may not see any result at all.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As an example consider this, say you create a script which copies all files in folder '&lt;span style="font-style: italic;"&gt;a&lt;/span&gt;', that have been modified after Jan  2008, to folder '&lt;span style="font-style: italic;"&gt;b&lt;/span&gt;'. Then you have more tasks which manipulate the files in folder '&lt;span style="font-style: italic;"&gt;b&lt;/span&gt;'.&lt;br /&gt;&lt;br /&gt;Now lets assume, you are creating this script in Dec 2007. Now in an environment like Virtual Ant, when you run the above the script, you wont see any files in folder '&lt;span style="font-style: italic;"&gt;b&lt;/span&gt;' cause its still 2007. And since there is nothing in folder '&lt;span style="font-style: italic;"&gt;b&lt;/span&gt;', you wont see anything while executing all the other tasks that manipulate on the contents of folder '&lt;span style="font-style: italic;"&gt;b&lt;/span&gt;', thus rendering the whole visual environment useless.&lt;br /&gt;&lt;br /&gt;Thus we decided not to include any concept of modification times in Virtual Ant. So when you run the above script in Virtual Ant, it will take the worst case and copy 'all' the files in folder 'a' to folder 'b', since it is quite possible that at the time of running the script every file in folder 'a' really has been modified.&lt;br /&gt;&lt;br /&gt;Thus you get a twofold advantage -&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You handle the worst case of every file in folder 'a' being modified.&lt;/li&gt;&lt;li&gt;You also get to see the result of all the other tasks that operate on the contents of folder '&lt;span style="font-style: italic;"&gt;b&lt;/span&gt;'.&lt;/li&gt;&lt;/ol&gt; For those proficient in Ant, that means that when using a '&lt;span style="font-style: italic;"&gt;date selector&lt;/span&gt;' or when using a task like '&lt;span style="font-style: italic;"&gt;depend&lt;/span&gt;' , every file will be returned.&lt;br /&gt;&lt;br /&gt;Note that this The Script Writer's Dilemma is applicable only in a visual environment like Virtual Ant. In a text editor since you are essentially 'flying blind' anyway, it really doesn’t matter.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/08/inside-virtual-ants-virtual-file-system.html' title='Inside Virtual Ant : Script Writer&apos;s Dilemma'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=216683408875950833' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/216683408875950833'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/216683408875950833'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-3484946837670285768</id><published>2007-06-24T03:40:00.000+05:30</published><updated>2007-06-24T03:43:23.379+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Why the iPhone does not have a SDK</title><content type='html'>A lot of people were pretty disappointed when at this WWDC  Steve Jobs announced that there will be no iPhone SDK and people will basically have to create specialized web sites for the iPhone.  This was a foregone conclusion to me. Here is why.&lt;br /&gt;&lt;br /&gt;Almost every app we use on our computers can be divided into 2 categories-&lt;br /&gt;&lt;ol&gt;&lt;li&gt; Apps to view information.&lt;br /&gt;Eg - Google Maps, Cragislist, Rss readers, Gmail, Digg, etc.&lt;/li&gt;&lt;li&gt;Apps to create information.&lt;br /&gt;Eg - Eclipse, Photoshop, Word, Excel, etc&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Notice the apps in the first category are all web based while the apps in the second category are all desktop apps.&lt;br /&gt;&lt;br /&gt;Also the apps in the second category would require a heavy duty pc and you would probably want to use a huge monitor and a separate keyboard/mouse along with it. Can you for a moment imagine writing your next program in a screen the size of iPhone , which too is half covered by a touch keyboard? No, right.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On the other hand, the apps in the first category don’t require all that horsepower and you probably wont mind checking the top stories on Digg on your iPhone.&lt;br /&gt;&lt;br /&gt;Thus it all becomes pretty clear. Apple realized this fact and thus instead of preparing a full blown SDK which would really wont be worth the effort or of much use to anyone,  they decided to concentrate on preparing a full blown web browser which could run inside the iPhone and let the web apps run through it.&lt;br /&gt;&lt;br /&gt;Now maybe there are some people who disagree with me here and believe a full blown iPhone SDK would be useful. In that case, why not prove me wrong. Post a comment below listing some useful app which you think would make the iPhone sdk worth it. Note that the app should really be useful to the people and not be there just for the cool factor.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/06/why-iphone-does-not-have-sdk.html' title='Why the iPhone does not have a SDK'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=3484946837670285768' title='4 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/3484946837670285768'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/3484946837670285768'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-4255915860565258437</id><published>2007-06-15T16:34:00.000+05:30</published><updated>2007-06-15T16:41:24.466+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Virtual Ant - Beta RELEASED !!!</title><content type='html'>Its finally here! After months of waiting we have finally released the beta version of &lt;a href="http://www.placidsystems.com/virtualant/"&gt;Virtual Ant&lt;/a&gt; !!&lt;br /&gt;&lt;br /&gt;If you havent seen the &lt;a href="http://www.placidsystems.com/virtualant/video/newdemo/vantdemo.htm"&gt;video&lt;/a&gt; yet, I would recommend you watch it first, otherwise you can head straight to the &lt;a href="http://www.placidsystems.com/virtualant/download.aspx"&gt;download&lt;/a&gt; page.&lt;br /&gt;&lt;br /&gt;The current release is standalone only and does not contain any IDE integration. It is also not fully feature complete. But we thought it would be better to give you something rather than make you wait any longer.&lt;br /&gt;&lt;br /&gt;We would absolutely love to get your feedback on Virtual Ant. You can post your queries/comments at the &lt;a href="http://groups.google.com/group/virtualant/"&gt;Virtual Ant google group&lt;/a&gt; or just email us at support@placidsystems.com.&lt;br /&gt;&lt;br /&gt;More later. Now I gotta go get some sleep ;)</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/06/virtual-ant-beta-released.html' title='Virtual Ant - Beta RELEASED !!!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=4255915860565258437' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/4255915860565258437'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/4255915860565258437'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-6418799998864302403</id><published>2007-05-27T00:23:00.000+05:30</published><updated>2007-05-27T00:26:58.448+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Virtual Ant Beta - releasing anyday now</title><content type='html'>I will announce it on this blog. If you subscribe to its &lt;a href="http://feeds.feedburner.com/PrashantDevasBlog"&gt;RSS feed&lt;/a&gt; you will come to know as soon as it happens.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/05/virtual-ant-beta-releasing-anyday-now.html' title='Virtual Ant Beta - releasing anyday now'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=6418799998864302403' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/6418799998864302403'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/6418799998864302403'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-9199521491040473252</id><published>2007-05-06T06:04:00.000+05:30</published><updated>2007-05-06T06:12:19.167+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>What kind of a tool is Virtual Ant?</title><content type='html'>Recently an engineer asked me this question -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;'What kind of a tool is Virtual Ant? Is it some sort of debugging tool or testing tool for build scripts or a glorified editor of some sort? How would you classify this thing?'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is my answer to that. Up till now you have always thought of developing software as consisting of  these steps -&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;  First you go read some books, documentation, etc  to learn about  the language or library you want to use.  This is usually a continuous process since libraries usually contain huge amounts of classes/methods and method parameters, so you always have to keep looking at the documentation constantly while coding.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Then you write some code.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;  Then you write some tests for your code.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Then you debug the errors you found during the tests.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Back to step 1.&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;With Virtual Ant we are releasing a new breed of tools where instead of doing the above steps, you just go ahead and do what you want to do. There is no need to write any code. No need to test either , since you always know exactly what going on. No need to debug since errors are obvious.&lt;br /&gt;&lt;br /&gt;As for the documentation, it has been our goal from the very beginning that we want to make sure that you never, ever have to look at it. If you know absolutely nothing about build tools, you can go from know zero to complete knowledge within a couple of minutes.&lt;br /&gt;&lt;br /&gt;The slide below from one of my presentations on Virtual Ant should help make the picture clearer-&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://placidsystems.com/blog/uploaded_images/vantslide-769564.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://placidsystems.com/blog/uploaded_images/vantslide-769561.PNG" alt="" border="0" /&gt;&lt;div style="text-align: center;"&gt;Development with Virtual Ant&lt;/div&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note that Virtual Ant is just the first of a new breed of tools coming out of Placid.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/05/what-kind-of-tool-is-virtual-ant.html' title='What kind of a tool is Virtual Ant?'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=9199521491040473252' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/9199521491040473252'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/9199521491040473252'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-7720394016198490888</id><published>2007-04-28T11:02:00.000+05:30</published><updated>2007-04-28T11:10:32.957+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Virtual Ant - Current Status</title><content type='html'>I understand that quite a few people are puzzled as to why Virtual Ant has not been released as yet and are wondering as to when they will actually get to release it. The following should clear up all your doubts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Huge codebase&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The video on the homepage shows a prototype demo of Virtual Ant. So although a lot of things 'seem' implemented they were no where near the final release state. A *lot* of code has been written since then. Currently Virtual Ant is about 350,000 (&gt;1/3 of million) lines of code!&lt;br /&gt;&lt;br /&gt;Since the code base is so huge, you can imagine we have been grappling with bugs all over the place. The fact that ant's codebase is such a mess doesn’t help matters either.&lt;br /&gt;&lt;br /&gt;It turns out that some of the design decisions we took didn’t turn out too well. This has led to a rewrite of over 90% of the Ant source code. Seriously, when I look in there now all I see is my own code. Note that this rewrite concerns only virtual ant itself and does not affect you as the user, since the build script that is generated will work with perfectly the ant jar you download from ant's web site.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pioneering the design&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Now although you may not notice this but a lot of thought has gone into how we will make all the features of Ant available via a gui which is easy and natural to use. Note the use of the word '&lt;span style="font-style: italic;"&gt;easy and natural to use&lt;/span&gt;'. Unlike the other '&lt;span style="font-style: italic;"&gt;so called GUIs&lt;/span&gt;' out there whose sole definition of a GUI is to take xml and turn into a bunch of boxes connected by lines, we actually want to provide a truly dynamic and natural experience, so that you never, ever have to deal with the xml.&lt;br /&gt;&lt;br /&gt;So coming back to the point, some things which are captured so easily in text that you never think twice about it, become a nightmare to handle in a gui. For example, an ant target can call another target using the 'antcall' task. In xml,  you would just write the antcall task, but how would we show  such a thing in the current gui. Do we turn all our listviews into treeviews? Wont that take off the elegance of the UI?  How else can we do it? (Note that we did solve this problem and the final release will show you how the gui reacts to an antcall task) ;-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Current status&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Currently we are at the endgame stage of the first version of Virtual Ant. Some things obviously had to be cut back since otherwise we would never release. Here they are in a nutshell-&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Instead of release plugins for all 3 ides eclipse, intellij and netbeans at once. We will be releasing them in succession and in that order (ie, first the eclipse plugin, then intellij …)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We will support version 1.6.5 of ant. You can run the generated build script on any version of ant you want, but virtual ant itself runs ant 1.6.5 internally on the virtual file system.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We wont support remote tasks for the first version (ftp, ssh, perforce, cvs,etc). We have an extremely super amazing cool way to handle this in the next version, which will make your head spin. We really wanted to put this in the first version but that would delay things further.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We will support multiple build files in the first version, but in a limited way. You can import files and call targets on another files using the 'ant' task, and see the results instantly. However, you cannot modify more than one file at a time from the same virtual ant window.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We haven't decided on the price yet, but we are thinking of putting it at $249 which is extremely affordable for a tool like this.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If things go real well we will have a beta of the standalone version of Virtual Ant within two weeks.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/04/virtual-ant-current-status.html' title='Virtual Ant - Current Status'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=7720394016198490888' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/7720394016198490888'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/7720394016198490888'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-1638850621649727180</id><published>2007-02-17T14:31:00.001+05:30</published><updated>2007-02-17T14:55:30.693+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='faq'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>More Virtual Ant queries</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;I just came across &lt;a href="http://javaposse.com/index.php?post_id=169799"&gt;this&lt;/a&gt; JavaPosse podcast where they talk about Virtual Ant.  They seem to be confused as to whether Virtual Ant runs only on Windows and can it run other operating systems too or not?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is the answer to that and some another queries I received in mail today –&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Does Virtual Ant run only on Windows? Can I run Virtual Ant on other operating systems, like linux or mac os x ?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Virtual Ant is written completely in Java. (Yes, that's a swing ui you see in the video). So it can run on any operating system which can run Java. So yes, you can run it on Windows, Linux and Mac OS X, even on Solaris if you want.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Has the video been edited in any way to make Virtual Ant seem faster in any way?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;No. Virtual Ant really is that fast. If it wasn't so fast then creating those build scripts would be a huge pain, since you have to wait after each operation for it to complete.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Does Virtual Ant only create build scripts? What about my existing build scripts? Can I open them in Virtual Ant too?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Virtual Ant can both read and write Ant scripts. So you can open existing scripts, play them inside Virtual Ant, make changes and let the xml take care of itself. Part of the design goal of Virtual Ant is that you never ever have to deal with the xml. As an analogy think of word documents, you don't care about the xml that is generated when the document is saved, you just care about how the document actually looks. The same goes for Virtual Ant.  That xml tab you see is there just for die hard xml fans or people who might be skeptical about using a GUI for everything. Once you start using Virtual Ant you will see yourself never needing to switch to it. And yes, if you do make any changes right in the xml, when you switch to the GUI tab you will see the changes have been applied to the GUI too.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/02/more-virtual-ant-queries.html' title='More Virtual Ant queries'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=1638850621649727180' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/1638850621649727180'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/1638850621649727180'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-7170263549837954187</id><published>2007-02-16T20:35:00.001+05:30</published><updated>2007-02-17T14:36:47.294+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='faq'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Virtual Ant FAQ</title><content type='html'>&lt;p&gt;Quite a few people have been asking me about the performance and system requirements for Virtual Ant. Here is a short faq which answers most of your queries -&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Do I have to go through an elaborate, long install procedure which creates a virtual copy of my system and occupies gigabytes of my disk space?&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;No, nothing like that. You just copy the virtual ant files to your disk, which will probably be &amp;lt; 10 mb eventually and that's it.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Does Virtual Ant require running some background process to virtualize the file system?&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;No. You do not need to run any background process. It just opens like any other program.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Do I have to wait for an insanely long time when I open Virtual Ant, while it virtualizes my file system?&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;No. Virtual Ant loads up instantly. Your file system is virtualized on the fly as you use Virtual Ant.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Does Virtual Ant require a high end system with insane amounts of memory?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;No. Virtual Ant will run on any modern system and has extremely modest memory requirements.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;How does Virtual Ant and the Virtual File System work?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;We can't reveal this right now, but all the information about the internals of Virtual Ant will be available for you to see on release.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/02/virtual-ant-faq.html' title='Virtual Ant FAQ'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=7170263549837954187' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/7170263549837954187'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/7170263549837954187'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-7552571747784504157</id><published>2007-02-15T23:54:00.001+05:30</published><updated>2007-02-15T23:55:59.743+05:30</updated><title type='text'>No more 8080</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt; The placid website is divided into 2 modules – asp.net and java. For those who are wondering why we have such a toxic mix of languages, well its cause our ANTLR Studio license generator program is written in Java. We tried porting it to .net but due to some weird incompatibilities in the cryptography apis we found it much easier to just run it as a separate module in java.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So we had iis running on port 80 and tomcat on port 8080. I know there is an apache_jk connector available which allows running both iis and tomcat on port 80, but I just couldn't get it to work for the life of me. So we were stuck with critical portions of the site running on port 8080, like the page to download the evaluation license.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The reason why port 8080 of course caused a lot of problems since most corporate firewalls have that port blocked as it is not one of the ports used by any standard app like http, ftp, ssh, etc. This resulted in many people not being able to download the evaluation license.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;But as of today, that has changed and now the java module is running on port 443. Port 443 is the port used by &lt;em&gt;'secure http'&lt;/em&gt; or &lt;em&gt;'https'&lt;/em&gt; and thus is open on every corporate firewall, thus you should no longer face any problems accessing any portion of the site anymore :)&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/02/no-more-8080.html' title='No more 8080'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=7552571747784504157' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/7552571747784504157'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/7552571747784504157'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-1427098115624061053</id><published>2007-01-23T01:41:00.000+05:30</published><updated>2007-01-23T01:48:38.674+05:30</updated><title type='text'>Forums moved to Google Groups</title><content type='html'>The forums at &lt;a href="http://www.antlrstudio.com/forums/"&gt;antlrstudio.com/forums&lt;/a&gt; have now been moved to Google Groups -&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/antlrstudio"&gt;PlacidSystems.AntlrStudio&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/virtualant/"&gt;    PlacidSystems.VirtualAnt&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This should result in a lot less spam and easier administration. The phpbb forums will remain for now in case one wants too look at the archives of the previous discussions, but no new posts are allowed.&lt;br /&gt;&lt;br /&gt;Also google groups offers nice features like receiving posts in email and of course google quality search :)&lt;br /&gt;&lt;br /&gt;Since most people already have google accounts, they also wont need to go through a sign up before posting.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/01/forums-at-www.html' title='Forums moved to Google Groups'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=1427098115624061053' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/1427098115624061053'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/1427098115624061053'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-3571816775826158927</id><published>2007-01-20T02:19:00.000+05:30</published><updated>2007-01-20T02:44:56.177+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='bloopers'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Wonder why your Java IO is slow?</title><content type='html'>During one of my debugging sessions, I came across the following piece of code inside the &lt;span style="font-style: italic;"&gt;java.io.PrintStream&lt;/span&gt; class from jdk 5.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;protected void setError() {&lt;br /&gt;trouble = true;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;try {   throw new IOException();} catch (IOException x) {}&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;No wonder java IO is so slow!</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2007/01/wonder-why-your-java-io-is-slow.html' title='Wonder why your Java IO is slow?'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=3571816775826158927' title='2 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/3571816775826158927'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/3571816775826158927'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-1806867375624957333</id><published>2006-11-30T16:50:00.000+05:30</published><updated>2006-11-30T17:07:16.650+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>The making of Virtual Ant</title><content type='html'>When the first time I wrote an ant build script for ANTLR Studio, it was extremely frustrating. &lt;br /&gt;&lt;br /&gt;I had to look into all these manuals and and all the descriptions of all these tasks and attributes.&lt;br /&gt;&lt;br /&gt;And all the time I was thinking, oh god, all i want to do is right click on this folder and select the 'Add to Archive' button but I need to learn these tons of commands for that. And not only that I even had to go back and debug the file after I had created it to get it working properly. &lt;br /&gt;&lt;br /&gt;This was for the first release of ANTLR Studio. For the next update, I needed to make some slight modifications to the build process. So, I went ahead opened my build script to edit some stuff, and my gosh, i couldnt make out a thing i had written a week ago. I had to sit with manuals and the eclispe ant debugger for hours before I could get the whole thing back in my brain. Of course, making the actual changes took even more time.&lt;br /&gt;&lt;br /&gt;My whole experience with ant build scripts reminded me of the old days of DOS and command lines where you had to learn each command, and simple things like moving files around and archiving needed quite some expertise.&lt;br /&gt;&lt;br /&gt;Thus after completing ANTLR Studio, I set out to design a system that would be as easy to use as Windows Explorer and would allow me to perform all the operations on it with the same kind of functionality that Ant allows. Something that wouldnt require me to look into manuals or go about debugging any scripts.&lt;br /&gt;&lt;br /&gt;After a lot of trials and errors, the result of is &lt;a href="http://www.placidsystems.com/virtualant/"&gt;Virtual Ant&lt;/a&gt;. This is by far the easiest and most intuitive system ever designed where you can create your build scripts. A lot of care has gone into it so that you can create highly complex build scripts even as a non-programmer and not knowing even a bit of xml.&lt;br /&gt;&lt;br /&gt;I believe that software development has seen the lowest amount of innovation since the dawn of computer science. You still code with basically the same tools as those available 10 years ago. Virtual Ant is the beginning in the next generation of truly revolutionary development tools that you will be seeing coming out of Placid.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2006/11/making-of-virtual-ant.html' title='The making of Virtual Ant'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=1806867375624957333' title='6 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/1806867375624957333'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/1806867375624957333'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-5566282990312195786</id><published>2006-11-29T09:07:00.000+05:30</published><updated>2006-11-29T09:10:22.245+05:30</updated><title type='text'>New (smaller) Virtual Ant video</title><content type='html'>I have created a &lt;a href="http://www.placidsystems.com/virtualant/video/newdemo/vantdemo.htm"&gt;new demonstration video&lt;/a&gt; for Virtual Ant.&lt;br /&gt;This one is much smaller , only about 4 mins, compared to the previous one (25 mins).&lt;br /&gt;&lt;br /&gt;Although it is not as detailed as the previous one, this should still give you enough info to give you an idea of how Virtual Ant works.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2006/11/new-smaller-virtual-ant-video.html' title='New (smaller) Virtual Ant video'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=5566282990312195786' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/5566282990312195786'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/5566282990312195786'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-8993334074784123805</id><published>2006-11-28T12:53:00.000+05:30</published><updated>2006-11-29T09:37:31.538+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='announcements'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualAnt'/><title type='text'>Announcing Virtual Ant !</title><content type='html'>Today I am announcing a revolutionary new product called &lt;a href="http://www.placidsystems.com/virtualant/Default.aspx"&gt;Virtual Ant&lt;/a&gt;, a tool for creating and editing Ant build scripts.&lt;br /&gt;&lt;br /&gt;Till now all the tools and so called IDEs for creating build scripts are basically enhanced xml editors with syntax highlighting. They do not make it any easier to create build scripts at all.&lt;br /&gt;&lt;br /&gt;With Virtual Ant, we are gonna change how you create and edit build scripts for ever! No longer do you need to look into any manuals or in fact need to know any programming at all. You just work like you do everyday in Windows Explorer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We also got some cool &lt;a href="http://www.placidsystems.com/virtualant/wallpapers.aspx"&gt;wallpapers&lt;/a&gt; to decorate your desktop!&lt;br /&gt;&lt;br /&gt;I would love to get your feedback on this, so keep it coming :)</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2006/11/announcing-virtual-ant.html' title='Announcing Virtual Ant !'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=8993334074784123805' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/8993334074784123805'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/8993334074784123805'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-116244909900607246</id><published>2006-11-02T12:00:00.000+05:30</published><updated>2006-11-02T12:01:39.016+05:30</updated><title type='text'>No more registrations required</title><content type='html'>Registrations are no longer required to download an &lt;a href="http://placidsystems.com:8080/account/asevaldl.jsf"&gt;evaluation license&lt;/a&gt; for ANTLR Studio.&lt;br /&gt;&lt;br /&gt;Enjoy :)</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2006/11/no-more-registrations-required.html' title='No more registrations required'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=116244909900607246' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/116244909900607246'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/116244909900607246'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-116196074054913107</id><published>2006-10-27T20:18:00.000+05:30</published><updated>2006-10-28T09:51:22.776+05:30</updated><title type='text'>Creating Commercial Quality IDEs : Part 3</title><content type='html'>Part 3 of the series is now &lt;a href="http://www.ibm.com/developerworks/opensource/edu/os-dw-os-ecl-commplgin3.html?S_TACT=105AGX44&amp;amp;S_CMP=HP"&gt;online&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This concludes the series for now. I might decide to extend it  later by trying to describe more areas of IDE design but currently I have way too much work on hand to do so.&lt;br /&gt;&lt;br /&gt;That said, I will be launching a demo of the next killer developer tool pretty soon :)</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2006/10/creating-commercial-quality-ides-part_27.html' title='Creating Commercial Quality IDEs : Part 3'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=116196074054913107' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/116196074054913107'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/116196074054913107'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-116140817119355645</id><published>2006-10-21T10:51:00.000+05:30</published><updated>2006-10-21T11:02:15.870+05:30</updated><title type='text'>Creating Commercial Quality IDEs : Part 2</title><content type='html'>Part 2 of my Creating Commercial Quality IDEs series has been published on &lt;a href="http://www-128.ibm.com/developerworks/opensource"&gt;IBM DeveloperWorks&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="http://www.ibm.com/developerworks/opensource/edu/os-dw-os-ecl-commplgin2.html?S_TACT=105AGX44&amp;amp;S_CMP=HP"&gt;link&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;Part 3 is coming out next week, so you wont have to wait for it too long :)</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2006/10/creating-commercial-quality-ides-part.html' title='Creating Commercial Quality IDEs : Part 2'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=116140817119355645' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/116140817119355645'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/116140817119355645'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-115917679441489810</id><published>2006-09-25T15:01:00.000+05:30</published><updated>2006-09-25T15:03:42.976+05:30</updated><title type='text'>ANTLR Studio featured in Software Developer's Journal</title><content type='html'>ANTLR Studio has a feature article in this month's online Software Developer's Journal!&lt;br/&gt;&lt;br/&gt;You can access the article here -&lt;br/&gt;&lt;a href="http://en.sdjournal.org/"&gt;http://en.sdjournal.org/&lt;/a&gt;&lt;br/&gt;</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2006/09/antlr-studio-featured-in-software.html' title='ANTLR Studio featured in Software Developer&apos;s Journal'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=115917679441489810' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/115917679441489810'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/115917679441489810'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-115765612942354445</id><published>2006-09-08T00:38:00.000+05:30</published><updated>2006-09-08T00:43:20.380+05:30</updated><title type='text'>DeveloperWorks tutorial : Creating Commercial Quality IDEs on top of Eclipse</title><content type='html'>IBM DeveloperWorks has published the first of my 3 part series on '&lt;span style="font-weight: bold;"&gt;Creating commercial quality IDEs on top of Eclipse&lt;/span&gt;'.&lt;br /&gt;&lt;br /&gt;This series looks at how to go about designing and implementing commercial quality IDEs as Eclipse plugins using the Eclipse APIs.&lt;br /&gt;&lt;br /&gt;Most of the other tutorials on the web you find for creating eclipse plugins mostly discuss one small niche or give tiny example programs towards the end which you then have to figure out how to incorporate in your complex real world app. Also a lot of them keep going through the same thing over and over again, such as how to create a new project in the eclipse PDE and how to declare a extension point and stuff like that.&lt;br /&gt;&lt;br /&gt;This tutorial is unique in the sense that it is for the real hard core developers and I discuss the real world design problems when designing a commercial quality IDE, something which is good enough that you can actually sell. I will not be talking about Eclipse plugins in general, nor will I show how to use the PDE, there is millions of pages of documentation for that.&lt;br /&gt;But what I will teach you is how to create real world IDEs and I will show you what problems you might come across while designing one. And I will also show you what separates a commercial quality IDE from one from the little example ones that you can create in a day.&lt;br /&gt;&lt;br /&gt;I will be looking at the internals of ANTLR Studio and will describe some of the problems I came across when designing it.&lt;br /&gt;&lt;br /&gt;Also I will show you how exactly do you go about using ANTLR while developing your IDE.&lt;br /&gt;&lt;br /&gt;So if you are interested in IDE design or developing Eclipse plugins or creating the next Visual Studio or just plain want to figure out how to go about using ANTLR to provide code completion in your IDE, this series is for you.&lt;br /&gt;&lt;br /&gt;The IBM guys have incorrectly renamed my series to '&lt;span style="font-weight: bold;"&gt;Creating Commercial Quality Eclipse plug ins&lt;/span&gt;' which is highly inaccurate since it is &lt;span style="font-style: italic;"&gt;not&lt;/span&gt; for creating eclipse plugins &lt;span style="font-style: italic;"&gt;in general&lt;/span&gt; but for creating IDEs.&lt;br /&gt;&lt;br /&gt;Anyhow you can find the tutorial at -&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks"&gt;www.ibm.com/developerworks&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the direct link to first part of the tutorial -&lt;br /&gt;&lt;a href="http://www-128.ibm.com/developerworks/edu/os-dw-os-ecl-commplgin1.html?S_TACT=105AGX01&amp;S_CMP=HP"&gt;http://www-128.ibm.com/developerworks/edu/os-dw-os-ecl-commplgin1.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The 2nd and 3rd parts will be published in the coming weeks.&lt;br /&gt;&lt;br /&gt;Your feedback is appreciated.&lt;br /&gt;&lt;br /&gt;You will notice that IBM wants you to enter a login id to read the tutorial or even to download it as a pdf. So for those without patience to register and fill out the huge forms that IBM gives you, you can just head over to www.bugmenot.com and enter www.ibm.com there to get a login id. This one worked for me -&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Id: yonofui@hotmail.com&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Pass: mantramantra&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Disclaimer:&lt;/span&gt; If anybody at IBM has any objections at all with me providing a publicly available password for your site here, I will remove it immediately. But seriously, you guys should not ask for a password just for reading a tutorial and even if you do, atleast make those forms a little smaller.</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2006/09/developerworks-tutorial-cr_115765612942354445.html' title='DeveloperWorks tutorial : Creating Commercial Quality IDEs on top of Eclipse'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=115765612942354445' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/115765612942354445'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/115765612942354445'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-115455817134745073</id><published>2006-08-03T04:02:00.000+05:30</published><updated>2006-08-03T04:13:59.866+05:30</updated><title type='text'>How many of your Windows apps use the native Windows UI?</title><content type='html'>Today  I was looking at the screenshots of IntelliJ Idea 6 when something suddenly  struck me. Intellij UI looks far better than Eclipse! I realized that in fact  that the Eclipse UI looks far ugly than the UI of most of the programs I use.  Since I use Eclipse as my everyday IDE, I just switched to it and tried to make  out what is it about eclipse that makes it look so ugly. Hmmm... I thought for a  second, maybe it's the icons. But no, the icons are pretty modern with all the  gradients and stuff you would expect of any modern app. Then? Suddenly I  realised what it was! The default Windows Xp UI!! Eclipse uses the SWT java lib  which gives it the look of the native UI which in turn is not too good to look  at while Intellij uses a custom Swing skin.&lt;br /&gt;&lt;br /&gt;But  then I thought, hey I am on windows. If  the windows UI was so ugly then why don't I find all the other apps ugly too?That  is when I started noticing this. How many programs of everday use *really* use  the Windows native UI? Lets take a look.&lt;br /&gt;&lt;br /&gt;First  lets see the programs running in my system tray -&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Windows       Messenger&lt;/li&gt; &lt;li&gt;Yahoo Messenger&lt;/li&gt; &lt;li&gt;Google Talk&lt;/li&gt; &lt;li&gt;Outlook 2k3&lt;/li&gt; &lt;li&gt;ZoneAlarm&lt;/li&gt; &lt;li&gt;AVG Anti Virus&lt;/li&gt; &lt;li&gt;LeechGet&lt;/li&gt; &lt;li&gt;Copernic       Desktop Search&lt;/li&gt;&lt;/ul&gt;Guess  what, NONE of the above programs use the native Windows look and feel!!!&lt;br /&gt;&lt;br /&gt;Then  I look at my Quick Launch bar which is to the side of the Start Button.Here  I just keep (instead of the 'Show Desktop' button)&lt;ul&gt;&lt;li&gt;Winamp&lt;/li&gt; &lt;li&gt;Itunes&lt;/li&gt;&lt;/ul&gt;NO  windows native UI in these either!&lt;br /&gt;&lt;br /&gt;Now  I really start thinking. Here are some of the most commonly used programs which  *don't* use native windows look and feel-&lt;ul&gt;&lt;li&gt;Everything in       MS office (word, excel, etc)&lt;/li&gt; &lt;li&gt;Visual Studio&lt;/li&gt; &lt;li&gt;Windows Media       Player&lt;/li&gt;&lt;/ul&gt;Actually  NONE of MS programs have the native windows look and feel. Talk about following  what you preach! Anyway continuing with our list -&lt;ul&gt;&lt;li&gt;Ad Aware&lt;/li&gt; &lt;li&gt;Macromedia       Dreamweaver&lt;/li&gt; &lt;li&gt;Adobe Reader&lt;/li&gt; &lt;li&gt;Opera&lt;/li&gt; &lt;li&gt;WinDVD&lt;/li&gt; &lt;li&gt;Quick Time&lt;/li&gt; &lt;li&gt;Real Player&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;And  of course a lot more.&lt;br /&gt;&lt;br /&gt;In  fact after noticing this I tried to see what programs that I frequently use on  my computer *do* have the native look, and here is what I found -&lt;br /&gt;&lt;ul type="circle"&gt;&lt;li&gt;Eclipse&lt;/li&gt; &lt;li&gt;Firefox&lt;/li&gt; &lt;li&gt;Solitare :)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;So  the next time you find that a UI is ugly, don't blame the programmers, they  were just following the MS guidelines for Windows apps :)</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2006/08/how-many-of-your-windows-apps-use.html' title='How many of your Windows apps use the native Windows UI?'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=115455817134745073' title='11 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/115455817134745073'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/115455817134745073'/><author><name>Prashant Deva</name></author></entry><entry><id>tag:blogger.com,1999:blog-13389163.post-115437043883059298</id><published>2006-07-31T23:54:00.000+05:30</published><updated>2006-07-31T23:57:18.840+05:30</updated><title type='text'>Incremental Parser wont make it to ANTLR 3.0 :(</title><content type='html'>I am sad to announce that the Incremental Parser wont be making it to version 3.0 of ANTLR :(&lt;br /&gt;&lt;br /&gt;It turns out that the current betas of ANTLR 3.0 need too much bug fixing and testing to make sure they are robust so that a final can be released. So for the moment Terence has decided to go ahead with fixing whats there and doing a release.&lt;br /&gt;&lt;br /&gt;Although the algorithm is still the first item on the agenda for the next update to ANTLR 3 (ie, 3.1).</content><link rel='alternate' type='text/html' href='http://placidsystems.com/blog/2006/07/incremental-parser-wont-make-it-to.html' title='Incremental Parser wont make it to ANTLR 3.0 :('/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13389163&amp;postID=115437043883059298' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://placidsystems.com/blog/feed/atom.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/115437043883059298'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13389163/posts/default/115437043883059298'/><author><name>Prashant Deva</name></author></entry></feed>