<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-315508520962829459</id><updated>2012-01-25T07:06:46.569-08:00</updated><category term='ruby'/><category term='ACL'/><category term='multiplatform installer'/><category term='unpack'/><category term='rapid installer'/><category term='package'/><category term='sugarcrm'/><category term='cross platform installer'/><category term='xtuple'/><category term='customers'/><category term='maven'/><category term='github'/><category term='hosting'/><category term='tomcat'/><category term='events'/><category term='new release'/><category term='Windows'/><category term='installer bitrock qt gtk installshield multiplatform'/><category term='open source'/><category term='ring2'/><category term='OS X'/><category term='cross platform'/><category term='console'/><category term='linux foundation'/><category term='trolltech'/><category term='javaone'/><category term='custom stacks'/><category term='rails'/><category term='.DEB'/><category term='installer'/><category term='java installer'/><category term='bitnami'/><category term='eclipse'/><category term='lamp stack'/><category term='backup'/><category term='deploy'/><category term='linux'/><category term='apache'/><category term='webstacks'/><category term='amanda'/><category term='openbravo'/><category term='new releases'/><category term='OS X installer'/><category term='ant'/><category term='mysql'/><category term='alfresco'/><category term='php'/><category term='howto'/><category term='automatic'/><category term='gtk'/><category term='zmanda'/><category term='automated'/><category term='cloud'/><category term='award'/><category term='installshield'/><category term='multiplatform'/><category term='openmrs'/><category term='jobs'/><category term='red herring'/><category term='bitrock'/><category term='bitnami stacks'/><category term='linuxworld'/><category term='installbuilder'/><category term='components'/><category term='command line'/><category term='qt'/><category term='opensource bitrock award'/><category term='automation'/><category term='bundle'/><category term='silent'/><category term='vista'/><category term='google'/><category term='unattended'/><title type='text'>School of BitRock</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.bitrock.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>92</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8745905735034518028</id><published>2012-01-25T07:06:00.000-08:00</published><updated>2012-01-25T07:06:46.698-08:00</updated><title type='text'>InstallBuilder 8.0.2 Released.</title><content type='html'>We recently released version 8.0.2 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Improved example projects and made them easily accessible through the builder GUI&lt;/li&gt;&lt;li&gt;Added HTTPS support for Linux, Windows and OS X for &amp;lt;httpGet&amp;gt; and &amp;lt;httpPost&amp;gt; actions as well as for the autoupdater&lt;/li&gt;&lt;li&gt;Improved downloadable components to allow resuming failed downloads&lt;/li&gt;&lt;li&gt;Added new &amp;lt;runAsAdmin&amp;gt; tag to &amp;lt;addScheduledTask&amp;gt; action&lt;/li&gt;&lt;li&gt;Improved error handling when none of the configured allowed display modes can be initialized&lt;/li&gt;&lt;li&gt;Improved built-in pages to display runtime changes of the &amp;lt;fullName&amp;gt; property&lt;/li&gt;&lt;li&gt;Fixed HTTP-related actions failing in some Windows 64bit environments&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;componentTest&amp;gt; rule not properly checking child components&lt;/li&gt;&lt;li&gt;Fixed Qt mode not properly displaying right-to-left languages&lt;/li&gt;&lt;li&gt;Fixed Gtk custom style not properly wrapping some parameter pages text&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;runProgram&amp;gt; action failing in some Windows environments when passing arguments containing % characters&lt;/li&gt;&lt;li&gt;Fixed installer failing when launched in some partially broken HP-UX environments&lt;/li&gt;&lt;li&gt;Fixed incorrect encoding in Italian language&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;choiceParameter&amp;gt; crashing when providing multiple options with the same text&lt;/li&gt;&lt;li&gt;Fixed InstallBuilder's User Guide link in start menu on Windows&lt;/li&gt;&lt;li&gt;Fixed Gtk progress bar writing warnings to console in some environments&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;labelParameter&amp;gt; not being properly vertically aligned&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8745905735034518028?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8745905735034518028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8745905735034518028'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2012/01/installbuilder-802-released.html' title='InstallBuilder 8.0.2 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-5050211289534642293</id><published>2011-12-01T00:37:00.001-08:00</published><updated>2011-12-01T00:50:51.119-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 8.0.1 Released.</title><content type='html'>We recently released version 8.0.1 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Added new installer_command_line_arguments built-in variable&lt;/li&gt;&lt;li&gt;Added new regular expressions section to the documentation&lt;/li&gt;&lt;li&gt;Allow &amp;lt;showChoiceQuestion&amp;gt; to be used in the &amp;lt;preBuildActionList&amp;gt;&lt;/li&gt;&lt;li&gt;Prevent &amp;lt;addUnixService&amp;gt; from failing because of warnings when adding the services&lt;/li&gt;&lt;li&gt;Improved slide show images alignment on OS X and Windows in qt mode&lt;/li&gt;&lt;li&gt;Fixed debugger failing in some environments when editing the executed action list&lt;/li&gt;&lt;li&gt;Fixed debugger crashing when right clicking in the Variables Editor root node&lt;/li&gt;&lt;li&gt;Fixed builder crashing when editing &amp;lt;substitute&amp;gt; actions and enabling advanced syntax mode&lt;/li&gt;&lt;li&gt;Fixed builder crashing when building projects on some solaris-intel environments&lt;/li&gt;&lt;li&gt;Fixed machine_ipaddr built-in variable not being properly defined on OS X Lion&lt;/li&gt;&lt;li&gt;Fixed Gtk mode crashing in directory selection in some partially broken environments&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-5050211289534642293?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/5050211289534642293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=5050211289534642293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5050211289534642293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5050211289534642293'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/12/installbuilder-801-released.html' title='InstallBuilder 8.0.1 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-6347411677365085028</id><published>2011-11-14T10:31:00.000-08:00</published><updated>2011-11-14T10:31:28.873-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 8 Now Available</title><content type='html'>InstallBuilder 8 is now available! This new version adds several new features to further streamline the installer development process and allows you to build more flexible and sophisticated cross-platform installation processes. A new, integrated debugger lets you identify and correct issues as you develop and an expanded component system allows downloading components on the fly and adds support for sub-components. See below for more details and &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download InstallBuilder 8&lt;/a&gt; to check out these new features for yourself!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;InstallBuilder Debugger&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The new InstallBuilder &lt;a href="http://installbuilder.bitrock.com/docs/installbuilder-userguide.html#_debugger"&gt;debugger&lt;/a&gt; makes it easier to identify and correct issues during the development process. It allows you to view and interactively edit installer variables at runtime, provides step-by-step execution to test that specific parts of the installer are functioning properly, allows recovering from unexpected errors during the installation process and more. A complete guide to using the debugger is now included in the InstallBuilder documentation.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-7G_iVC5t-wA/TsFWXiIQ3-I/AAAAAAAAAtc/TQipdFeZm1c/s1600/debugger-highlight.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="404" src="http://1.bp.blogspot.com/-7G_iVC5t-wA/TsFWXiIQ3-I/AAAAAAAAAtc/TQipdFeZm1c/s640/debugger-highlight.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: inherit;"&gt;&lt;i&gt;New Built-in Debugger&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;Expanded Component Support&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Expanded component functionality now provides support for downloadable components and component groups, including support for subcomponents. Downloadable components will be downloaded at runtime only if the user chooses to install them, reducing the size of installer downloads. The new component system allows you to group individual components and build feature sets that will be displayed in a tree structure ("subcomponents".) It also allows users to add and remove specific components from existing installations.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-8EDLX9qYUBE/TsFW_ni_k1I/AAAAAAAAAtk/A9JbF6Bv3bU/s1600/subcomponent-highlight.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="306" src="http://1.bp.blogspot.com/-8EDLX9qYUBE/TsFW_ni_k1I/AAAAAAAAAtk/A9JbF6Bv3bU/s400/subcomponent-highlight.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #999999;"&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;i&gt;InstallBuilder now supports sub-components.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="color: #999999;"&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;b&gt;Dynamic Parameter Support&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Enhanced parameter support makes it possible to create dynamic pages that will be automatically reconfigured based on user's input. This allows you to create a more customized and streamlined installation experience for users.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-NohzMCFh5R0/TsFdMk_GRsI/AAAAAAAAAts/Vx-evJ6F-DI/s1600/enhanced-parameter-highlight.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="356" src="http://2.bp.blogspot.com/-NohzMCFh5R0/TsFdMk_GRsI/AAAAAAAAAts/Vx-evJ6F-DI/s400/enhanced-parameter-highlight.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: inherit;"&gt;&lt;i&gt;Enhanced parameters allow you to design&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: inherit;"&gt;&lt;i&gt;more dynamic installation processes.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="color: #999999; font-family: inherit;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;In addition to the above improvements, we have also expanded the &lt;a href="http://installbuilder.bitrock.com/docs/installbuilder-userguide.html"&gt;InstallBuilder documentation&lt;/a&gt;. We now offer over 350 pages of InstallBuilder documentation that not only describes every feature,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px; text-align: -webkit-auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;but also provides sample code for a wide variety of installer functions, such as bundling a Java runtime, detecting pre-requisites on the system, offering basic and advanced installation modes and more.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px; text-align: -webkit-auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="background-color: white; line-height: 21px; text-align: -webkit-auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;a href="http://installbuilder.bitrock.com/download.html"&gt;Download InstallBuilder 8 &lt;/a&gt;to see how easy it can be to build powerful and dynamic cross-platform installers for your software!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-6347411677365085028?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/6347411677365085028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=6347411677365085028' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6347411677365085028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6347411677365085028'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/11/installbuilder-8-now-available.html' title='InstallBuilder 8 Now Available'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-7G_iVC5t-wA/TsFWXiIQ3-I/AAAAAAAAAtc/TQipdFeZm1c/s72-c/debugger-highlight.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8413027674390763548</id><published>2011-10-27T16:02:00.000-07:00</published><updated>2011-10-27T16:02:50.478-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>New Q&amp;A Support Site for InstallBuilder</title><content type='html'>You've got questions, we've got answers! We just launched a new Q&amp;amp;A site,&amp;nbsp;&lt;a href="http://answers.bitrock.com/"&gt;answers.bitrock.com&lt;/a&gt;,&amp;nbsp;to make it easier to get answers to your InstallBuilder questions. We have already populated the site with frequently asked questions and are ready and waiting to answer any questions you may have. Feel free to submit questions about how to use InstallBuilder, share feature requests or feedback, or ask general questions about packaging software. Check it out and let us know what you think!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8413027674390763548?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/8413027674390763548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=8413027674390763548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8413027674390763548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8413027674390763548'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/10/new-q-support-site-for-installbuilder.html' title='New Q&amp;A Support Site for InstallBuilder'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-5309082900267822483</id><published>2011-10-25T05:51:00.000-07:00</published><updated>2011-10-25T05:51:31.383-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 7.2.6 Released.</title><content type='html'>We recently released version 7.2.6 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Updated documentation&lt;/li&gt;&lt;li&gt;Fixed qt mode text widget not properly wrapping its content on Windows&lt;/li&gt;&lt;li&gt;Added support for tcsh shell in environment variable actions&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;platformTest&amp;gt; rule not properly recognizing osx-intel type on some 64bit environments&lt;/li&gt;&lt;li&gt;Improved Italian translation&lt;/li&gt;&lt;li&gt;Improved .password suffix to support nested variables&lt;/li&gt;&lt;li&gt;Speed up uninstaller creation on Windows&lt;/li&gt;&lt;li&gt;Now aborting the installation when canceling the language selection also triggers the &amp;lt;installationAbortedActionList&amp;gt;&lt;/li&gt;&lt;li&gt;Improved AutoUpdate to support the &amp;lt;removeLogFile&amp;gt; feature&lt;/li&gt;&lt;li&gt;Fixed builder crashing in some Windows environments when browsing for image files&lt;/li&gt;&lt;li&gt;Fixed OS X bundles launcher script encoding not being properly configured&lt;/li&gt;&lt;li&gt;Fixed Java launchers not being properly created on OS X&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;globalVariables&amp;gt; action not properly handling parameters&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-5309082900267822483?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5309082900267822483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5309082900267822483'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/10/installbuilder-726-released.html' title='InstallBuilder 7.2.6 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-5262337786758655994</id><published>2011-09-07T05:32:00.000-07:00</published><updated>2011-09-07T05:32:13.015-07:00</updated><title type='text'>InstallBuilder 7.2.5 Released.</title><content type='html'>We recently released version 7.2.5 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Updated documentation&lt;/li&gt;&lt;li&gt;Improved Dutch language support&lt;/li&gt;&lt;li&gt;Fixed language files not being properly loaded when including a BOM&lt;/li&gt;&lt;li&gt;Improved &amp;lt;addUser&amp;gt; action to properly deal with SELinux&lt;/li&gt;&lt;li&gt;Fixed packed folders not being deleted when using multiple hierarchy &amp;lt;destination&amp;gt; tags.&lt;/li&gt;&lt;li&gt;Improved Installer.RebootRequired string to allow variables&lt;/li&gt;&lt;li&gt;Fixed custom uninstaller directory not being deleted in some environments&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-5262337786758655994?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5262337786758655994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5262337786758655994'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/09/installbuilder-725-released.html' title='InstallBuilder 7.2.5 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-661929509242116668</id><published>2011-08-10T01:36:00.000-07:00</published><updated>2011-08-10T01:36:45.573-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 7.2.4 Released.</title><content type='html'>We recently released version 7.2.4 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Updated documentation&lt;/li&gt;&lt;li&gt;Allow executing .cmd scripts on Windows&lt;/li&gt;&lt;li&gt;Added contextual menu to GUI entry widgets to allow restoring the original value being edited&lt;/li&gt;&lt;li&gt;Fixed installers not deleting the current file being unpacked when canceling the installation in some environments&lt;/li&gt;&lt;li&gt;Improved &amp;lt;project&amp;gt; properties editor dialog to validate user input&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;httpGet&amp;gt; and &amp;lt;httpPost&amp;gt; actions failing in some Windows environments because of the download file being locked&lt;/li&gt;&lt;li&gt;Improved registry actions to work with &amp;lt;foreach&amp;gt; and &amp;lt;while&amp;gt; actions&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-661929509242116668?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/661929509242116668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/661929509242116668'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/08/installbuilder-724-released.html' title='InstallBuilder 7.2.4 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-928247377351269762</id><published>2011-08-01T01:02:00.000-07:00</published><updated>2011-08-01T01:02:41.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 7.2.3 Released.</title><content type='html'>We recently released version 7.2.3 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Improved Italian, Czech and Russian language support&lt;/li&gt;&lt;li&gt;Added support for HTTP redirects in &amp;lt;httpPost&amp;gt; and &amp;lt;httpGet&amp;gt; actions&lt;/li&gt;&lt;li&gt;New --verbose command line flag added to command line builder&lt;/li&gt;&lt;li&gt;Added new &amp;lt;endOfLineConversion&amp;gt; tag to file manipulation actions to allow configuring the EOL handling&lt;/li&gt;&lt;li&gt;New &amp;lt;fileIsLocked&amp;gt; rule&lt;/li&gt;&lt;li&gt;Improved performance of &amp;lt;unpackDirectory&amp;gt; action&lt;/li&gt;&lt;li&gt;Improved AutoUpdate to allow configuring its output directory and filename&lt;/li&gt;&lt;li&gt;Improved built-in pages language strings to support variables modified at any point at runtime&lt;/li&gt;&lt;li&gt;Improved widget alignment in nested parameter groups in qt mode&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;addScheduledTask&amp;gt; action failing in some environments&lt;/li&gt;&lt;li&gt;Dropped Windows 98 support&lt;/li&gt;&lt;li&gt;Added examples for all actions to the documentation&lt;/li&gt;&lt;li&gt;Improved deb generation to allow providing custom conffiles files&lt;/li&gt;&lt;li&gt;Improved &amp;lt;autodetectJava&amp;gt; action to properly work on OS X 10.7&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;shutdown&amp;gt; action failing in some environments&lt;/li&gt;&lt;li&gt;Fixed installers failing on OS X with some thirdparty system fonts configuration&lt;/li&gt;&lt;li&gt;Improved the file packing filters to support semicolon separated patterns&lt;/li&gt;&lt;li&gt;Improved command line builder to support displaying text mode popups when building&lt;/li&gt;&lt;li&gt;Improved GUI builder to accept the information provided through the --setvars flag&lt;/li&gt;&lt;li&gt;Added new built-in variable installbuilder_ui&lt;/li&gt;&lt;li&gt;Allow Arabic language to be selectable through the GUI builder&lt;/li&gt;&lt;li&gt;Allow providing short version of registry root keys to registry actions&lt;/li&gt;&lt;li&gt;Allow launching scrips from directories containing &amp;quot;&amp;amp;&amp;quot; characters&lt;/li&gt;&lt;li&gt;Improved final page text wrapping&lt;/li&gt;&lt;li&gt;Fixed some environment variable actions now properly working in some Windows environments&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-928247377351269762?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/928247377351269762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/928247377351269762'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/08/installbuilder-723-released.html' title='InstallBuilder 7.2.3 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3114716360554126202</id><published>2011-07-18T12:39:00.001-07:00</published><updated>2011-07-19T01:43:59.088-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><title type='text'>Demo Video for Building Crossplatform Installers with InstallBuilder</title><content type='html'>&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;We have been receiving requests for a how-to video that shows the basics of building a crossplatform software installer with InstallBuilder. We're happy to announce that a simple demo video is now live! We would love to receive your feedback in the comments.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: 'trebuchet ms', verdana, arial, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object width="485" height="394" &gt;&lt;param name="movie" value="http://www.youtube.com/v/wMXWq2b5IxM?version=3&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;hd=1&amp;amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/wMXWq2b5IxM?version=3&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;hd=1&amp;amp;fs=1" type="application/x-shockwave-flash" width="485" height="394" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: 'trebuchet ms', verdana, arial, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3114716360554126202?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3114716360554126202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3114716360554126202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3114716360554126202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3114716360554126202'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/07/demo-video-for-building-crossplatform.html' title='Demo Video for Building Crossplatform Installers with InstallBuilder'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-1174061216757341003</id><published>2011-06-27T03:37:00.000-07:00</published><updated>2011-06-27T03:37:20.083-07:00</updated><title type='text'>InstallBuilder 7.2.2 Released.</title><content type='html'>We recently released version 7.2.2 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Updated documentation&lt;/li&gt;&lt;li&gt;New Search dialog for GUI Builder XML editor&lt;/li&gt;&lt;li&gt;Disabled &amp;quot;Save&amp;quot; and &amp;quot;Save As&amp;quot; menu entries in GUI Builder when no project is loaded&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;addEnvironmentVariable&amp;gt; action not properly registering variables in some scenarios.&lt;/li&gt;&lt;li&gt;Skipped mirror selection page in AutoUpdate tool when just one option is available&lt;/li&gt;&lt;li&gt;New &amp;lt;pathManipulation&amp;gt; action to create absolute paths&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;showPasswordQuestion&amp;gt; not saving the password when accepting the dialog by pressing enter&lt;/li&gt;&lt;li&gt;Improved &amp;lt;firewallTest&amp;gt; rule to also include default Windows firewall&lt;/li&gt;&lt;li&gt;Improved Russian language support&lt;/li&gt;&lt;li&gt;New &amp;lt;createWindowsARPEntry&amp;gt; project setting to allow disabling the creation of the Add Remove Programs entry on windows&lt;/li&gt;&lt;li&gt;Improved &amp;lt;addScheduledTask&amp;gt; action to support latest Windows versions&lt;/li&gt;&lt;li&gt;Added Support for shiftjis encoding on HP-UX in text mode&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-1174061216757341003?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1174061216757341003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1174061216757341003'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/06/installbuilder-722-released.html' title='InstallBuilder 7.2.2 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8466275583855600990</id><published>2011-06-07T04:21:00.000-07:00</published><updated>2011-06-07T04:21:06.326-07:00</updated><title type='text'>InstallBuilder 7.2.1 Released.</title><content type='html'>We recently released version 7.2.1 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Improved Albanian, Bulgarian, Croatian, Danish, Finnish, Argentine Spanish, Slovak, Swedish and Turkish language support&lt;/li&gt;&lt;li&gt;Updated documentation&lt;/li&gt;&lt;li&gt;Speed up installer startup time when being launched from a network drive&lt;/li&gt;&lt;li&gt;New &amp;lt;addWindowsAccountRights&amp;gt; and &amp;lt;removeWindowsAccountRights&amp;gt; actions&lt;/li&gt;&lt;li&gt;Improved administrator user check in HP-UX platform&lt;/li&gt;&lt;li&gt;Improved &amp;lt;abortOnError&amp;gt; and &amp;lt;showMessageOnError&amp;gt; action settings to support variables&lt;/li&gt;&lt;li&gt;Improved minimalWithDialogs mode look and feel&lt;/li&gt;&lt;li&gt;Fixed text not being correctly wrapped in some &amp;lt;choiceParameters&amp;gt; in osx and win32 modes&lt;/li&gt;&lt;li&gt;Improved environment actions on Unix&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;passwordParameter&amp;gt; entries misaligned in some languages&lt;/li&gt;&lt;li&gt;Fixed GUI &amp;quot;Files&amp;quot; tree not being updated when manually deleting &amp;lt;distributionFile&amp;gt; elements from the XML editor&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;globalVariables&amp;gt; action not properly handling case insensitivity&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8466275583855600990?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8466275583855600990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8466275583855600990'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/06/installbuilder-721-released.html' title='InstallBuilder 7.2.1 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-6019031508561838531</id><published>2011-05-20T05:11:00.000-07:00</published><updated>2011-05-20T05:11:56.788-07:00</updated><title type='text'>InstallBuilder 7.2.0 Released.</title><content type='html'>We recently released version 7.2.0 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Improved packing filters to allow excluding files to pack at any depth of the directory hierarchy&lt;/li&gt;&lt;li&gt;Added Albanian, Bulgarian, Croatian, Danish, Finnish, Argentine Spanish, Slovak, Swedish and Turkish language support&lt;/li&gt;&lt;li&gt;Allow modifying the exit code in the &amp;lt;installationAbortedActionList&amp;gt;&lt;/li&gt;&lt;li&gt;Allow disabling Xft fonts support in xwindow mode to reduce installers size&lt;/li&gt;&lt;li&gt;Improved language autodetection on Windows&lt;/li&gt;&lt;li&gt;Updated documentation&lt;/li&gt;&lt;li&gt;Fixed 32bit installers crashing in Ubuntu 11.04 64bit when running in gtk mode&lt;/li&gt;&lt;li&gt;Allow executing .cmd scripts on Windows&lt;/li&gt;&lt;li&gt;Added new variable installation_aborted_by_user&lt;/li&gt;&lt;li&gt;Removed --enable-components, --disable-components and --optionfile options from uninstaller help menu&lt;/li&gt;&lt;li&gt;Improved &amp;lt;showProgressDialog&amp;gt; refresh rate to allow properly displaying quick actions progress text&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;launchBrowser&amp;gt; throwing warnings to console in some corrupt Linux environments&lt;/li&gt;&lt;li&gt;Fixed default installation language not being properly resolved in uninstaller help menu&lt;/li&gt;&lt;li&gt;Fixed error in GUI builder when using file dialogs in some scenarios&lt;/li&gt;&lt;li&gt;Fixed scope issue in custom actions&lt;/li&gt;&lt;li&gt;Replaced missing occurrences of &amp;quot;Ok&amp;quot; text in buttons to all uppercase &amp;quot;OK&amp;quot; per UI guidelines&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;enableLinuxLegacySupport&amp;gt; setting failing in some environments&lt;/li&gt;&lt;li&gt;Fixed some graphic glitches in osx mode&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-6019031508561838531?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6019031508561838531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6019031508561838531'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/05/installbuilder-720-released.html' title='InstallBuilder 7.2.0 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-5829321786647240786</id><published>2011-05-09T01:12:00.000-07:00</published><updated>2011-05-09T01:12:47.143-07:00</updated><title type='text'>InstallBuilder 7.1.1 Released.</title><content type='html'>We recently released version 7.1.1 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Fixed &amp;lt;unzip&amp;gt; action failing in some environments&lt;/li&gt;&lt;li&gt;Fixed InstallBuilder license registration dialog failing on OS X&lt;/li&gt;&lt;li&gt;Improved look and feel of &amp;lt;showProgressDialog&amp;gt; on OS X&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-5829321786647240786?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5829321786647240786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5829321786647240786'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/05/installbuilder-711-released.html' title='InstallBuilder 7.1.1 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4498319448564417197</id><published>2011-04-29T01:24:00.000-07:00</published><updated>2011-04-29T01:24:30.685-07:00</updated><title type='text'>InstallBuilder 7.1.0 Released.</title><content type='html'>We recently released version 7.1.0 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Fixed installer startup failing in some scenarios when being launched from a symbolic link&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;processTest&amp;gt; rule failing in some environments&lt;/li&gt;&lt;li&gt;Fixed installation log containing unnecessary empty new lines when using disabling the file unpacking process&lt;/li&gt;&lt;li&gt;Fixed comboboxes not being properly displayed in Windows Vista and 7 in win32 mode&lt;/li&gt;&lt;li&gt;Improved look and feel of the Builder and installers in OS X and Windows&lt;/li&gt;&lt;li&gt;Improved &amp;lt;getWindowsACL&amp;gt; to properly handle invalid SID provided as username&lt;/li&gt;&lt;li&gt;New &amp;lt;languageSelectionStyle&amp;gt; project property to configure the style of the language selection dialog&lt;/li&gt;&lt;li&gt;Improved reported errors when loading invalid XML files&lt;/li&gt;&lt;li&gt;Updated documentation&lt;/li&gt;&lt;li&gt;Fixed uninstaller not being removed on HP-UX&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4498319448564417197?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4498319448564417197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4498319448564417197'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/04/installbuilder-710-released.html' title='InstallBuilder 7.1.0 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-5257964851267085908</id><published>2011-04-19T01:12:00.000-07:00</published><updated>2011-04-29T01:20:05.340-07:00</updated><title type='text'>InstallBuilder 7.0.5 Released.</title><content type='html'>We recently released version 7.0.5 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;New split HTML version of the documentation&lt;/li&gt;&lt;li&gt;Significantly improved &amp;lt;unzip&amp;gt; action performance&lt;/li&gt;&lt;li&gt;Improved installers to allow variables in most of the project tags&lt;/li&gt;&lt;li&gt;Improved GUI to accept variables in choice and boolean-like properties&lt;/li&gt;&lt;li&gt;New &amp;lt;osxBundlesAreFiles&amp;gt; property added configure how &amp;lt;fileParameter&amp;gt; and &amp;lt;directoryParameter&amp;gt; should validate bundles in OS X&lt;/li&gt;&lt;li&gt;Allow &amp;lt;linkParameters&amp;gt; to receive keyboard focus on Qt mode&lt;/li&gt;&lt;li&gt;Improved OS X bundle launcher script to support projects with UTF-8 characters in their full name&lt;/li&gt;&lt;li&gt;Improved Polish translation&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;windowsResourceProductVersion&amp;gt; not properly working&lt;/li&gt;&lt;li&gt;Removed outdated syntax from demo projects&lt;/li&gt;&lt;li&gt;Updated command line builder icon on Windows&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;globalVariables&amp;gt; action not properly handling project references&lt;/li&gt;&lt;li&gt;Show more verbose errors in &amp;lt;break&amp;gt; and &amp;lt;continue&amp;gt; actions when invoked outside loop&lt;/li&gt;&lt;li&gt;Fixed XML comments not being preserved in the GUI editor in some scenarios&lt;/li&gt;&lt;li&gt;Fixed installers failing on HP-UX, AIX and FreeBSD 4 in some system language configurations&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-5257964851267085908?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/5257964851267085908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=5257964851267085908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5257964851267085908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5257964851267085908'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/04/installbuilder-705-released_19.html' title='InstallBuilder 7.0.5 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8613147826442152197</id><published>2011-04-04T02:07:00.000-07:00</published><updated>2011-04-04T02:07:06.537-07:00</updated><title type='text'>InstallBuilder 7.0.4 Released.</title><content type='html'>We recently released version 7.0.4 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Updated documentation&lt;/li&gt;&lt;li&gt;Added &amp;lt;selectionOrder&amp;gt; to the &amp;lt;autodetectJava&amp;gt; action to allow specifying the order of the detected Java versions&lt;/li&gt;&lt;li&gt;Added &amp;lt;checkFreeDiskSpace&amp;gt; rule&lt;/li&gt;&lt;li&gt;Added &amp;lt;clearWindowsACL&amp;gt; action&lt;/li&gt;&lt;li&gt;Added &amp;lt;osxUninstallerApplicationBundleIcon&amp;gt; to configure uninstaller icon on OS X&lt;/li&gt;&lt;li&gt;Added &amp;lt;osxPlatforms&amp;gt; project tag to configure the OS X runtimes to build&lt;/li&gt;&lt;li&gt;Improved Italian, French, Norwegian, Korean and Spanish translations&lt;/li&gt;&lt;li&gt;Included English language file in the installers as a reference&lt;/li&gt;&lt;li&gt;Improved build performance in Solaris, FreeBSD, AIX, HP-UX and IRIX&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;httpPost&amp;gt; action failing when providing an empty &amp;lt;queryParameterList&amp;gt;&lt;/li&gt;&lt;li&gt;Fixed main progress bar not properly configured in some scenarios&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;portTest&amp;gt; rule throwing an error when providing a malformed port&lt;/li&gt;&lt;li&gt;Changed &amp;quot;Ok&amp;quot; buttons text to all uppercase &amp;quot;OK&amp;quot; per UI guidelines&lt;/li&gt;&lt;li&gt;Fixed registered estimated size on Windows 7 not being properly calculated&lt;/li&gt;&lt;li&gt;Fixed RPM database registration not honoring files removed from uninstaller&lt;/li&gt;&lt;li&gt;Fixed environment variables not being properly registered in some OS X terminal shells&lt;/li&gt;&lt;li&gt;Fixed rollback functionality not properly handling the original drive&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8613147826442152197?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/8613147826442152197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=8613147826442152197' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8613147826442152197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8613147826442152197'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/04/installbuilder-704-released.html' title='InstallBuilder 7.0.4 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3730457045081462396</id><published>2011-03-22T04:59:00.000-07:00</published><updated>2011-03-22T04:59:56.494-07:00</updated><title type='text'>InstallBuilder 7.0.3 Released.</title><content type='html'>We recently released version 7.0.3 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Added Czech and Norwegian language support&lt;/li&gt;&lt;li&gt;Updated documentation&lt;/li&gt;&lt;li&gt;New &amp;lt;globalVariables&amp;gt; action to allow custom actions to modify project level variables&lt;/li&gt;&lt;li&gt;Reduced installer startup time on OS X when running in qt mode&lt;/li&gt;&lt;li&gt;Provided a default value for installer-language command line flag in the help menu&lt;/li&gt;&lt;li&gt;Improved &amp;lt;writeFile&amp;gt; action to accept variables in the &amp;lt;encoding&amp;gt; tag&lt;/li&gt;&lt;li&gt;Improved &amp;lt;run&amp;gt; and &amp;lt;show&amp;gt; action properties to accept variables&lt;/li&gt;&lt;li&gt;Added support for Bourne shell (sh) in actions related to environment variables&lt;/li&gt;&lt;li&gt;Fixed installer refreshing issue when quickly pushing 'next' button multiple times on Windows&lt;/li&gt;&lt;li&gt;Fixed installer not properly loading images in some environments&lt;/li&gt;&lt;li&gt;Properly handle standard streams redirection on Windows Java launchers&lt;/li&gt;&lt;li&gt;Fixed AutoUpdate &amp;lt;requireInstallationByRootUser&amp;gt; property not properly working on OS X&lt;/li&gt;&lt;li&gt;Improved regular installer registration with RPM database&lt;/li&gt;&lt;li&gt;Fixed qt mode post-uninstallation popups not displaying any icon on OS X&lt;/li&gt;&lt;li&gt;Fixed GUI XML editor not properly preserving comments&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3730457045081462396?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3730457045081462396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3730457045081462396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3730457045081462396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3730457045081462396'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/03/installbuilder-703-released.html' title='InstallBuilder 7.0.3 Released.'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-6883551503330587222</id><published>2011-02-09T09:52:00.000-08:00</published><updated>2011-02-09T09:52:08.906-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='bitnami'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><title type='text'>BitNami Cloud Hosting is Now Available!</title><content type='html'>&lt;table border="0" cellpadding="0" style="margin-left: 0px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_Db9iUBipxmo/TVLTeB_cvCI/AAAAAAAAARg/CU2BSY9_HyE/s1600/bitnami-cloud-hosting-newsletter-background.png" imageanchor="1" style="margin-left: 0em; margin-right: 0em;"&gt;&lt;img border="0" height="140" src="http://2.bp.blogspot.com/_Db9iUBipxmo/TVLTeB_cvCI/AAAAAAAAARg/CU2BSY9_HyE/s400/bitnami-cloud-hosting-newsletter-background.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="color: black; font-family: Arial, 'Bitstream Vera Sans', 'Nimbus Sans L'; font-size: 12px;"&gt;        &lt;br /&gt;After several months in private beta, we're excited to announce that BitNami Cloud Hosting is now generally available and ready for production use. If you're not familiar with BitNami, it is a site run by BitRock that provides free, ready-to-run installers, virtual appliances and cloud templates for popular open source software. &lt;a href="http://bitnami.org/cloud"&gt;BitNami Cloud Hosting&lt;/a&gt; builds on top of BitNami to provide the easiest way to deploy and manage BitNami Stacks and other applications in the cloud.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div align="center" style="background-color: #ffffb3; margin-left: auto; margin-right: auto; padding: 15px; text-align: center; width: 400px;"&gt;&lt;span style="color: black; font-family: Arial, 'Bitstream Vera Sans', 'Nimbus Sans L'; font-size: 12px;"&gt;&lt;a href="http://bitnami.org/cloud/pricing"&gt;Sign up&lt;/a&gt; and activate your BitNami Cloud Hosting account by midnight Pacific Time this Friday, February 11th to get 3 months of FREE service!&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-top: 10px;"&gt;&lt;span style="color: black; font-family: Arial, 'Bitstream Vera Sans', 'Nimbus Sans L'; font-size: 12px;"&gt;BitNami Cloud Hosting provides:&lt;/span&gt;&lt;/div&gt;&lt;ul type="disc"&gt;&lt;li style="margin-bottom: 7px;"&gt;&lt;span style="color: black; font-family: Arial, 'Bitstream Vera Sans', 'Nimbus Sans L'; font-size: 12px;"&gt;&lt;b&gt;BitNami Stacks in the Cloud:&lt;/b&gt; Deploy BitNami Stacks (and other applications) to the cloud with one click. You will get the same integrated, battle-tested and ready-to-run software stacks that you have been using from the BitNami.org site.&lt;/span&gt;&lt;/li&gt;&lt;span style="color: black; font-family: Arial, 'Bitstream Vera Sans', 'Nimbus Sans L'; font-size: 12px;"&gt;&lt;li style="margin-bottom: 7px;"&gt;&lt;b&gt;Great App Selection:&lt;/b&gt; BitNami Cloud Hosting offers most of the applications and development stacks in the BitNami library. Available stacks include: SugarCRM, Alfresco, JasperServer, Drupal, Wordpress, Redmine, RubyStack, LAMPStack and &lt;a href="http://bitnami.org/cloud/apps"&gt;many others&lt;/a&gt;.&lt;/li&gt;&lt;li style="margin-bottom: 7px;"&gt;&lt;b&gt;Automatic Backups and One Click Server Restores:&lt;/b&gt; BitNami Cloud Hosting offers automated backups that can be scheduled to occur hourly, daily or weekly. Backups and not just for the application data, but the whole machine, so configuration and other data is also preserved. This allows for entire servers to be restored in one click. Backups are incremental, which keeps costs low while ensuring that servers can be restored from any point in time.&lt;/li&gt;&lt;li style="margin-bottom: 7px;"&gt;&lt;b&gt;Server Scaling:&lt;/b&gt; Change the size of a server as needed with the click of a button.&lt;/li&gt;&lt;li style="margin-bottom: 7px;"&gt;&lt;b&gt;Server Scheduling:&lt;/b&gt; Set a schedule for servers to automatically start and stop, reducing computing costs.&lt;/li&gt;&lt;li style="margin-bottom: 7px;"&gt;&lt;b&gt;Automatic Monitoring:&lt;/b&gt; BitNami Cloud Hosting provides automatic monitoring out of the box.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Multi-Account Management:&lt;/b&gt; The BitNami Cloud Hosting control panel enables you to manage applications deployed across several cloud accounts.&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;span style="color: black; font-family: Arial, 'Bitstream Vera Sans', 'Nimbus Sans L'; font-size: 12px;"&gt;View the &lt;a href="http://www.youtube.com/watch?v=UiK3KgMLk1k"&gt;demo&lt;/a&gt; to learn more and &lt;a href="http://bitnami.org/cloud/pricing"&gt;sign up&lt;/a&gt; by the end of the day this Friday, February 11th for 3 months of free service!&lt;/span&gt;&lt;/td&gt;        &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-6883551503330587222?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/6883551503330587222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=6883551503330587222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6883551503330587222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6883551503330587222'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2011/02/bitnami-cloud-hosting-is-now-available.html' title='BitNami Cloud Hosting is Now Available!'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Db9iUBipxmo/TVLTeB_cvCI/AAAAAAAAARg/CU2BSY9_HyE/s72-c/bitnami-cloud-hosting-newsletter-background.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4902573444343074931</id><published>2010-12-17T13:14:00.000-08:00</published><updated>2010-12-17T13:14:37.197-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='new releases'/><title type='text'>InstallBuilder 7 is Now Available!</title><content type='html'>We're very excited to announce the release of InstallBuilder 7, which provides new features for Java-based applications, expanded documentation, an enhanced  GUI and better compression ratios, among other improvements. To check out all of this new functionality, &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download InstallBuilder 7&lt;/a&gt; from our website. &lt;br /&gt;&lt;br /&gt;The new functionality for packaging Java applications includes the ability to bundle a JRE and create launcher binaries for Microsoft Windows, Mac OS X, Linux and Solaris platforms. All you need to do is provide the application name, select the JARs to be included in the installer and specify the JAR to use to run the application. More details are available in our expanded &lt;a href="http://installbuilder.bitrock.com/docs/installbuilder-7.0.1-%20%20userguide.html#_bundling_a_jre"&gt;User Guide&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We have also greatly improved the compression mechanisms in InstallBuilder. It now provides much better compression ratios for both ZIP and LZMA without slowing down the installers. It also automatically detects duplicated files or parts of files and does not store duplicated data. We used this on our &lt;a href="http://bitnami.org/stacks"&gt;BitNami Stack installers&lt;/a&gt; for popular open source applications and their sizes were reduced by 30%!&lt;br /&gt;&lt;br /&gt;InstallBuilder 7 also introduces multiple improvements in the GUI build environment. We have introduced a variable selector feature that allows you to browse all of the available variables and insert a variable into any field in the GUI. This can speed installer development for both novices and experienced users of InstallBuilder by making it easier to find the right variable for any task you're trying to accomplish. It is also aware of project and component-specific parameters!&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_Db9iUBipxmo/TQvR37Dc2SI/AAAAAAAAAM4/7da09gXnWCc/s1600/VariableSelector.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="235" src="http://1.bp.blogspot.com/_Db9iUBipxmo/TQvR37Dc2SI/AAAAAAAAAM4/7da09gXnWCc/s400/VariableSelector.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;Variable Search and Selection&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Another GUI improvement in InstallBuilder 7 is the addition of an XML editor. This makes it easier for advanced users use both the GUI and edit the XML and switch back and forth between the two. The editor features syntax highlighing and applies changes instantly to the edited project. It also offers instant validation which detects incorrect XML and field names. The variable selector can be also from the XML view to insert variable references. &lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Db9iUBipxmo/TQvQy23uLlI/AAAAAAAAAMw/EaUbIVvvIbI/s1600/XMLEditor.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="322" src="http://3.bp.blogspot.com/_Db9iUBipxmo/TQvQy23uLlI/AAAAAAAAAMw/EaUbIVvvIbI/s400/XMLEditor.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;b&gt;XML Editor&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;In addition, InstallBuilder 7 allows you to create custom actions that use other rules and actions - either built-in or custom. This allows grouping repeated operations and invoking them just like any other built-in actions! More information about custom actions can be found in our expanded &lt;a href="http://installbuilder.bitrock.com/docs/installbuilder-7.0.1-userguide.html#_creating_custom_actions"&gt;User Guide&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Please visit &lt;a href="http://installbuilder.bitrock.com/"&gt;http://installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4902573444343074931?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/4902573444343074931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=4902573444343074931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4902573444343074931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4902573444343074931'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/12/installbuilder-7-is-now-available.html' title='InstallBuilder 7 is Now Available!'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Db9iUBipxmo/TQvR37Dc2SI/AAAAAAAAAM4/7da09gXnWCc/s72-c/VariableSelector.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-7542491157577788311</id><published>2010-11-08T05:21:00.000-08:00</published><updated>2010-11-08T05:21:19.247-08:00</updated><title type='text'>InstallBuilder 6.5.6 Released!</title><content type='html'>We recently released version 6.5.6 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Improve administrator user check in Solaris platform&lt;/li&gt;&lt;li&gt;Added Xft font support in Solaris&lt;/li&gt;&lt;li&gt;Added &amp;lt;windowsAccountTest&amp;gt; rule&lt;/li&gt;&lt;li&gt;Fixed dialog buttons not being localized in qt mode&lt;/li&gt;&lt;li&gt;&amp;lt;autodetectDotNetFramework&amp;gt; is now accessible through the GUI&lt;/li&gt;&lt;li&gt;Allow created OS X environment variables to be accessible from GUI applications&lt;/li&gt;&lt;li&gt;Fixed Autoupdate tool not properly launching the downloaded installers in some OS X scenarios&lt;/li&gt;&lt;li&gt;Fixed key bindings not properly working on xwindow, osx and win32 modes when selecting some languages&lt;/li&gt;&lt;li&gt;java_autodetected and dotnet_autodetected are now set to 0 if the detection fails&lt;/li&gt;&lt;li&gt;Fixed UI becoming not responsive when using &amp;lt;unpackDirectory&amp;gt; to unpack big directories&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;choiceParameter&amp;gt; not properly representing its value in some UI modes when using variables&lt;/li&gt;&lt;li&gt;Support zh_HK as valid language code&lt;/li&gt;&lt;li&gt;Fixed errors when trying to overwrite hidden files on Windows&lt;/li&gt;&lt;li&gt;Now in_empty and is_not_empty rules conditions in &amp;lt;fileTest&amp;gt; rule now take into account hidden files&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-7542491157577788311?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/7542491157577788311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=7542491157577788311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7542491157577788311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7542491157577788311'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/11/installbuilder-656-released.html' title='InstallBuilder 6.5.6 Released!'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-7533145502872493560</id><published>2010-10-06T06:41:00.000-07:00</published><updated>2010-10-06T06:41:26.189-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='new releases'/><category scheme='http://www.blogger.com/atom/ns#' term='multiplatform installer'/><title type='text'>InstallBuilder 6.5.5 Released - View XML Elements via the GUI interface</title><content type='html'>We just released version 6.5.5 of BitRock InstallBuilder. The new release enables the viewing of XML elements via the GUI interface, which makes it easier to develop software installers with InstallBuilder. It also includes the following improvements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;New &amp;lt;registryFind&amp;gt; action&lt;/li&gt;&lt;li&gt;New options is&amp;#95;type and is&amp;#95;not&amp;#95;type to registryTest rule&lt;/li&gt;&lt;li&gt;Implemented new &amp;lt;osxApplicationBundleIcon&amp;gt; project property to configure the icon on OS X&lt;/li&gt;&lt;li&gt;Added Java Web Start binary to the list of autodetected targets in &amp;lt;autodetectJava&amp;gt; action&lt;/li&gt;&lt;li&gt;Upgrade Autoupdate tool to support high color depth icons&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;compareText&amp;gt; description in the GUI&lt;/li&gt;&lt;li&gt;Fixed Chinese and Brazillian language autodetection on Unix&lt;/li&gt;&lt;li&gt;Improved page wrapping in Gtk custom style&lt;/li&gt;&lt;li&gt;Fixed Suse version autodetection failing in some environments&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Visit &lt;a href="http://installbuilder.bitrock.com/"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-7533145502872493560?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/7533145502872493560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=7533145502872493560' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7533145502872493560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7533145502872493560'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/10/installbuilder-655-released-view-xml.html' title='InstallBuilder 6.5.5 Released - View XML Elements via the GUI interface'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-5401070789428772300</id><published>2010-09-20T01:46:00.000-07:00</published><updated>2010-09-20T01:46:10.857-07:00</updated><title type='text'>InstallBuilder 6.5.4 Released!</title><content type='html'>We just released version 6.5.4 of BitRock InstallBuilder. The new release features the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Implemented drag and drop of nodes in the GUI builder&lt;/li&gt;&lt;li&gt;Make folders' &amp;lt;actionList&amp;gt; accessible through the GUI&lt;/li&gt;&lt;li&gt;Added OS X service manipulation actions &amp;lt;createOSXService&amp;gt;, &amp;lt;deleteOSXService&amp;gt;, &amp;lt;startOSXService&amp;gt; and &amp;lt;stopOSXService&amp;gt;&lt;/li&gt;&lt;li&gt;Added &amp;lt;osxServiceTest&amp;gt; rule to check OS X services state&lt;/li&gt;&lt;li&gt;Fixed XML load errors displaying an incorrect line number in some unicode files&lt;/li&gt;&lt;li&gt;Implemented new &amp;lt;xmlFileCommentElement&amp;gt; action&lt;/li&gt;&lt;li&gt;Improved language autodetection in OS X&lt;/li&gt;&lt;li&gt;Added &amp;lt;ordering&amp;gt; tag in &amp;lt;choiceParameter&amp;gt; to specify the display order of the elements&lt;/li&gt;&lt;li&gt;Added is_windows_admin_account, is_windows_user_account, is_windows_guest_account to &amp;lt;userTest&amp;gt; rule&lt;/li&gt;&lt;li&gt;Properly wrap &amp;lt;booleanParameter&amp;gt; descriptions when used inside a &amp;lt;parameterGroup&amp;gt; on xwindow, win32 and osx modes&lt;/li&gt;&lt;li&gt;Improved error when loading an incorrect project to display line number and file&lt;/li&gt;&lt;li&gt;Wrap all text mode pages&lt;/li&gt;&lt;li&gt;Allow resolving environment variables with parentheses&lt;/li&gt;&lt;li&gt;Make &amp;lt;zip&amp;gt; action recursive&lt;/li&gt;&lt;li&gt;Fixed InstallBuilder RELAX NG schema&lt;/li&gt;&lt;li&gt;Improved keyboard navigation on xwindow mode&lt;/li&gt;&lt;li&gt;Fixed incorrect font used in Chinese and Korean languages on Windows&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;showQuestionString&amp;gt; failing on OS X&lt;/li&gt;&lt;li&gt;Make sure all actions defining variables resolve variables in the variable name&lt;/li&gt;&lt;li&gt;Fixed deb/rpm helper binaries permissions&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;iniFileGet&amp;gt; action requiring write permissions over the target .ini file&lt;/li&gt;&lt;li&gt;Properly handled errors retrieving available disk space&lt;/li&gt;&lt;li&gt;Clean unnecessary helper binaries when upgrading Debian packages&lt;/li&gt;&lt;li&gt;Added monthly date type in &amp;lt;addScheduledTask&amp;gt; action&lt;/li&gt;&lt;li&gt;Make Autoupdate tool to also look for the license in user directory on Windows&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-5401070789428772300?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/5401070789428772300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=5401070789428772300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5401070789428772300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5401070789428772300'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/09/installbuilder-654-released.html' title='InstallBuilder 6.5.4 Released!'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-7478920497044331600</id><published>2010-08-25T13:32:00.000-07:00</published><updated>2010-08-25T13:32:07.253-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 6.5.3 Released - Adds Korean Language Support</title><content type='html'>We just released version 6.5.3 of InstallBuilder, which includes the following improvements:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Added Korean language support.&lt;/li&gt;&lt;li&gt;Changed icon resolution limitations on Windows. Now, any resolution is accepted.&lt;/li&gt;&lt;li&gt;Fixed issue with OS X installers failing when requiring Administrative&amp;nbsp;privileges and containing invalid characters in its&amp;nbsp;&amp;lt;fullName&amp;gt;.&lt;/li&gt;&lt;li&gt;Make keyboard focus visible in xwindow mode.&lt;/li&gt;&lt;li&gt;Fixed issue with uninstaller not being created in some scenarios when launched with a symbolic link.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Added support for symbolic links in unzip action.&lt;/li&gt;&lt;li&gt;Allow component names to contain underscores.&lt;/li&gt;&lt;li&gt;Fixed issue with integer validation failing when dealing with large integers.&lt;/li&gt;&lt;li&gt;Allow&amp;nbsp;&amp;lt;permissions&amp;gt;&amp;nbsp;tag in&amp;nbsp;&amp;lt;changePermissions&amp;gt;&amp;nbsp;action to contain variables.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;This new release is now available on our website for &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt;.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-7478920497044331600?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/7478920497044331600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=7478920497044331600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7478920497044331600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7478920497044331600'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/08/installbuilder-653-released-adds-korean.html' title='InstallBuilder 6.5.3 Released - Adds Korean Language Support'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-7681816323570952822</id><published>2010-08-23T17:43:00.000-07:00</published><updated>2010-08-23T17:43:11.863-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><title type='text'>Calling All Qt Developers - Join us at Developer Days 2010!</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://qt.nokia.com/promotion-banner/++atfield++image" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="48" src="http://qt.nokia.com/promotion-banner/++atfield++image" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;We're excited to be sponsoring&amp;nbsp;&lt;a href="http://qt.nokia.com/qtdevdays2010"&gt;Qt Developer Days 2010&lt;/a&gt;&amp;nbsp;as an exhibitor again this year.&amp;nbsp;If you develop with or would like to learn about developing with the Qt crossplatform development toolkit, we highly suggest you attend. Past events have been packed with tutorials, hands-on labs and presentations on how to use Qt and Qt Creator to reach millions of users on Symbian, Meego and all major desktop platforms.&lt;br /&gt;&lt;br /&gt;There are two separate events - one in Munich from October 11th - 13th and another in San Francisco from November 1st - 3rd, to make attending more convenient. Space is limited, so&amp;nbsp;&lt;a href="http://qt.nokia.com/qtdevdays2010/registration"&gt;register now&lt;/a&gt;&amp;nbsp;to make sure you get to attend!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-7681816323570952822?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/7681816323570952822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=7681816323570952822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7681816323570952822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7681816323570952822'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/08/calling-all-qt-developers-join-us-at.html' title='Calling All Qt Developers - Join us at Developer Days 2010!'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8106515392646557156</id><published>2010-08-05T18:54:00.000-07:00</published><updated>2010-08-05T18:54:48.748-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 6.5 Now Available</title><content type='html'>We have been hard at work on &lt;a href="http://installbuilder.bitrock.com/"&gt;InstallBuilder&lt;/a&gt; and we're happy to announce that InstallBuilder 6.5.0 is now available. This release includes a &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;long list of improvements&lt;/a&gt;, such as:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;New &amp;lt;consoleWrite&amp;gt; action&lt;/li&gt;&lt;li&gt;New mechanism to escape variable references&lt;/li&gt;&lt;li&gt;Allow configuring Autoupdate tool proxy through the configuration file&lt;/li&gt;&lt;li&gt;New&amp;nbsp;&amp;lt;antivirusTest&amp;gt; and&amp;nbsp;&amp;lt;firewallTest&amp;gt;&lt;/li&gt;&lt;li&gt;Added --help menu to the builder&lt;/li&gt;&lt;li&gt;Added --license command line flag to the builder to provide an alternative license file&lt;/li&gt;&lt;li&gt;Added --debugtrace command line flag to the builder&lt;/li&gt;&lt;li&gt;Added --project command line flag to specify a project to load in the GUI builder&lt;/li&gt;&lt;li&gt;Improved unattendedModeUI mode to support gtk and qt mode&lt;/li&gt;&lt;li&gt;Added&amp;nbsp;&amp;lt;delay&amp;gt; tag to&amp;nbsp;&amp;lt;stopWindowsService&amp;gt; action&lt;/li&gt;&lt;li&gt;New windows-x86 platform type check added to&amp;nbsp;&amp;lt;platformTest&amp;gt; rule&lt;/li&gt;&lt;li&gt;Fixed refresh issue that affected download rate in Autoupdate Tool, especially on OS X&lt;/li&gt;&lt;li&gt;New&amp;nbsp;&amp;lt;runAsAdmin&amp;gt; tag added to shortcuts to mark Windows shortcuts to run as Administrator&lt;/li&gt;&lt;li&gt;Improved validation of boolean and integer type settings&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;To check out all of the new features,&amp;nbsp;&lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download InstallBuilder 6.5&lt;/a&gt;&amp;nbsp;or visit our&amp;nbsp;&lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8106515392646557156?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/8106515392646557156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=8106515392646557156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8106515392646557156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8106515392646557156'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/08/installbuilder-65-now-available.html' title='InstallBuilder 6.5 Now Available'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3246790810092285618</id><published>2010-06-14T11:30:00.000-07:00</published><updated>2010-06-14T11:30:43.952-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='new releases'/><category scheme='http://www.blogger.com/atom/ns#' term='installer'/><category scheme='http://www.blogger.com/atom/ns#' term='cross platform'/><title type='text'>InstallBuilder 6.4 Released!</title><content type='html'>We just released version 6.4.0 of BitRock InstallBuilder. The new release features the following improvements:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Added support for nested variables&lt;/li&gt;&lt;li&gt;Now all variable references are case insensitive&lt;/li&gt;&lt;li&gt;New&amp;nbsp;&amp;lt;createShortcuts&amp;gt;&amp;nbsp;action&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;Prevent GUI builder from accepting incorrect values in its dialogs&lt;/li&gt;&lt;li&gt;Added new&amp;nbsp;&amp;lt;while&amp;gt;&amp;nbsp;and&amp;nbsp;&amp;lt;break&amp;gt;&amp;nbsp;actions&lt;/li&gt;&lt;li&gt;New&amp;nbsp;&amp;lt;autodetectDotNetFramework&amp;gt;&amp;nbsp;action&lt;/li&gt;&lt;li&gt;New&amp;nbsp;&amp;lt;locate&amp;gt;&amp;nbsp;action&lt;/li&gt;&lt;li&gt;Added new&amp;nbsp;&amp;lt;zip&amp;gt;&amp;nbsp;action&lt;/li&gt;&lt;li&gt;Added matchHiddenFiles flag to&amp;nbsp;&amp;lt;touchFile&amp;gt;,&amp;nbsp;&amp;lt;copyFile&amp;gt;&amp;nbsp;and&amp;nbsp;&amp;lt;deleteFile&amp;gt;&amp;nbsp;actions&lt;/li&gt;&lt;li&gt;Added OS X support for user and group manipulation actions&lt;/li&gt;&lt;li&gt;Added new built-in variable windows_os_flavor&lt;/li&gt;&lt;li&gt;Allow&amp;nbsp;&amp;lt;foreach&amp;gt;&amp;nbsp;and&amp;nbsp;&amp;lt;if&amp;gt;&amp;nbsp;actions to be accessed through the GUI&lt;/li&gt;&lt;li&gt;Fixed Qt installer abnormaly resizing in "custom" mode&lt;/li&gt;&lt;li&gt;Fixed patterns in folders' inclusion filters not resolved when using backslashes&lt;/li&gt;&lt;li&gt;Allow&amp;nbsp;&amp;lt;showProgressDialog&amp;gt;&amp;nbsp;to display a download progress bar when containing a single&amp;nbsp;&amp;lt;httpGet&amp;gt;&amp;nbsp;child action&lt;/li&gt;&lt;li&gt;Normalize all relative paths to reference project directory in Autoupdate tool&lt;/li&gt;&lt;li&gt;New validation of duplicated project tags&lt;/li&gt;&lt;li&gt;Disabled RPM registration in platforms with non-native RPM support&lt;/li&gt;&lt;li&gt;Increase size of builder project properties dialog&lt;/li&gt;&lt;li&gt;Allow empty user and password to be provided in&amp;nbsp;&amp;lt;addScheduledTask&amp;gt;&amp;nbsp;action&lt;/li&gt;&lt;li&gt;New&amp;nbsp;&amp;lt;runOnlyIfLoggedOn&amp;gt;&amp;nbsp;tag in&amp;nbsp;&amp;lt;addScheduledTask&amp;gt;&amp;nbsp;action&lt;/li&gt;&lt;li&gt;Disable language selection dialog when a value is provided through command line&lt;/li&gt;&lt;li&gt;Allow InstallBuilder license to be saved to and loaded from user personal directory on Windows&lt;/li&gt;&lt;li&gt;Added Japanese string for Installer.DirectorySelection built-in string&lt;/li&gt;&lt;li&gt;Fixed glitch in button states after installation page&lt;/li&gt;&lt;li&gt;Allow task name with spaces in&amp;nbsp;&amp;lt;addScheduledTask&amp;gt;&amp;nbsp;action&lt;/li&gt;&lt;/ul&gt;Visit&amp;nbsp;&lt;a href="http://installbuilder.bitrock.com/"&gt;installbuilder.bitrock.com&lt;/a&gt;&amp;nbsp;to&amp;nbsp;&lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt;&amp;nbsp;or to view our&amp;nbsp;&lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3246790810092285618?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3246790810092285618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3246790810092285618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3246790810092285618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3246790810092285618'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/06/installbuilder-64-released.html' title='InstallBuilder 6.4 Released!'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3955580669972049928</id><published>2010-05-06T05:23:00.000-07:00</published><updated>2010-05-06T05:23:18.411-07:00</updated><title type='text'>InstallBuilder 6.3.1 released!</title><content type='html'>We recently released version 6.3.1 of InstallBuilder, which includes the following improvements:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;New &amp;lt;sha1&amp;gt; action&lt;/li&gt;&lt;li&gt;New &amp;lt;md4&amp;gt; action&lt;/li&gt;&lt;li&gt;New &amp;lt;addDirectoriesToUninstaller&amp;gt; action&lt;/li&gt;&lt;li&gt;Added &amp;lt;password&amp;gt; tag to &amp;lt;addUser&amp;gt; action&lt;/li&gt;&lt;li&gt;Improved &amp;lt;httpProxyInit&amp;gt; to autodetect system proxy settings&lt;/li&gt;&lt;li&gt;Improved RPM integration&lt;/li&gt;&lt;li&gt;Improved Qt look and feel on Windows and OS X&lt;/li&gt;&lt;li&gt;Validate user provided input for parameters while creating them.&lt;/li&gt;&lt;li&gt;Added Windows support for user and group manipulation actions&lt;/li&gt;&lt;li&gt;Fixed &amp;lt;registryDelete&amp;gt; failing to delete keys on Windows 64bit&lt;/li&gt;&lt;li&gt;Documented windows_os_service_pack&lt;/li&gt;&lt;li&gt;Prevent fileTest rule from failing when testing a non-existent link&lt;/li&gt;&lt;li&gt;Fixed autoupdate returning update available when check_for_updates was set to '0'&lt;/li&gt;&lt;li&gt;Fixed Windows 7 not being recognized when Windows 7 Logo Toolkit is installed&lt;/li&gt;&lt;li&gt;Fixed symbolic links not being properly packed when included as &amp;lt;distributionFile&amp;gt;&lt;/li&gt;&lt;li&gt;Fixed variables not being resolved in some Autoupdate project tags.&lt;/li&gt;&lt;li&gt;Fixed error parsing Autoupdate projects containing utf-8 BOM&lt;/li&gt;&lt;li&gt;Built-in registry keys are now created in the 64bit view when &amp;lt;windows64bitMode&amp;gt; is enabled&lt;/li&gt;&lt;li&gt;Fixed Windows 2008 autodetection failing in some environments&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;Visit &lt;a href="http://installbuilder.bitrock.com"&gt;installbuilder.bitrock.com&lt;/a&gt; to &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3955580669972049928?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3955580669972049928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3955580669972049928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3955580669972049928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3955580669972049928'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/05/installbuilder-631-released.html' title='InstallBuilder 6.3.1 released!'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-2165873896996889793</id><published>2010-04-21T10:48:00.000-07:00</published><updated>2010-04-21T10:48:49.524-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jobs'/><title type='text'>We're Hiring!</title><content type='html'>BitRock is growing and we’re looking for smart, motivated and talented individuals to join our team! The position we’re currently working to fill is for a Stack Engineer. Our Stack Engineers work with clients throughout the world to deliver customized native installers, virtual machine images and cloud templates for their software. These are similar to the software stacks we build for the &lt;a href="http://bitnami.org/"&gt;BitNami&lt;/a&gt; project.&amp;nbsp;Stack Engineers also bring new BitNami Stacks to market and keep the current ones up to date. This position provides an excellent opportunity to work with technologies such as Ruby on Rails, PHP, Python, Apache, MySQL and many other Open Source projects across Windows, Linux, OS X and various cloud platforms such as Amazon, Rackspace, GoGrid and OpSource. If you are a distro packager or a sysadmin who likes to automate his or her work, you’ll love this job!&lt;br /&gt;&lt;br /&gt;Qualified applicants must be fluent in a scripting language such as Ruby, Python or Tcl, and familiar with common Open Source development tools. Interaction with customers is mostly over email, so the ability to write fluently and communicate effectively in English is a must. A big chunk of the development team is in Spain, so a bit of ‘Spanglish’ would not hurt, either :)&lt;br /&gt;&lt;br /&gt;If you’re local (or would like to live in) Seville, Spain, we have an office there ready and waiting for the right candidate. We also have several employees in other countries who work from home, so if you have a home office and are comfortable working remotely, we will be happy to consider your application. To apply, please send your CV along with a letter telling us a little about yourself and why you’d like to join our team to careers@bitrock.com.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-2165873896996889793?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/2165873896996889793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=2165873896996889793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2165873896996889793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2165873896996889793'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/04/were-hiring.html' title='We&apos;re Hiring!'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-6703467912786894575</id><published>2010-04-20T16:35:00.000-07:00</published><updated>2010-04-20T16:35:28.329-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='events'/><title type='text'>DevOps Meetup Tomorrow in Palo Alto</title><content type='html'>We're excited to announce the first San Francisco Bay Area &lt;a href="http://dev2ops.org/meetup"&gt;DevOps Meetup&lt;/a&gt;, happening April 21st at &lt;a href="http://www.oldpropa.com/"&gt;The Old Pro in Palo Alto&lt;/a&gt;. If you're not familiar with the term DevOps, take a look at this &lt;a href="http://dev2ops.org/blog/2010/2/22/what-is-devops.html"&gt;article&lt;/a&gt;, which gives a great explanation.&lt;br /&gt;&lt;br /&gt;This first meetup is all about getting to know and networking with your fellow DevOps enthusiasts. We'll be meeting at 7pm to drink beer, eat food, and talk DevOps. We're co-sponsoring the event with DTO Solutions and rPath to make sure there is some tasty food and beer to keep everyone fueled up. We hope you're able to join us!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-6703467912786894575?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/6703467912786894575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=6703467912786894575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6703467912786894575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6703467912786894575'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/04/devops-meetup-tomorrow-in-palo-alto.html' title='DevOps Meetup Tomorrow in Palo Alto'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8384252766790127311</id><published>2010-04-19T15:02:00.000-07:00</published><updated>2010-04-19T15:02:41.263-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 6.3 Released - Localization and Memory Improvements</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;We recently released version 6.3.0 of InstallBuilder, which includes a number of improvements, including the ability to include localized license agreements and set the default installation language based on the previous installation. We have &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;also reduced the memory consumption when unpacking large single-file installers. Other InstallBuilder improvements include:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Multiple improvements to CD-ROM installers&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Allow HTML license files in Qt mode&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;New installer_builder_version and installer_builder_timestamp built-in variables&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;New&amp;nbsp;&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&amp;lt;&lt;/span&gt;httpProxyInit&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;action to configure proxy to use with http actions&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;New&amp;nbsp;&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&amp;lt;&lt;/span&gt;xmlFileGet&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;and&amp;nbsp;&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&amp;lt;&lt;/span&gt;xmlFileSet&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;actions&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;New&amp;nbsp;&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&amp;lt;&lt;/span&gt;addScheduledTask&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;and&amp;nbsp;&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&amp;lt;&lt;/span&gt;deleteScheduledTask&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;Windows actions&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;New .password suffix to mask passwords in log messages&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Support for osx-intel and osx-pcc in platform test&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Add support for FreeBSD 8&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Improve the RPM removal process&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #333333;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="color: black; line-height: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Visit installbuilder.bitrock.com to&amp;nbsp;&lt;/span&gt;&lt;a href="http://installbuilder.bitrock.com/download.html"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;downloa&lt;/span&gt;d&lt;/a&gt;&amp;nbsp;or to view our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8384252766790127311?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/8384252766790127311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=8384252766790127311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8384252766790127311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8384252766790127311'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/04/installbuilder-63-released-localization.html' title='InstallBuilder 6.3 Released - Localization and Memory Improvements'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-7896118647300083095</id><published>2010-01-25T13:37:00.000-08:00</published><updated>2010-01-26T04:25:27.827-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 6.2.7 Released</title><content type='html'>We just released v6.2.7 of InstallBuilder which includes the following improvements:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;New &amp;lt;useMSDOSPath&amp;gt; property in &amp;lt;runProgram&amp;gt; action to configure whether to use or not 8.3 format in the &amp;lt;program&amp;gt; path&lt;/li&gt;&lt;li&gt;Added encoding property in &amp;lt;addTextToFile&amp;gt; action and &amp;lt;fileContentTest&amp;gt; rule&lt;/li&gt;&lt;li&gt;New &amp;lt;unix2dos&amp;gt; action&lt;/li&gt;&lt;li&gt;Allow file type filters in &amp;lt;fileParameter&amp;gt; dialogs for xwindow, osx and win32 modes&lt;/li&gt;&lt;li&gt;Include InstallBuilder version by default in the generated installers version info&lt;/li&gt;&lt;li&gt;Fixed error with file selection crashing if third-party Explorer extensions change locale&lt;/li&gt;&lt;li&gt;Fixed unpacking error in some Windows environments due to antivirus software locking files&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Check out our &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;changelog&lt;/a&gt;&amp;nbsp;and &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; the latest release to benefit from the new features and bug fixes.&lt;/div&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-7896118647300083095?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/7896118647300083095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=7896118647300083095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7896118647300083095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7896118647300083095'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/01/installbuilder-627-released.html' title='InstallBuilder 6.2.7 Released'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-2846991749470051416</id><published>2010-01-04T09:20:00.000-08:00</published><updated>2010-02-05T00:27:04.801-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='ACL'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>Handling Access Control List on Windows With BitRock InstallBuilder</title><content type='html'>Access Control List (ACL) is the way in which Windows manages permissions on NTFS file systems. &lt;br /&gt;&lt;br /&gt;There are several command line tools on Windows for handling this: cacls, xcals, icacls. Unfortunately, these tools are not always present in a default Windows installation and depending on the Windows version, different tools may be required. &lt;br /&gt;&lt;br /&gt;BitRock InstallBuilder now provides you with &amp;lt;setWindowsACL&amp;gt; built-in actions. This powerful action for managing permissions allows you to modify ACL on Windows. It is based in the icacls windows tool (&lt;a href="http://technet.microsoft.com/en-us/library/cc753525(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/cc753525(WS.10).aspx&lt;/a&gt;). &lt;br /&gt;&lt;br /&gt;You can define the files you want to apply the permissions to. It allows you to specify if you want to "allow" or "deny" access.  You can also match a list of users for which the permissions will be applied, and to specify any of the allowed permissions types.  &lt;br /&gt;&lt;br /&gt;You can define the users either using names or SIDs. Please take into account that special users, like "Everyone" are localized so it is a good practice to use SIDs instead for these users. You can find a list of the well known SIDs  in this article: &lt;br /&gt;&lt;br /&gt;http://support.microsoft.com/kb/243330 &lt;br /&gt;&lt;br /&gt;The most common file permissions are also detailed below: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa364399(VS.85).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa364399(VS.85).aspx&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/243330"&gt;http://support.microsoft.com/kb/243330&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Note that ACL are only supported on NFTS file systems. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example 1 - Basic:&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;The following example will allow all users in the system to read, write and execute the files that match the pattern in &amp;lt;files&amp;gt;. For the directories that match that pattern, the users will be allowed to read the content and write new content in that directory. &lt;br /&gt;&lt;pre&gt;&amp;lt;setWindowsACL&amp;gt;&lt;br /&gt;&amp;lt;user&amp;gt;Everyone&amp;lt;/users&amp;gt; &lt;br /&gt;&amp;lt;permissions&amp;gt;file_read_data file_write_data file_execute&amp;lt;/permissions&amp;gt;&lt;br /&gt;&amp;lt;files&amp;gt;c:\myfolder\*;c:\myfolder\*\*;c:\myfolder\*\*\*&amp;lt;/files&amp;gt;&lt;br /&gt;&amp;lt;action&amp;gt;allow&amp;lt;/action&amp;gt;&lt;br /&gt;&amp;lt;/setWindowsACL&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Example 2 – Inheritance:&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;It is also possible to define the inheritance level: &lt;br /&gt;&lt;pre&gt;&amp;lt;setWindowsACL&amp;gt;&lt;br /&gt;     &amp;lt;action&amp;gt;deny&amp;lt;/action&amp;gt;&lt;br /&gt;     &amp;lt;files&amp;gt;c:\some\folder&amp;lt;/files&amp;gt;&lt;br /&gt;     &amp;lt;permissions&amp;gt;file_read_data&amp;lt;/permissions&amp;gt;&lt;br /&gt;     &amp;lt;recurseContainers&amp;gt;0&amp;lt;/recurseContainers&amp;gt;&lt;br /&gt;     &amp;lt;recurseObjects&amp;gt;0&amp;lt;/recurseObjects&amp;gt;&lt;br /&gt;     &amp;lt;recurseOneLevelOnly&amp;gt;0&amp;lt;/recurseOneLevelOnly&amp;gt;&lt;br /&gt;     &amp;lt;self&amp;gt;1&amp;lt;/self&amp;gt;&lt;br /&gt;     &amp;lt;users&amp;gt;Everyone&amp;lt;/users&amp;gt;&lt;br /&gt;&amp;lt;/setWindowsACL&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;lt;self&amp;gt; : determines if the objects specified in the &amp;lt;files&amp;gt; tag will be modified or just their children, if the recursion tags are enabled.&lt;/li&gt;&lt;li&gt;&amp;lt;recurseOneLevelOnly&amp;gt; : Only applies inheritance to the first level of hierarchy if one of the below are enabled.&lt;/li&gt;&lt;li&gt;&amp;lt;recurseObjects&amp;gt; : Applies inheritance to objects (files).&lt;/li&gt;&lt;li&gt;&amp;lt;recurseContainers&amp;gt; : Applies inheritance to containers (folders).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example 3 – Using InstallBuilder GUI:&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;Of course this action is also available from the InstallBuilder GUI. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SxfI7UnG8lI/AAAAAAAAAPs/wPCRRKAYIyI/s1600-h/handling-access-control-list-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SxfI7UnG8lI/AAAAAAAAAPs/wPCRRKAYIyI/s400/handling-access-control-list-1.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SxfJRZVRU3I/AAAAAAAAAP0/GKL6cdhTmik/s1600-h/handling-access-control-list-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SxfJRZVRU3I/AAAAAAAAAP0/GKL6cdhTmik/s400/handling-access-control-list-2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-2846991749470051416?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/2846991749470051416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=2846991749470051416' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2846991749470051416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2846991749470051416'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/01/handling-access-control-list-on-windows.html' title='Handling Access Control List on Windows With BitRock InstallBuilder'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_NAHlhQTNQmw/SxfI7UnG8lI/AAAAAAAAAPs/wPCRRKAYIyI/s72-c/handling-access-control-list-1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3535181766362919386</id><published>2010-01-04T09:16:00.000-08:00</published><updated>2010-01-04T09:16:34.381-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='multiplatform installer'/><title type='text'>How to use Custom Build Targets</title><content type='html'>One of the most useful features of InstallBuilder is the ability to automate the build process. Installers can be built from a command line prompt such as:&lt;br /&gt;&lt;br /&gt;installbuilder-6.2.6/bin/builder build /path/to/project.xml linux&lt;br /&gt;&lt;br /&gt;The above describes the basic command line build process. You can also make changes to the project prior to the build process to adapt it to your needs using the --setvars flag.&lt;br /&gt;&lt;br /&gt;In most cases, this is used to modify project properties such as the &amp;lt;version&amp;gt;, the &amp;lt;fullName&amp;gt; or the &amp;lt;windowsExecutableIcon&amp;gt;:&lt;br /&gt;&lt;pre&gt;builder build project.xml --setvars version=1.2.3  project.fullName="New Installer Name"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;However, there is much more you can achieve using this functionality.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt; Lets assume we have a complete project, including documentation, some optional applications and a lightweight installer that bundles the main project files. The obvious solution would be to have two projects: one that bundles all of the components and the other with the primary project files. This can be achieved by organizing the files and logic into components and using the &amp;lt;include&amp;gt; directive, which allows us to separate them into multiple .xml files.&lt;br /&gt;&lt;br /&gt;This approach forces us to repeat some logic, such as the project properties. A more efficient approach would be to have a single XML project file and decide whether or not to pack the components based on the build target. For example, we could use:&lt;br /&gt;&lt;br /&gt;builder build project.xml --setvars buildFlavor=full&lt;br /&gt;&lt;br /&gt;To build the complete installer and&lt;br /&gt;&lt;br /&gt;builder build project.xml --setvars buildFlavor=minimal&lt;br /&gt;&lt;br /&gt;to only pack the main application. &lt;br /&gt;&lt;br /&gt;For this approach, you simply have to create a hidden parameter to make the buildFlavor type persistent at runtime and use the &amp;lt;shouldPackRuleList&amp;gt;:&lt;br /&gt;&lt;pre&gt;&amp;lt;project&amp;gt;&lt;br /&gt;   &amp;lt;shortName&amp;gt;myProject&amp;lt;/shortName&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;1.4&amp;lt;/version&amp;gt;&lt;br /&gt;   ...&lt;br /&gt;   &amp;lt;parameterList&amp;gt;&lt;br /&gt;      ...&lt;br /&gt;      &amp;lt;stringParameter name="buildFlavor" value="minimal" ask="0"/&amp;gt; &lt;br /&gt;      ...&lt;br /&gt;   &amp;lt;/parameterList&amp;gt;&lt;br /&gt;   &amp;lt;componentList&amp;gt;&lt;br /&gt;       &amp;lt;component&amp;gt;&lt;br /&gt;          &amp;lt;name&amp;gt;main&amp;lt;/name&amp;gt;&lt;br /&gt;          ...&lt;br /&gt;       &amp;lt;/component&amp;gt;&lt;br /&gt;       &amp;lt;component&amp;gt;&lt;br /&gt;          &amp;lt;name&amp;gt;optionalComponent&amp;lt;/name&amp;gt;&lt;br /&gt;          ...&lt;br /&gt;          &amp;lt;shouldPackRuleList&amp;gt;&lt;br /&gt;              &amp;lt;compareText text="${buildFlavor}" logic="equals" value="full"/&amp;gt;&lt;br /&gt;          &amp;lt;/shouldPackRuleList&amp;gt;&lt;br /&gt;       &amp;lt;/component&amp;gt;&lt;br /&gt;   &amp;lt;/componentList&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You could also combine it with the &amp;lt;preBuildActionList&amp;gt; and customize the particular aspects of the project as in:&lt;br /&gt;&lt;pre&gt;&amp;lt;preBuildActionList&amp;gt;&lt;br /&gt;   &amp;lt;actionGroup&amp;gt;&lt;br /&gt;      &amp;lt;actionList&amp;gt;&lt;br /&gt;          &amp;lt;setInstallerVariable name="project.fullName" value="Basic Product Installation"/&amp;gt;&lt;br /&gt;          &amp;lt;setInstallerVariable name="project.windowsExecutableIcon" value="/path/to/minimal.ico"/&amp;gt;&lt;br /&gt;          &amp;lt;setInstallerVariable name="project.installerFilename" value="minimal-installation.exe"/&amp;gt;&lt;br /&gt;      &amp;lt;/actionList&amp;gt;&lt;br /&gt;      &amp;lt;ruleList&amp;gt;&lt;br /&gt;         &amp;lt;compareText text="${buildFlavor}" logic="equals" value="minimal"/&amp;gt;&lt;br /&gt;      &amp;lt;/ruleList&amp;gt;&lt;br /&gt;   &amp;lt;/actionGroup&amp;gt;&lt;br /&gt;   &amp;lt;actionGroup&amp;gt;&lt;br /&gt;      &amp;lt;actionList&amp;gt;&lt;br /&gt;          &amp;lt;setInstallerVariable name="project.fullName" value="Full Product Installation"/&amp;gt;&lt;br /&gt;          &amp;lt;setInstallerVariable name="project.windowsExecutableIcon" value="/path/to/full.ico"/&amp;gt;&lt;br /&gt;          &amp;lt;setInstallerVariable name="project.installerFilename" value="full-installation.exe"/&amp;gt;&lt;br /&gt;      &amp;lt;/actionList&amp;gt;&lt;br /&gt;      &amp;lt;ruleList&amp;gt;&lt;br /&gt;         &amp;lt;compareText text="${buildFlavor}" logic="equals" value="full"/&amp;gt;&lt;br /&gt;      &amp;lt;/ruleList&amp;gt;&lt;br /&gt;   &amp;lt;/actionGroup&amp;gt;&lt;br /&gt;&amp;lt;/preBuildActionList&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;All the above functionality would work if we defined buildFlavor as a regular variable instead of creating a hidden parameter, but we would not be able to access it at runtime in that case. We can use that functionality, for example, to show a link to a download page at the end of installation if the user wants to download optional applications:&lt;br /&gt;&lt;pre&gt;&amp;lt;finalPageActionList&amp;gt;&lt;br /&gt;    &amp;lt;launchBrowser url="www.downloads.com/optional" progressText="Would you like to visit our website to download additional modules?"&amp;gt;&lt;br /&gt;       &amp;lt;ruleList&amp;gt;&lt;br /&gt;           &amp;lt;compareText text="${buildFlavor}" logic="equals" value="minimal"/&amp;gt;&lt;br /&gt;       &amp;lt;/ruleList&amp;gt;&lt;br /&gt;    &amp;lt;/launchBrowser&amp;gt;&lt;br /&gt;&amp;lt;/finalPageActionList&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Additional information can be found in the links below:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Building through command line:&lt;br /&gt;&lt;a href="http://support.bitrock.com/article/can-bitrock-installbuilder-generate-installers-from-the-command-line"&gt;http://support.bitrock.com/article/can-bitrock-installbuilder-generate-installers-from-the-command-line&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.bitrock.com/article/when-i-try-to-build-the-installer-on-windows-from-the-command-line-it-returns-to-the-prompt-immediately-but-no-error-message-is-shown"&gt;http://support.bitrock.com/article/when-i-try-to-build-the-installer-on-windows-from-the-command-line-it-returns-to-the-prompt-immediately-but-no-error-message-is-shown&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Setvars Flag:&lt;br /&gt;&lt;a href="http://support.bitrock.com/article/how-to-set-variables-at-build-time"&gt;http://support.bitrock.com/article/how-to-set-variables-at-build-time&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3535181766362919386?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3535181766362919386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3535181766362919386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3535181766362919386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3535181766362919386'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2010/01/how-to-use-custom-build-targets.html' title='How to use Custom Build Targets'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-9092104808806544069</id><published>2009-11-10T06:06:00.000-08:00</published><updated>2009-11-11T01:46:37.141-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='automation'/><category scheme='http://www.blogger.com/atom/ns#' term='ant'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>How to Integrate InstallBuilder with Apache Ant and Apache Maven</title><content type='html'>Apache Ant and Apache Maven are two of the most popular tools for building projects. This article explains how to integrate InstallBuilder with these two tools.&lt;br /&gt;&lt;br /&gt;If you use &lt;b&gt;Apache Ant&lt;/b&gt; for building your projects, you can include the following section for building your binary installer.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;build.xml&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;project name=&amp;quot;MyProject&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;exec executable=&amp;quot;/home/bitrock/installbuilder-6.2.4/bin/builder&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;arg line=&amp;quot;build /home/bitrock/installbuilder-6.2.4/projects/demo.xml linux&amp;quot;&amp;gt;&amp;lt;/arg&amp;gt;&lt;br /&gt;    &amp;lt;/exec&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Where the executable tag sets the path of the builder program and the arg tag defines the build process, the location of your InstallBuilder project file and the target platform.&lt;br /&gt;&lt;br /&gt;During the build process, you will see something similar to:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Buildfile: build.xml&lt;br /&gt;     [exec]  Building Demo Project linux&lt;br /&gt;     [exec]  0% ______________ 50% ______________ 100%&lt;br /&gt;     [exec]  #########################################&lt;br /&gt;     [exec] &lt;br /&gt;&lt;br /&gt;BUILD SUCCESSFULTotal time: 1 second&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If you use &lt;b&gt;Apache Maven&lt;/b&gt; for building your projects, you can find below an example of a pom.xml file to build a demo project.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;pom.xml&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;project&amp;gt;&lt;br /&gt;  &amp;lt;modelVersion&amp;gt;4.0.0&amp;lt;/modelVersion&amp;gt;&lt;br /&gt;  &amp;lt;groupId&amp;gt;com.mycompany.app&amp;lt;/groupId&amp;gt;&lt;br /&gt;  &amp;lt;artifactId&amp;gt;my-app&amp;lt;/artifactId&amp;gt;&lt;br /&gt;  &amp;lt;version&amp;gt;1&amp;lt;/version&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;build&amp;gt;&lt;br /&gt;    &amp;lt;plugins&amp;gt;&lt;br /&gt;      &amp;lt;plugin&amp;gt;&lt;br /&gt;        &amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;&lt;br /&gt;        &amp;lt;artifactId&amp;gt;exec-maven-plugin&amp;lt;/artifactId&amp;gt;&lt;br /&gt;        &amp;lt;version&amp;gt;1.1&amp;lt;/version&amp;gt;&lt;br /&gt;        &amp;lt;executions&amp;gt;&lt;br /&gt;          &amp;lt;execution&amp;gt;&lt;br /&gt;            &amp;lt;goals&amp;gt;&lt;br /&gt;              &amp;lt;goal&amp;gt;exec&amp;lt;/goal&amp;gt;&lt;br /&gt;            &amp;lt;/goals&amp;gt;&lt;br /&gt;          &amp;lt;/execution&amp;gt;&lt;br /&gt;        &amp;lt;/executions&amp;gt;&lt;br /&gt;        &amp;lt;configuration&amp;gt;&lt;br /&gt;          &amp;lt;executable&amp;gt;/home/bitrock/installbuilder-6.2.4/bin/builder&amp;lt;/executable&amp;gt;&lt;br /&gt;          &amp;lt;arguments&amp;gt;&lt;br /&gt;            &amp;lt;argument&amp;gt;build&amp;lt;/argument&amp;gt;&lt;br /&gt;            &amp;lt;argument&amp;gt;/home/bitrock/installbuilder-6.2.4/projects/demo.xml&amp;lt;/argument&amp;gt;&lt;br /&gt;            &amp;lt;argument&amp;gt;linux&amp;lt;/argument&amp;gt;&lt;br /&gt;          &amp;lt;/arguments&amp;gt;&lt;br /&gt;        &amp;lt;/configuration&amp;gt;&lt;br /&gt;      &amp;lt;/plugin&amp;gt;&lt;br /&gt;    &amp;lt;/plugins&amp;gt;&lt;br /&gt;  &amp;lt;/build&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The executable tag contains the path to the builder program and the argument tags describe the build process, the location of your InstallBuilder project file and the platform target.&lt;br /&gt;&lt;br /&gt;You can launch the build using the following command:&lt;br /&gt;&lt;br /&gt;$ mvn exec:exec&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[INFO] Scanning for projects...&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] Building Unnamed - com.mycompany.app:my-app:jar:1&lt;br /&gt;[INFO]    task-segment: [exec:exec]&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] [exec:exec {execution: default-cli}]&lt;br /&gt;[INFO]  Building Demo Project linux&lt;br /&gt;[INFO]  0% ______________ 50% ______________ 100%&lt;br /&gt;[INFO]  #########################################&lt;br /&gt;[INFO] &lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] BUILD SUCCESSFUL&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] Total time: 2 seconds&lt;br /&gt;[INFO] Finished at: Thu Nov 05 11:47:09 CET 2009&lt;br /&gt;[INFO] Final Memory: 3M/64M&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-9092104808806544069?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/9092104808806544069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=9092104808806544069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/9092104808806544069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/9092104808806544069'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/11/how-to-integrate-installbuilder-with.html' title='How to Integrate InstallBuilder with Apache Ant and Apache Maven'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4786680221869466909</id><published>2009-10-20T00:44:00.000-07:00</published><updated>2009-11-04T02:50:27.354-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='cross platform'/><title type='text'>InstallBuilder Action Lists</title><content type='html'>Creating an installer is not as straightforward as most people think. This is especially the case for more sophisticated configurations, such as when you need to execute different platform-specific actions at different stages of the installation process. You may need to check a registry value, create a configuration file, execute a particular command, make substitutions in text files or even connect to an external server via a HTTP POST request. BitRock InstallBuilder includes a number of useful built-in actions to facilitate adding complex functionality to your installer. Actions can be accessed by editing the XML project file directly or in the 'Advanced' section of the InstallBuilder GUI.&lt;br /&gt;&lt;br /&gt;InstallBuilder actions are organized in what are called action lists, which are executed at specific points of the installation process. It is important to understand how and when each action must be performed, what differences exist between action lists inside components and within the primary installer, how the installer will behave when you run it in different installation modes (GUI, text, or unattended) and what happens when you generate rpm or deb packages.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/St1vqke1oBI/AAAAAAAAAPc/FSkaY2ndHYw/s1600-h/installbuilder-action-lists.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 221px; height: 400px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/St1vqke1oBI/AAAAAAAAAPc/FSkaY2ndHYw/s400/installbuilder-action-lists.png" alt="" id="BLOGGER_PHOTO_ID_5394590705797931026" border="0" /&gt;&lt;/a&gt; You can place your action lists in the main installer project or in one of its components. Action lists include your actions of choice and are executed at a specific point of the installation process as outlined below.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;BitRock InstallBuilder Action Lists (in order of execution)&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;BUILDING THE INSTALLER&lt;/h5&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;preBuildActionList&lt;/b&gt;&lt;br /&gt;Executes before generating the installer file. These actions usually include setting environment variables or performing some kind of processing on the files that will go into the installer before they are packed into it. For multi-platform CDROM installers, the preBuildActionList is executed once at the beginning of the CDROM build, and then again for every one of the specific platform installers.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;postBuildActionList&lt;/b&gt;&lt;br /&gt;Executes after generating the installer file. These actions are usually useful to reverse any changes made to the files during the preBuildActionList or to perform additional actions on the generated installer, such as signing it by invoking an external tool. For multi-platform CDROM installers, the postBuildActionList is executed once for every one of the specific platform installers and then it is executed one final time for the whole CDROM build.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h5&gt;INSTALLATION&lt;/h5&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;preShowHelpActionList&lt;/b&gt;&lt;br /&gt;Executes before help information is displayed.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;initializationActionList&lt;/b&gt;&lt;br /&gt;Executes when the installer has started, just before the parsing of the command line options.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h5&gt;LANGUAGE SELECTION&lt;/h5&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;preInstallationActionlist&lt;/b&gt;&lt;br /&gt;Executes before the first page of the installer is displayed, right after the parsing of the command line options takes place. It is commonly used for setting user-defined installer variables that will be used later on or for detecting a Java (tm) Runtime Environment.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h5&gt;COMPONENTS SELECTION&lt;/h5&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;componentSelectionValidationActionList&lt;/b&gt;&lt;br /&gt;Executes after the component page is displayed to check that the selected components are a valid combination.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h5&gt;PARAMETER PAGES&lt;/h5&gt;&lt;br /&gt;&lt;br /&gt;For each parameterPage, you can specify 3 different action lists: validationActionList,  preShowPageActionList and postShowPageActionList. Note that those actions are not executed if the installer is executed in unattended mode.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;validationActionList&lt;/b&gt;&lt;br /&gt;Executes once the user has specified a value in the user interface page associated with the parameter and has pressed the 'Next' button (or 'Enter' in a text-based interface). The actions can be used to check that the value is valid (for example, that it specifies a path to a valid Perl interpreter). If any of the actions result in an error, an error message will be displayed to the user and the user will be prompted to enter a valid value.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;preShowPageActionList&lt;/b&gt;&lt;br /&gt;Executes before the corresponding parameter page is displayed. This can be useful for changing the value of the parameter before it is displayed.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;postShowPageActionList&lt;/b&gt;&lt;br /&gt;Executes after the corresponding parameter page has been displayed. This can be useful for performing actions or setting environment variables based on the value of the parameter.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h5&gt;COPYING FILES&lt;/h5&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;readyToInstallActionList&lt;/b&gt;&lt;br /&gt;Executes right before the file copying step starts. It is commonly used to execute actions that depend on user input.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Folder actionList&lt;/b&gt;&lt;br /&gt;Executes just after files defined in the particular folder are installed, the next folder files are copied and its actionList executed, etc.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;postInstallationActionList&lt;/b&gt;&lt;br /&gt;Executes after the installation process has taken place but before the uninstaller is created and the final page is displayed.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;postUninstallerCreationActionList&lt;/b&gt;&lt;br /&gt;Executes after the uninstaller has been created but before the final page has been displayed.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;finalPageActionlist&lt;/b&gt;&lt;br /&gt;Executes after the installation has completed and the final page has been displayed to the user. These actions usually include launching the program that has just been installed. For each one of the actions contained in this list, a checkbox will be displayed (or a question in text mode). If the checkbox is selected, then the action will be executed when the 'Finish' button is pressed. The text displayed can be specified in the &lt;progresstext&gt; property.&lt;/progresstext&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h5&gt;UNINSTALLATION&lt;/h5&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;preUinstallationActionList&lt;/b&gt;&lt;br /&gt;Executes before the uninstallation process takes place, such as unsetting user-defined installer variables or deleting files created after installation occured.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;postUninstallationActionList&lt;/b&gt;&lt;br /&gt;Executes after the uninstallation process takes place.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h5&gt;SPECIAL ACTION LISTS&lt;/h5&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;installationAbortedActionList&lt;/b&gt;&lt;br /&gt;Executes when the installation process is aborted.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Order of Execution of Action Lists&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/St2Nt7VYjfI/AAAAAAAAAPk/nAVGjN-mJRE/s1600-h/action-lists-execution-order-installbuilder.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 250px; height: 269px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/St2Nt7VYjfI/AAAAAAAAAPk/nAVGjN-mJRE/s400/action-lists-execution-order-installbuilder.png" alt="" id="BLOGGER_PHOTO_ID_5394623748820733426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Each action list may be included in the main project or inside the components. Lets take an initializationActionList as an example. We have one main initializationActionList and 4 others in the components A, B, C and D. The components are declared following the order A, B, C, D (A is the first entry and D is the last one). In this case, the main initializationActionList is executed first and then each component's action lists are executed (A, B, C, D - the order of component declaration is important).&lt;br /&gt;&lt;br /&gt;We can divide all action lists into two groups based on what is executed earlier: main project or components action lists:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the main project action lists then components onespreBuildActionList, initializationActionList, preIstallationActionList, readyToInstallActionList, preUninstallationActionList&lt;/li&gt;&lt;li&gt;components action lists then the main project onespostBuildActionList, postInstallationActionList, postUninstallationActionList&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The installer executes action lists by group, which means that first all initializationActionList actions take place and then all preInstallationActionList actions are executed.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Unattended mode,  RPM and DEB packages&lt;/h4&gt;&lt;br /&gt;&lt;br /&gt;These are special cases. There is no interaction with the user and the following action lists are not executed:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;componentSelectionValidationActionList&lt;/li&gt;&lt;br /&gt;&lt;li&gt;finalPageActionList&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Any parameter's validationActionList&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Any parameter's preShowPageActionList&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Any parameter's postShowPageActionList&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The installationAbortedActionList will only be executed if the error was generated by any of the actions performed directly by the installer. If the error is generated during the file installation step, which is performed by the RPM / DEB package manager, the BitRock installer application will not be notified and therefore the installationAbortedActionList will not be executed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4786680221869466909?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/4786680221869466909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=4786680221869466909' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4786680221869466909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4786680221869466909'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/10/installbuilder-action-lists.html' title='InstallBuilder Action Lists'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_NAHlhQTNQmw/St1vqke1oBI/AAAAAAAAAPc/FSkaY2ndHYw/s72-c/installbuilder-action-lists.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4451071427415762770</id><published>2009-10-13T01:08:00.000-07:00</published><updated>2009-10-20T02:07:05.097-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unattended'/><category scheme='http://www.blogger.com/atom/ns#' term='automated'/><category scheme='http://www.blogger.com/atom/ns#' term='command line'/><category scheme='http://www.blogger.com/atom/ns#' term='silent'/><category scheme='http://www.blogger.com/atom/ns#' term='automatic'/><category scheme='http://www.blogger.com/atom/ns#' term='multiplatform installer'/><title type='text'>Unattended Mode</title><content type='html'>As you may know, installers generated with InstallBuilder provide different execution modes using the command line option "--mode". The mode "unattended" is particularly useful when we need to incorporate installations into an automated process. With this mode, the installer will not prompt the user for any information and will instead take the default settings configured for each of the parameters. That way, it is possible to incorporate the installer execution into scripts since no input is required from the user during the installation.&lt;br /&gt;&lt;br /&gt;Note that you are not forced to use only the default values when running the installer in this mode. You can also define the values through command line switches which are generated for each parameter definition inside the InstallBuilder project. If we want to use specific values, we should run the installation as follows:&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;"$ installer_binary --mode unattended --param1 value1 --param2 value2 ...."&lt;br /&gt;&lt;br /&gt;As the number of parameters grows, it may be best to define the options values inside a text file. This is possible using the command line switch "--optionfile &amp;lt;filename&amp;gt;". This will instruct the installer to take the values from the specified file. Here is an example:&lt;br /&gt;&lt;br /&gt;"$ installer_binary --mode unattended  --optionfile optionfile"&lt;br /&gt;&lt;br /&gt;Where optionfile should contain a list of pairs &amp;lt;key&amp;gt;=&amp;lt;value&amp;gt;. For instance:&lt;br /&gt;&lt;br /&gt;param1=value1&lt;br /&gt;param2=value2&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Configuring Unattended Mode Parameters in an Installer&lt;/h4&gt;&lt;br /&gt;Let's take a look at how you can configure the installer so it behaves as expected in unattended mode and provides the appropriate feedback to the user through "--help".&lt;br /&gt;&lt;br /&gt;In order to configure the default values for each parameter, you need to edit the field "default" which appears in the "Main" tab inside parameter window or adding the property "default" to its definition inside the XML file:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/StRJXqFZWfI/AAAAAAAAAO8/bUExSZnxHwI/s1600-h/unattended-mode-install-installbuilder-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px; height: 345px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/StRJXqFZWfI/AAAAAAAAAO8/bUExSZnxHwI/s1600/unattended-mode-install-installbuilder-1.png" alt="" id="BLOGGER_PHOTO_ID_5392015324652067314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;stringParameter&amp;gt;&lt;br /&gt; &amp;lt;name&amp;gt;port&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;lt;default&amp;gt;8080&amp;lt;/default&amp;gt;&lt;br /&gt;&amp;lt;/stringParameter&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As mentioned earlier, each parameter will have its own command line option. When the installer is run with the --help option, the whole list of available command line switches is displayed. Each parameter is shown with a message similar to:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;--option_name  option_description&lt;br /&gt;   default: option_default_value&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The given information can be modified using the properties inside the "Command Line" tab in the parameter window or adding the properties "cliOptionName", "cliOptionText" and "cliOptionShow" to its definition in the XML file:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; option_name will be set to the value in "Command Line Name" (cliOptionName) or to the property name if it is not defined.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; option_description will be set to the value in "Command Line Text" (cliOptionText) or to the property description if it is not defined.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; It is also possible to hide parameters from the --help menu by setting the option "Show in Command Line" (cliOptionShow) to false.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/StRJ8IVk1WI/AAAAAAAAAPE/rTl2zIRn7cU/s1600-h/unattended-mode-install-installbuilder-2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px; height: 345px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/StRJ8IVk1WI/AAAAAAAAAPE/rTl2zIRn7cU/s1600/unattended-mode-install-installbuilder-2.png" alt="" id="BLOGGER_PHOTO_ID_5392015951248282978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;stringParameter&amp;gt;&lt;br /&gt; &amp;lt;name&amp;gt;port&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;lt;default&amp;gt;8080&amp;lt;/default&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;...&amp;lt;/description&amp;gt;&lt;br /&gt; &amp;lt;cliOptionName&amp;gt;webport&amp;lt;/cliOptionName&amp;gt;&lt;br /&gt; &amp;lt;cliOptionText&amp;gt;Web server port&amp;lt;/cliOptionText&amp;gt;&lt;br /&gt; &amp;lt;cliOptionShow&amp;gt;1&amp;lt;/cliOptionShow&amp;gt;&lt;br /&gt;&amp;lt;/stringParameter&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Using this settings, help will show the following entry:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;--webport   Web server port&lt;br /&gt;    default: 8080&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Additional Switches&lt;/h4&gt;&lt;br /&gt;As previously mentioned, each parameter will have its own command line option. However, there are additional command line switches that may be useful while performing installations in unattended mode.&lt;br /&gt;&lt;br /&gt;You can enable and disable components from the command line using the following options:&lt;br /&gt;&lt;br /&gt;--enable-components name1,name2,name3&lt;br /&gt;--disable-components name1,name2,name3&lt;br /&gt;&lt;br /&gt;where name1, name2,... are the names inside the &amp;lt;name&amp;gt; tag of each component. Component names are case sensitive.&lt;br /&gt;&lt;br /&gt;You can also modify the user interface shown during the installation process adding the option "--unattendedmodeui" It can take the values:&lt;br /&gt;&lt;br /&gt;"none" : no progress bar will be shown when performing an unattended installation (default).&lt;br /&gt;&lt;br /&gt;"minimal" : this value will show a graphical progress bar during an unattended installation.&lt;br /&gt;&lt;br /&gt;"minimalWithDialogs" : In this mode, pop-ups will also be displayed in addition to the progress bar of the minimal mode.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Behaviour Modifications in Unattended Mode&lt;/h4&gt;&lt;br /&gt;While using unattended mode, the installation process is altered. It is important to note that all of the actions inside action lists that require user interaction are &lt;b&gt;not&lt;/b&gt; executed, including those inside:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;componentselectionvalidationactionlist&amp;gt;&lt;br /&gt;&amp;lt;finalpageactionlist&amp;gt;&lt;br /&gt;Any parameter's &amp;lt;validationactionlist&amp;gt;&lt;br /&gt;Any parameter's &amp;lt;preshowpageactionlist&amp;gt;&lt;br /&gt;Any parameter's &amp;lt;postshowpageactionlist&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Also, be sure to take into account that during "initializationActionList", the parameters haven't yet been initialized with the values provided through the command line switches. They will contain the default values.&lt;br /&gt;&lt;br /&gt;You may need to modify your installer behavior according to the mode used. In order to do this, you can use the "${installer_ui}" variable, which contains the mode that has been used to run the installer (gui, text, unattended).&lt;br /&gt;&lt;br /&gt;You can define specific actions for unattended mode or prevent any actions from running in that mode by adding one of the following rules inside the specific ruleList.&lt;br /&gt;&lt;br /&gt;&amp;lt;compareText text="${installer_ui}" logic="does_not_equal" value="unattended"/&amp;gt;&lt;br /&gt;&amp;lt;compareText text="${installer_ui}" logic="equals" value="unattended"/&amp;gt;&lt;br /&gt;&lt;br /&gt;For example, you can de-select a component at initialization if the installer detects that it is in unattended mode as follows:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;initializationActionList&amp;gt;&lt;br /&gt;&amp;lt;componentSelection deselect="componentname"&amp;gt;&lt;br /&gt; &amp;lt;ruleList&amp;gt;&lt;br /&gt; &amp;lt;compareText text="${installer_ui}" logic="equals" value="unattended"/&amp;gt;&lt;br /&gt; &amp;lt;/ruleList&amp;gt;&lt;br /&gt;&amp;lt;/componentSelection&amp;gt;&lt;br /&gt;&amp;lt;/initialiationActionList&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Unattended Uninstallation&lt;/h4&gt;&lt;br /&gt;Unattended mode is also present in the uninstaller and it behaves in a similar way. This functionality may be useful for performing an uninstallation operation in the background without requiring any user feedback during an upgrade. Assuming that the path to the uninstaller is known, we could add the following action before starting to copy the new files:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;runProgram&amp;gt;&lt;br /&gt; &amp;lt;program&amp;gt;${uninstaller_path}&amp;lt;/program&amp;gt;&lt;br /&gt; &amp;lt;programArguments&amp;gt;--mode unattended&amp;lt;/programArguments&amp;gt;&lt;br /&gt; &amp;lt;ruleList&amp;gt;&lt;br /&gt;     &amp;lt;fileTest&amp;gt;&lt;br /&gt;         &amp;lt;path&amp;gt;${uninstaller_path}&amp;lt;/path&amp;gt;&lt;br /&gt;         &amp;lt;condition&amp;gt;exists&amp;lt;/condition&amp;gt;&lt;br /&gt;     &amp;lt;/fileTest&amp;gt;&lt;br /&gt; &amp;lt;/ruleList&amp;gt;&lt;br /&gt;&amp;lt;/runProgram&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Of course, we may also need to backup the application data before running the uninstaller and recover it once the new version is in place.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Usage Examples&lt;/h4&gt;&lt;br /&gt;Unattended mode may be used to automate any process that requires performing several installations with different settings. A few examples are provided below.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Simple Installer Tests&lt;/h4&gt;&lt;br /&gt;After building an installer, we may want to check to make sure it will work correctly while being run with different configurations. Instead of doing this by hand each time you build a new version, you can write a script that will try to install the application and ensure that no errors are thrown during the process. This script may use different option files containing the specific settings to be tested.&lt;br /&gt;&lt;br /&gt;For example, under Unix systems we may implement a shell script as follows:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;OPTIONFILES_PATH="option_files/"&lt;br /&gt;for optionfile in `ls $OPTIONFILES_PATH | cat`&lt;br /&gt;do&lt;br /&gt;installer.bin --mode-unattended --optionfile $optionfile&lt;br /&gt;if [ $? -eq 0 ]&lt;br /&gt;then&lt;br /&gt; echo "Test $optionfile: OK"&lt;br /&gt;else&lt;br /&gt; echo "Test $optionfile: FAILED"&lt;br /&gt;fi&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Each of  the configurations that we want to test should be defined inside optionfile in option_files folder. We may want to run the script in different machines or operating systems to detect if any parameter combination causes the installer to fail. Additional checks may be also included once each installation finishes.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Simple Automated Script&lt;/h4&gt;&lt;br /&gt;Let's imagine you have an application which could act as client or server. Each client installation has to be configured to connect to a specific server. If you want to perform a network installation with several client machines and one server you may proceed as follows:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; Define the necessary parameters inside the installer. For instance: nodetype, servernode, servernodeport.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;stringParameter name="nodetype"   default="client"/&amp;gt;&lt;br /&gt;&amp;lt;stringParameter name="servernode"   default=""/&amp;gt;&lt;br /&gt;&amp;lt;stringParameter name="servernodeport"   default=""/&amp;gt;&lt;br /&gt;&amp;lt;stringParameter name="port"   default="8080"/&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt; Write the different optionfile configurations needed:&lt;br /&gt;&lt;pre&gt;server_options.ini:&lt;br /&gt;nodetype=server&lt;br /&gt;port=8003&lt;br /&gt;client_options.ini:&lt;br /&gt;nodetype=client&lt;br /&gt;servernode=192.168.1.200&lt;br /&gt;serverport=8003&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt; Write a simple script which performs the installations in unattended mode with the proper option files. In Unix systems we may do something like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;CLIENT_OPTIONS=client_options.ini&lt;br /&gt;SERVER_OPTIONS=server_options.ini&lt;br /&gt;&lt;br /&gt;SERVER=192.168.1.200&lt;br /&gt;CLIENTS="192.168.1.201 192.168.1.202 192.168.1.203 192.168.1.204"&lt;br /&gt;INSTALLER=node-installer.bin&lt;br /&gt;&lt;br /&gt;scp $INSTALLER $SERVER:/tmp&lt;br /&gt;scp $SERVER_OPTIONS $SERVER:/tmp&lt;br /&gt;ssh $SERVER chmod +x /tmp/$INSTALLER&lt;br /&gt;ssh $SERVER /tmp/$INSTALLER --mode unattended --optionfile /tmp/$SERVER_OPTIONS&lt;br /&gt;&lt;br /&gt;for c in $CLIENTS&lt;br /&gt;do&lt;br /&gt; scp $INSTALLER $c:/tmp&lt;br /&gt; scp $CLIENT_OPTIONS $c:/tmp&lt;br /&gt; ssh $c chmod +x /tmp/$INSTALLER&lt;br /&gt; ssh $c /tmp/$INSTALLER --mode unattended --optionfile /tmp/$CLIENT_OPTIONS&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; After running the script, all the machines will be configured with the appropriate configuration and without requiring any user interaction in the process.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;We are assuming that the proper ssh keys have been configured in the network and the user running the script has access to all of them and required permissions.&lt;br /&gt;&lt;br /&gt;As you can see, the script acts as a template network configuration that may be used on different environments.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;Modular Installer&lt;/h4&gt;&lt;br /&gt;Let's imagine that we have an application which contains several modules. We want to have the ability to install/uninstall them separately with a global installer / uninstaller. How could we achieve this ?&lt;br /&gt;&lt;br /&gt;One possible approach is to use unattended mode. We could generate one installer for each module and then construct a primary installer which will package them as binary files. When the primary installation is performed, each of the additional installers would be run in unattended mode in the background. The primary installation process should ask for the necessary parameters and send them to the background installations through the command line switches. For example, we can use a parameter "prefix" to tell each module where it should be installed.&lt;br /&gt;&lt;br /&gt;Each installation will generate its own uninstaller so they can be run separately. Once again, to achieve global uninstallation, we will need to run each uninstaller in unattended mode.&lt;br /&gt;&lt;br /&gt;Taking all of this into account, we can define a component inside primary installer for each module as follows:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;component&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;module1&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;canBeEdited&amp;gt;1&amp;lt;/canBeEdited&amp;gt;&lt;br /&gt;&amp;lt;selected&amp;gt;1&amp;lt;/selected&amp;gt;&lt;br /&gt;&amp;lt;show&amp;gt;1&amp;lt;/show&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;folderList&amp;gt;&lt;br /&gt; &amp;lt;folder&amp;gt;&lt;br /&gt;   &amp;lt;name&amp;gt;module1_installer&amp;lt;/name&amp;gt;&lt;br /&gt;   &amp;lt;destination&amp;gt;${installdir}&amp;lt;/destination&amp;gt;&lt;br /&gt;   &amp;lt;platforms&amp;gt;all&amp;lt;/platforms&amp;gt;&lt;br /&gt;   &amp;lt;distributionFileList&amp;gt;&lt;br /&gt;      &amp;lt;distributionFile origin="module1_installer.bin"/&amp;gt;&lt;br /&gt;   &amp;lt;/distributionFileList&amp;gt;&lt;br /&gt;   &amp;lt;actionList&amp;gt;&lt;br /&gt;     &amp;lt;runProgram&amp;gt;&lt;br /&gt;       &amp;lt;program&amp;gt;${installdir}/module1_installer.bin&amp;lt;/program&amp;gt;&lt;br /&gt;       &amp;lt;programArguments&amp;gt;--mode unattended --prefix=${installdir}/module1&amp;lt;/programArguments&amp;gt;&lt;br /&gt;     &amp;lt;/runProgram&amp;gt;&lt;br /&gt;   &amp;lt;/actionList&amp;gt;&lt;br /&gt;   &amp;lt;deleteFile path="${installdir}/module1_installer.bin"/&amp;gt;&lt;br /&gt; &amp;lt;/folder&amp;gt;&lt;br /&gt;&amp;lt;/folderList&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;postUninstallationActionList&amp;gt;&lt;br /&gt; &amp;lt;runProgram&amp;gt;&lt;br /&gt;   &amp;lt;program&amp;gt;${installdir}/module1/uninstaller&amp;lt;/program&amp;gt;&lt;br /&gt;   &amp;lt;programArguments&amp;gt;--mode unattended&amp;lt;/programArguments&amp;gt;&lt;br /&gt;   &amp;lt;ruleList&amp;gt;&lt;br /&gt;     &amp;lt;fileTest&amp;gt;&lt;br /&gt;       &amp;lt;path&amp;gt;${installdir}/module1/uninstaller&amp;lt;/path&amp;gt;&lt;br /&gt;       &amp;lt;condition&amp;gt;exists&amp;lt;/condition&amp;gt;&lt;br /&gt;     &amp;lt;/fileTest&amp;gt;&lt;br /&gt;   &amp;lt;/ruleList&amp;gt;&lt;br /&gt; &amp;lt;/runProgram&amp;gt;&lt;br /&gt;&amp;lt;/postUninstallationActionList&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/component&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As we can see, the component packs the module installer. During installation, it is copied to the installation directory and executed with the specific parameters. Then, the binary is removed.&lt;br /&gt;&lt;br /&gt;During uninstallation, we run the module uninstaller, checking to make sure that the binary is still there, as it might have already been uninstalled by the user.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4451071427415762770?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/4451071427415762770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=4451071427415762770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4451071427415762770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4451071427415762770'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/10/unattended-mode.html' title='Unattended Mode'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NAHlhQTNQmw/StRJXqFZWfI/AAAAAAAAAO8/bUExSZnxHwI/s72-c/unattended-mode-install-installbuilder-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3763700686607227134</id><published>2009-10-07T04:40:00.000-07:00</published><updated>2009-10-07T11:11:31.433-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='multiplatform'/><category scheme='http://www.blogger.com/atom/ns#' term='OS X installer'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><category scheme='http://www.blogger.com/atom/ns#' term='installshield'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='java installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installer'/><category scheme='http://www.blogger.com/atom/ns#' term='cross platform'/><title type='text'>InstallBuilder 6.2.4 Now Available</title><content type='html'>We just released version 6.2.4 of InstallBuilder our crossplatform installation and automatic update tool. The new release includes several enhancements, such as an improved builder tool on Mac OS X x86 and unattended install support for the autoupdate mechanism. The addition of unattended mode in the automatic update tool means that updates can be applied silently without user interaction. A complete list of improvements can be viewed in &lt;a href="http://installbuilder.bitrock.com/changelog.html"&gt;InstallBuilder's changelog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3763700686607227134?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3763700686607227134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3763700686607227134' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3763700686607227134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3763700686607227134'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/10/installbuilder-624-now-available.html' title='InstallBuilder 6.2.4 Now Available'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-6271972319142024284</id><published>2009-09-24T02:10:00.000-07:00</published><updated>2009-11-04T02:39:12.238-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deploy'/><category scheme='http://www.blogger.com/atom/ns#' term='package'/><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='bundle'/><category scheme='http://www.blogger.com/atom/ns#' term='java installer'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><category scheme='http://www.blogger.com/atom/ns#' term='installer'/><category scheme='http://www.blogger.com/atom/ns#' term='cross platform'/><title type='text'>Bundle Tomcat in Your BitRock InstallBuilder installer</title><content type='html'>If you develop a Java Web Application, you may want to create an installer and redistribute Tomcat together with your software. This allows your users to avoid the time-consuming process of installing and configuring Tomcat in order to use your software and guarantees that the optimal version is used. In this article, we explain how to bundle Tomcat into a BitRock installer. We also provide &lt;a href="http://installbuilder.bitrock.com/blog-resources/bundled-tomcat-project-files.zip"&gt;the code&lt;/a&gt; so you can start with that and create an installer that not only installs your software but also configures the Tomcat server according to your requirements.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;h2&gt;Product Details&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;We are going to create a demo installer for installing Tomcat. Of course, you can develop more advanced functionality than what we'll show today, but in this installer we'll focus on the basics. First, we are going to configure the Product Details of our installer. The License File will be shown at the beginning of the installation. The user must agree to it to be able to proceed with the installation process.&lt;br /&gt;At the end of the installation process, an option to view the Readme file will appear if we provide a Readme File field in the Product Details section.&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SrnkmlOndoI/AAAAAAAAAIc/IDoEcnj83tc/s1600/productinfo1.png" alt="" id="BLOGGER_PHOTO_ID_5384586180977718914" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Check installation requirements&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/Srnq8oXmHwI/AAAAAAAAAIk/IhDVRG55Rlk/s1600/preinstallation1.png" alt="" id="BLOGGER_PHOTO_ID_5384593156847574786" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_NAHlhQTNQmw/Srns2cDYoRI/AAAAAAAAAI0/W3vUPL0le2Y/s1600/autodetectjava.png" alt="" id="BLOGGER_PHOTO_ID_5384595249485619474" align="right" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;For this installer, we want to require the user to have a valid version of Java installed in the system to be able to continue the installation. For this, we will add an action to the pre-installation action list to look for Java in the system. The Autodetect Java action allows us to specify the minumum Java version required, vendor and if a JDK is required or if a JRE will also work.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Screen and validations (I)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/Srn6weAfC6I/AAAAAAAAAJE/aIqXwInvYZ0/s1600/parameters1.png" alt="" id="BLOGGER_PHOTO_ID_5384610540093901730" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Once we ensure that the user's machine has the required software installed, we will ask the user for some information for the installation. We use the Parameters section for this.&lt;br /&gt;&lt;br /&gt;We will prompt the user for:&lt;br /&gt;&lt;ul class="blank-list"&gt;&lt;li&gt; Installation directory&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Tomcat HTTP port&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Tomcat Shutdown port&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;We will also add validation rules to check that the information provided by the user is correct.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Screen and validations (II)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Installation Directory&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/Srn_54o6wLI/AAAAAAAAAJU/tyxcnZJmIAk/s1600/parameters2.png" alt="" id="BLOGGER_PHOTO_ID_5384616199419773106" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;This parameter is created by default as it is used in most installations.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroBHE-AvDI/AAAAAAAAAJc/UUiMBEAv_rQ/s1600-h/parameters3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroBHE-AvDI/AAAAAAAAAJc/UUiMBEAv_rQ/s400/parameters3.png" alt="" id="BLOGGER_PHOTO_ID_5384617525579398194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Screen and validations (III)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Tomcat Configuration&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Next, we will ask the user which ports we should use for Tomcat. We want to prompt the user for the HTTP port and the Shutdown Port. To minimize the number of screens in the installation process, we will group these ports in a Parameter Group, which will ask for all parameters on one screen.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroBHsl9bEI/AAAAAAAAAJk/PHDUtcYQcRI/s1600-h/parameters4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroBHsl9bEI/AAAAAAAAAJk/PHDUtcYQcRI/s400/parameters4.png" alt="" id="BLOGGER_PHOTO_ID_5384617536215936066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The internal name that we will use for this screen will be tomcat_configuration and the title will be 'Tomcat Configuration'.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroBH32qN3I/AAAAAAAAAJs/arLMxTY0fn0/s1600-h/parameters5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroBH32qN3I/AAAAAAAAAJs/arLMxTY0fn0/s400/parameters5.png" alt="" id="BLOGGER_PHOTO_ID_5384617539238770546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Screen and validations (IV)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;We will use two String parameters. Each one will represent one of the ports that we want to configure.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroBIk60UOI/AAAAAAAAAJ8/dycGKSPxMiw/s1600-h/parameters7.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroBIk60UOI/AAAAAAAAAJ8/dycGKSPxMiw/s400/parameters7.png" alt="" id="BLOGGER_PHOTO_ID_5384617551335805154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We'll focus on the tomcat_http_port. The steps for the tomcat_shutdown_port will be very similar. You will just need to change the default value and the description.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroCCetpNoI/AAAAAAAAAKE/-3EHwDbwigQ/s1600-h/parameters8.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroCCetpNoI/AAAAAAAAAKE/-3EHwDbwigQ/s400/parameters8.png" alt="" id="BLOGGER_PHOTO_ID_5384618546102351490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Screen and validations (V)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;In order to ensure the application starts correctly once it is installed, we will check that the selected ports are free and can be used for the Tomcat configuration.&lt;br /&gt;&lt;br /&gt;In the Validation Action for each port, we will add a Throw Error action. A Throw Error action usually exits the installer. However, the behavior is a bit different when it is used in a Validation Action context; after showing the error message, the installer will return to the screen allowing the user to re-enter the parameters.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroCC9r5ehI/AAAAAAAAAKU/6J7yUHmasBI/s1600-h/parameters10.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroCC9r5ehI/AAAAAAAAAKU/6J7yUHmasBI/s400/parameters10.png" alt="" id="BLOGGER_PHOTO_ID_5384618554416527890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the Throw Error action we will configure the text that we want to show in case the selected port is already taken.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroC2f8-s1I/AAAAAAAAAK0/rhWtVmAhCZ0/s1600-h/parameters14.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroC2f8-s1I/AAAAAAAAAK0/rhWtVmAhCZ0/s400/parameters14.png" alt="" id="BLOGGER_PHOTO_ID_5384619439788307282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Screen and validations (VI)&lt;/h2&gt;In order to throw the error only if the port is not free, we will add a Port Test rule in the Throw Error action. The error will only be thrown if the condition 'cannot bind to selected port' is true. The port selected by the user is stored (according to the rest of the document) in the variable tomcat_http_port. We want to check its value, so in Port we will enter ${tomcat_http_port}.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroCDtGNezI/AAAAAAAAAKk/2OF08leXszM/s1600-h/parameters12.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroCDtGNezI/AAAAAAAAAKk/2OF08leXszM/s400/parameters12.png" alt="" id="BLOGGER_PHOTO_ID_5384618567143357234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The same steps are valid for the tomcat_shutdown_port.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroC2Jc5HDI/AAAAAAAAAKs/kafppUXsPc0/s1600-h/parameters13.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroC2Jc5HDI/AAAAAAAAAKs/kafppUXsPc0/s400/parameters13.png" alt="" id="BLOGGER_PHOTO_ID_5384619433748143154" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Folders and Files (I)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;The next step in the installation process will be to copy the Tomcat files to the user's machine.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroC2m4zT6I/AAAAAAAAAK8/U-G1ux8LU2w/s1600-h/parameters15.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroC2m4zT6I/AAAAAAAAAK8/U-G1ux8LU2w/s400/parameters15.png" alt="" id="BLOGGER_PHOTO_ID_5384619441649831842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As Tomcat is a Java application, the same files will run on Windows and Linux. We'll create a new InstallBuilder folder which will be installed in the installation directory selected by the user, ${installdir}. That will be installed in 'All Platforms' and we'll add the Tomcat directory that we want to pack.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroC27U-l3I/AAAAAAAAALE/BN5CNp-wjz8/s1600-h/parameters16.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroC27U-l3I/AAAAAAAAALE/BN5CNp-wjz8/s400/parameters16.png" alt="" id="BLOGGER_PHOTO_ID_5384619447136720754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Folders and Files (II)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;To make it easier for the user to start and stop Tomcat, we have created some start/stop scripts.&lt;br /&gt;&lt;br /&gt;These scripts differ for each platform, so we'll add two new folders: one setting Linux as platform and the other setting Windows as platform.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroC3Uee2RI/AAAAAAAAALM/PkbMNSY7PI8/s1600-h/parameters17.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroC3Uee2RI/AAAAAAAAALM/PkbMNSY7PI8/s400/parameters17.png" alt="" id="BLOGGER_PHOTO_ID_5384619453887469842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can set the description and shortname you prefer for each folder. In both cases the destination of these scripts will be ${installdir}.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroDZrc_8vI/AAAAAAAAALc/6Yo9Q77lkWM/s1600-h/parameters19.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroDZrc_8vI/AAAAAAAAALc/6Yo9Q77lkWM/s400/parameters19.png" alt="" id="BLOGGER_PHOTO_ID_5384620044170818290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Folders and Files (III)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Now you will need to add the script files for each platform: .sh for the Linux folder and .bat for the Windows folder.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroDZPbgDMI/AAAAAAAAALU/EYKHEjuGZ4A/s1600-h/parameters18.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroDZPbgDMI/AAAAAAAAALU/EYKHEjuGZ4A/s400/parameters18.png" alt="" id="BLOGGER_PHOTO_ID_5384620036648340674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroDZ4gSttI/AAAAAAAAALk/BU2cyYYKkWE/s1600-h/parameters20.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroDZ4gSttI/AAAAAAAAALk/BU2cyYYKkWE/s400/parameters20.png" alt="" id="BLOGGER_PHOTO_ID_5384620047674291922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Windows Start Menu Entries (I)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;In the File section we can also configure the Start Menu entries for our application.&lt;br /&gt;&lt;br /&gt;We'll add entries for:&lt;br /&gt;&lt;br /&gt;&lt;ul class="blank-list"&gt;&lt;br /&gt;&lt;li&gt;Start Tomcat: This will be an 'application' type shortcut pointing to the start .bat script we are including.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Stop Tomcat: This will be an 'application' type shortcut pointing to the stop .bat script we are including.&lt;/li&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroGkUT940I/AAAAAAAAAOc/xKwXQUtElqg/s1600-h/parameters25.png"&gt;&lt;img style="margin: 0px auto 10px 10px; display: block; text-align: center; float: right; cursor: pointer; width: 262px; height: 84px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroGkUT940I/AAAAAAAAAOc/xKwXQUtElqg/s400/parameters25.png" alt="" id="BLOGGER_PHOTO_ID_5384623525472363330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt; Uninstall Tomcat:  This will be an 'application' type shortcut pointing to the uninstaller.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Launch Tomcat application:  This will be a 'url' type shortcut pointing to the url where the Tomcat application can be accessed.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroDafBk71I/AAAAAAAAALs/Oy3xXRHnQ58/s1600-h/parameters21.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroDafBk71I/AAAAAAAAALs/Oy3xXRHnQ58/s400/parameters21.png" alt="" id="BLOGGER_PHOTO_ID_5384620058014445394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Windows Start Menu Entries (II)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroDagWEq3I/AAAAAAAAAL0/gt0KSAwbEB8/s1600-h/parameters22.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroDagWEq3I/AAAAAAAAAL0/gt0KSAwbEB8/s400/parameters22.png" alt="" id="BLOGGER_PHOTO_ID_5384620058368846706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroD3nIcm2I/AAAAAAAAAL8/ylivj3eyBRs/s1600-h/parameters23.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 316px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroD3nIcm2I/AAAAAAAAAL8/ylivj3eyBRs/s400/parameters23.png" alt="" id="BLOGGER_PHOTO_ID_5384620558406949730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Windows Start Menu Entries (III)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroFVsbpEVI/AAAAAAAAAOU/gPgIn2KzkRU/s1600-h/parameters24.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroFVsbpEVI/AAAAAAAAAOU/gPgIn2KzkRU/s400/parameters24.png" alt="" id="BLOGGER_PHOTO_ID_5384622174737338706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroGkxw3UOI/AAAAAAAAAOk/rLSXIDYwlro/s1600-h/parameters26.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroGkxw3UOI/AAAAAAAAAOk/rLSXIDYwlro/s400/parameters26.png" alt="" id="BLOGGER_PHOTO_ID_5384623533378195682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Post Installation Actions (I)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroD3942rTI/AAAAAAAAAME/cBayKws8nMg/s1600-h/postinstallation1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroD3942rTI/AAAAAAAAAME/cBayKws8nMg/s400/postinstallation1.png" alt="" id="BLOGGER_PHOTO_ID_5384620564515564850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once the files are copied to the user system, we need to implement some additional configuration steps:&lt;br /&gt;&lt;ul class="blank-list"&gt;&lt;br /&gt;&lt;li&gt; Configure Tomcat to use the ports selected by the user.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Set the right executable permissions for the Tomcat binaries on Linux.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Get JAVA_HOME in order to configure the startup and stop scripts to use the correct Java version.&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Configure the start and stop scripts to use the right JAVA_HOME.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;On Linux, set the correct permissions for the start and stop scripts.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Post Installation Actions (II)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroD4G04n1I/AAAAAAAAAMM/ivQEC2_vK2A/s1600-h/postinstallation2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroD4G04n1I/AAAAAAAAAMM/ivQEC2_vK2A/s400/postinstallation2.png" alt="" id="BLOGGER_PHOTO_ID_5384620566914834258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The main Tomcat configuration file is server.xml. In this file we can configure the ports Tomcat is using.  We will use substitution actions for this.&lt;br /&gt;&lt;br /&gt;By default, server.xml contains hard-coded references to 8080 and 8005. These ports represent the http port and the shutdown port respectively.&lt;br /&gt;&lt;br /&gt;With the substitution actions, we will replace 8080 with the value of the port selected by the user for the HTTP request and 8005 with the value of the port selected by the user for the Shutdown port. In our example, these values are stored in ${tomcat_http_port} and ${tomcat_shutdown_port}.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Post Installation Actions (III)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroD42HVohI/AAAAAAAAAMc/XcJiLwRGnMM/s1600-h/postinstallation4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroD42HVohI/AAAAAAAAAMc/XcJiLwRGnMM/s400/postinstallation4.png" alt="" id="BLOGGER_PHOTO_ID_5384620579608699410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroEZHcZmOI/AAAAAAAAAMk/EJvymuccmco/s1600-h/postinstallation5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroEZHcZmOI/AAAAAAAAAMk/EJvymuccmco/s400/postinstallation5.png" alt="" id="BLOGGER_PHOTO_ID_5384621134016256226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Post Installation Actions (IV)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Now, we will add write permissions to the Tomcat executable files in the bin folder. Note that this action will only take effect in Unix platforms so we don't need to add a rule for not executing it on Windows.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroEZVxEkUI/AAAAAAAAAMs/iFTDkIdZWOE/s1600-h/postinstallation6.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroEZVxEkUI/AAAAAAAAAMs/iFTDkIdZWOE/s400/postinstallation6.png" alt="" id="BLOGGER_PHOTO_ID_5384621137861054786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroEZ4q2TuI/AAAAAAAAAM0/m0YVTwhIFOQ/s1600-h/postinstallation7.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroEZ4q2TuI/AAAAAAAAAM0/m0YVTwhIFOQ/s400/postinstallation7.png" alt="" id="BLOGGER_PHOTO_ID_5384621147230195426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Post Installation Actions (V)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;At the beginning of the installation, we detected Java. InstallBuilder will create an internal variable named java_executable. However, according to the Tomcat documentation, we need to set the JAVA_HOME variable.&lt;br /&gt;&lt;br /&gt;We'll use a regular expression for getting the right value of JAVA_HOME.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroEaAhRQzI/AAAAAAAAAM8/ZzbZ4n_VmPk/s1600-h/postinstallation8.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroEaAhRQzI/AAAAAAAAAM8/ZzbZ4n_VmPk/s400/postinstallation8.png" alt="" id="BLOGGER_PHOTO_ID_5384621149337502514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroEaTDdjoI/AAAAAAAAANE/cDmGBFzgGgw/s1600-h/postinstallation9.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroEaTDdjoI/AAAAAAAAANE/cDmGBFzgGgw/s400/postinstallation9.png" alt="" id="BLOGGER_PHOTO_ID_5384621154312752770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Post Installation Actions (VI)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Previously, when we created the start/stop scripts, we used patterns that will be replaced during the installation process with the correct value.  We will now replace those patterns with the path to CATALINA_HOME and the path to JAVA_HOME. This is also valid for both Linux and Windows.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroE1Uz5TyI/AAAAAAAAANU/8eDYeF05Ddc/s1600-h/postinstallation11.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/SroE1Uz5TyI/AAAAAAAAANU/8eDYeF05Ddc/s400/postinstallation11.png" alt="" id="BLOGGER_PHOTO_ID_5384621618640801570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroE1kt9rKI/AAAAAAAAANc/Jp30briiAwY/s1600-h/postinstallation12.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroE1kt9rKI/AAAAAAAAANc/Jp30briiAwY/s400/postinstallation12.png" alt="" id="BLOGGER_PHOTO_ID_5384621622910889122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Post Installation Actions (VII)&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Finally, we will give executable permissions to the start and stop scripts on Linux. With this, we finish with the post installation configuration steps.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroE2KxMoKI/AAAAAAAAANk/sgsAwRml_34/s1600-h/postinstallation13.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SroE2KxMoKI/AAAAAAAAANk/sgsAwRml_34/s400/postinstallation13.png" alt="" id="BLOGGER_PHOTO_ID_5384621633124999330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Final Page&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Once the installation is complete, we will offer the user the option of starting Tomcat. If the user opts to do so, on Linux we will execute the start.sh script, while on Windows we will execute the start.bat script. When the Tomcat server has been started, we will open the browser and show the user that Tomcat is working.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroFUom_huI/AAAAAAAAAN8/KyEzxTXVcQY/s1600-h/finalpage1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroFUom_huI/AAAAAAAAAN8/KyEzxTXVcQY/s400/finalpage1.png" alt="" id="BLOGGER_PHOTO_ID_5384622156531336930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroFUzEAeHI/AAAAAAAAAOE/ScK1jph56hs/s1600-h/finalpage2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroFUzEAeHI/AAAAAAAAAOE/ScK1jph56hs/s400/finalpage2.png" alt="" id="BLOGGER_PHOTO_ID_5384622159337388146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Build&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;Now we can build our multiplatform installers and give them a try. By default, the installers will be created in your InstallBuilder directory, in the 'output' folder.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroE2RL8DYI/AAAAAAAAANs/ZZnF63fIvHY/s1600-h/build1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 316px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SroE2RL8DYI/AAAAAAAAANs/ZZnF63fIvHY/s400/build1.png" alt="" id="BLOGGER_PHOTO_ID_5384621634847772034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroFUHo7XPI/AAAAAAAAAN0/kaHRDOXZjJg/s1600-h/build2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SroFUHo7XPI/AAAAAAAAAN0/kaHRDOXZjJg/s400/build2.png" alt="" id="BLOGGER_PHOTO_ID_5384622147681082610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Resources&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://installbuilder.bitrock.com/blog-resources/bundled-tomcat-project-files.zip"&gt;Sample Tomcat installer files&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-6271972319142024284?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/6271972319142024284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=6271972319142024284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6271972319142024284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6271972319142024284'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/09/bundle-tomcat-in-your-bitrock.html' title='Bundle Tomcat in Your BitRock InstallBuilder installer'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_NAHlhQTNQmw/SrnkmlOndoI/AAAAAAAAAIc/IDoEcnj83tc/s72-c/productinfo1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3769239111672313779</id><published>2009-09-23T05:04:00.000-07:00</published><updated>2009-09-25T01:47:56.175-07:00</updated><title type='text'>LinuxCon and JEI</title><content type='html'>BitRock will be attending &lt;a href="http://events.linuxfoundation.org/events/linuxcon"&gt;LinuxCon&lt;/a&gt; in Portland and the &lt;a href="http://www.fundacionzcc.org/2009/09/11/jei-startup-zaragoza-emprendedores-espanoles-buscan-en-zaragoza-formacion-y-financiacion-para-lanzar-y-consolidar-proyectos-innovadores/"&gt;JEI Startup event&lt;/a&gt; in Zaragoza (Spain). Let us know if you are around and would like to chat with us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3769239111672313779?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3769239111672313779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3769239111672313779' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3769239111672313779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3769239111672313779'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/09/linuxcon-and-jei.html' title='LinuxCon and JEI'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-759416423350209368</id><published>2009-07-24T05:58:00.000-07:00</published><updated>2009-09-24T01:38:24.799-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='unpack'/><title type='text'>Managing Bundled Files</title><content type='html'>In this entry we are going to discuss how to manage files bundled within an installer.&lt;br /&gt;&lt;br /&gt;It is common to have a separate tool or program that must be bundled with and run from the installer, but before the file copying part of the installation process has completed. A common example would be a license validation program. Typically, all files bundled within an installer are unpacked and then any tools would be run. In the case of a license validator, that is less than ideal because the user may end up waiting for the files to be unpacked only to find that the license is not valid. The user would then have to wait for the installation to be rolled back.&lt;br /&gt;&lt;br /&gt;InstallBuilder provides you with actions to deal with these situations. The most important are &amp;lt;unpackFile&amp;gt; and &amp;lt;unpackDirectory&amp;gt;. Let's assume we are in the situation detailed above. A typical project XML file would look something like:&lt;br /&gt;&lt;span style="float:right !important;"&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;project&amp;gt;&lt;br /&gt;    ...&lt;br /&gt;    &amp;lt;componentList&amp;gt;&lt;br /&gt;        &amp;lt;component&amp;gt;&lt;br /&gt;            &amp;lt;name&amp;gt;default&amp;lt;/name&amp;gt;&lt;br /&gt;            &amp;lt;folderList&amp;gt;&lt;br /&gt;                &amp;lt;folder&amp;gt;&lt;br /&gt;                    &amp;lt;name&amp;gt;programfiles&amp;lt;/name&amp;gt;&lt;br /&gt;                    &amp;lt;destination&amp;gt;${installdir}&amp;lt;/destination&amp;gt;&lt;br /&gt;                    &amp;lt;distributionFileList&amp;gt;&lt;br /&gt;                        &amp;lt;distributionDirectory origin="/path/to/dir/to/pack"/&amp;gt;&lt;br /&gt;                        &amp;lt;distributionFile origin="/path/to/checker"/&amp;gt;&lt;br /&gt;                    &amp;lt;/distributionFileList&amp;gt;&lt;br /&gt;                &amp;lt;/folder&amp;gt;&lt;br /&gt;            &amp;lt;/folderList&amp;gt;&lt;br /&gt;        &amp;lt;/component&amp;gt;&lt;br /&gt;    &amp;lt;/componentList&amp;gt;&lt;br /&gt;    &amp;lt;parameterList&amp;gt;&lt;br /&gt;        &amp;lt;stringParameter&amp;gt;&lt;br /&gt;            &amp;lt;name&amp;gt;licenseCheck&amp;lt;/name&amp;gt;&lt;br /&gt;            &amp;lt;description&amp;gt;Introduce your license key&amp;lt;/description&amp;gt;&lt;br /&gt;            &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;        &amp;lt;/stringParameter&amp;gt;&lt;br /&gt;    &amp;lt;/parameterList&amp;gt;&lt;br /&gt;    ...&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As you can see, the user is asked to supply a license key. Without the &amp;lt;unpack&amp;gt; actions, the information provided would not be checked until several steps later, which is not our desired behavior. Instead, we can do the following:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;parameterlist&amp;gt;&lt;br /&gt;   &amp;lt;stringparameter&amp;gt;&lt;br /&gt;       &amp;lt;name&amp;gt;licenseCheck&amp;lt;/name&amp;gt;&lt;br /&gt;       &amp;lt;title&amp;gt;Introduce your license key&amp;lt;/title&amp;gt;&lt;br /&gt;       &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;       &amp;lt;validationactionlist&amp;gt;&lt;br /&gt;           &amp;lt;unpackfile component="default" folder="programfiles" origin="checker" destination="/tmp"&amp;gt;&lt;br /&gt;           &amp;lt;runprogram&amp;gt;&lt;br /&gt;               &amp;lt;program&amp;gt;/tmp/checker&amp;lt;/program&amp;gt;&lt;br /&gt;               &amp;lt;programarguments&amp;gt;${project.parameter(licenseCheck).value}&amp;lt;/programarguments&amp;gt;&lt;br /&gt;           &amp;lt;/runprogram&amp;gt;&lt;br /&gt;           &amp;lt;throwerror text="Wrong license key, please enter a valid one or cancel the installation"&amp;gt;&lt;br /&gt;               &amp;lt;rulelist&amp;gt;&lt;br /&gt;                   &amp;lt;comparetext text="${program_stdout}" logic="equals" value="1"&amp;gt;&lt;br /&gt;                   &amp;lt;/comparetext&amp;gt;&lt;br /&gt;               &amp;lt;/rulelist&amp;gt;&lt;br /&gt;           &amp;lt;/throwerror&amp;gt;&lt;br /&gt;           &amp;lt;/unpackfile&amp;gt;&lt;br /&gt;       &amp;lt;/validationactionlist&amp;gt;&lt;br /&gt;   &amp;lt;/stringparameter&amp;gt;&lt;br /&gt;&amp;lt;/parameterlist&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The packed file can even be a zip file. You just need to use an &amp;lt;unzip&amp;gt; action before executing it:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;unzip&amp;gt;&lt;br /&gt;  &amp;lt;destinationdirectory&amp;gt;${installdir}&amp;lt;/destinationdirectory&amp;gt;&lt;br /&gt;  &amp;lt;zipfile&amp;gt;/tmp/unpacked/file.zip&amp;lt;/zipfile&amp;gt;&lt;br /&gt;&amp;lt;/unzip&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As you can see in the example above, the &amp;lt;origin&amp;gt; in the unpack action corresponds with the location of the file inside the installer, not with the path to the file in the build machine. If you packed a directory "/path/to/dir/to/pack" containing three files, fileA, fileB and fileC, to unpack fileB, you should use an &amp;lt;unpackfile&amp;gt; with origin="pack/fileB":&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;distributiondirectory origin="/path/to/dir/to/pack"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;unpackfile component="default" folder="programfiles" origin="pack/fileB" destination="/some/destination"&amp;gt;&lt;br /&gt;&amp;lt;/unpackfile&amp;gt;&lt;br /&gt;&amp;lt;/distributiondirectory&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You could imagine this structure inside the installer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/Smm0VzH9aGI/AAAAAAAAAIU/BgbLB2TvkCs/s1600-h/packed_files_table.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 326px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/Smm0VzH9aGI/AAAAAAAAAIU/BgbLB2TvkCs/s400/packed_files_table.png" alt="" id="BLOGGER_PHOTO_ID_5362015117955131490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To reference logo.jpg:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;unpackfile component="componentA" folder="folder1" origin="someDirectory/logo.jpg" destination="${installdir}"&amp;gt;&lt;br /&gt;&amp;lt;/unpackfile&amp;gt;&lt;/pre&gt;&lt;br /&gt;It does not matter where the file was located originally in the building machine, just the path inside the installer:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;component name="componentA"&amp;gt;&lt;br /&gt;&amp;lt;folderlist&amp;gt;&lt;br /&gt;&amp;lt;folder&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;folder1&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;distributionfilelist&amp;gt;&lt;br /&gt;   &amp;lt;distributiondirectory&amp;gt;&lt;br /&gt;        &amp;lt;origin&amp;gt;/some/long/path/in/the/building/machine/someDirectory&amp;lt;/origin&amp;gt;&lt;br /&gt;   &amp;lt;/distributiondirectory&amp;gt;&lt;br /&gt;&amp;lt;/distributionfilelist&amp;gt;&lt;br /&gt;&amp;lt;/folder&amp;gt;&lt;br /&gt;&amp;lt;/folderlist&amp;gt;&lt;br /&gt;&amp;lt;/component&amp;gt;&lt;/pre&gt;&lt;br /&gt;InstallBuilder also includes functionality to facilitate uninstalling bundled programs or tools. When an uninstaller is run, all files packed are automatically deleted, but if one of the bundled applications generates other files or directories, those have to be manually deleted using &amp;lt;deletefile&amp;gt; actions. Another way to take care of deleting all of the files is to use the &amp;lt;addfilestouninstaller&amp;gt; action:&lt;br /&gt;&lt;pre&gt;&amp;lt;addfilestouninstaller path="/some/path/to/the/file"&amp;gt;&amp;lt;/addfilestouninstaller&amp;gt;&lt;/pre&gt;&lt;br /&gt;Note that this action will only work with existing files. You cannot add a file that is going to be created but does not yet exist. As a workaround for these situations, you can use a &amp;lt;touchfile&amp;gt; action:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;touchfile path="/some/path/to/the/file"&amp;gt;&lt;br /&gt;&amp;lt;addfilestouninstaller path="/some/path/to/the/file"&amp;gt;&lt;br /&gt;&amp;lt;deletefile path="/some/path/to/the/file"&amp;gt;&lt;br /&gt;&amp;lt;/deletefile&amp;gt;&amp;lt;/addfilestouninstaller&amp;gt;&amp;lt;/touchfile&amp;gt;&lt;/pre&gt;&lt;br /&gt;Even if the real file is a directory, the uninstaller will register it correctly.&lt;br /&gt;&lt;br /&gt;You can also remove files to be deleted from the uninstaller to avoid deleting them during uninstallation:&lt;br /&gt;&lt;pre&gt;&amp;lt;removefilesfromuninstaller files="${installdir}/*" exclude="*.txt"&amp;gt;&amp;lt;/removefilesfromuninstaller&amp;gt;&lt;/pre&gt;&lt;br /&gt;This will exclude from the uninstaller all of the contents of "installdir" except for .txt files.&lt;br /&gt;&lt;br /&gt;The example above uses the &amp;lt;exclude&amp;gt; tag, introduced in InstallBuilder  6.1.1, which allows you to specify patterns of file that should not be affected by the action.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-759416423350209368?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/759416423350209368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=759416423350209368' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/759416423350209368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/759416423350209368'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/07/managing-bundled-files.html' title='Managing Bundled Files'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_NAHlhQTNQmw/Smm0VzH9aGI/AAAAAAAAAIU/BgbLB2TvkCs/s72-c/packed_files_table.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-7665544139623379017</id><published>2009-07-21T00:28:00.000-07:00</published><updated>2009-09-25T00:48:57.709-07:00</updated><title type='text'>How to use Rules with InstallBuilder</title><content type='html'>The installation of your application does not have to be a rigid, linear sequence of actions. For example, maybe you need to copy certain files only if the target platform is Mac or Linux, but not if it is Windows. Or  you may want to modify or add some content to a file, but only if it is needed (you don't want to duplicate configuration settings). Here's another example of common functionality: You may want to discard or accept user input depending on whether it meets certain criteria.&lt;br /&gt;&lt;br /&gt;Rules in InstallBuilder allow you to determine when to perform certain actions depending on the circumstances, variables and user inputs that are involved in the installation.  It allows you to set conditions related to an action or an action group at any step of the installation, and they will be performed only if the condition is met. You can set not only one, but a set of multiple conditions that can be evaluated with an AND/OR group logic statement.&lt;br /&gt;&lt;br /&gt;This article will explain how to implement conditional rules in your actions, how to select the appropriate rule for each case, and how this can help you to optimize your project and avoid duplicating code.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you don't already have InstallBuilder installed on your system, you can download the latest version from &lt;a href="http://installbuilder.bitrock.com/"&gt;http://installbuilder.bitrock.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Now, let's begin!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We will start with GUI in our first, simple example for a fictitious commercial application for Windows. Imagine that you want to distribute your product offering with the option of installing it for a time-limited evaluation period, or installing it as a registered “Enterprise Edition”, depending on whether or not the user has a valid license key on his or her machine.&lt;br /&gt;&lt;ul class="blank-list" type="none"&gt;&lt;li&gt;Your desired behavior is:&lt;/li&gt;&lt;li&gt;&lt;ul class="blank-list"&gt;&lt;br /&gt;&lt;li&gt;- Your product will be installed as an “Enterprise Edition” if the installer finds a valid license file, “product.lic”, in the user's desktop folder. If that is the case, the installer will report that it is deploying an “Enterprise Edition”.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- If a valid license file is not found on the user's desktop, the product will be installed as a “Trial Edition” and the installer will inform the user of that.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Of course, this is a very simple case,  but it is a good example for demonstrating how rules can work for you. Now, start InstallBuilder and open the Demo project. To do so, use one of the following methods:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SmVxHkEya0I/AAAAAAAAAGc/ewpIbBGAAIo/s1600-h/open-project.png"&gt;&lt;img style="border: 1px solid silver; margin: 0pt 12px 10px 0pt; float: left; cursor: pointer; width: 244px; height: 127px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SmVxHkEya0I/AAAAAAAAAGc/ewpIbBGAAIo/s400/open-project.png" alt="" id="BLOGGER_PHOTO_ID_5360815306211224386" border="0" /&gt;&lt;/a&gt;&lt;div style="padding-top: 30px;"&gt;a) Go to [File -&gt; Open Project -&gt; From file...] and double-click on demo.xml file...&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: left; padding-top: 26px;"&gt;b) Click on the Open Project button at the toolbar (see the image on the left), and double-click on demo.xml file.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="display: block; font-weight: bold;"&gt;NOTE:&lt;/span&gt; It's strongly recommended that you preserve the Demo project for future testing purposes, so it is a good idea to save the project you're working on as a new one. For example, you can save it as  'myruleproject.xml'.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SmVxtXkoRaI/AAAAAAAAAGk/WEGsjQFcAzo/s1600-h/advanced-tab.png"&gt;&lt;img style="border: 1px solid silver; margin: 0pt 20px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 130px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SmVxtXkoRaI/AAAAAAAAAGk/WEGsjQFcAzo/s400/advanced-tab.png" alt="" id="BLOGGER_PHOTO_ID_5360815955690145186" border="0" /&gt;&lt;/a&gt;Now, click on the  Advanced tab on the left side of the InstallBuilder GUI. This will show you all of the installation steps, components and distribution files/directories, and allow you to specify highly customized settings for your installer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="float:left;height:180px"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SmV0CIka6pI/AAAAAAAAAGs/qTebe43AGOU/s1600-h/pre-installation-actions.png"&gt;&lt;img style="border: 1px solid silver; margin: 0pt 20px 10px 0pt; float: left; cursor: pointer; width: 256px; height: 134px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SmV0CIka6pI/AAAAAAAAAGs/qTebe43AGOU/s400/pre-installation-actions.png" alt="" id="BLOGGER_PHOTO_ID_5360818511463246482" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;We want to check if there is a license file before  deciding what edition (evaluation or enterprise) will be deployed,  so select 'Pre-Installation-Actions'. This step defines the actions the installer must execute before the first page of the installer is displayed. Right-click the item and select 'Add'.&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: left; margin-bottom: 0pt; padding-bottom: 0pt;"&gt;Now, we need a variable in which we will store a value that will depend of whether or not there is a license file found. We will call this variable 'edition_type', and it will store one the following values:&lt;/div&gt;&lt;ul class="blank-list" style="padding-left: 0pt; margin-left: 14px;" type="none"&gt;&lt;li&gt;- trial: If there is not any license file found, it will be a 'trial' edition.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- enterprise: If the installer finds a license file, it will be an 'enterprise' edition.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Depending on which of the above values is returned, the installer will install the application as either an 'Enterprise Edition' or a 'Trial Edition'. So, how do you set the right value for the variable? The answer is: with InstallBuilder rules. We will set the variable with rules that will check if there is a license file present.&lt;br /&gt;&lt;br /&gt;You can think about a rule like a condition that needs to be met to allow the related action to be be executed. If the rule is met, the action will be performed; if it isn't met, the action will not.&lt;br /&gt;&lt;ul class="blank-list" style="padding-left: 0pt; margin-left: 20px;" type="none"&gt;&lt;li&gt;We need to set the value depending on which rule is met:&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;ul class="blank-list" style="padding-left: 0pt; margin-left: 20px;" type="none"&gt;&lt;li&gt;-Set: edition_type=trial      if a license file is not found)&lt;/li&gt;&lt;li&gt;-Set: edition_type=enterprise      (if a license file is found)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;After selecting 'Add', we will find a new dialog window where you can select the type of action that you want to add to this step. We will select 'Installer Actions' on the left, and 'Set Installer Variable' on the right.  Then press 'Ok'.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SmV67XJzp8I/AAAAAAAAAG0/Z5CLCIDt5kQ/s1600-h/type-of-action.png"&gt;&lt;img style="margin: 0px auto; cursor: pointer; width: 400px; height: 312px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SmV67XJzp8I/AAAAAAAAAG0/Z5CLCIDt5kQ/s400/type-of-action.png" alt="" id="BLOGGER_PHOTO_ID_5360826091700463554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We will be presented with a new dialog window where you must enter the needed parameter for the action.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SmV7L-2vr8I/AAAAAAAAAG8/rMic_X1Tyi4/s1600-h/set-installer-variable.png"&gt;&lt;img style="margin: 0px auto; cursor: pointer; width: 400px; height: 280px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SmV7L-2vr8I/AAAAAAAAAG8/rMic_X1Tyi4/s400/set-installer-variable.png" alt="" id="BLOGGER_PHOTO_ID_5360826377235836866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In this case, the 'Set Installer Variable' action will need the following parameter to work:&lt;br /&gt;&lt;br /&gt;&lt;ul class="blank-list" type="none"&gt;&lt;li&gt;-Name: The name of the variable that we want to create. It will be 'edition_type'.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;-Value: The value we want to store in the variable. It will be 'trial'.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/SmV968EUtAI/AAAAAAAAAHE/akxzW2EbiCs/s1600-h/new-set-installer-variable-action.png"&gt;&lt;img style="border: 1px solid silver; margin: 0pt 20px 10px 0pt; float: left; cursor: pointer; width: 313px; height: 197px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/SmV968EUtAI/AAAAAAAAAHE/akxzW2EbiCs/s400/new-set-installer-variable-action.png" alt="" id="BLOGGER_PHOTO_ID_5360829382964589570" border="0" /&gt;&lt;/a&gt;After that, we will be returned to the advanced section of our project. Notice that there is a new item included as a Pre-installation action. This is the newly created Set Installer Variable action.&lt;/div&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="clear: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SmV-9FwCvFI/AAAAAAAAAHM/TFyo9HF6GQo/s1600-h/2-actions.png"&gt;&lt;img style="border: 1px solid silver; margin: 0pt 0px 0px 20px; float: right; padding-top: 0pt; cursor: pointer; width: 303px; height: 188px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SmV-9FwCvFI/AAAAAAAAAHM/TFyo9HF6GQo/s400/2-actions.png" alt="" id="BLOGGER_PHOTO_ID_5360830519435246674" border="0" /&gt;&lt;/a&gt;Now we will repeat the process and add the same action type, but this time the value for 'edition_type' will be 'enterprise'. As a result, we will get two items in the Pre-installation Actions trunk, each one with the two possibilities.&lt;/div&gt;&lt;br /&gt;&lt;div style="padding-top: 10px; margin-top: 30px; clear: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SmV_1B7kjGI/AAAAAAAAAHU/2tW7DrXIG88/s1600-h/rules.png"&gt;&lt;img style="border: 1px solid silver; margin: 0pt 20px 10px 0pt; float: left; cursor: pointer; width: 236px; height: 158px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SmV_1B7kjGI/AAAAAAAAAHU/2tW7DrXIG88/s400/rules.png" alt="" id="BLOGGER_PHOTO_ID_5360831480482532450" border="0" /&gt;&lt;/a&gt;Notice that you can expand any of the actions that you have just created, and there is a parent node called 'Rules'. Here is where we will set the rule that must be met for the action to be performed.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="padding-top:20px;font-weight: bold; display: block; clear: left;"&gt;Windows environment variables&lt;/span&gt;&lt;br /&gt;Now that we are ready to add rules to our actions, there is another question to resolve: If the installer will look for a license file in the user's desktop, and the path to this location depends on the user's name and the Windows edition, how do we add the path? The answer is: with environment variables.&lt;br /&gt;&lt;br /&gt;All operating systems, including Windows, have environment variables that help us to determine certain variable values and locations. If we read  the Windows documentation, we will find that the environment variable called HOMEPATH will return the home directory of the current user. So if the user that executed our installer is named 'Joseph' , this variable will return something like: C:\Documents and Settings\Joseph.&lt;br /&gt;&lt;br /&gt;InstallBuilder can read these environment variables for us and return the result. For this purpose we will use ${env()} to load the value of  HOMEPATH:&lt;br /&gt;&lt;pre&gt;${env(HOMEPATH)}&lt;/pre&gt;&lt;br /&gt;We are now able to set the location where we want the installer to look for the license file (the user's desktop):&lt;br /&gt;&lt;pre&gt;${env(HOMEPATH)}/Desktop/product.lic&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Adding the rules&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now, select the Rule node for the first action (edition_type=trial), and right-click to select Add. You will find a new dialog asking for the rule type. Select 'File Exists'. That allows us to check if there is a file present.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SmWC4WAJrhI/AAAAAAAAAHc/cs5_m1Znia0/s1600-h/file-exists.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 291px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SmWC4WAJrhI/AAAAAAAAAHc/cs5_m1Znia0/s400/file-exists.png" alt="" id="BLOGGER_PHOTO_ID_5360834835944943122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: left;"&gt;Then press 'Ok'.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: left; float: left; height: 150px;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SmWEtY6PnOI/AAAAAAAAAHk/0tS7PKWsbA8/s1600-h/file-exists-2.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 242px; height: 138px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SmWEtY6PnOI/AAAAAAAAAHk/0tS7PKWsbA8/s400/file-exists-2.png" alt="" id="BLOGGER_PHOTO_ID_5360836846770167010" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;We will get a new dialog window that asks for the path that points to the where the file would be stored if it exists.&lt;br /&gt;&lt;div style="clear: left;"&gt;&lt;br /&gt;In the field 'Path name' type:  &lt;br /&gt;&lt;pre&gt;${env(HOMEPATH)}\Desktop\product.lic&lt;/pre&gt;&lt;br /&gt;Remember to check the Negate option, since what we want is to set the value 'trial' to the variable 'edition_type' if the file does not exist.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="clear: left; float: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SmWGa32GVCI/AAAAAAAAAHs/GxqTjflMA-g/s1600-h/rule-item.png"&gt;&lt;img style="border: 1px solid silver; margin: 0pt 20px 10px 0pt; float: left; cursor: pointer; width: 341px; height: 187px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SmWGa32GVCI/AAAAAAAAAHs/GxqTjflMA-g/s400/rule-item.png" alt="" id="BLOGGER_PHOTO_ID_5360838727680021538" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;Notice that now there is a new item in the Rules node for the first action, so this action will be performed ONLY if the file is not found at the given path.&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: left; padding-top: 10px;"&gt;Now try to add the rule for the second action. This action should try to set the value 'enterprise' to the variable 'edition_type' if the license file is found, so it will be equal to the previous rule, except for the fact that it is not negated this time.&lt;/div&gt;&lt;br /&gt;&lt;div style="clear: left; float: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SmWHsaEoDkI/AAAAAAAAAH0/v3qRkVc7ggg/s1600-h/2-actions-with-rules.png"&gt;&lt;img style="padding-bottom:52px;border: 1px solid silver; margin: 0pt 20px 10px 0pt; float: left; cursor: pointer; width: 336px; height: 191px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SmWHsaEoDkI/AAAAAAAAAH0/v3qRkVc7ggg/s400/2-actions-with-rules.png" alt="" id="BLOGGER_PHOTO_ID_5360840128437161538" border="0" /&gt;&lt;/a&gt;As result, you will have two actions in the Pre-installation Actions folder, each one with its own rule. We have now finished the process during which the installer determines the properly value for the variable 'edition_type'. Let's check if it is all correct.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="padding-top: 10px; clear: left;"&gt;&lt;span style="font-weight: bold;"&gt;Adding an info dialog&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Now that we have the actions and its rules, we need to create an action to show a dialog to inform  the user which edition he or she is installing. For this, we need a Show Info Dialog.&lt;br /&gt;&lt;div style="clear: left; margin-top: 15px;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SmWKURKUrxI/AAAAAAAAAH8/saLpcE3-rG0/s1600-h/dialog-action.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt;  cursor: pointer; width: 400px; height: 301px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SmWKURKUrxI/AAAAAAAAAH8/saLpcE3-rG0/s400/dialog-action.png" alt="" id="BLOGGER_PHOTO_ID_5360843012263161618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now that you know how to add an action, you can do it by yourself. Add a 'Dialog Action', type 'Show Info Dialog' just after the last action on Pre-installation Actions.&lt;/div&gt;&lt;br /&gt;&lt;div style="clear: left; padding-top: 0px;"&gt;The text for this dialog will be: &lt;span style="font-style: italic;color:grey;" &gt;The installer will deploy the ${edition_type} edition on your computer.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="clear: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SmWLjHiS9AI/AAAAAAAAAIE/Oce2FWDoDJg/s1600-h/show-info-dialog.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 285px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SmWLjHiS9AI/AAAAAAAAAIE/Oce2FWDoDJg/s400/show-info-dialog.png" alt="" id="BLOGGER_PHOTO_ID_5360844366889022466" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="clear: left; padding-top: 20px;"&gt;Notice that the expression &lt;span style="font-style: italic;color:grey;" &gt;${edition_type}&lt;/span&gt; will return the current value for the variable 'edition_type', which would be 'trial' or 'enterprise'  in this case. Press 'Ok'.&lt;/div&gt;&lt;br /&gt;&lt;div style="clear: left; margin-top: 0px;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SmWNBt7zIhI/AAAAAAAAAIM/rNjIWOTJIuY/s1600-h/3-actions.png"&gt;&lt;img style="border: 1px solid silver; margin: 0pt 20px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 177px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SmWNBt7zIhI/AAAAAAAAAIM/rNjIWOTJIuY/s400/3-actions.png" alt="" id="BLOGGER_PHOTO_ID_5360845992104239634" border="0" /&gt;&lt;/a&gt;Now we have three actions on our installer. The last one will be a dialog box that will report which edition will be installed.&lt;br /&gt;&lt;br /&gt;We are ready to test the installer.&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Testing the installer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To quickly test our installer, we can use the 'Test Run' button that is located in the tool-bar of InstallBuilder. Press it, wait for the build process to complete and the installer will start. Create an empty file on your desktop called 'product.lic' to test the way the installer responds depending on whether or not the file is present.&lt;br /&gt;&lt;br /&gt;Of course, if you were to build an installer for production, you would want to check more than just whether or not a license file is present – you would want to confirm that it is actually valid. That can certainly be done using InstallBuilder, but is a topic for another how-to.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;And now?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here are some additional rules that you may find of use:&lt;ul class="blank-list" style="margin-left: 18px; padding-left: 0;" type="none"&gt;&lt;li&gt;- &lt;span style="font-style: italic; text-decoration: underline;color:grey;" &gt;Compare Text&lt;/span&gt;: Compares two values and check whether or not they are equal.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- &lt;span style="font-style: italic; text-decoration: underline;color:grey;" &gt;Component test&lt;/span&gt;: Checks if a certain component is present in the installer.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- &lt;span style="font-style: italic; text-decoration: underline;color:grey;" &gt;File Content Test&lt;/span&gt;: Checks if a file contains certain text. Very useful for checking configuration files.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- &lt;span style="font-style: italic; text-decoration: underline;color:grey;" &gt;Host Validation&lt;/span&gt;: Helps you to check if a given host is valid.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- &lt;span style="font-style: italic; text-decoration: underline;color:grey;" &gt;Platform Test&lt;/span&gt;: Checks to see if the target system is on your list of supported platforms.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- &lt;span style="font-style: italic; text-decoration: underline;color:grey;" &gt;Process Test&lt;/span&gt;: Checks for the execution of a process in the target system.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- &lt;span style="font-style: italic; text-decoration: underline;color:grey;" &gt;Regular Expression Match&lt;/span&gt;: Checks for a match between a given value and a pattern using regular expressions.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- &lt;span style="font-style: italic; text-decoration: underline;color:grey;" &gt;Registry Test&lt;/span&gt;: Looks for certain keys/values in the registry. A must-know rule for Windows installers.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- &lt;span style="font-style: italic; text-decoration: underline;color:grey;" &gt;User Test&lt;/span&gt;: Checks for the existence of a certain user in the system, or checks its password is valid.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;- &lt;span style="font-style: italic; text-decoration: underline;color:grey;" &gt;Windows Service Test&lt;/span&gt;: checks whether a service exists or whether it is running.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-7665544139623379017?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/7665544139623379017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=7665544139623379017' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7665544139623379017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7665544139623379017'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/07/how-to-use-rules-with-installbuilder.html' title='How to use Rules with InstallBuilder'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_NAHlhQTNQmw/SmVxHkEya0I/AAAAAAAAAGc/ewpIbBGAAIo/s72-c/open-project.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-61064854194505054</id><published>2009-07-02T02:36:00.000-07:00</published><updated>2009-09-25T00:51:36.856-07:00</updated><title type='text'>How to Use the AutoUpdater in InstallBuilder</title><content type='html'>In version 6.0 of InstallBuilder, we started shipping a new tool called AutoUpdater . This tool allows you to enable users to check for, download and apply updates for your software on their  machines, getting the necessary files through HTTP or FTP. Although the Autoupdater is not yet available through the InstallBuilder GUI, it is very simple to configure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How Does it Work?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There is a binary file which will poll the server to get information about the software versions available. The behavior of this binary is:&lt;br /&gt;&lt;ul type="ordered"&gt;&lt;li&gt;Read the INI file that contains information about where to contact the server and which version is currently installed (which should be delivered together with the binary)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Get the XML file from the server, which contains available versions for each platform.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If there's a newer version available (checking that the version ID received is higher than the current one stored in INI file), download and install it or notify the user (return code = 0) if it is run in unattended mode.&lt;/li&gt;&lt;/ul&gt;This binary may be customized to fit your needs using the command line tool 'customize' which is available in the AutoUpdater directory after performing InstallBuilder installation. The binary may be generated for several platforms: windows, linux or linux-x64; and an XML file will be used to indicate the tool how should the updater be customized.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The syntax to use the tool is:&lt;br /&gt;&lt;br /&gt;{IB_installdir}/autoupdater/bin/customize build /path/to/project.xml [windows,linux,linux-x64]&lt;br /&gt;&lt;br /&gt;The project XML file  must have  the main tag '&amp;lt;autoUpdateProject&amp;gt;' containing a list of customizations. The ones currently available are:&lt;br /&gt;&lt;ul type="ordered"&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;General settings:&lt;/span&gt; allowLanguageSelection, allowedLanguages, customLanguageFileList, rebootRequired (after performing update), requireInstallationByRootUser (only the Administrator can run Autoupdater), saveRelativePaths, singleInstanceCheck (check that theres only one instance running)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Application:&lt;/span&gt; fullName, shortName, vendor, version&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Modify view:&lt;/span&gt; height, width, leftImage (163x314 GIF or PNG), logoImage (48x48 GIF or PNG), splashImage(GIF or PNG image), splashScreenDelay, disableSplashScreen, overrideGtkButtonText, wmImage (48x48 GIF or PNG shown in the window manager task bar on Unix systems)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;Windows binary options:&lt;/span&gt; windowsExecutableIcon, windowsResourceComments, windowsResourceCompanyName, windowsResourceFileDescription, windowsResourceFileVersion, windowsResourceInternalName, windowsResourceLegalCopyright, windowsResourceLegalTrademarks, windowsResourceOriginalFilename, windowsResourceProductName, windowsResourceProductVersion&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;After applying the customizations, the new file may be found inside {IB_installdir}/autoupdater/output.&lt;br /&gt;&lt;br /&gt;The INI file should be delivered together with the update binary containing next fields inside [Update] section:&lt;br /&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;URL:&lt;/span&gt; The URL of the server from which the updates XML file should be obtained&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;version_id:&lt;/span&gt; The identifier of current installed version&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;update_download_location:&lt;/span&gt; The temporary path where downloaded installers should be stored&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;check_for_updates:&lt;/span&gt; It is possible to enable and disable the AutoUpdater on demand by setting this boolean value&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The server XML file with latest version details should be present on the server located at the URL provided in the INI file with the following information inside the '&amp;lt;installerInformation&amp;gt;' tag:&lt;br /&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;version:&lt;/span&gt; name of the version to be shown to the user&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;versionId:&lt;/span&gt; version identifier&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight:bold;"&gt;platformFileList:&lt;/span&gt; list of installer names by platform&lt;/li&gt;&lt;br /&gt;&lt;li&gt;downloadLocationList: list of download locations (downloadLocation), each containing a URL which points to a mirror where the software can be downloaded&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Note:&lt;/span&gt; versionId must be an integer which takes higher values for the newest versions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Simple example&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Imagine we have an application called 'My Application' and we want to include  AutoUpdater functionality in version 1.0.0. We may also want, for example, for the update process to be run by an Administrator and while only one process is being run. We can generate a custom binary having the appropriate application name, version and required flags:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;autoUpdateProject&amp;gt;&lt;br /&gt; &amp;lt;fullName&amp;gt;My Application&amp;lt;/fullName&amp;gt;&lt;br /&gt; &amp;lt;shortName&amp;gt;myapp&amp;lt;/shortName&amp;gt;&lt;br /&gt; &amp;lt;vendor&amp;gt;Acme Inc.&amp;lt;/vendor&amp;gt;&lt;br /&gt; &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;&lt;br /&gt; &amp;lt;singleInstanceCheck&amp;gt;1&amp;lt;/singleInstanceCheck&amp;gt;&lt;br /&gt; &amp;lt;requireInstallationByRootUser&amp;gt;1&amp;lt;/requireInstallationByRootUser&amp;gt;&lt;br /&gt;&amp;lt;/autoUpdateProject&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You may want to change the images and icons to have application specific ones. To do so, you can add the options: leftImage, logoImage, splashImage, wmImage. Once all desired options are included in project.xml file, we run the customize command:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;{IB_installdir}/autoupdater/bin/customize.bin build project.xml linux&lt;br /&gt;{IB_installdir}/autoupdater/bin/customize.bin build project.xml windows&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After that, binary files for Linux and Windows should be found in AutoUpdater output directory.&lt;br /&gt;&lt;br /&gt;Apart from the AutoUpdater binary, you will need to setup a server with the new installers and update.xml file. In our case, we will use a server running locally in port 8080. (You can easily setup a web server using &lt;a href="http://bitnami.org/stack/lampstack"&gt;LAMPStack&lt;/a&gt; or &lt;a href="http://bitnami.org/stack/wampstack"&gt;WAMPStack&lt;/a&gt; from &lt;a href="http://bitnami.org/"&gt;BitNami.org&lt;/a&gt;). We just need to copy there the latest installers and an update.xml file describing that version, the filenames and mirrors:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;installerInformation&amp;gt;&lt;br /&gt;   &amp;lt;versionId&amp;gt;200&amp;lt;/versionId&amp;gt;&lt;br /&gt;   &amp;lt;version&amp;gt;2.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;   &amp;lt;platformFileList&amp;gt;&lt;br /&gt;       &amp;lt;platformFile&amp;gt;&lt;br /&gt;           &amp;lt;filename&amp;gt;myapplication-installer-2.0.0.exe&amp;lt;/filename&amp;gt;&lt;br /&gt;           &amp;lt;platform&amp;gt;windows&amp;lt;/platform&amp;gt;&lt;br /&gt;       &amp;lt;/platformFile&amp;gt;&lt;br /&gt;       &amp;lt;platformFile&amp;gt;&lt;br /&gt;           &amp;lt;filename&amp;gt;myapplication-installer-2.0.0.bin&amp;lt;/filename&amp;gt;&lt;br /&gt;           &amp;lt;platform&amp;gt;linux&amp;lt;/platform&amp;gt;&lt;br /&gt;       &amp;lt;/platformFile&amp;gt;&lt;br /&gt;   &amp;lt;/platformFileList&amp;gt;&lt;br /&gt;   &amp;lt;downloadLocationList&amp;gt;&lt;br /&gt;       &amp;lt;downloadLocation&amp;gt;&lt;br /&gt;           &amp;lt;url&amp;gt;http://127.0.0.1:8080/downloads/&amp;lt;/url&amp;gt;&lt;br /&gt;       &amp;lt;/downloadLocation&amp;gt;&lt;br /&gt;   &amp;lt;/downloadLocationList&amp;gt;&lt;br /&gt;&amp;lt;/installerInformation&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;where versionId has been set to a higher integer value than previous ones and we have configured a single mirror. We can include any number of mirrors by adding multiple download location elements though. That way, the installers will be downloaded from:&lt;br /&gt;&lt;br /&gt;http://127.0.0.1:8080/downloads/myapplication-installer-2.0.0.bin&lt;br /&gt;http://127.0.0.1:8080/downloads/myapplication-installer-2.0.0.exe&lt;br /&gt;&lt;br /&gt;AutoUpdater should be able to locate that update.xml file as well as know which software version is currently installed. That is done using an “update.ini” file with the following content:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[Update]&lt;br /&gt;url = http://127.0.0.1:8080/update.xml&lt;br /&gt;version_id = 100&lt;br /&gt;check_for_updates = 1&lt;br /&gt;update_download_location = /tmp&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In this case, update.xml will be obtained from localhost, saving temporary installers inside the /tmp path.  The application upgrade process will be done if received version ID is greater than 100.&lt;br /&gt;&lt;br /&gt;Once we have the files available and update.ini is in the same path as the AutoUpdater binary, we can check its behavior:&lt;br /&gt;&lt;br /&gt;When it is started , the rules included in customization will be checked: if the user is not an Administrator, he or she will be notified and the AutoUpdate process ends. If there is another instance already running, a notification will let the user know and he or she will be able to chose if the process should continue or not. If both requirements are met, a welcome screen will appear.&lt;br /&gt;&lt;br /&gt;Here is what the process will look like from the user's perspective:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SkyPnf-2qDI/AAAAAAAAAF0/YGXr7dz7oFo/s1600-h/welcome-auto-update.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 280px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SkyPnf-2qDI/AAAAAAAAAF0/YGXr7dz7oFo/s400/welcome-auto-update.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5353811965799475250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After clicking 'Next' button we'll get a screen to configure a proxy if it is necessary.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SkyP7KLPX0I/AAAAAAAAAF8/Aj8kdbhb-XE/s1600-h/connect-to-internet.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 280px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SkyP7KLPX0I/AAAAAAAAAF8/Aj8kdbhb-XE/s400/connect-to-internet.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5353812303543230274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It will contact the server and check if there are new versions available. If there is an update, the following screen will be shown:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SkyRMY0JpHI/AAAAAAAAAGE/bbvLcSzW5_E/s1600-h/check-for-updates.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 280px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SkyRMY0JpHI/AAAAAAAAAGE/bbvLcSzW5_E/s400/check-for-updates.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5353813699042321522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you click 'Next', a new window with the list of mirrors is shown.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SkyRs5uL6KI/AAAAAAAAAGM/YfXyEj9_siw/s1600-h/mirror-selection.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 280px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SkyRs5uL6KI/AAAAAAAAAGM/YfXyEj9_siw/s400/mirror-selection.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5353814257631488162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/SkySE0e2V2I/AAAAAAAAAGU/3QKUGRRtst4/s1600-h/downloading-updates.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 280px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/SkySE0e2V2I/AAAAAAAAAGU/3QKUGRRtst4/s400/downloading-updates.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5353814668541843298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once the new version is downloaded, the installer is started&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Adding AutoUpdate to an Existing InstallBuilder Project&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The only steps required to include the new feature as part of the application installation is to copy  the appropriate AutoUpdate binary file for each operating system and place update.ini file in the same folder. For instance, we can define a component in the following way:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;component&amp;gt;&lt;br /&gt;   &amp;lt;name&amp;gt;autoupdater&amp;lt;/name&amp;gt;&lt;br /&gt;   &amp;lt;description&amp;gt;includes tool to perform updates&amp;lt;/description&amp;gt;&lt;br /&gt;   &amp;lt;canBeEdited&amp;gt;0&amp;lt;/canBeEdited&amp;gt;&lt;br /&gt;   &amp;lt;selected&amp;gt;1&amp;lt;/selected&amp;gt;&lt;br /&gt;   &amp;lt;show&amp;gt;0&amp;lt;/show&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;folderList&amp;gt;&lt;br /&gt;       &amp;lt;folder&amp;gt;&lt;br /&gt;           &amp;lt;name&amp;gt;autoupdaterwin&amp;lt;/name&amp;gt;&lt;br /&gt;           &amp;lt;destination&amp;gt;${installdir}&amp;lt;/destination&amp;gt;&lt;br /&gt;           &amp;lt;platforms&amp;gt;windows&amp;lt;/platforms&amp;gt;&lt;br /&gt;           &amp;lt;distributionFileList&amp;gt;&lt;br /&gt;               &amp;lt;distributionFile origin="autoupdater-windows.exe"/&amp;gt;&lt;br /&gt;           &amp;lt;/distributionFileList&amp;gt;&lt;br /&gt;       &amp;lt;/folder&amp;gt;&lt;br /&gt;       &amp;lt;folder&amp;gt;&lt;br /&gt;           &amp;lt;name&amp;gt;autoupdaterlinux&amp;lt;/name&amp;gt;&lt;br /&gt;           &amp;lt;destination&amp;gt;${installdir}&amp;lt;/destination&amp;gt;&lt;br /&gt;           &amp;lt;platforms&amp;gt;linux&amp;lt;/platforms&amp;gt;&lt;br /&gt;           &amp;lt;distributionFileList&amp;gt;&lt;br /&gt;               &amp;lt;distributionFile origin="autoupdater-linux.bin"/&amp;gt;&lt;br /&gt;           &amp;lt;/distributionFileList&amp;gt;&lt;br /&gt;       &amp;lt;/folder&amp;gt;&lt;br /&gt;   &amp;lt;/folderList&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;postInstallationActionList&amp;gt;&lt;br /&gt;       &amp;lt;writeFile&amp;gt;&lt;br /&gt;           &amp;lt;path&amp;gt;${installdir}/update.ini&amp;lt;/path&amp;gt;&lt;br /&gt;           &amp;lt;text&amp;gt;[update]&lt;br /&gt;url = ${update_xml_url}&lt;br /&gt;version_id = ${application_version_id}&lt;br /&gt;update_download_location = ${system_temp_directory}&lt;br /&gt;check_for_updates = 1&lt;br /&gt;&amp;lt;/text&amp;gt;&lt;br /&gt;       &amp;lt;/writeFile&amp;gt;&lt;br /&gt;   &amp;lt;/postInstallationActionList&amp;gt;&lt;br /&gt;&amp;lt;/component&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Where the 'update_xml_url' installer variable must be setup to point to where update.xml can be fetched and 'application_version_id' must be modified to a higher value on each installer update. Of course, it will be also needed to copy the 'autoupdate-*' binary files to project directory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Using AutoUpdate as a notifier&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Another approach can be to include the AutoUpdate but use it as a notifier which just checks if there are new updates available or not. This can be achieved calling the tool in unattended mode:&lt;br /&gt;&lt;pre&gt;$ autoupdater.bin --mode unattended&lt;/pre&gt;&lt;br /&gt;The exit code will be 0 if an update is available and 1 if not. You can use this approach to show a 'There's a new update available' message to users. To do so, you just call the process in background and generate the message if the returned code is 0:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;if (system(“path/to/autoupdater –mode unattended”) == 0){&lt;br /&gt; printf(“Update available. Run autoupdate to apply it.”);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Something similar may be added when the application starts, or as a cron task if it is a web application, so that the user detects that there's a new update without having to run AutoUpdater manually to check it.&lt;br /&gt;&lt;br /&gt;For more information on AutoUpdater, please see the AutoUpdate documentation included with each download of InstallBuilder.&lt;br /&gt;&lt;br /&gt;You can also watch the following video, that displays the needed steps:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 0px auto;" align="center"&gt;&lt;br /&gt;&lt;object width="500" height="375"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WLfYVIqEn60&amp;amp;hl=en&amp;amp;fs=1&amp;amp;ap=%2526fmt%3D22"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="allowNetworking" value="all" &gt;&lt;embed src="http://www.youtube.com/v/WLfYVIqEn60&amp;amp;hl=en&amp;amp;fs=1&amp;amp;ap=%2526fmt%3D22" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" allowscriptaccess="always" allowfullscreen="true" allowNetworking="all" height="375" width="500"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-61064854194505054?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/61064854194505054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=61064854194505054' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/61064854194505054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/61064854194505054'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/07/how-to-use-autoupdater-in.html' title='How to Use the AutoUpdater in InstallBuilder'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_NAHlhQTNQmw/SkyPnf-2qDI/AAAAAAAAAF0/YGXr7dz7oFo/s72-c/welcome-auto-update.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-2819212613014851180</id><published>2009-07-01T00:43:00.000-07:00</published><updated>2009-09-25T01:30:48.971-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='custom stacks'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='components'/><title type='text'>How to Add Components and Make them Optional</title><content type='html'>BitRock InstallBuilder allows you to create cross platform installers that make it easy for end users to install your software. Though users are often presented with a simple 5-click process, the software bundled inside and its configuration are typically very complex and difficult to set up manually. Examples of this are posted on &lt;a href="http://www.bitnami.org/"&gt;BitNami.org&lt;/a&gt;, where stacks like Redmine, Alfresco or KnowledgeTree, which are fairly complex to install manually, can be installed in minutes thanks to installers that automate the process.&lt;br /&gt;&lt;br /&gt;All of the applications available via BitNami have many different dependencies, such as: libraries, databases, web servers, programming languages, run-times, etc. Apart from that, each of them has to be configured a certain way and then all of the pieces need to be integrated to work together. The installation process gets even more complicated if you want to make those 'modules' optional and allow the end user choose which ones should be installed and how they should be configured. BitRock InstallBuilder's components make the task easier.&lt;br /&gt;&lt;br /&gt;&lt;font style="font-weight: bold;"&gt;What is a Component?&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;You can think of a component as a 'black box' you use to simplify the way you build the installer. It is kind of a partial installer inside the primary installer that only applies to a subset of the software you are packaging (such as Apache, MySQL, etc).  This makes it very easy to re-use pieces of your installer and add and remove them as necessary. You can bundle files within components and add rules, scripts, actions, variables or parameter pages (which are used to ask the user how they want to configure that piece of software). Various components are then bundled inside the primary installer to present end users with a complete package. If you are familiar with &lt;a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself"&gt;DRY&lt;/a&gt; (Do not Repeat Yourself) or KISS (Keep It Simple Stupid) terms, then InstallBuilder components will surely make you happy.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;font style="font-weight: bold;"&gt;How to Add Components&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;The InstallBuilder demo project comes with a default component. It is important to understand that BitRock InstallBuilder is very component-oriented - even when you create a very simple installer, you will probably have at least one component.&lt;br /&gt;&lt;br /&gt;Once you have InstallBuilder running in the GUI mode, go to 'Files' or the 'Advanced' section. All available components are displayed there. There are two ways to add a new one:&lt;br /&gt;&lt;br /&gt;- From the &lt;font style="font-style: italic;"&gt;'Files'&lt;/font&gt; section: click &lt;font style="font-style: italic;"&gt;'New Component'&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;- From the &lt;font style="font-style: italic;"&gt;'Advanced'&lt;/font&gt; section: select &lt;font style="font-style: italic;"&gt;'Components'&lt;/font&gt; and click &lt;font style="font-style: italic;"&gt;'add'&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;The window shown below should be on your screen.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SksgV_3kG7I/AAAAAAAAAFM/fFma-1moJ04/s1600-h/installer-component-options.png"&gt;&lt;img style="border: 1px solid silver; margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 242px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SksgV_3kG7I/AAAAAAAAAFM/fFma-1moJ04/s400/installer-component-options.png" alt="" id="BLOGGER_PHOTO_ID_5353408144353794994" border="0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here, you specify the three primary options:&lt;br /&gt;&lt;br /&gt;&lt;font style="font-style: italic;"&gt;'Install by default'&lt;/font&gt;: The component will be selected by default.&lt;br /&gt;&lt;font style="font-style: italic;"&gt;'Can be edited':&lt;/font&gt;  The end user is able to select or deselect the component in the Component Selection Window.&lt;br /&gt;&lt;font style="font-style: italic;"&gt;'Show'&lt;/font&gt;: The component will be shown in the Component Selection Window.&lt;br /&gt;&lt;br /&gt;You can do the same by editing the 'project.xml' file and adding the following snippet of XML:&lt;br /&gt;&lt;pre style="white-space: pre-wrap; font-size: 12px; color: grey;"&gt;&lt;br /&gt;&amp;lt;componentList&amp;gt;&lt;br /&gt;     ...&lt;br /&gt;     &amp;lt;component&amp;gt;&lt;br /&gt;         &amp;lt;name&amp;gt;componentabc&amp;lt;/name&amp;gt;&lt;br /&gt;         &amp;lt;description&amp;gt;Component ABC&amp;lt;/description&amp;gt;&lt;br /&gt;         &amp;lt;canBeEdited&amp;gt;1&amp;lt;/canBeEdited&amp;gt;&lt;br /&gt;         &amp;lt;detailedDescription&amp;gt;simple description for the component ABC&amp;lt;/detailedDescription&amp;gt;&lt;br /&gt;         &amp;lt;selected&amp;gt;0&amp;lt;/selected&amp;gt;&lt;br /&gt;         &amp;lt;shouldPackRuleEvaluationLogic&amp;gt;or&amp;lt;/shouldPackRuleEvaluationLogic&amp;gt;&lt;br /&gt;         &amp;lt;show&amp;gt;1&amp;lt;/show&amp;gt;&lt;br /&gt;     &amp;lt;/component&amp;gt;&lt;br /&gt;     ...&lt;br /&gt;&amp;lt;/componentList&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;People usually associate installer components with a window where the user can select or deselect software to be installed on their machine. This window is not shown by default in the case of InstallBuilder. Very often, you use components to make your installers well organized, clean and your XML code easier to reuse. If you want to show this window during installation, go to the &lt;font style="font-style: italic;"&gt;'Advanced'&lt;/font&gt; section, select &lt;font style="font-style: italic;"&gt;'project'&lt;/font&gt;, click &lt;font style="font-style: italic;"&gt;'More'&lt;/font&gt;, select &lt;font style="font-style: italic;"&gt;'Installation'&lt;/font&gt; in a new window and then &lt;font style="font-style: italic;"&gt;'Allow Component Selection'&lt;/font&gt;..&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/SksgWLYogCI/AAAAAAAAAFU/0Pfhlq-Rqls/s1600-h/installer-allow-component-selection.png"&gt;&lt;img style="border: 1px solid silver; margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 121px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/SksgWLYogCI/AAAAAAAAAFU/0Pfhlq-Rqls/s400/installer-allow-component-selection.png" alt="" id="BLOGGER_PHOTO_ID_5353408147445284898" border="0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can do the same by editing your xml file:&lt;br /&gt;&lt;pre&gt;&amp;lt;allowComponentSelection&amp;gt;1&amp;lt;/allowComponentSelection&amp;gt;&lt;/pre&gt;&lt;br /&gt;and during installation the following window will be displayed:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/SkshQsUvawI/AAAAAAAAAFc/_FR9wMrkgrg/s1600-h/installer-component-show.png"&gt;&lt;img style="border: 1px solid silver; margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 261px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/SkshQsUvawI/AAAAAAAAAFc/_FR9wMrkgrg/s400/installer-component-show.png" alt="" id="BLOGGER_PHOTO_ID_5353409152719743746" border="0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;font style="font-weight: bold;"&gt;Summary&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;As we have mentioned at the beginning of this post, components are like sub-installers. Inside them, you can bundle part of your application files, configuration, scripts, etc. Try to design your components in such a way that they can be reused in the future. Almost all InstallBuilder functionality, such as parameter pages, action lists, and rule lists are available for components:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/Sksh2wL_a5I/AAAAAAAAAFk/10MO_7sN0eQ/s1600-h/installer-all-available-for-components.png"&gt;&lt;img style="border: 1px solid silver; margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 296px; height: 273px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/Sksh2wL_a5I/AAAAAAAAAFk/10MO_7sN0eQ/s400/installer-all-available-for-components.png" alt="" id="BLOGGER_PHOTO_ID_5353409806591814546" border="0"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Additionally, you can place your components inside separate files and then include them in the main file:&lt;br /&gt;&lt;pre style="white-space: pre-wrap; font-size: 12px; color: grey;"&gt;&lt;br /&gt;&amp;lt;componentList&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;include file="component_abc.xml"/&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;/componentList&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;... but it is a topic for another article.&lt;br /&gt;&lt;br /&gt;You can find more information about components in our online &lt;a href="http://support.bitrock.com/"&gt;knowledge base&lt;/a&gt;. Here are a few articles that may be of interest:&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://support.bitrock.com/article/how-do-components-work-in-installbuilder"&gt;http://support.bitrock.com/article/how-do-components-work-in-installbuilder&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://support.bitrock.com/article/does-installbuilder-support-component-selection"&gt;http://support.bitrock.com/article/does-installbuilder-support-component-selection&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://support.bitrock.com/article/is-there-a-command-line-option-for-component-selection"&gt;http://support.bitrock.com/article/is-there-a-command-line-option-for-component-selection&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://support.bitrock.com/article/what-are-the-components-of-a-rulelist"&gt;http://support.bitrock.com/article/what-are-the-components-of-a-rulelist&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We have also made a video demonstrating this procedure:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 0px auto;" align="center"&gt;&lt;br /&gt;&lt;object classid="clasid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/CD_jjq9uarI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;ap=%2526fmt%3D18"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="allowNetworking" value="all" &gt;&lt;embed src="http://www.youtube.com/v/CD_jjq9uarI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;ap=%2526fmt%3D18" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" allowscriptaccess="always" allowfullscreen="true" allowNetworking="all" height="360" width="480"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-2819212613014851180?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/2819212613014851180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=2819212613014851180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2819212613014851180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2819212613014851180'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/07/how-to-add-components-and-make-them.html' title='How to Add Components and Make them Optional'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_NAHlhQTNQmw/SksgV_3kG7I/AAAAAAAAAFM/fFma-1moJ04/s72-c/installer-component-options.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8716022029928724647</id><published>2009-06-16T00:51:00.000-07:00</published><updated>2009-09-25T01:36:29.195-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='installer'/><title type='text'>How To Integrate Bitrock InstallBuilder with Eclipse</title><content type='html'>Did you know that it is possible to integrate InstallBuilder into your development environment?&lt;br /&gt;&lt;br /&gt;You may already be familiar with the advanced GUI builder that was added in InstallBuilder 6. You can access most InstallBuilder features from the GUI, so you can develop complex installers without writing a line of code. However, there are situations in which that is not the ideal way to work with InstallBuilder. In addition to the GUI builder, you can work directly with the XML project file or interact with the tool using the command line interface. Both the XML project file and the command line builder interface turn InstallBuilder into a powerful development tool that can be integrated into your development environment.&lt;br /&gt;&lt;br /&gt;There are a variety of Integrated Development Environments (IDEs) that support functions such as source code editing, compilation, automation and version control. You can also integrate the packaging functionality that BitRock InstallBuilder provides because most IDEs can be configured to use external tools.&lt;br /&gt;&lt;br /&gt;In this article, we'll explain how to configure Eclipse to package your software with InstallBuilder. The configuration with other IDEs would be similar to this. This article is focused only on the basics - more complex configuration can be done to further customize your environment.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Getting BitRock InstallBuilder&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To get started, you need to have InstallBuilder installed on your system. You can download the latest version from &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;http://installbuilder.bitrock.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To install &lt;a href="http://installbuilder.bitrock.com/index.html"&gt;InstallBuilder&lt;/a&gt;, you can either click through the steps presented by the GUI installation wizard or you can run the installer in unattended mode.  In this case, we'll install it in unattended mode. Once you have downloaded the edition you'd like to use, you just need to execute from a command line console:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-size:13;color:grey;"  &gt;$ installbuilder-enterprise-6.1.0-linux-installer.bin --mode unattended --prefix /path/to/installation/directory&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Creating a demo project in Eclipse&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you don't already have Eclipse installed in your system you can get it and the installation instructions from &lt;a href="http://www.eclipse.org/"&gt;http://www.eclipse.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once it is installed, open it and go to [File tab --&gt; New --&gt; Project]. You will be prompted to select a resource, select [General --&gt; Project]. In our example we'll use 'demo' as name of the project.&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 0px auto;" align="center"&gt;&lt;br /&gt;&lt;a style="padding-right: 20px;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/Sjdj8s5jx8I/AAAAAAAAAAU/qo_O2ERdij4/s1600-h/general_project.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); cursor: pointer; width: 225px; height: 215px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/Sjdj8s5jx8I/AAAAAAAAAAU/qo_O2ERdij4/s320/general_project.png" alt="" id="BLOGGER_PHOTO_ID_5347852977021634498" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/Sjdk4XzXspI/AAAAAAAAAAc/JNSw7faQ0lo/s1600-h/project_name.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); cursor: pointer; width: 225px; height: 215px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/Sjdk4XzXspI/AAAAAAAAAAc/JNSw7faQ0lo/s320/project_name.png" alt="" id="BLOGGER_PHOTO_ID_5347854002150683282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;If you don't see the screen below, you may want to enable the navigator view. To do so, go to the Window tab --&gt; ShowView and look for the 'Navigator' and 'Console' views.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SjdxiI0DkNI/AAAAAAAAABE/9a1U_LtLxV4/s1600-h/navigator_view.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 285px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SjdxiI0DkNI/AAAAAAAAABE/9a1U_LtLxV4/s400/navigator_view.png" alt="" id="BLOGGER_PHOTO_ID_5347867913821065426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To demonstrate the integration, we'll build one of the demo installers that are bundled in InstallBuilder. Let's use the example for the parameter screens. Import the project file parameters_example.xml that you can find in &amp;lt;installbuilder-installation-directory&amp;gt;/projects/examples/parameters.&lt;br /&gt;&lt;br /&gt;To import a file in Eclipse,  right-click on the project name and select [Import]. Then select [General --&gt; File System] in the window that appears and navigate through your file system to select the XML project file, docs and img folders.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/SjdzesElSPI/AAAAAAAAABs/iJjCeiq8las/s1600-h/import_example.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 400px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/SjdzesElSPI/AAAAAAAAABs/iJjCeiq8las/s400/import_example.png" alt="" id="BLOGGER_PHOTO_ID_5347870053589403890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As you can see, the source of InstallBuilder is an XML file.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_NAHlhQTNQmw/Sjdze9mvHeI/AAAAAAAAAB0/YhyWl6LCIHU/s1600-h/xml_vew.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 297px;" src="http://4.bp.blogspot.com/_NAHlhQTNQmw/Sjdze9mvHeI/AAAAAAAAAB0/YhyWl6LCIHU/s400/xml_vew.png" alt="" id="BLOGGER_PHOTO_ID_5347870058296057314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configuring Eclipse to build an Installer with InstallBuilder&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Now we are going to configure InstallBuilder as an External Tool. Go to [Run tab --&gt; External Tools --&gt; External Tools Configuration].&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 0px auto;" align="center"&gt;&lt;br /&gt;&lt;a style="padding-right: 20px;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_NAHlhQTNQmw/Sjd1jXcbd3I/AAAAAAAAACc/jLetkwAeN-Y/s1600-h/external_tool.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); margin: 0pt 10px 10px 0pt; cursor: pointer; width: 210px; height: 168px;" src="http://2.bp.blogspot.com/_NAHlhQTNQmw/Sjd1jXcbd3I/AAAAAAAAACc/jLetkwAeN-Y/s320/external_tool.png" alt="" id="BLOGGER_PHOTO_ID_5347872332974880626" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/Sjd1wy5ghbI/AAAAAAAAACk/mnxNWWm-90w/s1600-h/external_tool_new.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); margin: 0pt 0pt 10px 10px; cursor: pointer; width: 210px; height: 168px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/Sjd1wy5ghbI/AAAAAAAAACk/mnxNWWm-90w/s320/external_tool_new.png" alt="" id="BLOGGER_PHOTO_ID_5347872563682903474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Right-click on [Program] and select [New]. Configure Eclipse by pointing it to the InstallBuilder builder tool, selecting the current project as the working directory and adding the appropriate arguments (build projectfile.xml platform). In our example, we need to use:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-size:13;color:grey;"  &gt;build parameters_example.xml linux&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/Sjd3LLA9l6I/AAAAAAAAAC0/644sbFQgk44/s1600-h/external_tool_build.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 320px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/Sjd3LLA9l6I/AAAAAAAAAC0/644sbFQgk44/s400/external_tool_build.png" alt="" id="BLOGGER_PHOTO_ID_5347874116344846242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We can add it to 'Favorites' so this functionality can easily be accessed. Go to the Run tab --&gt; External Tools --&gt; Organize Favorites and select the configuration we have just created:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/Sjd3K58cWLI/AAAAAAAAACs/T9zulsDc1v4/s1600-h/favorites.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 320px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/Sjd3K58cWLI/AAAAAAAAACs/T9zulsDc1v4/s400/favorites.png" alt="" id="BLOGGER_PHOTO_ID_5347874111762487474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now in  [Run tab --&gt; External Tools] you should have the [Build Installer] option.&lt;br /&gt;&lt;br /&gt;Now it's time to test if our configuration is correct. Go to [Run tab --&gt; External Tools --&gt; Build Installer] and it will start to generate the installer for our demo application. If you have the 'Console' view enabled, you will see the installer being generated:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_NAHlhQTNQmw/Sjd4q99c_uI/AAAAAAAAAC8/GdJ5gkuS99c/s1600-h/output.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 185px;" src="http://1.bp.blogspot.com/_NAHlhQTNQmw/Sjd4q99c_uI/AAAAAAAAAC8/GdJ5gkuS99c/s400/output.png" alt="" id="BLOGGER_PHOTO_ID_5347875762107907810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configuring Eclipse to Test the Generated Installer&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You can now test your installer. In the same way you added InstallBuilder as an External Tool, you can add the generated installer and launch it.  Below, you can see the configuration for the new External Tool. Remember to add it to your Favorites to make it easier to access.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_NAHlhQTNQmw/Sjd5PJ_thJI/AAAAAAAAADE/-Sb36lQfgmo/s1600-h/run_installer.png"&gt;&lt;img style="border: 2px solid rgb(99, 135, 171); margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 320px;" src="http://3.bp.blogspot.com/_NAHlhQTNQmw/Sjd5PJ_thJI/AAAAAAAAADE/-Sb36lQfgmo/s400/run_installer.png" alt="" id="BLOGGER_PHOTO_ID_5347876383813895314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Give it a try! You will see your installer being launched from Eclipse.&lt;br /&gt;&lt;br /&gt;Before we wrap up, you know that InstallBuilder is a cross-platform installer, right? And that you can build installers for different platforms without the need to switch your development environment? Yes, you can build installers for Linux, OS X and Windows all from a Linux machine. If you have your development environment on Linux and you have 'wine' installed, you will also able to test your Windows installer from your development environment.&lt;br /&gt;&lt;br /&gt;We have also made a video that shows how to integrate InstallBuilder with Eclipse:&lt;br /&gt;&lt;br /&gt;&lt;div style="margin: 0px auto;" align="center"&gt;&lt;br /&gt;&lt;object classid="clasid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="480" height="360"&gt;&lt;param name="movie" value="http://www.youtube.com/v/oNrgX4ND3QI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;ap=%2526fmt%3D18"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/oNrgX4ND3QI&amp;amp;hl=en&amp;amp;fs=1&amp;amp;ap=%2526fmt%3D18" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" allowscriptaccess="always" allowfullscreen="true" width="480" height="360"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8716022029928724647?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8716022029928724647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8716022029928724647'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/06/how-to-integrate-bitrock-installbuilder.html' title='How To Integrate Bitrock InstallBuilder with Eclipse'/><author><name>Santiago</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_NAHlhQTNQmw/Sjdj8s5jx8I/AAAAAAAAAAU/qo_O2ERdij4/s72-c/general_project.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-1777502748112936359</id><published>2009-06-09T20:28:00.000-07:00</published><updated>2009-06-10T09:36:08.901-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javaone'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><title type='text'>Great Week at JavaOne</title><content type='html'>&lt;font size="2"&gt;We had a great week last week at &lt;a href="http://java.sun.com/javaone/"&gt;JavaOne&lt;/a&gt; in San Francisco. It was great to meet a number of &lt;a href="http://installbuilder.bitrock.com/"&gt;InstallBuilder&lt;/a&gt; customers in person. We also had an opportunity to learn about several cool new startups, including  &lt;a href="http://www.jrapid.com/"&gt;JRapid&lt;/a&gt;, which has developed a tool that speeds up AJAX application development, &lt;a href="http://scrumninja.com/scrum_software"&gt;ScrumNinja, &lt;/a&gt;which offers a slick web app for managing Scrum, &lt;a href="http://www.micello.com/"&gt;Micello&lt;/a&gt;, which has a cool &lt;/font&gt;&lt;font color="#000000" size="2"&gt;indoor location-based-service on mobile devices and &lt;a href="http://www.agileitinc.com/"&gt;AgileIT&lt;/a&gt;, which makes it easy to add web services to your application.&lt;br /&gt;&lt;br /&gt;I also gave a lightning talk on how BitRock worked with Logical Awesome to develop an &lt;a href="http://bitrock.com/github-bitrock-installlbuilder-stack.html"&gt;on-site version of GitHub &lt;/a&gt;that is easy to install. The video should be posted soon and I'll be sure to provide a link once it is available.&lt;br /&gt;&lt;br /&gt;As promised, we raffled off an EeePC, which was won by Frank from New York. Congratulations, Frank!&lt;br /&gt;&lt;/font&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-1777502748112936359?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/1777502748112936359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=1777502748112936359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1777502748112936359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1777502748112936359'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/06/great-week-at-javaone.html' title='Great Week at JavaOne'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-5283822999550766180</id><published>2009-06-09T16:40:00.000-07:00</published><updated>2009-09-25T01:46:10.151-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='customers'/><category scheme='http://www.blogger.com/atom/ns#' term='github'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>GitHub On-Premise Version Now Available</title><content type='html'>&lt;font size="2"&gt;Last week, we &lt;a href="http://bitrock.com/about_news_github_bitrock.html"&gt;announced&lt;/a&gt; the release of a customer's new product, &lt;a href="http://fi.github.com/"&gt;GitHub:Firewall Install&lt;/a&gt;. Congratulations to our friends at Logical Awesome, the makers of &lt;a href="http://www.github.com/"&gt;Github&lt;/a&gt;, for the very successful launch of their on-premise edition!&lt;br /&gt;&lt;br /&gt;If you're not already familiar with it, GitHub is  a wildly popular web application for social coding, with over 80,000 developers already using the site. Built on top of the Git distributed version control system, it makes it easy for distributed teams to collaborate on software development projects. &lt;/font&gt;  &lt;p&gt;&lt;font size="2"&gt;Until now, GitHub was only available as a service, which made it inaccessible to companies that will not allow their code to be hosted outside of the corporate firewall for security reasons. After seeing increasing demand for an on-site version of their product, the Logical Awesome team approached BitRock to package the new version,&lt;font style="text-decoration: underline;"&gt;&lt;/font&gt; GitHub:FI, for easy installation at customer sites.&lt;br /&gt;&lt;font style="text-decoration: underline;"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;BitRock developed a completely self-contained installer for GitHub:FI that enables new users to get up and running in just a few mouse clicks. The installer contains all of the software required to run GitHub: Ruby on Rails, JRuby, Solr, Java, Python, Perl, Git, Pygments, OpenSSL and over 30 additional components. It completely automates the installation and configuration process, so no manual setup steps are required. Logical Awesome is also taking advantage of the &lt;a href="http://bitrock.com/products_network_overview.html"&gt;BitRock Network Service&lt;/a&gt; to better inform product development and support. &lt;/font&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font style="font-style: italic;"&gt;Want BitRock to make your software that easy to install?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font size="2"&gt;Whether your software is built on PHP, Rails, Java, Perl or Python, we can deliver a complete package that enables even non-technical end users to have it up and running in minutes on Windows, Linux, OS X or Solaris. To learn more, &lt;a href="mailto:sales@bitrock.com"&gt;contact&lt;/a&gt; our sales team.&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-5283822999550766180?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/5283822999550766180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=5283822999550766180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5283822999550766180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5283822999550766180'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/06/github-on-premise-version-now-available.html' title='GitHub On-Premise Version Now Available'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-6210059072268257606</id><published>2009-06-08T15:04:00.000-07:00</published><updated>2009-11-12T01:11:55.787-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='howto'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>How to Create Custom Pages with InstallBuilder</title><content type='html'>&lt;span&gt;This week, we are kicking off a weekly series of 'how-to' posts for InstallBuilder, our &lt;a href="http://installbuilder.bitrock.com/"&gt;crossplatform installation tool&lt;/a&gt;. Each how-to will include detailed instructions, as well as downloadable XML examples and (in most cases) a video demonstrating the process. In this first installment, we're going to cover how to create custom pages. InstallBuilder allows you to create multiple parameter pages: stringParameter, choiceParameter, booleanParameter... But what if you want a more customized page? Here is where parameterGroups come into play. parameterGroups allow you to define a list of parameters to be displayed in the same page and how to display them. This tutorial will be divided in 3 steps. First, we will design the page schema. In the second step, we will apply validations to fields. In the last step, we will perform actions based upon the user input.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First step:&lt;br /&gt;&lt;br /&gt;For this example, we are going to collect information to configure a web application. The required fields will be:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span &gt;Username (stringParameter): The administration username.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;Password (passwordParameter): The administrator password&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;IP Address &amp;amp; port (stringParameter): The IP and port in which the server will be listening.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;DBMS server (choiceParameter): Either MySQL or PostgreSQL&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span &gt;Basic or advanced installation (booleanParameter): In advanced mode, we can collect additional information.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span &gt;Lets create a basic template of the page. In this code, we have listed the parameters inside an &amp;lt;actionGroup&amp;gt;:&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span &gt;&lt;br /&gt;&amp;lt;project&amp;gt;&lt;br /&gt;&amp;lt;shortName&amp;gt;sample&amp;lt;/shortName&amp;gt;&lt;br /&gt;&amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;&lt;br /&gt;&amp;lt;parameterList&amp;gt;&lt;br /&gt;&amp;lt;parameterGroup&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;configuration&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Configuration&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;explanation&amp;gt;Configuration page&amp;lt;/explanation&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;&amp;lt;parameterList&amp;gt;&lt;br /&gt;   &amp;lt;stringParameter&amp;gt;&lt;br /&gt;       &amp;lt;name&amp;gt;username&amp;lt;/name&amp;gt;&lt;br /&gt;       &amp;lt;description&amp;gt;Username&amp;lt;/description&amp;gt;&lt;br /&gt;       &amp;lt;explanation&amp;gt;Administrator account username&amp;lt;/explanation&amp;gt;&lt;br /&gt;       &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;       &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;       &amp;lt;allowEmptyValue&amp;gt;1&amp;lt;/allowEmptyValue&amp;gt;&lt;br /&gt;       &amp;lt;width&amp;gt;30&amp;lt;/width&amp;gt;&lt;br /&gt;   &amp;lt;/stringParameter&amp;gt;&lt;br /&gt;   &amp;lt;passwordParameter&amp;gt;&lt;br /&gt;       &amp;lt;name&amp;gt;password&amp;lt;/name&amp;gt;&lt;br /&gt;       &amp;lt;description&amp;gt;Password&amp;lt;/description&amp;gt;&lt;br /&gt;       &amp;lt;explanation&amp;gt;Addministrator account password&amp;lt;/explanation&amp;gt;&lt;br /&gt;       &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;       &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;       &amp;lt;allowEmptyValue&amp;gt;1&amp;lt;/allowEmptyValue&amp;gt;&lt;br /&gt;       &amp;lt;descriptionRetype&amp;gt;&amp;lt;/descriptionRetype&amp;gt;&lt;br /&gt;       &amp;lt;width&amp;gt;20&amp;lt;/width&amp;gt;&lt;br /&gt;   &amp;lt;/passwordParameter&amp;gt;&lt;br /&gt;   &amp;lt;stringParameter&amp;gt;&lt;br /&gt;       &amp;lt;name&amp;gt;ipaddress&amp;lt;/name&amp;gt;&lt;br /&gt;       &amp;lt;description&amp;gt;Web Server IP&amp;lt;/description&amp;gt;&lt;br /&gt;       &amp;lt;explanation&amp;gt;&amp;lt;/explanation&amp;gt;&lt;br /&gt;       &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;       &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;       &amp;lt;allowEmptyValue&amp;gt;1&amp;lt;/allowEmptyValue&amp;gt;&lt;br /&gt;       &amp;lt;width&amp;gt;30&amp;lt;/width&amp;gt;&lt;br /&gt;   &amp;lt;/stringParameter&amp;gt;&lt;br /&gt;   &amp;lt;stringParameter&amp;gt;&lt;br /&gt;       &amp;lt;name&amp;gt;port&amp;lt;/name&amp;gt;&lt;br /&gt;       &amp;lt;description&amp;gt;Web Server Port&amp;lt;/description&amp;gt;&lt;br /&gt;       &amp;lt;explanation&amp;gt;&amp;lt;/explanation&amp;gt;&lt;br /&gt;       &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;       &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;       &amp;lt;allowEmptyValue&amp;gt;1&amp;lt;/allowEmptyValue&amp;gt;&lt;br /&gt;       &amp;lt;width&amp;gt;30&amp;lt;/width&amp;gt;&lt;br /&gt;   &amp;lt;/stringParameter&amp;gt;&lt;br /&gt;   &amp;lt;booleanParameter&amp;gt;&lt;br /&gt;       &amp;lt;name&amp;gt;advancedconfig&amp;lt;/name&amp;gt;&lt;br /&gt;       &amp;lt;description&amp;gt;Enable advance&amp;lt;/description&amp;gt;&lt;br /&gt;       &amp;lt;explanation&amp;gt;Would you like to perform an advance installation?&amp;lt;/explanation&amp;gt;&lt;br /&gt;       &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;       &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;       &amp;lt;displayStyle&amp;gt;checkbox-left&amp;lt;/displayStyle&amp;gt;&lt;br /&gt;   &amp;lt;/booleanParameter&amp;gt;&lt;br /&gt;   &amp;lt;choiceParameter&amp;gt;&lt;br /&gt;       &amp;lt;name&amp;gt;dbmsserver&amp;lt;/name&amp;gt;&lt;br /&gt;       &amp;lt;description&amp;gt;DBMS&amp;lt;/description&amp;gt;&lt;br /&gt;       &amp;lt;explanation&amp;gt;Database server&amp;lt;/explanation&amp;gt;&lt;br /&gt;       &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;       &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;       &amp;lt;allowEmptyValue&amp;gt;1&amp;lt;/allowEmptyValue&amp;gt;&lt;br /&gt;       &amp;lt;displayType&amp;gt;combobox&amp;lt;/displayType&amp;gt;&lt;br /&gt;       &amp;lt;width&amp;gt;30&amp;lt;/width&amp;gt;&lt;br /&gt;       &amp;lt;optionList&amp;gt;&lt;br /&gt;           &amp;lt;option&amp;gt;&lt;br /&gt;               &amp;lt;description&amp;gt;MySQL server&amp;lt;/description&amp;gt;&lt;br /&gt;               &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;               &amp;lt;text&amp;gt;MySQL&amp;lt;/text&amp;gt;&lt;br /&gt;               &amp;lt;value&amp;gt;mysql&amp;lt;/value&amp;gt;&lt;br /&gt;           &amp;lt;/option&amp;gt;&lt;br /&gt;           &amp;lt;option&amp;gt;&lt;br /&gt;               &amp;lt;description&amp;gt;PostgreSQL server&amp;lt;/description&amp;gt;&lt;br /&gt;               &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt;               &amp;lt;text&amp;gt;PostgreSQL&amp;lt;/text&amp;gt;&lt;br /&gt;               &amp;lt;value&amp;gt;postgres&amp;lt;/value&amp;gt;&lt;br /&gt;           &amp;lt;/option&amp;gt;&lt;br /&gt;       &amp;lt;/optionList&amp;gt;&lt;br /&gt;   &amp;lt;/choiceParameter&amp;gt;&lt;br /&gt;&amp;lt;/parameterList&amp;gt;&lt;br /&gt;&amp;lt;/parameterGroup&amp;gt;&lt;br /&gt;&amp;lt;/parameterList&amp;gt;&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span &gt;Then, build and run.&lt;br /&gt;&lt;br /&gt;Image 1:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Db9iUBipxmo/Si2V1Px4m_I/AAAAAAAAABw/SNaXpIXrp50/s1600-h/article-01.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 297px;" src="http://4.bp.blogspot.com/_Db9iUBipxmo/Si2V1Px4m_I/AAAAAAAAABw/SNaXpIXrp50/s400/article-01.bmp" alt="" id="BLOGGER_PHOTO_ID_5345093074760014834" border="0" /&gt;&lt;/a&gt;&lt;span &gt;&lt;br /&gt;This is obviously not the expected result. We can modify the height of the page but the result is not ideal:&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span &gt;&lt;br /&gt;&amp;lt;project&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;height&amp;gt;400&amp;lt;/height&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;/project&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span &gt;&lt;br /&gt;&lt;br /&gt;Image 2:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Db9iUBipxmo/Si2WsFce2qI/AAAAAAAAAB4/ZHNElCH_qVU/s1600-h/article-02.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 388px; height: 400px;" src="http://2.bp.blogspot.com/_Db9iUBipxmo/Si2WsFce2qI/AAAAAAAAAB4/ZHNElCH_qVU/s400/article-02.bmp" alt="" id="BLOGGER_PHOTO_ID_5345094016878697122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As we said, this is better but still not the best it could be.&lt;br /&gt;&lt;br /&gt;Using nested parameterGroups, we can use the &amp;lt;orientation&amp;gt; tag to modify the organization of the default parameters inside the parameter group from "vertical" to "horizontal". Also, nested parameter groups allow us to group related fields (for example, username and password):&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span &gt;&lt;br /&gt;&amp;lt;parameterGroup&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;configuration&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Configuration&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;explanation&amp;gt;&amp;lt;/explanation&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;&amp;lt;parameterList&amp;gt;&lt;br /&gt;&amp;lt;parameterGroup&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;adminaccount&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;explanation&amp;gt;Admin Account&amp;lt;/explanation&amp;gt;&lt;br /&gt;&amp;lt;orientation&amp;gt;horizontal&amp;lt;/orientation&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;&amp;lt;parameterList&amp;gt;&lt;br /&gt;  &amp;lt;stringParameter&amp;gt;&lt;br /&gt;    &amp;lt;name&amp;gt;username&amp;lt;/name&amp;gt;&lt;br /&gt;    &amp;lt;description&amp;gt;Username&amp;lt;/description&amp;gt;&lt;br /&gt;    &amp;lt;explanation&amp;gt;&amp;lt;/explanation&amp;gt;&lt;br /&gt;    &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;    &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;    &amp;lt;allowEmptyValue&amp;gt;1&amp;lt;/allowEmptyValue&amp;gt;&lt;br /&gt;    &amp;lt;width&amp;gt;20&amp;lt;/width&amp;gt;&lt;br /&gt; &amp;lt;/stringParameter&amp;gt;&lt;br /&gt; &amp;lt;passwordParameter&amp;gt;&lt;br /&gt;    &amp;lt;name&amp;gt;password&amp;lt;/name&amp;gt;&lt;br /&gt;    &amp;lt;description&amp;gt;Password&amp;lt;/description&amp;gt;&lt;br /&gt;    &amp;lt;explanation&amp;gt;&amp;lt;/explanation&amp;gt;&lt;br /&gt;    &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;    &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;    &amp;lt;allowEmptyValue&amp;gt;1&amp;lt;/allowEmptyValue&amp;gt;&lt;br /&gt;    &amp;lt;descriptionRetype&amp;gt;&amp;lt;/descriptionRetype&amp;gt;&lt;br /&gt;    &amp;lt;width&amp;gt;20&amp;lt;/width&amp;gt;&lt;br /&gt; &amp;lt;/passwordParameter&amp;gt;&lt;br /&gt;&amp;lt;/parameterList&amp;gt;&lt;br /&gt;&amp;lt;/parameterGroup&amp;gt;&lt;br /&gt;&amp;lt;parameterGroup&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;serveraddres&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;explanation&amp;gt;Server Address&amp;lt;/explanation&amp;gt;&lt;br /&gt;&amp;lt;orientation&amp;gt;horizontal&amp;lt;/orientation&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;&amp;lt;parameterList&amp;gt;&lt;br /&gt;&amp;lt;stringParameter&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;ipaddress&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt;IP and Port&amp;lt;/description&amp;gt;&lt;br /&gt;  &amp;lt;explanation&amp;gt;&amp;lt;/explanation&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;  &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;  &amp;lt;allowEmptyValue&amp;gt;1&amp;lt;/allowEmptyValue&amp;gt;&lt;br /&gt;  &amp;lt;width&amp;gt;30&amp;lt;/width&amp;gt;&lt;br /&gt;&amp;lt;/stringParameter&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;stringParameter&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;port&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;description&amp;gt;:&amp;lt;/description&amp;gt;&lt;br /&gt;  &amp;lt;explanation&amp;gt;&amp;lt;/explanation&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;  &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;  &amp;lt;allowEmptyValue&amp;gt;1&amp;lt;/allowEmptyValue&amp;gt;&lt;br /&gt;  &amp;lt;width&amp;gt;5&amp;lt;/width&amp;gt;&lt;br /&gt;&amp;lt;/stringParameter&amp;gt;&lt;br /&gt;&amp;lt;/parameterList&amp;gt;&lt;br /&gt;&amp;lt;/parameterGroup&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;booleanParameter&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;advancedconfig&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;Enable advance&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;explanation&amp;gt;Would you like to perform an advance installation?&amp;lt;/explanation&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;&amp;lt;displayStyle&amp;gt;checkbox-left&amp;lt;/displayStyle&amp;gt;&lt;br /&gt;&amp;lt;/booleanParameter&amp;gt;&lt;br /&gt;&amp;lt;choiceParameter&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;dbmsserver&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;DBMS&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;explanation&amp;gt;Database server&amp;lt;/explanation&amp;gt;&lt;br /&gt;&amp;lt;value&amp;gt;&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;&lt;br /&gt;&amp;lt;allowEmptyValue&amp;gt;1&amp;lt;/allowEmptyValue&amp;gt;&lt;br /&gt;&amp;lt;displayType&amp;gt;combobox&amp;lt;/displayType&amp;gt;&lt;br /&gt;&amp;lt;width&amp;gt;30&amp;lt;/width&amp;gt;&lt;br /&gt;&amp;lt;optionList&amp;gt;&lt;br /&gt;&amp;lt;option&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;MySQL server&amp;lt;/description&amp;gt;&lt;br /&gt; &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt; &amp;lt;text&amp;gt;MySQL&amp;lt;/text&amp;gt;&lt;br /&gt; &amp;lt;value&amp;gt;mysql&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;option&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;PostgreSQL server&amp;lt;/description&amp;gt;&lt;br /&gt; &amp;lt;image&amp;gt;&amp;lt;/image&amp;gt;&lt;br /&gt; &amp;lt;text&amp;gt;PostgreSQL&amp;lt;/text&amp;gt;&lt;br /&gt; &amp;lt;value&amp;gt;postgres&amp;lt;/value&amp;gt;&lt;br /&gt;&amp;lt;/option&amp;gt;&lt;br /&gt;&amp;lt;/optionList&amp;gt;&lt;br /&gt;&amp;lt;/choiceParameter&amp;gt;&lt;br /&gt;&amp;lt;/parameterList&amp;gt;&lt;br /&gt;&amp;lt;/parameterGroup&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span &gt;Image 3:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Db9iUBipxmo/Si2XNzzI3WI/AAAAAAAAACA/N1Jo4wxkK9c/s1600-h/article-03.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 337px;" src="http://3.bp.blogspot.com/_Db9iUBipxmo/Si2XNzzI3WI/AAAAAAAAACA/N1Jo4wxkK9c/s400/article-03.bmp" alt="" id="BLOGGER_PHOTO_ID_5345094596257439074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We now have the desired result.&lt;br /&gt;&lt;br /&gt;Let's continue to step 2, validations.&lt;br /&gt;&lt;br /&gt;Step 2: At this point, a user could leave some required fields blank or provide a nonnumeric value for the port. We need to validate the information provided and, in the event that it is not valid, ask for the information again.&lt;br /&gt;&lt;br /&gt;Username and password: We need a username, but we want to allow the password field to be  blank . We will include a pop-up to warn the user. To require a non-empty value, we just need to set &amp;lt;allowEmptyValue&amp;gt;0&amp;lt;/allowEmptyValue&amp;gt; in the desired parameter.  For more complex validations, such as launching a pop-up to warn the user, we need a &amp;lt;validationActionList&amp;gt;:&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span &gt;&lt;br /&gt;&amp;lt;passwordParameter&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;password&amp;lt;/name&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;!-- In a validationActionList you can execute any desired action --&amp;gt;&lt;br /&gt;&amp;lt;validationActionList&amp;gt;&lt;br /&gt;&amp;lt;showQuestion text="Are you sure you want to provide an empty password?" variable="continue" &amp;gt;&lt;br /&gt;&amp;lt;ruleList&amp;gt;&lt;br /&gt; &amp;lt;compareText text="${password}" logic="equals" value=""/&amp;gt;&lt;br /&gt;&amp;lt;/ruleList&amp;gt;&lt;br /&gt;&amp;lt;/showQuestion&amp;gt;&lt;br /&gt;&amp;lt;!-- The next_page built-in variable controls the intallation flow at runtime --&amp;gt; &lt;br /&gt;&amp;lt;setInstallerVariable name="next_page" value="configuration"&amp;gt;&lt;br /&gt;&amp;lt;ruleList&amp;gt;&lt;br /&gt; &amp;lt;compareText text="${continue}" logic="equals" value="no"/&amp;gt;&lt;br /&gt;&amp;lt;/ruleList&amp;gt;&lt;br /&gt;&amp;lt;/setInstallerVariable&amp;gt;&lt;br /&gt;&amp;lt;/validationActionList&amp;gt;&lt;br /&gt;&amp;lt;/passwordParameter&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span &gt;IP and port: We could do a lot of validations here, but lets limit them to require a pseudo valid IP (four three digit numbers separated by periods) and a valid port that is not in use.&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span&gt;&lt;br /&gt;&amp;lt;parameterGroup&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;serveraddres&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;explanation&amp;gt;Server Address&amp;lt;/explanation&amp;gt;&lt;br /&gt;&amp;lt;orientation&amp;gt;horizontal&amp;lt;/orientation&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;parameterList&amp;gt;&lt;br /&gt;&amp;lt;stringParameter&amp;gt;&lt;br /&gt; &amp;lt;name&amp;gt;ipaddress&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;IP and Port&amp;lt;/description&amp;gt;&lt;br /&gt; ...&lt;br /&gt; &amp;lt;validationActionList&amp;gt;&lt;br /&gt;     &amp;lt;setInstallerVariableFromRegEx text="${ipaddress}" pattern="^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$" substitution="valid" name="result"/&amp;gt;&lt;br /&gt;     &amp;lt;actionGroup&amp;gt;&lt;br /&gt;         &amp;lt;actionList&amp;gt;&lt;br /&gt;             &amp;lt;throwError text="This not seems to be a valid IP addres"/&amp;gt;&lt;br /&gt;         &amp;lt;/actionList&amp;gt;                       &lt;br /&gt;         &amp;lt;ruleList&amp;gt;&lt;br /&gt;             &amp;lt;compareText text="${result}" logic="does_not_equal" value="valid"/&amp;gt;&lt;br /&gt;         &amp;lt;/ruleList&amp;gt;&lt;br /&gt;     &amp;lt;/actionGroup&amp;gt;&lt;br /&gt; &amp;lt;/validationActionList&amp;gt;&lt;br /&gt;&amp;lt;/stringParameter&amp;gt;&lt;br /&gt;&amp;lt;stringParameter&amp;gt;&lt;br /&gt; &amp;lt;name&amp;gt;port&amp;lt;/name&amp;gt;&lt;br /&gt; &amp;lt;description&amp;gt;:&amp;lt;/description&amp;gt;&lt;br /&gt; ...&lt;br /&gt; &amp;lt;width&amp;gt;5&amp;lt;/width&amp;gt;&lt;br /&gt; &amp;lt;validationActionList&amp;gt;&lt;br /&gt;     &amp;lt;throwError text="Cannot bind to the selected port. Please choose another one."&amp;gt;&lt;br /&gt;         &amp;lt;ruleList&amp;gt;&lt;br /&gt;             &amp;lt;portTest condition="cannot_bind" port="${port}"/&amp;gt;&lt;br /&gt;         &amp;lt;/ruleList&amp;gt;&lt;br /&gt;     &amp;lt;/throwError&amp;gt;&lt;br /&gt; &amp;lt;/validationActionList&amp;gt;&lt;br /&gt;&amp;lt;/stringParameter&amp;gt;&lt;br /&gt;&amp;lt;/parameterList&amp;gt;&lt;br /&gt;&amp;lt;/parameterGroup&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span &gt;As the rest of the parameters are constrained by the installer and cannot contain incorrect values, we do not need to perform any more validations.&lt;br /&gt;&lt;br /&gt;Step 3:&lt;br /&gt;&lt;br /&gt;Now, once we have all the needed information and we are sure it is correct, we can perform some actions with it before the next page appears. For example, based on the "Advanced Installation" booleanParameter, we could make visible a by default hidden page.&lt;br /&gt;&lt;br /&gt;Lets assume the advance configuration is the installation directory. If the parameter is checked, the installation directory will be visible. Otherwise, it will not be displayed.&lt;br /&gt;&lt;br /&gt;&amp;lt;!-- the &amp;lt;ask&amp;gt; tag of a parameter controls if it will be shown or not. When a parameter&lt;br /&gt;is not shown its preShowPage and postShowPage won't be executed --&amp;gt;&lt;br /&gt;&amp;lt;directoryParameter&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;installdir&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;description&amp;gt;Installer.Parameter.installdir.description&amp;lt;/description&amp;gt;&lt;br /&gt;&amp;lt;explanation&amp;gt;Installer.Parameter.installdir.explanation&amp;lt;/explanation&amp;gt;&lt;br /&gt;&amp;lt;!-- The insertAfter and insertBefore tags define&lt;br /&gt;in which position a parameter will be shown --&amp;gt;&lt;br /&gt;&amp;lt;insertAfter&amp;gt;configuration&amp;lt;/insertAfter&amp;gt;&lt;br /&gt;&amp;lt;default&amp;gt;${platform_install_prefix}/${product_shortname}-${product_version}&amp;lt;/default&amp;gt;&lt;br /&gt;&amp;lt;ask&amp;gt;0&amp;lt;/ask&amp;gt;&lt;br /&gt;&amp;lt;/directoryParameter&amp;gt;&lt;br /&gt;&lt;br /&gt;As we have set by default &amp;lt;ask&amp;gt;0&amp;lt;/ask&amp;gt;, this parameter will be hidden and the user would be unable to change it.&lt;br /&gt;&lt;br /&gt;Getting back to our custom page, we could use the &amp;lt;postShowPageActionList&amp;gt; to show the installdir parameter:&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span&gt;&lt;br /&gt;&amp;lt;parameterGroup&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;configuration&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Configuration&amp;lt;/title&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;parameterList&amp;gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;/parameterList&amp;gt;&lt;br /&gt;&amp;lt;!-- Using the notation below we can modify any parameter property --&amp;gt;&lt;br /&gt;&amp;lt;postShowPageActionList&amp;gt;&lt;br /&gt;&amp;lt;setInstallerVariable name="project.parameter(installdir).ask" value="1" &amp;gt;&lt;br /&gt;&amp;lt;ruleList&amp;gt;&lt;br /&gt;  &amp;lt;isTrue value="${advancedconfig}"/&amp;gt;&lt;br /&gt;&amp;lt;/ruleList&amp;gt;&lt;br /&gt;&amp;lt;/setInstallerVariable&amp;gt;&lt;br /&gt;&amp;lt;/postShowPageActionList&amp;gt;&lt;br /&gt;&amp;lt;/parameterGroup&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span&gt;We now have a complete custom page.&lt;br /&gt;&lt;br /&gt;You can download the XML project file from the &lt;a href="http://installbuilder.bitrock.com/blog-resources/custom-pages.xml"&gt;InstallBuilder website&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We have also made a video demonstrating the process via the GUI:&lt;br /&gt;&lt;object classid="clasid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="480" height="360"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UxHXbj8vD3s&amp;amp;hl=en&amp;amp;fs=1&amp;amp;ap=%2526fmt%3D18"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/UxHXbj8vD3s&amp;amp;hl=en&amp;amp;fs=1&amp;amp;ap=%2526fmt%3D18" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" allowscriptaccess="always" allowfullscreen="true" width="480" height="360"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For an extensive list of rules and actions to use for custom pages, please refer to the InstallBuilder reference documentation. Also, these articles in our &lt;a href="http://support.bitrock.com/"&gt;KnowledgeBase&lt;/a&gt; provide additional information on the topics mentioned in the article:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;Parameters: &lt;a href="http://support.bitrock.com/article/how-do-i-ask-the-user-for-more-than-one-parameter-in-the-same-screen"&gt;How to ask the user for more than one parameter in the same screen&lt;/a&gt; &lt;a href="http://support.bitrock.com/article/how-can-i-arrange-parameters-horizontally"&gt;How to Arrange Parameters Horizontally&lt;/a&gt;, &lt;a href="http://support.bitrock.com/article/what-input-can-i-ask-the-user-for-during-installation"&gt;How to ask for different inputs during the installation process&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;Validations: &lt;a href="http://support.bitrock.com/article/how-can-i-validate-user-input"&gt;How to Validate User Input&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;About the next_page built-in variable: &lt;a href="http://support.bitrock.com/article/how-can-i-control-the-flow-of-the-pages"&gt;How to Control the Flow of Pages&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-6210059072268257606?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/6210059072268257606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=6210059072268257606' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6210059072268257606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6210059072268257606'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/06/how-to-create-custom-pages-with.html' title='How to Create Custom Pages with InstallBuilder'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Db9iUBipxmo/Si2V1Px4m_I/AAAAAAAAABw/SNaXpIXrp50/s72-c/article-01.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-1731953628977300184</id><published>2009-05-12T21:50:00.000-07:00</published><updated>2009-05-13T04:15:41.036-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='bitnami'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><title type='text'>BitRock Presenting at WhyFLOSS Madrid</title><content type='html'>In addition to &lt;a href="http://bitrock.blogspot.com/2009/05/get-100-off-your-javaone-pass.html"&gt;JavaOne&lt;/a&gt;, BitRock founder and CTO Daniel Lopez Ridruejo will be giving a talk on &lt;a href="http://www.bitnami.org/"&gt;BitNami&lt;/a&gt; at &lt;a href="http://www.whyfloss.com/es/conference/madrid09/"&gt;WhyFLOSS Madrid&lt;/a&gt;, a Spanish conference on open source software. If you're not familiar with it, the BitNami project provides popular web applications such as &lt;a href="http://bitnami.org/stack/dokuwiki"&gt;DokuWiki&lt;/a&gt;, &lt;a href="http://bitnami.org/stack/drupal"&gt;Drupal&lt;/a&gt;, &lt;a href="http://bitnami.org/stack/joomla"&gt;Joomla!&lt;/a&gt; and &lt;a href="http://bitnami.org/stack/wordpress"&gt;Wordpress&lt;/a&gt; in self-contained, easy to install packages. With BitNami, even non-technical users can get BitNami application stacks up and running on Windows, Linux, OS X or Solaris in just a few clicks. BitNami also includes several development stacks for &lt;a href="http://bitnami.org/stack/rubystack"&gt;Rails&lt;/a&gt;, &lt;a href="http://bitnami.org/stack/wampstack"&gt;WAMP&lt;/a&gt;, &lt;a href="http://bitnami.org/stack/jrubystack"&gt;JRuby&lt;/a&gt; and more.&lt;br /&gt;&lt;br /&gt;The WhyFLOSS event is being held in Madrid on May 21st and registration is free, although all of the talks will be in Spanish.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-1731953628977300184?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/1731953628977300184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=1731953628977300184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1731953628977300184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1731953628977300184'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/05/bitrock-presenting-at-whyfloss-madrid.html' title='BitRock Presenting at WhyFLOSS Madrid'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8953491257679062687</id><published>2009-05-11T07:17:00.000-07:00</published><updated>2009-05-11T07:56:42.828-07:00</updated><title type='text'>BitRock Selected Finalist of Spanish 2009 Internet Award</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.diadeinternet.org/2009/ddi/graficos/logo_5a_estatic_p.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 160px;" src="http://www.diadeinternet.org/2009/ddi/graficos/logo_5a_estatic_p.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;BitRock has been elected as a finalist of the 2009 Internet Awards in the category of best company. This nomination recognizes our work on BitNami and how it enables users of different backgrounds to quickly have up and running blogs, wikis and other web based programs. You can find more information at &lt;a href="http://www.premiosdeinternet.org/index.php?body=ppal"&gt;Dia de Internet website&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8953491257679062687?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/8953491257679062687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=8953491257679062687' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8953491257679062687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8953491257679062687'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/05/bitrock-selected-finalist-of-spanish.html' title='BitRock Selected Finalist of Spanish 2009 Internet Award'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3080309619642234517</id><published>2009-05-06T22:07:00.000-07:00</published><updated>2009-05-07T07:58:58.612-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='javaone'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>Get $100 Off Your JavaOne Pass</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Db9iUBipxmo/SgJu0QUTxBI/AAAAAAAAABg/IhmkKcjpLs4/s1600-h/javaone2009.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 170px; height: 170px;" src="http://1.bp.blogspot.com/_Db9iUBipxmo/SgJu0QUTxBI/AAAAAAAAABg/IhmkKcjpLs4/s320/javaone2009.png" alt="" id="BLOGGER_PHOTO_ID_5332946752772490258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;BitRock will be exhibiting and demoing InstallBuilder, our &lt;a href="http://installbuilder.bitrock.com/"&gt;cross platform installer&lt;/a&gt; development tool, at &lt;a href="http://java.sun.com/javaone"&gt;JavaOne&lt;/a&gt;, and you’re invited! If you’re not familiar with JavaOne, it is one of the leading events for Java developers.&lt;span style=""&gt;  &lt;/span&gt;Held June 2-5 at the &lt;st1:placename st="on"&gt;Moscone&lt;/st1:placename&gt; &lt;st1:placetype st="on"&gt;Center&lt;/st1:placetype&gt; in &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;San   Francisco&lt;/st1:place&gt;&lt;/st1:city&gt;, it offers attendees an opportunity to hear from industry leaders and other technology experts – those programming directly in Java(TM) technology and those looking at it from new perspectives including scripting, RIA, open source and more. A wide range of sessions give developers a chance to get hands-on &lt;span style="font-family: trebuchet ms;font-size:100%;" &gt;&lt;span style="font-family: georgia;font-size:100%;" &gt;experience with Java and related technologies.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;p style="font-family: trebuchet ms;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: georgia;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;To sign up and get $100 off of your full conference pass, visit: &lt;a href="http://www.cplan.com/javaone2009/externalregistration/reg.html" target="_blank"&gt;cplan.com/javaone2009/externalregistration/reg.html&lt;/a&gt; and enter the code EXHBCEK5.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: georgia;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: georgia;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: georgia;" class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;If you do attend the conference, be sure to drop by the BitRock kiosk to enter our drawing for a very cool prize!&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3080309619642234517?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3080309619642234517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3080309619642234517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3080309619642234517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3080309619642234517'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/05/get-100-off-your-javaone-pass.html' title='Get $100 Off Your JavaOne Pass'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Db9iUBipxmo/SgJu0QUTxBI/AAAAAAAAABg/IhmkKcjpLs4/s72-c/javaone2009.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-294114901370634390</id><published>2009-05-06T17:42:00.000-07:00</published><updated>2009-05-07T08:06:10.148-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xtuple'/><category scheme='http://www.blogger.com/atom/ns#' term='custom stacks'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='webstacks'/><title type='text'>PostBooks Open Source ERP Now Installs in Minutes</title><content type='html'>&lt;span style="font-size:100%;"&gt;We're proud to announce &lt;a href="http://www.xtuple.com/"&gt;xTuple&lt;/a&gt;, developer of PostBooks open source ERP, as a new BitRock customer! xTuple approached BitRock to help make PostBooks, its award-winning open source ERP, accounting, CRM and reporting software, easy to install. &lt;a href="http://bitrock.com/products_custom_stacks_overview.html"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Db9iUBipxmo/SgJK7IMlzOI/AAAAAAAAABY/7hX5MqNEy7U/s1600-h/xTuple+installer+screenshot.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 285px;" src="http://2.bp.blogspot.com/_Db9iUBipxmo/SgJK7IMlzOI/AAAAAAAAABY/7hX5MqNEy7U/s400/xTuple+installer+screenshot.jpg" alt="" id="BLOGGER_PHOTO_ID_5332907288433118434" border="0" /&gt;&lt;/a&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;The new &lt;a href="http://bitrock.com/products_custom_stacks_overview.html"&gt;BitRock Custom Stacks&lt;/a&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;for PostBooks are self-contained installers that fully automate the installation and configuration process for PostBooks ERP, making it easy for even non-technical people to take the freely-available software for a spin.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;To download PostBooks or sign up for a demo of the Standard or Manufacturing editions, visit &lt;a href="http://www.xtuple.com/"&gt;xTuple.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In addition to the new easy to use installers (known as Custom Stacks), xTuple is also leveraging BitRock's &lt;a href="http://bitrock.com/products_network_overview.html"&gt;Network Service&lt;/a&gt; to better service its large and growing user base. The Network Service enables xTuple to communicate new releases and other important messages to users while getting better visibility into how PostBooks is being deployed to improve product development and support.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-294114901370634390?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/294114901370634390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=294114901370634390' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/294114901370634390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/294114901370634390'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/05/postbooks-open-source-erp-now-installs.html' title='PostBooks Open Source ERP Now Installs in Minutes'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Db9iUBipxmo/SgJK7IMlzOI/AAAAAAAAABY/7hX5MqNEy7U/s72-c/xTuple+installer+screenshot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-1582148840547440385</id><published>2009-04-07T11:59:00.000-07:00</published><updated>2009-04-08T08:19:00.139-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>New InstallBuilder Demo Video Up</title><content type='html'>Thanks to Yago, we have just posted a new &lt;a href="http://installbuilder.bitrock.com/installbuilder-demo-video.html"&gt;demo video&lt;/a&gt; for InstallBuilder, our &lt;a href="http://installbuilder.bitrock.com/"&gt;cross platform installer&lt;/a&gt; tool. The video shows how to build an installer for &lt;a href="http://www.junoplay.com/pengupop"&gt;Pengupop&lt;/a&gt;, a networked multiplayer puzzle game released under the GPL. It's about 8 minutes long and will give you an idea of how InstallBuilder makes it easy to build a cross platform installer for your software.&lt;br /&gt;&lt;br /&gt;Please take a look at the &lt;a href="http://installbuilder.bitrock.com/installbuilder-demo-video.html"&gt;video&lt;/a&gt; and let us know what you think!&lt;br /&gt;&lt;br /&gt;Nice work, Yago!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-1582148840547440385?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/1582148840547440385/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=1582148840547440385' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1582148840547440385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1582148840547440385'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/04/new-installbuilder-demo-video-up.html' title='New InstallBuilder Demo Video Up'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-14470985112951355</id><published>2009-03-04T18:05:00.000-08:00</published><updated>2009-03-13T04:00:23.196-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cross platform installer'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>InstallBuilder 6.0 Now Available</title><content type='html'>We just released version 6.0 of InstallBuilder, and we are very excited about the improvements it includes. First, we have greatly expanded the GUI development environment, so you can now access all of InstallBuilder's functionality in a few mouse clicks. This makes building &lt;a href="http://installbuilder.bitrock.com/index.html"&gt;cross platform installers&lt;/a&gt; faster and easier than ever before. Here's just a taste of what you will find in the enhanced GUI:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://installbuilder.bitrock.com/images/installbuilder-enhanced-gui.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 573px; height: 463px;" src="http://installbuilder.bitrock.com/images/installbuilder-enhanced-gui.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We have also added another feature that sets InstallBuilder apart from other cross platform installation tools: &lt;a href="http://installbuilder.bitrock.com/autoupdate-installbuilder-6-0-screenshot.html"&gt;automatic update functionality&lt;/a&gt;.  So, you can now use InstallBuilder not only to package your software, but to deliver updates to it once installed. The automatic update tool currently supports Windows and Linux, with OS X support to be added shortly. It is included with InstallBuilder at no additional cost, so everyone with an active maintenance contract can take advantage of this new functionality.&lt;br /&gt;&lt;br /&gt;In addition to the above improvements, support for right to left languages has been implemented. InstallBuilder 6.0 now supports Arabic, with more right to left languages to come. We want to thank our customers and in particular Mohammed El Mehdi for their help implementing this feature . If you are interested in a language not currently supported by InstallBuilder, please let us know by contacting support at bitrock .com&lt;br /&gt;&lt;br /&gt;In connection with the new InstallBuilder release, we have created a new website just for InstallBuilder-related information, which simplifies navigation and makes it easier to access InstallBuilder information. You can click through to the site from bitrock.com, or visit it directly at &lt;a href="http://installbuilder.bitrock.com/"&gt;installbuilder.bitrock.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To take the latest InstallBuilder release for a spin, &lt;a href="http://installbuilder.bitrock.com/download.html"&gt;download&lt;/a&gt; it and let us know what you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-14470985112951355?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/14470985112951355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=14470985112951355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/14470985112951355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/14470985112951355'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/03/installbuilder-60-now-available.html' title='InstallBuilder 6.0 Now Available'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8570824717604854521</id><published>2009-01-05T09:38:00.000-08:00</published><updated>2009-01-05T09:42:13.305-08:00</updated><title type='text'>InstallBuilder 6 Preview</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bitrock.com/images/ib6_beta_screens_advanced.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 178px; height: 122px;" src="http://bitrock.com/images/ib6_beta_screens_advanced.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;We have been working on an improved GUI for our builder tool as part of our plans for InstallBuilder 6. You can download &lt;a href="http://bitrock.com/download_installbuilder_beta.html"&gt;a technical preview&lt;/a&gt;. The final version will include AutoUpdate functionality as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8570824717604854521?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/8570824717604854521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=8570824717604854521' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8570824717604854521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8570824717604854521'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2009/01/installbuilder-6-preview.html' title='InstallBuilder 6 Preview'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-426991634304382768</id><published>2008-12-09T08:35:00.000-08:00</published><updated>2008-12-09T08:45:29.745-08:00</updated><title type='text'>BitRock Network Service</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bitrock.com/images/title_network_service3.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 300px; height: 75px;" src="http://bitrock.com/images/title_network_service3.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You are probably already familiar with our &lt;a href="http://bitrock.com/products_installbuilder_overview.html"&gt;multiplatform installe&lt;/a&gt;&lt;a href="http://bitrock.com/"&gt;r&lt;/a&gt; and &lt;a href="http://bitrock.com/products_custom_stacks_overview.html"&gt;customized open source stacks&lt;/a&gt;. Over the past year, we have been quietly working with leading software vendors to add BitRock's &lt;a href="http://bitrock.com/products_network_overview.html"&gt;Network Service&lt;/a&gt; capabilities to their deployments, allowing them to deliver messages and updates to their users and evaluators. The BitRock Network service also provides ISVs with valuable insight into how their products are used, allowing them to streamline support and prioritize product development. Curious? Read what GroundWork open source, one of our customers, &lt;a href="http://www.marketwatch.com/news/story/GroundWork-Improves-Community-Product-Testing/story.aspx?guid=%7B9041AEE9-08B4-4EAE-93D3-544A765528F3%7D"&gt;has to say&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-426991634304382768?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/426991634304382768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=426991634304382768' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/426991634304382768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/426991634304382768'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/12/bitrock-network-service.html' title='BitRock Network Service'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-2585756721928585415</id><published>2008-12-01T21:17:00.000-08:00</published><updated>2008-12-01T22:02:58.803-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>Our Film Debut</title><content type='html'>Last year, Microsoft approached us with a unique opportunity; they wanted to send a film crew out to our office in Seville, Spain, to make a short documentary about BitRock. Their aim, as expressed to us, was to show that software companies working in the open source space can benefit from partnering with Microsoft. After speaking with the videographers, a couple of very cool &lt;a href="http://www.foreignamericanpictures.com/"&gt;independent filmmakers&lt;/a&gt; (as opposed to the typical producers of talking-head corporate videos), and being assured that we would have a chance to view and approve the video before it was released, we decided to give it a shot. The video turned out to be much less about Microsoft and much more about a few of the people who make up the BitRock and &lt;a href="http://www.bitnami.org/"&gt;BitNami&lt;/a&gt; teams. Here it is, our film debut:&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://images.video.msn.com/flash/soapbox1_1.swf" width="432" height="364" id="4g9rrfl6" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" pluginspage="http://macromedia.com/go/getflashplayer" flashvars="c=v&amp;amp;v=1e409ce4-a615-4ffd-816d-2a7cff331f9c&amp;amp;ifs=true&amp;amp;fr=shared&amp;amp;mkt=en-US"&gt;&lt;/embed&gt;&lt;noembed&gt;&lt;a href="http://video.msn.com/?mkt=en-US&amp;amp;playlist=videoByUuids:uuids:1e409ce4-a615-4ffd-816d-2a7cff331f9c&amp;amp;showPlaylist=true&amp;amp;from=shared" target="_new" title="Open Source Documentary: BitRock"&gt;Video: Open Source Documentary: BitRock&lt;/a&gt;&lt;/noembed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-2585756721928585415?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/2585756721928585415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=2585756721928585415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2585756721928585415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2585756721928585415'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/12/our-film-debut.html' title='Our Film Debut'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-2987628091754879716</id><published>2008-10-15T02:19:00.000-07:00</published><updated>2008-10-30T09:14:40.124-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>Join the BitRock team</title><content type='html'>We have a ton of exciting things going on at BitRock and we are looking to expand our team overseas. If you are interested in one of the positions below, please send your CV to careers@bitrock.com  including a brief paragraph on which position you are applying for and why you would like to work for us.&lt;br /&gt;&lt;br /&gt;You would be working mostly with US customers, during US business hours, so ideally you are located in US, Canada or South America. We are looking for smart, get-things-done attitude, responsible developers that enjoy working with open source technologies.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;InstallBuilder Support Engineer&lt;/span&gt;:  You will be supporting InstallBuilder customers, answering usage questions, troubleshooting installation processes, providing proofs of concept and improving our documentation. As you gain more experience, you will take part on the development process of InstallBuilder itself.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Stack Engineer&lt;/span&gt;: You will use InstallBuilder and our in-house automated build tools to provide customized integrated stacks for our customers. The stacks commonly include Apache, MySQL, PHP, Tomcat and many different open source projects. This position is a bit difficult to explain, but if you are a distro packager or a sysadmin who likes to automate its work, you will enjoy it. Take a look at &lt;a href="http://bitnami.org/"&gt;BitNami&lt;/a&gt; for an example of what the stacks look like&lt;br /&gt;&lt;br /&gt;You need to be fluent in a scripting language such as Ruby, Python or Tcl, and familiar with common open source development tools. Interaction with customers is mostly over email so you need to have excellent communication and written english skills. A big chunk of the development team is in Spain, so a bit of Spanglish would not hurt :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-2987628091754879716?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/2987628091754879716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=2987628091754879716' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2987628091754879716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2987628091754879716'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/10/join-bitrock-team.html' title='Join the BitRock team'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-1825154135829332437</id><published>2008-09-20T15:09:00.001-07:00</published><updated>2008-09-20T15:11:33.226-07:00</updated><title type='text'>Speed improvement on Windows for InstallBuilder</title><content type='html'>If you are using InstallBuilder to package installers that target Windows and contain a large number of small files, &lt;a href="http://bitrock.com/download_installbuilder_download.html"&gt;our latest release&lt;/a&gt; should significantly increase the speed of installation. Please give it a try and let us know if you run into any issues.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-1825154135829332437?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/1825154135829332437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=1825154135829332437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1825154135829332437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1825154135829332437'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/09/speed-improvement-on-windows-for.html' title='Speed improvement on Windows for InstallBuilder'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-7859524872831601067</id><published>2008-09-20T14:58:00.000-07:00</published><updated>2008-09-20T15:08:32.155-07:00</updated><title type='text'>Open Source Think Tank Europe</title><content type='html'>The 21st to the 23rd of September our CTO, Daniel Lopez, will be in Paris attending &lt;a href="http://thinktank.olliancegroup.com"&gt;Open Source Think Tank&lt;/a&gt; . It is an invitation-only event that brings together Open Source CEOs (including many of our clients), system integrators and venture capitalists for some brainstorming on the future of commercial open source (and wine drinking too!). On Wednesday we will be attending &lt;a href="http://thinktank.olliancegroup.com/images/stories/isv_var_meeting_invitation.pdf"&gt;VAR/SI meeting&lt;/a&gt; in which we will looking at different partnering and business opportunities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-7859524872831601067?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/7859524872831601067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=7859524872831601067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7859524872831601067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7859524872831601067'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/09/open-source-think-tank-europe.html' title='Open Source Think Tank Europe'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-1549885422548651412</id><published>2008-09-17T02:12:00.000-07:00</published><updated>2008-09-17T02:50:33.591-07:00</updated><title type='text'>Conferences</title><content type='html'>Please come to say hello if you are going to be at one of these conferences where we will be presenting / exhibiting:&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.zendcon.com/"&gt;ZendCon&lt;/a&gt; 15-17th September, Santa Clara, CA.&lt;/li&gt;&lt;li&gt;&lt;a href="http://trolltech.com/qtdevdays2008"&gt;TrollTech&lt;/a&gt; Dev Days Europe, 14th-15th October, Munich, Germany&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.opensourceworldconference.com/"&gt;OSWC 2008&lt;/a&gt;, 20th, 21st and 22nd October, Malaga, Spain&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.opensourceworldconference.com/"&gt;TrollTech&lt;/a&gt; Dev Days US, 29th-30th October, RedWood City, CA&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-1549885422548651412?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/1549885422548651412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=1549885422548651412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1549885422548651412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1549885422548651412'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/09/conferences.html' title='Conferences'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-6797196975566467701</id><published>2008-06-02T08:37:00.000-07:00</published><updated>2008-06-02T08:54:54.271-07:00</updated><title type='text'>5.4.8 Released</title><content type='html'>We released 5.4.8 last week. This release includes a lot of small improvements. You can take a look at the &lt;a href="http://bitrock.com/download_installbuilder_changelog.html"&gt;ChangeLog&lt;/a&gt;, but here are some highlights:&lt;br /&gt;&lt;br /&gt;When you are installing a server application such as MySQL or Tomcat, it is necessary to prompt the user for a specific TCP/IP port in case the default one is in use. You can skip this step simply by using the new &lt;getfreeport&gt; action, which allows you to select a free port from a given range. For example, the following snippet will take the first free port in the range 3306 - 3406 :&lt;br /&gt;&lt;getfreeport variable="mysql_port" initialport="3306" finalport="3406"&gt;&lt;br /&gt;This release allows you adding regular action lists, such as &lt;prebuildactionlist&gt;, &lt;postinstallationactionlist&gt;, etc. to each &lt;component&gt; in your project file. An &lt;initializationactionlist&gt; for a component will always be executed, but the rest of action lists will only be executed if the component has been selected for installation.&lt;br /&gt;&lt;br /&gt;There were some cases in which the installation would abort, but no error code will be returned by the application. This was causing problems when running from unattended scripts, etc. as it would seem that the installation finished correctly when it was not the case. We went over the code and made sure the exit code is the right one in every situation.&lt;br /&gt;&lt;br /&gt;Enjoy this release and let us know what else would you like to see in future versions of InstallBuilder&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/initializationactionlist&gt;&lt;/component&gt;&lt;/postinstallationactionlist&gt;&lt;/prebuildactionlist&gt;&lt;/getfreeport&gt;&lt;/getfreeport&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-6797196975566467701?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/6797196975566467701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=6797196975566467701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6797196975566467701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6797196975566467701'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/06/548-released.html' title='5.4.8 Released'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4261091987607248799</id><published>2008-04-28T12:09:00.000-07:00</published><updated>2008-04-28T12:12:10.715-07:00</updated><title type='text'>5.4.7 Released</title><content type='html'>We are pleased to announce that BitRock InstallBuilder 5.4.7 has been just released. You can find this new version under the following links:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bitrock.com/download_installbuilder_download.html" target="_blank"&gt;http://bitrock.com/download&lt;wbr&gt;_installbuilder_download.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bitrock.com/download_installbuilderqt_download.html" target="_blank"&gt;http://bitrock.com/download&lt;wbr&gt;_installbuilderqt_download.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Among its new features you may find:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; New showProgressDialog action, allows showing an indeterminate progress bar when executing actions.&lt;/li&gt;&lt;li&gt;New Relax-NG schema included with InstallBuilder.&lt;/li&gt;&lt;li&gt;New examples for actions, components and parameters included with InstallBuilder.&lt;/li&gt;&lt;li&gt; Ability to generate 64-bit RPM packages from a Linux-x64 machine.&lt;/li&gt;&lt;li&gt; Improved display of slide show images on GTK mode.&lt;/li&gt;&lt;li&gt; Fixed uninstaller creation when defaultUnixOwner and requireInstallationByRootUser are set.&lt;/li&gt;&lt;li&gt; Improved feedback to the user when an unknown error is detected during the postInstallationActionList.&lt;/li&gt;&lt;li&gt; Fixed an error on machine_ipaddr, it was returning multiple addresses on Windows on certain scenarios.&lt;/li&gt;&lt;li&gt; New addChoiceOptionsFromText action allows to obtain a list of options from a text source to be inserted into a choice parameter.&lt;/li&gt;&lt;/ul&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4261091987607248799?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/4261091987607248799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=4261091987607248799' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4261091987607248799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4261091987607248799'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/04/547-released.html' title='5.4.7 Released'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4062596159668369508</id><published>2008-04-25T06:27:00.000-07:00</published><updated>2008-04-25T06:35:57.509-07:00</updated><title type='text'>Variables at build time</title><content type='html'>&lt;p&gt;Sometimes it is convenient to set project variables at build time. There are a couple of ways that this can be accomplished:&lt;/p&gt; &lt;p&gt;Use the preBuildActionList:&lt;/p&gt; &lt;span style="font-size:85%;"&gt;&lt;br /&gt;  &amp;lt;prebuildactionlist&gt;&lt;br /&gt;    &amp;lt;setinstallervariable name="version" persist="1" value="${env(BUILDVER)}" /&gt;&lt;br /&gt;  &amp;lt;/prebuildactionlist&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Or, starting with 5.4.6, it is possible to pass variables directly in the command line to the builder&lt;br /&gt;&lt;/p&gt;&lt;code&gt;&lt;span style="font-size:85%;"&gt;$ builder build project.xml --setvars version=1.2.3 project.shortName=newName&lt;/span&gt;              &lt;br /&gt;              &lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4062596159668369508?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/4062596159668369508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=4062596159668369508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4062596159668369508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4062596159668369508'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/04/variables-at-build-time.html' title='Variables at build time'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-1063270146312766603</id><published>2008-02-22T08:48:00.000-08:00</published><updated>2008-02-22T08:58:42.755-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><title type='text'>Fosdem</title><content type='html'>Several members of the BitRock team are on their way to &lt;a href="http://www.fosdem.org/2008/"&gt;Fosdem&lt;/a&gt;. If you're attending the conference and you'd like to meet up with them, keep your eye out for a Spanish, Polish, Belgian or Portuguese guy in a navy blue BitRock fleece.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-1063270146312766603?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/1063270146312766603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=1063270146312766603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1063270146312766603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1063270146312766603'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/02/fosdem.html' title='Fosdem'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3904448150185631446</id><published>2008-02-22T08:37:00.000-08:00</published><updated>2008-02-22T09:00:13.287-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>Radio Silence</title><content type='html'>Yes, this post is *very* long overdue. Rest assured that the lack of blog posts is due to the fact that we have been very hard at work on not one, but two new projects. The first is BitNami, a site we launched that has over 20 very easy to install &lt;a href="http://www.bitnami.org/download"&gt;open source application stacks&lt;/a&gt; available for download. We covered that project briefly in an &lt;a href="http://bitrock.blogspot.com/2007/10/bitrock-web-stacks-now-on-bitnamiorg.html"&gt;earlier post&lt;/a&gt;, and it has come quite a long way since then. The second is the Network Service, which we'll be announcing at the end of March at &lt;a href="http://www.infoworld.com/event/osbc/08/"&gt;OSBC&lt;/a&gt;. We'll follow up with more information on both in the next couple of weeks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3904448150185631446?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3904448150185631446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3904448150185631446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3904448150185631446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3904448150185631446'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2008/02/radio-silence.html' title='Radio Silence'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-9185248425485547948</id><published>2007-11-16T01:25:00.001-08:00</published><updated>2008-12-08T18:50:34.703-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opensource bitrock award'/><title type='text'>Open Source Companies Kicking Tail</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Db9iUBipxmo/Rz18jj3D1MI/AAAAAAAAAAc/osxrUOrhio0/s1600-h/Global_Finalist.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_Db9iUBipxmo/Rz18jj3D1MI/AAAAAAAAAAc/osxrUOrhio0/s200/Global_Finalist.jpg" alt="" id="BLOGGER_PHOTO_ID_5133396100635677890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Red Herring just announced the &lt;a href="http://www.herringevents.com/global07/redherring100_finalists_name.html"&gt;finalists&lt;/a&gt; for the first ever Red Herring Global 100 award, and we are happy to be one of them! The companies that made the final cut were selected from the winners and runners up for the Red Herring 100 awards in the US, Europe and Asia over the last 3 years. Out of the 1800 companies eligible, 200 were selected as finalists, and the 100 winners will be announced on December 3rd at the Red Herring &lt;a href="http://www.herringevents.com/global07/index.html"&gt;conference&lt;/a&gt; in Seattle.&lt;br /&gt;&lt;br /&gt;Out of the 200 finalists, only 19 are software companies (actually, only 16 are classified as software companies - Openbravo, Pentaho and Green Plum are listed in the Internet &amp;amp; Services category, for some reason.) Out of those, 8 have businesses based around open source software. It is great to see that nearly 50% of the 'most promising privately held software companies in the world' are open source companies, and that several of those are also BitRock customers. Congratulations to Alfresco, Collabnet, Funambol, Green Plum, Ingres, Pentaho and Openbravo. We're honored to have been included in such an impressive group.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-9185248425485547948?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/9185248425485547948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=9185248425485547948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/9185248425485547948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/9185248425485547948'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/11/open-source-companies-kicking-tail.html' title='Open Source Companies Kicking Tail'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Db9iUBipxmo/Rz18jj3D1MI/AAAAAAAAAAc/osxrUOrhio0/s72-c/Global_Finalist.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3240301914054335995</id><published>2007-11-06T09:09:00.000-08:00</published><updated>2007-11-06T09:24:28.647-08:00</updated><title type='text'>Support for Mac OS X Leopard</title><content type='html'>Older versions of InstallBuilder will not work on OS X Leopard. If you need to support this version, you can download &lt;a href="http://bitrock.com/download_installbuilder_beta.html"&gt;a preview of our upcoming 5.2.0 release&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We are still working on fixing some issues. In particular, installers generated with this version will not work on Mac OS X 10.2.  We know this version is considered 'ancient' but is still important to some of our customers, so we are currently looking at ways to address this. Please give the installers a try and let us know what you think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3240301914054335995?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3240301914054335995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3240301914054335995' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3240301914054335995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3240301914054335995'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/11/support-for-mac-os-x-leopard.html' title='Support for Mac OS X Leopard'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3005116348931733595</id><published>2007-10-18T06:12:00.000-07:00</published><updated>2008-12-08T18:50:35.033-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bitnami stacks'/><title type='text'>BitRock Web Stacks Now on BitNami.org</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Db9iUBipxmo/RxddpHZWpPI/AAAAAAAAAAU/c__Ha4R5Du4/s1600-h/bitnami.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Db9iUBipxmo/RxddpHZWpPI/AAAAAAAAAAU/c__Ha4R5Du4/s200/bitnami.jpg" alt="" id="BLOGGER_PHOTO_ID_5122666062098638066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As you may know, BitRock Web Stacks make it easy to have a complete Apache, MySQL, and PHP (AMP) stack installed and running on Windows, Linux or Mac OS X in just minutes. We recently released new versions of our popular &lt;a href="http://www.bitnami.org/stacks#wamp"&gt;WAMP&lt;/a&gt;, &lt;a href="http://www.bitnami.org/stacks#lamp"&gt;LAMP&lt;/a&gt; and &lt;a href="http://www.bitnami.org/stacks#mamp"&gt;MAMP&lt;/a&gt; stacks on &lt;a href="http://www.bitnami.org/"&gt;BitNami.org&lt;/a&gt;, a website built to help encourage the adoption of open source software by making it easier to install and configure.  In addition to the Web Stacks, you will find several application stacks for popular open source software such as &lt;a href="http://www.bitnami.org/stacks#joomla_excl_"&gt;Joomla!&lt;/a&gt;, &lt;a href="http://www.bitnami.org/stacks#drupal"&gt;Drupal&lt;/a&gt;, &lt;a href="http://www.bitnami.org/stacks#mediawiki"&gt;Mediawiki&lt;/a&gt; and &lt;a href="http://www.bitnami.org/stacks#roller"&gt;Roller&lt;/a&gt;. Just like BitRock Web Stacks, they include everything you need to run the software and come packaged in a fast, easy to use installer. All BitNami stacks are released under the terms of the Apache 2.0 license.&lt;br /&gt;&lt;br /&gt;To download the Web Stacks from BitNami, visit &lt;a href="http://www.bitnami.org/stacks"&gt;http://www.bitnami.org/stacks&lt;/a&gt;. If your favorite open source application hasn’t yet been packaged, you can &lt;a href="http://www.bitnami.org/polls"&gt;vote&lt;/a&gt; to have it packaged next.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3005116348931733595?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3005116348931733595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3005116348931733595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3005116348931733595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3005116348931733595'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/10/bitrock-web-stacks-now-on-bitnamiorg.html' title='BitRock Web Stacks Now on BitNami.org'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Db9iUBipxmo/RxddpHZWpPI/AAAAAAAAAAU/c__Ha4R5Du4/s72-c/bitnami.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-291067050305778513</id><published>2007-10-05T16:00:00.000-07:00</published><updated>2007-10-05T16:19:37.782-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='events'/><title type='text'>BitRock @ Open aLANtejo 07</title><content type='html'>BitRock will be attending the fourth annual &lt;a href="http://alantejo.uevora.pt/2007/index.php?lang=en"&gt;Open Delta aLANtejo&lt;/a&gt; conference in Evora, Portugal from October 19th through the 21st.  As one of the largest IT events in Portugal, Open Delta aLANtejo is hosted by the &lt;a href="http://neei.uevora.pt"&gt;Computer Science Students Association of University of Évora&lt;/a&gt;, in association with &lt;a href="http://www.delta-cafes.pt"&gt;Delta-Cafés&lt;/a&gt; and in partnership with &lt;a href="http://www.uevora.pt"&gt;University of Évora&lt;/a&gt;.  The focus of this year's conference is on leading open source projects and free software development in Portugal.&lt;br /&gt;&lt;br /&gt;Daniel Lopez (BitRock Founder and CTO) and Daniel Liszka (BitRock Developer and RubyStack Project Lead) will be presenting during the conference on the topics of &lt;a href="http://www.bitnami.com/stacks"&gt;Open Source Stacks&lt;/a&gt; and &lt;a href="http://www.rubyonrails.org"&gt;Ruby on Rails&lt;/a&gt;.  We plan to cover some good material on both these topics and hope you can attend the conference if you're in the area.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-291067050305778513?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/291067050305778513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=291067050305778513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/291067050305778513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/291067050305778513'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/10/bitrock-open-alantejo-07.html' title='BitRock @ Open aLANtejo 07'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4582934500199471771</id><published>2007-09-24T09:37:00.000-07:00</published><updated>2008-12-08T18:50:35.263-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 5.0 Released</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IOxIpUkUCP8/RvfpxQiYa1I/AAAAAAAAAB8/dtzdoD7z0Y8/s1600-h/installbuilder-5.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_IOxIpUkUCP8/RvfpxQiYa1I/AAAAAAAAAB8/dtzdoD7z0Y8/s200/installbuilder-5.png" alt="" id="BLOGGER_PHOTO_ID_5113812934364523346" border="0" /&gt;&lt;/a&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;The  official 5.0 release of BitRock InstallBuilder is now available for &lt;a title="http://bitrock.com/download_installbuilder_download.html" onclick="return top.js.OpenExtLink(window,event,this)" href="http://bitrock.com/download_installbuilder_download.html" target="_blank"&gt;download&lt;/a&gt;. We'd like to thank everyone who provided feedback on  the beta release. It was very helpful and allowed us to get the official release  out quickly.  Here are a few of the new features: &lt;/span&gt;&lt;/span&gt; &lt;ul type="disc"&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;LZMA compression support (reduces  installer size up to 30%)&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;Improved installer startup  speed&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;New action iniFileSet to create and  modify .ini files&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;New property splashScreenDelay  increases the display time of the splash screen&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;New rule processTest to test for  running processes (Windows, Linux, OSX)&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;New getDiskUsage action calculates  disk space for files and folders&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;Windows installer now shows a  graphical popup for error and help messages&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;preBuildActionList is now executed  in Quick Builds&lt;/span&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;readyToInstallActionList is now  available in generated RPMs&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;span style="font-size:100%;"&gt;A  complete list of improvements is available on our &lt;a title="http://bitrock.com/download_installbuilder_changelog.html" onclick="return top.js.OpenExtLink(window,event,this)" href="http://bitrock.com/download_installbuilder_changelog.html" target="_blank"&gt;changelog&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4582934500199471771?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/4582934500199471771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=4582934500199471771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4582934500199471771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4582934500199471771'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/09/installbuilder-50-released.html' title='InstallBuilder 5.0 Released'/><author><name>LLake</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IOxIpUkUCP8/RvfpxQiYa1I/AAAAAAAAAB8/dtzdoD7z0Y8/s72-c/installbuilder-5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4430402852595511508</id><published>2007-09-19T04:17:00.000-07:00</published><updated>2008-12-08T18:50:35.486-08:00</updated><title type='text'>MySQL Enterprise Monitor</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C60Z-u2w0XM/RvEJXG1paYI/AAAAAAAAABA/3TNlUp7RCDk/s1600-h/dashboard_main.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_C60Z-u2w0XM/RvEJXG1paYI/AAAAAAAAABA/3TNlUp7RCDk/s320/dashboard_main.png" alt="" id="BLOGGER_PHOTO_ID_5111877344619489666" border="0" /&gt;&lt;/a&gt;Congratulations to MySQL on the Fall release of &lt;a href="http://www.mysql.com/products/enterprise/monitor.html"&gt;MySQL Enterprise Monitor&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;MySQL Enterprise Monitor is a pretty impressive application monitoring framework. In addition to raising alerts when necessary and tracking performance over time,  also provides configuration suggestions based on best practices.&lt;br /&gt;&lt;br /&gt;BitRock has been working closely with MySQL over the last year in the packaging and deployment of the stack that supports MySQL Enterprise Monitor, and we have been impressed with both the team and the product. If you are running MySQL in production, we encourage you to check out the &lt;a href="http://www.mysql.com/products/enterprise/monitor.html"&gt;free trial&lt;/a&gt;.&lt;img src="file:///C:/Users/daniel/AppData/Local/Temp/moz-screenshot-2.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4430402852595511508?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/4430402852595511508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=4430402852595511508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4430402852595511508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4430402852595511508'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/09/mysql-enterprise-monitor.html' title='MySQL Enterprise Monitor'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_C60Z-u2w0XM/RvEJXG1paYI/AAAAAAAAABA/3TNlUp7RCDk/s72-c/dashboard_main.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-677064179358950270</id><published>2007-09-13T11:32:00.000-07:00</published><updated>2008-12-08T18:50:35.711-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><title type='text'>InstallBuilder 5.0 Beta Released</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Db9iUBipxmo/RumLm2gFT1I/AAAAAAAAAAM/gLD0QbpwK48/s1600-h/installbuilder-5-beta.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_Db9iUBipxmo/RumLm2gFT1I/AAAAAAAAAAM/gLD0QbpwK48/s200/installbuilder-5-beta.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5109768751809908562" /&gt;&lt;/a&gt;&lt;br /&gt;We recently released a beta of the upcoming InstallBuilder 5.0. Among other enhancements, this release adds LZMA compression and better integration with Vista. Our testing showed that the new compression algorithm reduces installer size by an average of 20%. We've also worked on improving installer start-up speed, and you'll see a noticeable improvement in this new release.&lt;br /&gt;&lt;br /&gt;To download the beta and view a more complete list of improvements, visit:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bitrock.com/download_installbuilder_beta.html"&gt;http://bitrock.com/download_installbuilder_beta.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-677064179358950270?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/677064179358950270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=677064179358950270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/677064179358950270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/677064179358950270'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/09/installbuilder-50-beta-released.html' title='InstallBuilder 5.0 Beta Released'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Db9iUBipxmo/RumLm2gFT1I/AAAAAAAAAAM/gLD0QbpwK48/s72-c/installbuilder-5-beta.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3441885908203292388</id><published>2007-09-05T09:08:00.000-07:00</published><updated>2008-12-08T18:50:35.932-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='openmrs'/><title type='text'>OpenMRS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.openmrs.org/"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://3.bp.blogspot.com/_IOxIpUkUCP8/Rt7XnXBNehI/AAAAAAAAABs/nCwGpw60S_4/s200/logo.png" alt="" id="BLOGGER_PHOTO_ID_5106756098678684178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://zachelko-soc.blogspot.com/"&gt;Zach Elko&lt;/a&gt;, a participant in Google's &lt;a href="http://code.google.com/soc/2007/"&gt;Summer of Code&lt;/a&gt; has been working on creating an installer for the open source project &lt;a href="http://www.openmrs.org/"&gt;OpenMRS&lt;/a&gt;. OpenMRS began in 2004 in response to the AIDS pandemic and the lack of access to efficiently manage medical information in developing countries. It provides users the ability to design customized medical records systems with no programming knowledge. OpenMRS is often deployed in environments with limited technical expertise. The installer Zach developed using &lt;a href="http://bitrock.com/products_installbuilder_overview.html"&gt;InstallBuilder&lt;/a&gt; helps end-users quickly and easy get the system up and running. For more information about OpenMRS and a little bit about our involvement check out this &lt;a href="http://video.google.com/videoplay?docid=5181254373166129293&amp;amp;"&gt;Google video&lt;/a&gt; by the founders of the project.&lt;br /&gt;&lt;br /&gt;We're very happy to have been able to help in this project and look forward to hearing more about their success. If you are an open source developer looking for an installer to help ease adoption of your project, please &lt;a href="mailto:info&amp;#64;bitrock&amp;#46;com"&gt;contact us&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3441885908203292388?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3441885908203292388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3441885908203292388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3441885908203292388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3441885908203292388'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/09/openmrs.html' title='OpenMRS'/><author><name>LLake</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_IOxIpUkUCP8/Rt7XnXBNehI/AAAAAAAAABs/nCwGpw60S_4/s72-c/logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-3269687275501419934</id><published>2007-08-29T09:37:00.000-07:00</published><updated>2008-12-08T18:50:36.101-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='trolltech'/><category scheme='http://www.blogger.com/atom/ns#' term='qt'/><title type='text'>BitRock Sponsors Tolltech Developer Days</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://trolltech.com/company/newsroom/events/allevents/devdays2007/overview"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_IOxIpUkUCP8/RtWhfHBNefI/AAAAAAAAAA8/yvLLxmFHVsA/s200/DevDays07.jpg" alt="" id="BLOGGER_PHOTO_ID_5104163308526467570" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;Over the past year, we have been  working closely with &lt;a title="http://bitrockinc.cmail2.com/l/236508/l/www.trolltech.com/" href="http://www.trolltech.com/"&gt;Trolltech&lt;/a&gt;&lt;a href="http://www.trolltech.com/"&gt;®&lt;/a&gt;  to develop and market &lt;a title="http://bitrockinc.cmail2.com/l/236508/l/bitrock.com/products_installbuilder_qt.html" href="http://bitrockinc.cmail2.com/l/236508/l/bitrock.com/products_installbuilder_qt.html"&gt;InstallBuilder  for Qt®&lt;/a&gt;.   InstallBuilder for Qt is the only multiplatform installation tool on the market  that generates installers with a Qt front end, to provide a truly native look  and feel across all supported platforms.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;Each year Trolltech hosts &lt;a title="http://bitrockinc.cmail2.com/l/236508/l/www.trolltech.com/devdays2007" href="http://bitrockinc.cmail2.com/l/236508/l/www.trolltech.com/devdays2007"&gt;Developer  Days&lt;/a&gt;, two full days of in-depth sessions on Qt and Qtopia technology,  hands-on developer labs and interactive BOF sessions. We’re excited to once again be  sponsors of both events: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;Redwood  City&lt;/span&gt;&lt;/span&gt;&lt;/st1:city&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;, &lt;st1:state st="on"&gt;CA&lt;/st1:state&gt;&lt;/span&gt;&lt;/span&gt;&lt;/st1:place&gt;&lt;/span&gt;&lt;span style=";font-family:Symbol;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt; - October 3rd and 4th  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/st1:city&gt;&lt;/st1:place&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;Munich&lt;/span&gt;&lt;/span&gt;&lt;/st1:city&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="font-family:Arial;"&gt;,  &lt;st1:country-region st="on"&gt;Germany&lt;/st1:country-region&gt;&lt;/span&gt;&lt;/span&gt;&lt;/st1:place&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-family:Arial;"&gt; - October 16th and  17th &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;&lt;span style="font-size:100%;"&gt;If you are a &lt;a href="http://trolltech.com/products/qt"&gt;Qt&lt;/a&gt; developer or are considering moving to Qt, we highly encourage you to attend. And, if you’d like to meet up with us at Developer Days to talk more about InstallBuilder for Qt, just shoot us an email at &lt;a href="mailto:info@bitrock.com"&gt;info@bitrock.com&lt;/a&gt; with “Trolltech Developer Days” in the subject line, or leave a comment below.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-3269687275501419934?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/3269687275501419934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=3269687275501419934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3269687275501419934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/3269687275501419934'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/08/bitrock-sponsors-tolltech-developer.html' title='BitRock Sponsors Tolltech Developer Days'/><author><name>LLake</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_IOxIpUkUCP8/RtWhfHBNefI/AAAAAAAAAA8/yvLLxmFHVsA/s72-c/DevDays07.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4657428713082920795</id><published>2007-08-14T07:57:00.000-07:00</published><updated>2008-12-08T18:50:36.274-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='rails'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='webstacks'/><title type='text'>BitRock Releases RubyStack</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IOxIpUkUCP8/RsHHNdkXxhI/AAAAAAAAAA0/WAp1aQSEI0E/s1600-h/new_splash.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_IOxIpUkUCP8/RsHHNdkXxhI/AAAAAAAAAA0/WAp1aQSEI0E/s200/new_splash.png" alt="" id="BLOGGER_PHOTO_ID_5098575287249520146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In the past, we've used our expertise in integrating open source software to develop easy to install, pre-integrated Web Stacks like &lt;a href="http://bitrock.com/products_webstacks_overview.html"&gt;LAMP, MAMP LAPP&lt;/a&gt; and &lt;a href="http://bitrock.com/products_mono_overview.html"&gt;Mono&lt;/a&gt; stacks. And we've now used that experience to release our latest stack, &lt;a href="http://bitrock.com/download_ruby_download.html"&gt;RubyStack&lt;/a&gt;.  We received several requests for an easy to install, pre-integrated stack for Ruby, so we put something together that will make it easier for developers to take advantage of the benefits of working with the Ruby programming language.&lt;br /&gt;&lt;br /&gt;RubyStack offers a choice of two installation profiles, Production and Developer. The production profile will install Ruby, Subversion, Apache 2.2 with rewrite and proxy support, SQLite, MySQL, ImageMagick and many popular Ruby Gems, such as: Rails, Mongrel, mongrel_cluster and RMagick. The Developer option is a more compact distribution that does not include Apache.  Both versions are currently available for Linux and Mac OS X Intel. Future releases will include support for OS X PPC, Windows and Solaris as well.  With RubyStack, you'll have everything you need to create dynamic, engaging web sites and applications, without the hassle of integrating, configuring, and supporting your own build.&lt;br /&gt;&lt;br /&gt;You can &lt;a href="http://bitrock.com/download_ruby_download.html"&gt;download&lt;/a&gt; or&lt;a href="http://bitrock.com/products_ruby_overview.html"&gt; learn more&lt;/a&gt; about RubyStack on our website, &lt;a href="http://www.bitrock.com/"&gt;bitrock.com&lt;/a&gt;.  We've partnered with &lt;a href="http://www.fiveruns.com/"&gt;FiveRuns&lt;/a&gt; to design, promote and distribute the stack, and it can also be downloaded from their website (where it is distributed under the name RM-Install). Kudos to Oliver, Dean and the rest of the team over there, for their extensive feedback and suggestions to improve the stack.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4657428713082920795?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/4657428713082920795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=4657428713082920795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4657428713082920795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4657428713082920795'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/08/bitrock-releases-rubystack.html' title='BitRock Releases RubyStack'/><author><name>LLake</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_IOxIpUkUCP8/RsHHNdkXxhI/AAAAAAAAAA0/WAp1aQSEI0E/s72-c/new_splash.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-216588072301039200</id><published>2007-08-03T02:18:00.000-07:00</published><updated>2007-08-03T02:22:48.047-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zmanda'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='linuxworld'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='sugarcrm'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='alfresco'/><title type='text'>BitRock @ LinuxWorld</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;As one of the largest and most anticipated events of the year, we’re happy to be  attending &lt;a href="http://www.linuxworldexpo.com/live/12/"&gt;LinuxWorld 2007&lt;/a&gt;.  This year’s conference promises to be great with speakers&lt;span style="color: navy;"&gt; &lt;/span&gt;from many of the leading open source companies such as MySQL, Alfresco, Zmanda and SugarCRM&lt;span style="color: navy;"&gt; &lt;/span&gt;&lt;span style="color: black;"&gt;(many of whom are BitRock&lt;/span&gt;&lt;span style="color: navy;"&gt; &lt;a href="http://bitrock.com/customers_custom_stacks.html"&gt;clients&lt;/a&gt;)&lt;/span&gt;. &lt;span style="color: black;"&gt;If &lt;/span&gt;you’re planning to be at LinuxWorld, we’d love to see you, drop us a line at &lt;a href="mailto:info@bitrock.com"&gt;info@bitrock.com&lt;/a&gt;. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-216588072301039200?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/216588072301039200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=216588072301039200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/216588072301039200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/216588072301039200'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/08/bitrock-linuxworld.html' title='BitRock @ LinuxWorld'/><author><name>LLake</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-2940623245140183891</id><published>2007-07-12T07:45:00.000-07:00</published><updated>2008-12-08T18:50:36.406-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OS X'/><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>Announcing InstallBuilder 4.5</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IOxIpUkUCP8/RpZBI2JOKRI/AAAAAAAAAAs/BFyGEk6QPCE/s1600-h/ib45-logo.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_IOxIpUkUCP8/RpZBI2JOKRI/AAAAAAAAAAs/BFyGEk6QPCE/s400/ib45-logo.png" alt="" id="BLOGGER_PHOTO_ID_5086324449390504210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;Since our last release, we’ve made quite a few changes: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style="color: rgb(102, 102, 102);"&gt;Improved readFile and      writeFile actions to support different encodings &lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: rgb(102, 102, 102);"&gt;Ability to add and      remove Fonts on Windows &lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: rgb(102, 102, 102);"&gt;New linkParameter allows      display of actionable links &lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: rgb(102, 102, 102);"&gt;Fix value of      installer_directory variable on OS X &lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: rgb(102, 102, 102);"&gt;Fix variable      substitution on httpPost actions &lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: rgb(102, 102, 102);"&gt;Allow quick reloading of      files changed on disk &lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: rgb(102, 102, 102);"&gt;Fix packing of files      with resource forks on OS X &lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style="color: rgb(102, 102, 102);"&gt;Improved logging of      actions &lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;We encourage you to &lt;a href="http://www.bitrock.com/download_installbuilder_download.html"&gt;download&lt;/a&gt; InstallBuilder 4.5 and give it a try.&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-2940623245140183891?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/2940623245140183891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=2940623245140183891' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2940623245140183891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/2940623245140183891'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/07/announcing-installbuilder-45.html' title='Announcing InstallBuilder 4.5'/><author><name>LLake</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_IOxIpUkUCP8/RpZBI2JOKRI/AAAAAAAAAAs/BFyGEk6QPCE/s72-c/ib45-logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4491584163463749014</id><published>2007-07-10T02:20:00.000-07:00</published><updated>2007-07-10T02:30:21.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='custom stacks'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='lamp stack'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>LAMP Stack is Improving Healthcare in Developing Nations</title><content type='html'>&lt;p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;In countries where names are very common and there are no social security numbers, it is next to impossible to keep patient records and even more difficult for medical staff to provide healthcare based on those records.&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="font-size:100%;"&gt;Gnosis, the developer of an application called &lt;span style="color: black;"&gt;Four Corners Medical System, is working to address this issue. The software is designed to improve&lt;/span&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt; record keeping capabilities, aggregate patient data for medical research and provide medical support services to national infrastructure in developing countries.&lt;span style=""&gt;  &lt;/span&gt;The challenge facing Gnosis was the ability to quickly and easily install the application and all its dependencies.&lt;span style=""&gt;  &lt;/span&gt;Without this functionality, the system would require much more sophisticated knowledge that is not available in the clinics it is meant to help.&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="font-size:100%;"&gt;Rogers Hellman, the Founder of Gnosis, approached BitRock to build a &lt;a href="http://www.bitrock.com/products_custom_stacks_overview.html"&gt;Custom Stack&lt;/a&gt; for the Four Corners Medical System that bundles a ready-to-run &lt;a href="http://www.bitrock.com/products_webstack_overview.html"&gt;LAMP stack&lt;/a&gt; (&lt;a href="http://www.apache.org/"&gt;Apache&lt;/a&gt;, &lt;a href="http://www.mysql.com/"&gt;MySQL&lt;/a&gt; and &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt;). The complete software stack is packaged with &lt;a href="http://www.bitrock.com/products_installbuilder_overview.html"&gt;InstallBuilder&lt;/a&gt;, making it fast and easy for anyone to get the software up and running.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="font-size:100%;"&gt;With this Custom Stack, Four Corners Medical System has been implemented in five clinics in developing areas of &lt;st1:place st="on"&gt;&lt;st1:country-region st="on"&gt;Guatemala&lt;/st1:country-region&gt;&lt;/st1:place&gt; and is slated to be implemented in two more this month.&lt;span style=""&gt;  &lt;/span&gt;We are very happy to be able to contribute our expertise and be a part of the effort to improve health services in developing countries. We hope the ease of installation of Gnosis’ software will enable many more clinics and medical professionals to take advantage of this unique and valuable tool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="background: white none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&lt;span style="font-size:100%;"&gt;To learn more about Gnosis and the effort to enable health care providers in developing nations to better manage medical treatment visit &lt;a href="http://www.gmproject.org/"&gt;www.gmproject.org&lt;/a&gt;.&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4491584163463749014?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/4491584163463749014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=4491584163463749014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4491584163463749014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4491584163463749014'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/07/lamp-stack-is-improving-healthcare-in.html' title='LAMP Stack is Improving Healthcare in Developing Nations'/><author><name>LLake</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-511320584893574893</id><published>2007-06-15T00:01:00.000-07:00</published><updated>2007-06-15T00:10:41.051-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='.DEB'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>Just Released: InstallBuilder 4.4</title><content type='html'>Updates include:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Support for .DEB packaging generation &lt;/li&gt;&lt;li&gt;Platform support for FreeBSD 6 - 64 bits &lt;/li&gt;&lt;li&gt;New httpPost action, allows passing of parameters &lt;/li&gt;&lt;li&gt;New 'scope' property for actions addDirectoryToPath and removeDirectoryFromPath allows to set path only for current user (Windows only) &lt;/li&gt;&lt;li&gt;New 'askForConfirmation' property for password parameters allows not having to verify password &lt;/li&gt;&lt;li&gt;Improved visualization for GTK and Win32 modes, as well as crashes in some specific GTK configurations &lt;/li&gt;&lt;/ul&gt;To view the complete changelog please visit:&lt;br /&gt;&lt;a href="http://www.bitrock.com/download_installbuilder_changelog.html"&gt;http://www.bitrock.com/download_installbuilder_changelog.html&lt;/a&gt;, or to download visit &lt;a href="http://bitrock.com/download_installbuilder_download.html"&gt;http://bitrock.com/download_installbuilder_download.html&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-511320584893574893?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/511320584893574893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=511320584893574893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/511320584893574893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/511320584893574893'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/06/just-released-installbuilder-44.html' title='Just Released: InstallBuilder 4.4'/><author><name>LLake</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-6318376435375986396</id><published>2007-06-12T05:04:00.001-07:00</published><updated>2007-06-12T05:10:03.786-07:00</updated><title type='text'>We're Hiring!</title><content type='html'>Having the right people on our team is a key to success in the competitive, dynamic environment of software development.  So, we are searching high and low for passionate, talented individuals to join our team in sunny southern Spain in the following roles:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://bitrock.com/about_careers.html#A1_1"&gt;Systems Administrator&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://bitrock.com/about_careers.html#A1_2"&gt;Junior Systems Administrator&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;We offer interesting, cutting-edge projects, an international work environment and competitive salaries.&lt;br /&gt;&lt;br /&gt;If you think you would be a good fit for either position, please send your resume to &lt;a href="mailto:careers@bitrock.com"&gt;careers@bitrock.com&lt;/a&gt; and in the subject line include the job title of the position you are applying for. Any previous involvement and in-depth expertise with key open source projects such as Apache, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PHP&lt;/span&gt;, Mono, MySQL, and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PostgreSQL&lt;/span&gt; is a big plus.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-6318376435375986396?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/6318376435375986396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=6318376435375986396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6318376435375986396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6318376435375986396'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/06/were-hiring.html' title='We&apos;re Hiring!'/><author><name>LLake</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-1557851320892618297</id><published>2007-06-06T05:02:00.000-07:00</published><updated>2007-06-06T05:07:42.350-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='linux foundation'/><title type='text'>BitRock @ the Linux Foundation Collaboration Summit</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;BitRock has been invited to attend next week’s &lt;a href="http://www.linux-foundation.org/en/Linux_Foundation_Collaboration_Summit" title="http://www.linux-foundation.org/en/Linux_Foundation_Collaboration_Summit"&gt;Linux Foundation Collaboration Summit&lt;/a&gt;, which will be hosted at Google’s Mountain View Campus.  The &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Summit&lt;/st1:City&gt;&lt;/st1:place&gt; brings together several of the brightest minds in the Linux ecosystem to &lt;a href="http://www.linux-foundation.org/en/Agenda_and_Schedule" title="http://www.linux-foundation.org/en/Agenda_and_Schedule"&gt;discuss everything&lt;/a&gt; Linux, from how to get more users onto Linux to Kernel Messaging. Of &lt;span style="color: black;"&gt;course, we are especially interested in the packaging discussion, which will allow us to share&lt;/span&gt; some of our &lt;a href="http://bitrock.com/customers_custom_stacks.html" title="http://bitrock.com/customers_custom_stacks.html"&gt;experience&lt;/a&gt; in &lt;span style="color: black;"&gt;packaging open source software for a wide range of Linux distributions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;. &lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Arial; color: black;"&gt;If you’re attending the conference, please keep your eye out for us to say hello. we’ll be the very jetlagged Spaniards.&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: Arial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-1557851320892618297?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/1557851320892618297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=1557851320892618297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1557851320892618297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1557851320892618297'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/06/bitrock-linux-foundation-collaboration.html' title='BitRock @ the Linux Foundation Collaboration Summit'/><author><name>LLake</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8319444412404916875</id><published>2007-05-31T03:36:00.000-07:00</published><updated>2007-05-31T03:43:53.669-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='custom stacks'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>Over Half a Million Downloads of BitRock Stacks</title><content type='html'>We are happy to announce that BitRock open source stacks have been downloaded over 500,000 times.  We’d like to thank our customers, whose success has helped to drive our own. &lt;br /&gt;&lt;br /&gt;If you aren’t familiar with BitRock Custom Stacks, you can learn more on our &lt;a href="http://bitrock.com/products_custom_stacks_overview.html"&gt;website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Basically, we build customized, integrated stacks of all of the open source software an application requires to run. In many cases, the stack is essentially a customized AMP Stack, with Apache, MySQL or PostgreSQL, and PHP, Python or Perl, along with other components such as OpenSSL or phpMyAdmin. We also build a lot of Java-based stacks, which typically include MySQL, JBoss or Tomcat and the Java runtime, along with other software. &lt;br /&gt;&lt;br /&gt;If you’d like to take a look at a few of the stacks we have done for customers such as JasperSoft, MySQL, KnowledgeTree, Pentaho and Openbravo, we have a few short &lt;a href="http://bitrock.com/customers_custom_stacks.html"&gt;case studies&lt;/a&gt; and videos of the installation process posted on our site as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8319444412404916875?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/8319444412404916875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=8319444412404916875' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8319444412404916875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8319444412404916875'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/05/over-half-million-downloads-of-bitrock.html' title='Over Half a Million Downloads of BitRock Stacks'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-1757458313161365960</id><published>2007-05-15T09:38:00.000-07:00</published><updated>2007-05-15T09:40:22.875-07:00</updated><title type='text'>BitRock @ OSBC</title><content type='html'>BitRock is proud to be a sponsor of the &lt;a href="http://www.osbc.com"&gt;Open Source Business Conference&lt;/a&gt;, which is taking place in San Francisco on May 22nd and 23rd.  Erica Brescia will be offering a “sneak peak” demo of our upcoming product on Wednesday the 23rd between 12:15 -12:30 PM in the Grand Ballroom, so don’t miss it.  We’ll also be at our booth in the Grand Ballroom throughout the conference, so please stop by and say hello if you are attending the conference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-1757458313161365960?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/1757458313161365960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=1757458313161365960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1757458313161365960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1757458313161365960'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/05/bitrock-osbc.html' title='BitRock @ OSBC'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-887822861194495892</id><published>2007-05-08T12:06:00.000-07:00</published><updated>2008-12-08T18:50:36.601-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>BitRock InstallBuilder 4.3 Released</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_C60Z-u2w0XM/RkDS1vk_qTI/AAAAAAAAAA4/yg0JjMcJgOY/s1600-h/Untitled.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 214px; height: 160px;" src="http://4.bp.blogspot.com/_C60Z-u2w0XM/RkDS1vk_qTI/AAAAAAAAAA4/yg0JjMcJgOY/s320/Untitled.png" alt="" id="BLOGGER_PHOTO_ID_5062277801910970674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;BitRock InstallBuilder 4.3 was just released. Some of the improvements that made it into this version:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Vista look and feel enhancements.&lt;/li&gt;&lt;li&gt;Quicklaunch shortcuts on Windows.&lt;/li&gt;&lt;li&gt;Russian language support&lt;/li&gt;&lt;li&gt;Default language can be set to 'auto' for autodetection.&lt;/li&gt;&lt;/ul&gt;You can download the latest release from &lt;a href="http://www.bitrock.com/download_installbuilder_download.html"&gt;bitrock.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-887822861194495892?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/887822861194495892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=887822861194495892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/887822861194495892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/887822861194495892'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/05/bitrock-installbuilder-43-released.html' title='BitRock InstallBuilder 4.3 Released'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C60Z-u2w0XM/RkDS1vk_qTI/AAAAAAAAAA4/yg0JjMcJgOY/s72-c/Untitled.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-7848126251483418271</id><published>2007-05-07T05:15:00.000-07:00</published><updated>2007-05-07T07:32:55.968-07:00</updated><title type='text'>BitRock @ Mundo Internet</title><content type='html'>Daniel Lopez (BitRock's founder and CTO) will be giving a talk at the upcoming Mundo Internet conference in Malaga on May 16th (&lt;a href="http://www.aui.es/index.php?body=mip_article_ponencia&amp;id_article=2387"&gt;link&lt;/a&gt;). He'll be discussing the advantages of using open source in small businesses, and will be highlighting several commercial open source projects, including a number of BitRock customers, such as &lt;a href="http://www.sugarcrm.com"&gt;SugarCRM&lt;/a&gt;, &lt;a href="http://www.knowledgetree.com"&gt;KnowledgeTree&lt;/a&gt;, and &lt;a href="http://www.openbravo.com"&gt;Openbravo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-7848126251483418271?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/7848126251483418271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=7848126251483418271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7848126251483418271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/7848126251483418271'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/05/bitrock-mundo-internet.html' title='BitRock @ Mundo Internet'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8059767001815081424</id><published>2007-04-05T05:22:00.000-07:00</published><updated>2007-04-05T15:04:27.506-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='installbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='new releases'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='installer'/><title type='text'>BitRock InstallBuilder 4.2 Released</title><content type='html'>Yesterday, we released v4.2 in InstallBuilder, which includes several new features and bugfixes. You can view our &lt;a href="http://www.bitrock.com/download_installbuilder_changelog.html"&gt;changelog&lt;/a&gt; to see a complete list of enhancements, but here are a few highlights:&lt;br /&gt;&lt;br /&gt;  * Additional platform support: Linux IA64, FreeBSD 3, FreeBSD 6 and OpenBSD 3.x&lt;br /&gt;  * Ability to localize license and readme files (you can now show the appropriate file based upon the language selected by the user at the start of the installation process)&lt;br /&gt;  * Qt mode improvements&lt;br /&gt;  * Improved Vista support&lt;br /&gt;&lt;br /&gt;InstallBuilder 4.2 is available for download from &lt;a href="http://www.bitrock.com/download_installbuilder_download.html"&gt;bitrock.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In future blog entries, we will discuss how to use these and other new features in BitRock InstallBuilder.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8059767001815081424?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/8059767001815081424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=8059767001815081424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8059767001815081424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8059767001815081424'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/04/bitrock-installbuilder-42-released.html' title='BitRock InstallBuilder 4.2 Released'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-6309684372141458679</id><published>2007-03-28T10:19:00.000-07:00</published><updated>2007-03-28T10:28:52.739-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openbravo'/><category scheme='http://www.blogger.com/atom/ns#' term='custom stacks'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='installer'/><title type='text'>OpenBravo - Out of the box, open source, ERP</title><content type='html'>&lt;p&gt;'Easy to install' is not the first thing that comes to mind when people think of ERP (Enterprise Resource Planning) software. Last week, &lt;a href="http://www.openbravo.com"&gt;OpenBravo&lt;/a&gt;, a web-based, open source ERP solution, released installers built with BitRock technology that make installing their entire system a breeze. OpenBravo was designed for the small to medium sized business market, so having a fast, easy installation process is especially important (most SMEs don't have the IT resources to implement complex enterprise management systems.) &lt;/p&gt;&lt;br /&gt;&lt;p&gt;The OpenBravo license in based on the MPL, and the software is available for &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=162271"&gt;download&lt;/a&gt; from Sourceforge. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-6309684372141458679?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/6309684372141458679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=6309684372141458679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6309684372141458679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/6309684372141458679'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/03/openbravo-out-of-box-open-source-erp.html' title='OpenBravo - Out of the box, open source, ERP'/><author><name>Erica Brescia</name><uri>http://www.blogger.com/profile/02065317823546496697</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-4400371961910077915</id><published>2007-03-06T02:50:00.000-08:00</published><updated>2007-03-06T02:56:45.599-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='red herring'/><category scheme='http://www.blogger.com/atom/ns#' term='openbravo'/><category scheme='http://www.blogger.com/atom/ns#' term='ring2'/><category scheme='http://www.blogger.com/atom/ns#' term='award'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>Red Herring Europe</title><content type='html'>&lt;a href="http://redherring.com"&gt;Red Herring&lt;/a&gt; has announced the Red Herring 200 finalists for their European awards. &lt;a href="http://www.bitrock.com"&gt;BitRock&lt;/a&gt; was  one of the companies selected. It seems we are in good company, including some clients like &lt;a href="http://www.openbravo.com"&gt;OpenBravo&lt;/a&gt; and our friends at &lt;a href="http://www.ring2.com"&gt;Ring2&lt;/a&gt; (if you live on a BlackBerry and do conference calls, you need to check them out).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-4400371961910077915?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/4400371961910077915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=4400371961910077915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4400371961910077915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/4400371961910077915'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/03/red-herring-europe.html' title='Red Herring Europe'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-5213911866212382541</id><published>2007-03-04T02:02:00.000-08:00</published><updated>2007-03-28T10:34:16.711-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='amanda'/><category scheme='http://www.blogger.com/atom/ns#' term='zmanda'/><category scheme='http://www.blogger.com/atom/ns#' term='rapid installer'/><category scheme='http://www.blogger.com/atom/ns#' term='custom stacks'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><category scheme='http://www.blogger.com/atom/ns#' term='console'/><title type='text'>Zmanda releases ZMC</title><content type='html'>Congratulations to the &lt;a href="http://www.zmanda.com/"&gt;Zmanda&lt;/a&gt; folks on the release of the &lt;a href="http://www.zmanda.com/press-release-zmc.html"&gt;Zmanda Management Console&lt;/a&gt;, a slick web-based product that significantly reduces the burden of installation and ongoing management of Amanda servers, especially in complex enterprise environments. ZMC itself is installed with the &lt;a href="http://www.zmanda.com/blogs/?p=45"&gt;Zmanda rapid installer&lt;/a&gt;, based on BitRock &lt;a href="http://bitrock.com/products_custom_stacks_overview.html"&gt;custom stacks&lt;/a&gt; technology. Checkout the &lt;a href="http://www.zmanda.com/RapidInstallerDemo/RapidInstallerDemo.html"&gt;flash video of the installation process&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-5213911866212382541?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/5213911866212382541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=5213911866212382541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5213911866212382541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/5213911866212382541'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/03/zmanda-releases-zmc.html' title='Zmanda releases ZMC'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-208607098855281733</id><published>2007-02-23T01:36:00.000-08:00</published><updated>2008-12-08T18:50:36.763-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='installer bitrock qt gtk installshield multiplatform'/><title type='text'>Java multiplatform installers are sooooo 90s.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_C60Z-u2w0XM/Rd66AXM2KfI/AAAAAAAAAAk/svGAk7S99sM/s1600-h/billgates.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_C60Z-u2w0XM/Rd66AXM2KfI/AAAAAAAAAAk/svGAk7S99sM/s320/billgates.jpg" alt="" id="BLOGGER_PHOTO_ID_5034665948837456370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;Increasingly, a great number of our InstallBuilder customers have been &lt;a href="http://www.macrovision.com/products/flexnet_installshield/installanywhere/ismp_eol.shtml"&gt;InstallShield refugees&lt;/a&gt;. Desktop application development has never been Java's forte, but one of my early experiences with multiplatform installation tools was the now defunct InstallShield Multiplatform. The tool had a lot of shortcomings, but what really irritated me was the really ugly &lt;a href="https://publib.boulder.ibm.com/tividd/td/ITSCM/GC32-1592-00/en_US/HTML/localunix.gif"&gt;Java AWT interface&lt;/a&gt; that made us Linux users feel like we were second-class citizens.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Because of those early experiences, at BitRock we always strive to offer you a truly native &lt;a href="http://bitrock.com/products_installbuilder_screenshots.html"&gt;installation experience&lt;/a&gt;. For example, on Unix we provide both Gtk and Qt-based frontends to our installation tool. In addition to being pretty, by virtue of not requiring the bundling of a JRE, our installers are also lean and mean, as we will comment on future posts.&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-208607098855281733?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/208607098855281733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=208607098855281733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/208607098855281733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/208607098855281733'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/02/java-multiplatform-installers-are.html' title='Java multiplatform installers are sooooo 90s.'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_C60Z-u2w0XM/Rd66AXM2KfI/AAAAAAAAAAk/svGAk7S99sM/s72-c/billgates.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-1557709196528128124</id><published>2007-02-08T08:25:00.000-08:00</published><updated>2009-09-25T02:05:25.178-07:00</updated><title type='text'>The Road to 4.2.0</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C60Z-u2w0XM/RctPmXM2KdI/AAAAAAAAAAM/w2Z3juGd4ho/s1600-h/capture.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 251px; height: 190px;" src="http://1.bp.blogspot.com/_C60Z-u2w0XM/RctPmXM2KdI/AAAAAAAAAAM/w2Z3juGd4ho/s320/capture.PNG" alt="" id="BLOGGER_PHOTO_ID_5029200929370810834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;We are currently hard at work on the 4.2.0 version of InstallBuilder.&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;It includes support for FreeBSD 6.0 and Linux on IA64 (Itanium). Although regular FreeBSD 5 and x86 Linux binaries can run ok with compatibility libraries installed, we had customer requests for pure, native ports.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C60Z-u2w0XM/RctQGXM2KeI/AAAAAAAAAAU/Lcbwf2wRplI/s1600-h/parameterGroup-qt-screenshot.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer; width: 218px; height: 162px;" src="http://1.bp.blogspot.com/_C60Z-u2w0XM/RctQGXM2KeI/AAAAAAAAAAU/Lcbwf2wRplI/s320/parameterGroup-qt-screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5029201479126624738" border="0" /&gt;&lt;/a&gt;Expanding on the multiple parameters per page feature introduced in InstallBuilder 4.0, you can now arrange parameters on screen. To do so, you can now set the orientation property of a parameterGroup  parameter to horizontal or vertical. See the pictures some examples running on Windows and Linux (&lt;a href="http://bitrock.com/download_installbuilderqt_download.html"&gt;Qt mode&lt;/a&gt;) and the corresponding XML code. Click on the images to see them full-size.&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;parametergroup orientation="horizontal"&gt;&lt;/parametergroup&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style="color: rgb(0, 0, 0);"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;parameterGroup orientation="horizontal"&amp;gt;&lt;br /&gt;&amp;lt;name&amp;gt;group1&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;lt;explanation&amp;gt;Please enter the information required to access the remote server&amp;lt;/explanation&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Remote server configuration&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;parameterList&amp;gt;&lt;br /&gt;  &amp;lt;parameterGroup&amp;gt;&lt;br /&gt;    &amp;lt;parameterList&amp;gt;&lt;br /&gt;         &amp;lt;stringParameter width="15" name="username" description="Username"&amp;gt;&lt;br /&gt;         &amp;lt;passwordParameter width="15" name="pass" description="Password" descriptionretype="Retype"&amp;gt;&lt;br /&gt;    &amp;lt;/parameterList&amp;gt;&lt;br /&gt;  &amp;lt;/parameterGroup&amp;gt;&lt;br /&gt;  &amp;lt;parameterGroup&amp;gt;&lt;br /&gt;    &amp;lt;parameterList&amp;gt;&lt;br /&gt;       &amp;lt;stringParameter name="hostname" description="Hostname"&amp;gt;&lt;br /&gt;         &amp;lt;choiceParameter name="protocol" displaytype="radiobuttons" explanation="Protocol selection"&amp;gt;&lt;br /&gt;           &amp;lt;optionList&amp;gt;&lt;br /&gt;           &amp;lt;option text="HTTP" value="http"&amp;gt;&lt;br /&gt;           &amp;lt;option text="HTTPS" value="https"&amp;gt;&lt;br /&gt;           &amp;lt;/optionList&amp;gt;&lt;br /&gt;           &amp;lt;default&amp;gt;https&amp;lt;/default&amp;gt;&lt;br /&gt;         &amp;lt;/choiceParameter&amp;gt;&lt;br /&gt;      &amp;lt;/parameterList&amp;gt;&lt;br /&gt;    &amp;lt;/parameterGroup&amp;gt;&lt;br /&gt;  &amp;lt;/parameterList&amp;gt;&lt;br /&gt;&amp;lt;/parameterGroup&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-1557709196528128124?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/1557709196528128124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=1557709196528128124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1557709196528128124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/1557709196528128124'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/02/road-to-420.html' title='The Road to 4.2.0'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_C60Z-u2w0XM/RctPmXM2KdI/AAAAAAAAAAM/w2Z3juGd4ho/s72-c/capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-315508520962829459.post-8334323953335000234</id><published>2007-02-08T08:12:00.000-08:00</published><updated>2007-02-08T09:16:48.518-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bitrock'/><title type='text'>Hola Mundo!</title><content type='html'>About 4 years later than originally planned, the &lt;a href="http://bitrock.com/"&gt;BitRock&lt;/a&gt; blog is finally live, which we will use to keep you up to date on our our plans for world domination. We promise not to publish any cat pictures, as that niche is already well &lt;a href="http://kittenwar.com/"&gt;covered&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/315508520962829459-8334323953335000234?l=blog.bitrock.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.bitrock.com/feeds/8334323953335000234/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=315508520962829459&amp;postID=8334323953335000234' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8334323953335000234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/315508520962829459/posts/default/8334323953335000234'/><link rel='alternate' type='text/html' href='http://blog.bitrock.com/2007/02/hola-mundo.html' title='Hola Mundo!'/><author><name>BitRock Team</name><uri>http://www.blogger.com/profile/14660332720215938837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
