VSoft Technologies BlogsVSoft Technologies Blogs - posts about our products and software development.https://www.finalbuilder.com/resources/blogsBlack Friday Sale 2023 - 50% off all new licenseshttps://www.finalbuilder.com/resources/blogs/postid/846/black-friday-sale-2023-50-percent-off-all-new-licensesAutomise,Continua CI,Delphi,FinalBuilderFri, 24 Nov 2023 02:27:58 GMT<p>50% OFF. No, that’s not a typo! Our first ever Black Friday sale - 50% off all new licenses - valid to midnight Tues 28th Nov (UTC).</p> <p>No coupon code required, the store will apply the discount automatically.</p> 846Windows 10 Fall Creators Updatehttps://www.finalbuilder.com/resources/blogs/postid/756/windows-10-fall-creators-updateAutomise,Delphi,FinalBuilder,WindowsTue, 17 Oct 2017 09:55:38 GMTThe <a href="https://blogs.windows.com/windowsexperience/2017/10/17/get-windows-10-fall-creators-update" title="How do I get the Fall Update?">Windows 10 Fall Creators Update has only been out a few hours</a>, but we're already getting questions about it.&nbsp;<br /> <br /> In our limited testing, FinalBuilder 8 and Automise 5 run fine.<br /> <br /> I've only been running the Fall Update for a few hours, but so far I have not noticed any issues. The applications I use daily all run fine.&nbsp;<br /> <br /> The "Windows 10 Creators Update" (ie the one before the Fall Update - stupid release naming imho) <a href="https://quality.embarcadero.com/browse/RSP-17972" title="Embarcadero issue tracker. Requires registration/login to view.">broke the Delphi debugger</a> when using runtime packages. Aparently the issue was caused by a library loader optiimisation, not taking into account that dll's can have multiple import tables. I never did see a full explaination or acknowledgement of the problem from Microsoft. <br /> <br /> This only affected the debugger (all native code debuggers, not just Delphi), which would load and unload each dll many times (based on the number of imports, for FinalBuilder's core package, it was in the hundreds). Sometimes the application would launch, only for the debugger to crash, sometimes it would just hang, sometimes the Delphi IDE would get out of memory errors.&nbsp;<br /> <br /> For me, this was a big issue, since FinalBuilder and Automise use runtime packages. This affected all versions of Delphi, even the latest 10.2 (Tokyo). Embarcadero did eventually ship an update to 10.2 that mostly resolved the problem (not an easy thing as it involved major linker changes), but that didn't help us as we're using an older version (for reasons I won't go into here!). <br /> <br /> So since April 2017, I've been really hamstrung when it comes to debugging. Fortunately we discovered the issue before the Creators Update was installed on our other Delphi development machines (and it's a been a constant battle with windows update nagging to install it ever since) so we were still able debug, just not on my dev machine. Frustrating to say the least.&nbsp;<br /> <br /> The good news is that the Fall Update (mostly) fixes the problem.&nbsp; I still see some dlls/packages getting unloaded and reloaded again, but the application launches and I can debug.&nbsp;<br /> <br /> As far as windows functionality in the Fall Update goes, well the Task Manager has a new GPU section on the performance tab which is mildly interesting, but since I don't use a Pen, or wear a VR headset while working, I'm not noticing much to get excited about. Hopefully, it's just a lot of bug fixes and performance enhancements, minus the show stoppers!!&nbsp;756Automise 5 Released!https://www.finalbuilder.com/resources/blogs/postid/744/automise-5-releasedAutomise,Chocolatey,GeneralMon, 28 Mar 2016 14:32:13 GMT<p>Today we are delighted to release the Automise 5, which now includes a gift. Automise Run-time is now free.</p> <p>As explained in the Beta announcement, our continuous delivery cycle has worked well for Automise 4. Producing constant stream of updates and fixes. Now, with significant updates to the internal workings for Automise today we are releasing Automise 5. </p> <h2>What's new in Automise 5</h2> <h3>Stepping Engine</h3> <p>We have undertaken a major rewrite of the internal stepping engine for Automise 5. This has reduced the moving parts, while also enabling extra features to be implemented. In the end this will mean your projects will run faster, consume less resources, and also providing some extra tools for debugging projects.</p> <h3>Action List Dependencies</h3> <p>Action Lists can now list other action lists that they depend on. For example this allows specifying a UploadAndClean Action List that depends on the Clean and Upload Action Lists. When UploadAndClean is run, if the Clean and Upload Action Lists have not been run they will be. </p> <p style="text-align: center;"><img alt="Action List Dependencies" src="/blogimages/jason/Automise5-beta-release/at5_actionlist_dependencies.png" style="text-align: center;" /></p> <h3>Step into included projects</h3> <p>Previously, debugging include project actions meant running the entire included project when stepping over the action. In Automise 5, debugging allows for stepping into the included project. This will open the included project, if is not already open, and start to debug that project. </p> <h3>Breakpoint Conditions</h3> <p>We have also added to the debugging experience with breakpoint conditions. These work like break point conditions in Visual Studio. They present options for stopping the executing of a script when variables have certain values, or a condition specified becomes true. Conditions can also be the number of passes over the breakpoint.</p> <p style="text-align: center;"><img alt="Action List Dependencies" src="https://www.finalbuilder.com/blogimages/jason/Automise5-beta-release/at5_breakpoint_properties.png" style="text-align: center;" /></p> <h3>IDE Themes (Light and Dark)</h3> <p>After five years we thought it was time Automise got a new coat of paint. We have implemented two new themes, a light and dark theme (defaulting to the dark on first run up). Choose your side wisely&hellip;</p> <table style="border: none; width: 100%;"> <tbody> <tr> <td style="width: 50%;"> <img alt="Action List Dependencies" src="https://www.finalbuilder.com/blogimages/jason/Automise5-beta-release/at5_dark_theme.png" style="text-align: center;" /> </td> <td style="width: 50%;"> <img alt="Action List Dependencies" src="https://www.finalbuilder.com/blogimages/jason/Automise5-beta-release/at5_light_theme.png" style="text-align: center;" /> </td> </tr> </tbody> </table> <h3>Action List Out Parameters</h3> <p>Action Lists parameters can now be defined as an out parameter. These parameters can have their value set inside the action list. On exiting the action list the calling Run Action List action will set the variable assigned as the out variable with that value. This effectively adds the ability to have action lists work as functions and return values calculated in the action list.</p> <h3>Project Formats</h3> <p>Let&rsquo;s face it, xml files are difficult to diff. To make diffs easier Automise 5 has introduce two major updates to the Automise project file structure.</p> <p>&nbsp; &nbsp;1. A new DSL project file format (the new default format) (atp5)</p> <p>&nbsp; &nbsp;2. A new XML project file format (atx5)</p> <p><span style="font-size: 1.4em; font-weight: normal; line-height: 36px; font-family: 'Open Sans', Arial, Helvetica, sans-serif; color: #555555;">New Actions</span></p> <p>We have done some major work to bring new Azure and Amazon S3 actions to you. Some of these being:</p> <ul> <li>Amazon S3 - Added bucket delete object, bucket list objects, bucket list, upload directory, and download folder actions.</li> <li>Azure Actions - Added Login, Logout, Config Mode actions.</li> <li>Azure Group Actions - Added Group Create, Group Delete, Group List, Group Log Show, Group Set, Group Show actions.</li> <li>Azure VM - Added VM Capture, VM Create, VM Deallocate, VM Delete, VM List, VM List, VM Quick Create, VM Restart, VM Start, VM Stop actions.</li> <li>Azure Storage - Added Storage File Copy Show, Storage File Copy Start, Storage File Copy Stop, Storage File Delete, Storage File Download, Storage File List, Storage File Upload actions.</li> </ul> <h3>New License Manager</h3> <p>Automise 5 introduces a new license manager that allows you to download licenses directly from the store. It will be presented to you on first load, or when no valid license has been found. You can also get to it from the Help menu.</p> <p>All that you will require to download a license from the store is your store credentials. It will then log in for you, and download a list of licenses that will work for the current version of Automise. If you had a current Automise 4 subscription as of 28 March 2016, you will already have an Automise 5 license waiting for you in your store account.</p> <p>In addition there is a simpler way to get Trial license, all that you require is a valid email address to receive a verification code on.</p>744Automise 5 Betahttps://www.finalbuilder.com/resources/blogs/postid/741/automise-5-betaAutomiseWed, 20 Jan 2016 13:06:13 GMT<p>Today we are delighted to release the Automise 5 BETA, which contains our new Stepping Engine and Action List Dependencies as the headline features. </p> <p>For five years we have updated and improved Automise 4 through our continuous delivery cycle.&nbsp;This has worked well. Allowing for improvements to actions (like FTP\SFTP\FTPS suite) to come out gradually and consistently. Allowing everyone to pick and choose at which point to take feature updates.</p> <p>The Automise 5 signals a major "tick" to this regular flow of updates. The majority of these updates are at the core of what Automise does to solve your automation challenges.</p> <h2>What's new in Automise 5</h2> <h3>Stepping Engine</h3> <p>We have undertaken a major rewrite of the internal stepping engine for Automise 5. This has reduced the moving parts, while also enabled extra features to be implemented. In the end this will mean your projects will run faster, consume less resources, while also providing some extra tools for debugging projects.</p> <h3>Action List Dependencies</h3> <p>Action Lists now allow for listing of other Actions Lists they are dependent on. Dependencies are always run before the action lists which depend on them. For example this allows specifying a UploadAndClean Action List that depends on the Clean and Upload Action List. When <span>UploadAndClean</span> is run, if the Clean and Upload Action Lists have not been run they will be.</p> <p style="text-align: center;"><img alt="Action List Dependencies" src="/blogimages/jason/Automise5-beta-release/at5_actionlist_dependencies.png" style="text-align: center;" /></p> <h3>Step into included projects</h3> <p>Due to the previous version of the stepping engine stepping into included projects was not possible. Instead the user had to wait for the included project to complete before continuing with debugging. Stepping into included projects with Automise 5 will now open the included project, and continue stepping from inside the included project.</p> <h3>Breakpoint Conditions</h3> <p>Another addition to the debugging experience is breakpoint conditions. These allow stopping the executing of a script at a certain point in time. Conditions can be a number of passes over the breakpoint, or when a variable equals a certain value.</p> <p style="text-align: center;"><img alt="Action List Dependencies" src="https://www.finalbuilder.com/blogimages/jason/Automise5-beta-release/at5_breakpoint_properties.png" style="text-align: center;" /></p> <h3>IDE Themes (Light and Dark)</h3> <p>After five years we thought it was time Automise got a new coat of paint. We have implemented two new themes, a light and dark theme (defaulting to the dark on first run up).</p> <table style="border: none; width: 100%;"> <tbody> <tr> <td style="width: 50%;"> <img alt="Action List Dependencies" src="https://www.finalbuilder.com/blogimages/jason/Automise5-beta-release/at5_dark_theme.png" style="text-align: center;" /> </td> <td style="width: 50%;"> <img alt="Action List Dependencies" src="https://www.finalbuilder.com/blogimages/jason/Automise5-beta-release/at5_light_theme.png" style="text-align: center;" /> </td> </tr> </tbody> </table> <h3>Action List Out Parameters</h3> <p>Action Lists now allow for retrieving any number of values from them. A variable assigned to the out parameter on the Action List will be given the value of that parameter when the Action List has completed. This will allow for more Action Lists that generate values for use else where in the Automise Project.</p> <h3>Project Formats</h3> <p>Since the start of Automise the project files have used XML for their structure. As Automise has grown, so too have the elements in the projects XML file. This has placed more strain on those left to diff versions of Automise projects.</p> <p>To aleavate this challenge Automise 5 has introduce two major updates to the Automise project file structure.</p> <p>&nbsp; &nbsp;1. A new DSL project file format (the new default format)</p> <p>&nbsp; &nbsp;2. A new XML project file format</p> <p>The new Automise DSL structure is concise, and very simple to diff.</p> <pre class="brush:delphi; toolbar:true;">project begin projectid = {04710B72-066E-46E7-84C7-C04A0D8BFE18} Action List begin name = Default Action Listid = {E6DE94D6-5484-45E9-965A-DB69885AA5E2} rootaction begin action.group begin id = {D860420B-DE46-4806-959F-8A92A0C86429} end end end end </pre> The new Automise XML structure is a great deal less verbose than the older format. <pre class="brush:xml; toolbar:true;">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;Automise&gt; &lt;project&gt; &lt;projectid&gt;{6A717C24-D00F-4983-9FD0-148B2C609634}&lt;/projectid&gt; &lt;Action List&gt; &lt;name&gt;Default&lt;/name&gt; &lt;Action Listid&gt;{E6DE94D6-5484-45E9-965A-DB69885AA5E2}&lt;/Action Listid&gt; &lt;rootaction&gt; &lt;action.group&gt; &lt;id&gt;{D860420B-DE46-4806-959F-8A92A0C86429}&lt;/id&gt; &lt;/action.group&gt; &lt;/rootaction&gt; &lt;/Action List&gt; &lt;/project&gt; &lt;/Automise&gt; </pre> <p>&nbsp;</p> <h3>New Actions</h3> <p>Not much to report here, most of the focus has been on the Stepping engine and the IDE. We do have some updates to AWS EC2 and Azure in progress, they will most likely be added in an update when they are ready.&nbsp;</p> <h3>How do I get the Beta?</h3> <span>Links to the beta downloads will be published to the&nbsp;</span><a href="https://www.finalbuilder.com/downloads/automise">Automise Downloads</a><span>&nbsp;page.&nbsp;</span> <h3>What if I find a bug?</h3> <span>Email support (please added Beta to the subject). When reporting an issue, be sure to include the beta build number and details about your environment. Please test with the latest beta build before reporting bugs.&nbsp;</span><br /> <br /> <span>We are particularly keen for people to load up their existing projects from older (ie 4 or earlier) versions of Automise, save them in AT5 format, and load them again and confirm that everything loaded ok.&nbsp;</span><br /> <br /> <h3>When will it be released?</h3> <h3></h3> <span>When it's ready ;) Seriously, though, we expect the release to happen in the next few weeks. Automise 5 is based on FinalBuilder 8, which has been out for several months now and is quite stable.&nbsp;</span>741FinalBuilder/Automise Keyboard Shortcutshttps://www.finalbuilder.com/resources/blogs/postid/674/finalbuilderautomise-keyboard-shortcutsAutomise,FinalBuilderTue, 15 Apr 2008 04:00:00 GMT<p>Brent was watching me fly through some FinalBuilder operations the other day and he suggested I write a blog post about the best keyboard shortcuts to use.</p> <p>Even as a power user/developer, you can sometimes use a tool every day and not know the best keyboard shortcuts for it. I only learned many of the keyboard shortcuts for Visual Studio after I attended a special session at TechEd last year.</p> <p>I don't want to drown you in information here, so I'm going to list four shortcuts that are essential to know,<strong> </strong>and another four that are very useful.</p> <h2>Essential</h2> <p>If you own a keyboard and use FinalBuilder or Automise, the following keyboard shortcuts are essential. They will improve your productivity ten-fold!</p> <p> </p> <table border="1" cellpadding="1" cellspacing="1" height="173" width="767"> <tbody> <tr> <td><strong>Key</strong></td> <td><strong>Context</strong></td> <td><strong>Description</strong></td> </tr> <tr> <td><span style="font-family: 'courier new';">Ctrl-</span><span style="font-family: 'courier new';">I</span></td> <td>Main IDE Window</td> <td> <p>Focus the Actions filter field to search for a new action.<br /> If the filter field is already focused, this keystroke hides the Actions sidebar instead.<sup>*</sup></p> </td> </tr> <tr> <td><span style="font-family: 'courier new';">Ctrl-Right</span></td> <td>Selected action(s)</td> <td>Indent the selected action(s) as new children of the action above them.</td> </tr> <tr> <td><span style="font-family: 'courier new';">Ctrl-Left</span></td> <td>Selected action(s)</td> <td>Outdent the select action(s) relative to their parent action</td> </tr> <tr> <td><span style="font-family: 'courier new';">Ctrl-Up/Down</span></td> <td>Selected action(s)</td> <td>Move selected action(s) up and down</td> </tr> </tbody> </table> <p>In my opinion, using the Ctrl-Arrow keys to rearrange actions is essential (drag and drop is just too fiddly!) </p> <p><sup>*</sup> The "hide sidebar if currently focused" feature is new in FB 6.</p> <h2>Very Useful</h2> <p>The following key combinations are very useful when you are typing in a text field while editing an action:</p> <p> </p> <table border="1" cellpadding="1" cellspacing="1" width="767"> <tbody> <tr> <td><strong>Key</strong></td> <td><strong>Description</strong></td> </tr> <tr> <td><span style="font-family: 'courier new';">F3</span></td> <td>Define a new variable on-the-fly.</td> </tr> <tr> <td><span style="font-family: 'courier new';">F2 </span></td> <td>Pop up an advanced edit dialog with lists of variables, PropertySets, etc. </td> </tr> <tr> <td><span style="font-family: 'courier new';">F12</span></td> <td>Pop up a list of suggested variable replacements.</td> </tr> <tr> <td><span style="font-family: 'courier new';">Ctrl-Space </span></td> <td>Automatic completion for variable and PropertySet names. </td> </tr> </tbody> </table> <p>For FB 6, we also did a lot of work on the Tabbing behaviour in the IDE. You should be able to use Tab to navigate the main IDE elements very easily.</p> 674Safely Using Relative Paths in Actionshttps://www.finalbuilder.com/resources/blogs/postid/666/safely-using-relative-paths-in-actionsAutomise,FinalBuilderMon, 25 Feb 2008 19:00:00 GMT<p>Using relative paths in a project is a good idea - they make a project more maintainable, readable and portable.</p> <p>However, lately I've seen quite a few sample FinalBuilder projects where people are using this kind of relative path in their actions:</p> <p> </p> <table width="200" cellspacing="1" cellpadding="1" border="1"> <tbody> <tr> <td>MySolutionFile.sln</td> </tr> <tr> <td>.\MyProject\Installer\Project.iss</td> </tr> <tr> <td>..\..\MyOtherProject\MyProject.dproj</td> </tr> </tbody> </table> <p>The idea is that if the file is located relative to the project file path, the relative path will resolve to the right directory.</p> <p>Great idea, right? Unfortunately, no.</p> <p>These relative paths rely on the current Windows working directory for the process. Unfortunately, FinalBuilder and Automise only have limited control over this property. Various API calls (made by actions, scripts or the IDE) might change this directory unexpectedly.</p> <p>The safe way to use relative paths in a FinalBuilder or Automise project is to use the variable <strong>%FBPROJECTDIR%</strong> (called <strong>%PROJECTDIR%</strong> in Automise.) This variable evaluates to the directory which contains the current project file.</p> <p> </p> <table width="200" cellspacing="1" cellpadding="1" border="1"> <tbody> <tr> <td><strong>Unsafe</strong></td> <td><strong>Safe</strong></td> </tr> <tr> <td>MySolution.sln</td> <td>%FBPROJECTDIR%\MySolution.sln</td> </tr> <tr> <td>.\MyProject\</td> <td>%FBPROJECTDIR%\MyProject\Installer\Project.iss</td> </tr> <tr> <td>..\..\MyOtherProject\MyProject.dproj</td> <td>%FBPROJECTDIR%\..\..\MyOtherProject\MyProject.dproj</td> </tr> </tbody> </table> <p>We recommend defining new project variables to prevent these paths from becoming too long and unwieldy, and to make your project easier to read.</p> <p>For instance, you could define a project variable called <em>InstallerPath</em> and set it to <em>%FBPROJECTDIR%\MyProject\Installer</em>. Turn on the "Macro" option for the <em>InstallerPath</em> variable to make sure variable references are expanded each time the variable is read.</p> <p><img src="/blogimages/FBPROJECTDIR-AddVariableMacro.png" alt="Add Macro Variable " /></p>666XML Actions and the "XPath returned no node" error.https://www.finalbuilder.com/resources/blogs/postid/665/xml-actions-and-the-xpath-returned-no-node-errorAutomise,FinalBuilder,XMLSun, 24 Feb 2008 19:00:00 GMT<p>(It's been a while since I blogged about anything, so I thought I'd write about this while my coffee kicks in on a Monday morning.)</p> <p>An issue which comes up quite often is people seeing this error when they try to use XML actions in FinalBuilder or Automise:</p> <pre> XPath returned no node : /Project/Import</pre> <p>The reason is because of the way MSXML deals with document namespaces.  If your XML file uses XML namespaces (and most do), then you need to tweak the action slightly.</p> <p>I'm not going to go into XML Namespaces in detail. There are <a href="http://www.w3schools.com/xml/xml_namespaces.asp">better places to learn about them</a>. I'll just show you an example:</p> <p><strong>Example</strong></p> <p>Say you have a Visual Studio 2005 .csproj file (which is really just an XML file wearing a funny hat.) You want to iterate over all of the imported project names with an XML Node Iterator action. If you try to use the XPath <em>/Project/Import</em>, then you'll see the error I showed above.</p> <p>Here's the first line of the .csproj file:</p> <pre class="brush:xml; toolbar:false;"> <project defaulttargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"></pre> <p>This means the document has a <strong>default XML Namespace</strong>, which is "<em>http://schemas.microsoft.com/blahblahblah</em>". This is why MSXML can't follow the XPath properly.</p> <p>To fix this, open the XML action and navigate to the "MSXML Parser" page.</p> <p><img alt="MSXML Parser Dialog" src="/blogimages/DefaultXMLNamespace.png" /></p> <p>Turn on the "Automatically use namespace prefixes..." checkbox, and type a letter in the field for the default Namespace. I used "x" in the screenshot shown above.</p> <p>Now change your XPath from <em>/Project/Import</em> to:</p> <pre class="brush:xml; toolbar:true;"> /x:Project/x:Import </pre> <p>It works! Namespace prefix "x" now refers to the default namespace in the document.</p> <p><strong>Pedantic Details</strong></p> <ul> <li>There is a way to specify the namespace URI as part of the XPath, without using this prefix feature, but the resulting XPaths are enormous and hard for humans to read.</li> </ul> <ul> <li>If you have namespace prefixes defined as attributes in the document root node, ie <em>s:xmlns="http://www.myfunkyurl.com/namespace"</em>, then turning on this option will let you use the prefixes in your XPath.</li> </ul> <ul> <li>This is the best solution we've come up with so far. We're planning to revisit this in future and (hopefully) make it all automatic without any manual configuration or custom prefixes.</li> </ul> <p> </p> 665Automise, FinalBuilder and XML Formatted Datahttps://www.finalbuilder.com/resources/blogs/postid/609/automise-finalbuilder-and-xml-formatted-dataAutomise,FinalBuilderThu, 05 Jul 2007 12:36:17 GMT<p>Now and again people comment that they think FinalBuilder or Automise uses proprietary binary formats. I sympathise entirely. Binary formats are a pain to work with in version control, and a format like XML can be great when you need to make a sweeping change or tweak something. (If the people who make our help authoring tool are reading this post, please take note!)</p><br /><p>The good news is that all of FinalBuilder and Automise's data is available via XML or raw text, you just need to know how to look for it!</p><br /><h2>The project files are XML</h2> <p>Both Automise and FinalBuilder save their project files as XML. If you save in the .FBP5 / .ATP2 "uncompressed" project format, then the project file is actually just an XML document. The XML isn't exquisitely formatted for human eyes, but a machine will be able to read it just fine..</p> <p>If you save in the .FBZ5 / .ATZ2 "compressed" project format, the project file is compressed using industry-standard zip compression. If you rename the file to .ZIP, and open it in a zip program (like <a href="http://www.7zip.org">7zip</a>), then you can view or extract the uncompressed project file inside.</p> <p>To choose whether to save "compressed" or "uncompressed" by default, go to Tools -> Options -> General IDE Options -> Design Time Options:</p> <p><img alt="Options Dialog, showing compressed file option" src="/blogimages/angus/xmlformat/options.png" /></p><br /><h2>Project logs can be exported as XML</h2> <p>OK, you've got me. Automise and FinalBuilder project log files (.fbl5 and .log2) are a <a href="http://www.nexusdb.com">proprietary database format</a>. In the old days, FinalBuilder 1 & 2 used a text formatted log file (or so I'm told.) This led to performance problems with large log files and long running projects. Hence the move to an embedded database engine.</p> <p>However, you can still export any project log as XML. To export a single log, go to the History tab, select a log, and click "Export Log to XML" (or HTML, or plain text.) To export the current log automatically as part of a running project, use the Export Log action:</p> <p><img src="/blogimages/angus/xmlformat/exportlog.png" alt="Export Log Properties" /></p> <p>Logs can be exported as text, HTML, or XML. XML formatted logs can be further tweaked via XSLT. It is possible to pass data from FB/AT to the XSL stylesheet, via the use of extra XSLT parameters. If you're interested in writing an XSL transform for the Export Log action, take a look at the "Stylesheets" directory in the FinalBuilder or Automise program directory. It contains the XSL files which are used to do the exports for text, xml and html.</p> <h2>The Other Project Files are INI Files</h2> <p>Any extra project files (like the FBD data file, or the FBV persistent variables file) are actually INI files which can be viewed in any text editor. Go ahead and try it!</p><br /><p>... armed with this knowledge, you should be diffing, merging, checking in, parsing, cutting, pasting and transforming in no time!</p>609Big day today...https://www.finalbuilder.com/resources/blogs/postid/599/big-day-todayAutomise,FinalBuilder ServerMon, 21 May 2007 04:00:00 GMT<p>A day of releases today.  FinalBuilder 5.5 is released today, and so is our newest product, FinalBuilder Server!<br /> <br /> FinalBuilder 5.5 adds plenty of minor enhancements (including support for CodeGear Delphi 2007), bug fixes, etc, but the main thing is that the Professional version now gets a license of FinalBuilder Server thrown in!  That's how we're justifying the jump from 5.0 to 5.5 :)  We've already received a ton of very positive feedback on FinalBuilder Server, and I must say that it is quite nice to use.<br /> <br /> In a nutshell, FinalBuilder Server is a web interface for centralizing and managing your builds.  It relies on the FinalBuilder FBCMD.exe underneath as the build engine, but there are significant differences especially as far as logging is concerned.  There is now a separate logging server, and FBCMD redirects all the logging to that server.  This means that you can run more than one instance of the same project at the same time - plus of course FB Server needs access to the logs during and after the builds so that it can display the log output, statistics, build history etc.<br /> <br /> FinalBuilder Server has been almost a year in development, and we've had quite a long beta period for it too.  We have really been concentrating on ease-of-use and quality.  Many features were put on the todo list instead of implemented straight away because the number one goal was to build a very solid base to work on.  It's been running the FinalBuilder, FinalBuilder Server, and Automise builds for almost 5 months now, and we've had a fair number of customers use it during the beta - so, finally, today is the day for it's first release :)<br /> <br /> More information on FinalBuilder Server here: <a href="/finalbuilder-server" target="_blank">https://www.finalbuilder.com/finalbuilder-server</a><br /> <br /> Also - I forgot to blog about it before, but Automise 2 was released a couple of weeks ago.  We added over 140 actions - there's some seriously cool stuff in there :)  </p> 599Automise 2 Public Betahttps://www.finalbuilder.com/resources/blogs/postid/594/automise-2-public-betaAutomiseWed, 31 Jan 2007 03:00:00 GMT<p>Automise 2 is now in public beta testing.<br /> <br /> Here's the download (the beta download is at the bottom):<br /> <a href="/downloads/automise">Download</a><br /> <br /> Now - here's the real news... for Automise 2 we've added literally hundreds of new actions.  Some of the really cool new stuff is all the Windows Admin type actions, eg. Windows Update, Activate Windows, Active Directory admin, managing System Restore Points, NTFS Junction Points actions, changing file permissions and even Emptying the Recycle Bin!<br /> <br /> We're really keen to hear about any issues or bugs with the new version - so please give the beta a whirl and let us know via email if you find a bug (or even if you've just testing some of the actions and they worked for you).<br /> <br /> .t8</p> 594Xmas special - only a few days left!https://www.finalbuilder.com/resources/blogs/postid/592/xmas-special-only-a-few-days-leftAutomise,FinalBuilderThu, 21 Dec 2006 03:00:00 GMT<p>If you're sitting on the fence, one side is batch files, xml files, or no build process at all, and the other side is a fully automated build process - well, now's the time to take the plunge :)  And this applies to those network admins and sys admins also who want to automate some of the tedious and just plain boring stuff they have to do day-in-and-day-out! <br /> <br /> We've got a <b>special 20% off all FinalBuilder and Automise </b>licenses purchased until the end of 2006!<br /> <br /> See the home page for more details:<br /> <a href="/">https://www.finalbuilder.com</a></p> 592Automise 1.5https://www.finalbuilder.com/resources/blogs/postid/589/automise-15AutomiseTue, 05 Dec 2006 03:00:00 GMTWe've just released a minor update to Automise, so it's now at version 1.5<br /> <br /> There a lot of bug fixes, enhancements, and a few new features.&nbsp; Free update to all existing Automise customers!<br /> <br /> See <a href="/downloads/automise/automise-3-version-history">What's New.</a>&nbsp; <a href="/downloads/automise">Download Automise 1.5 Here</a>.<br />589A One Day Specialhttps://www.finalbuilder.com/resources/blogs/postid/588/a-one-day-specialAutomiseThu, 30 Nov 2006 03:00:00 GMT<p><strong>Background</strong></p> <p><strong></strong></p> <p>A while ago, I read a message on one of the ASP (Association of Shareware Professionals) private newsgroups announcing a new "Special of the Day" type website. It was to be called <a href="http://www.bitsdujour.com">Bits du Jour</a> - BDJ for short.  BDJ would work along similar lines to <a href="http://www.woot.com/">Woot!</a>, but would only feature software products.  I thought “Wow, great idea... that's a fantastic way to promote a software product.”</p> <p>Of course, the software vendor has to discount the product and provide a cut for BDJ, so the total revenue for each license would be much smaller than usual, but there is potential to reach a new crowd of people. It provides a way to promote the product at a lower price point, as a loss leader.<strong></strong></p> <p><strong>The Wait</strong></p> <p><strong></strong></p> <p>I contacted Ellen Craw from BDJ and we exchanged a few emails.  That was back in March 2006, and Automise 1.0 was still a month away from release. When you release a brand new product, how do you get the word out?  Bits du Jour sounded like a great way to make a splash and build up a user base.</p> <p>Automise retails for $195 US, and Ellen suggested that products priced over $20 don't sell so well on BDJ.  It's all about impulse buys, and it sounds like twenty bucks is about the threshold. At the time we thought that $20 was just too cheap for a $200 product… no sale!</p> <p>Time passed.  Automise generated some sales and some interest, including some positive reviews, but we still didn’t have the widespread market penetration that we wanted.</p> <p>So, in early November 2006, I thought we'd approach BDJ again.  90% discount off any product is sure to generate a lot of new sales.  We also figured that BDJ should have gained in popularity since it's launch earlier in the year, and there should be a reasonable number of people now subscribed to it's RSS feeds and emails.</p> <p>[As a side note, I bought <a href="http://www.thestarwoking.co.uk/software/bar_genie.php">Bar Genie</a> through BDJ a few months back... it was a good deal and a nice reference for mixing cocktails!]</p> <p><strong>Preparation</strong></p> <p><strong></strong></p> <p>We set a date - Wednesday 29th November 2006.  Nothing special about it, but we chose a day in the middle of the week so that it wouldn’t overlap with a weekend or public holiday in any timezone.</p> <p>Recently, Paul has done a considerable amount of work on our website store. This made it easy for us to set up a new coupon code that would last 24 hours.  A few simple tests and we were ready.</p> <p>Ellen drafted the BDJ article on Automise, and she also ran through the whole process to verify that everything held together.</p> <p> </p> <p><strong></strong><strong>D-Day</strong></p> <p><strong></strong></p> <p>The special went live at midnight in the US (Central Standard Time).  It was 5 in the afternoon here.  I checked the BDJ site and Automise was on the home page.  90% discount was highlighted with red stars on either side - there's no question that this was a big discount. :)</p> <p><img alt="automise on bdj.png" border="0" height="96" src="/blogimages/automise%20on%20bdj.png" width="389" /></p> <p>I sent out some emails to some of our existing customers, users that we maintain a good relationship with.  The email notified them of the special on BDJ for Automise, and encouraged them to spread the news. :)</p> <p>The first sale came through 17 minutes after the special went live. Bloody Great! :)</p> <p>The next sale came in at 22 minutes past, then another at 31, and another at 38.  “Wow... this is awesome.”  In the first hour we made seven sales.  Seven new customers. Excellent!</p> <p>Then it went a bit quiet.  Over the next six or seven hours there were between about two and six sales an hour.  Still great though, and by this time it was late evening in Australia.</p> <p>Now, I want to give you some background on our order process.  To place an order for Automise or FinalBuilder, you need to be a registered user on our website.  New registrations need to have their email addresses confirmed (via a link in an email.)  After you’re registered, you can add items to your shopping cart and go through the checkout process.  During checkout, there is a coupon field. This is where the BitsDuJour coupon needed to be added in order to grant the 90% discount.</p> <p>After checkout, our store redirects to the WorldPay payment gateway. WorldPay handles all of the credit card processing.  We receive a Web Services callback with the status of the order, and send an automated email to the customer.  The order then goes into a “pending” state so that we can review the order (eg. to check for fraud) and then we click a button to process it.  FinalBuilder and Automise aren't high turnover products, so this process works great and we catch 99.9% of fraud before the license key is sent out.</p> <p>Anyhow...I woke up the next morning and checked the pending orders.  “Wow...” over 80 orders had come in during the night!  Now someone had to process them.  And guess what, that someone was me…  It was a case of mixed emotions: heaps of sales, but a boring job manually checking and processing each one!</p> <p>Sales continued to come in for the rest of the day. All up, the final count was 226 sales.  We were all stoked, and a bit tired too.  The sale had generated quite a bit of extra support work, and also there were also some bugs that showed up in the order process.</p> <p>I emailed Ellen to let her know how we went, and got the following reply:</p> <p>"That's GREAT - you just broke all my records. Thank YOU!"</p> <p>Also, traffic on the BDJ site was about 40% higher than usual.  We tried to promote the special as much as we could.  Some fairly high profile bloggers mentioned the deal, eg. Roy Osherove (ISerializable) and Troy Magennis (LINQed IN).  I'm sure a lot of traffic came to the site because of this.</p> <p>Here's a graph of our sales volume over the 24 hour period:</p> <p><img alt="BDJ Sales over the 24 hours of Automise.png" border="0" height="487" src="/blogimages/BDJ%20Sales%20over%20the%2024%20hours%20of%20Automise.png" width="931" /><br /> <!--[endif]--></p> <p>And here's our daily website traffic.  Because of our timezone the traffic is spread over both the Wednesday and Thursday.  There's a pretty obvious spike!</p> <p> </p> <p><img alt="BDJ related website traffic.png" border="0" height="263" src="/blogimages/BDJ%20related%20website%20traffic.png" width="577" /><br /> <!--[endif]--></p> <p> </p> <p>So, there you have it.  Overall it's been a great opportunity to feature Automise on Bits du Jour.  If you're thinking about featuring your product on BDJ, and the software has a fairly general audience, then I reckon you should go for it!  Thanks heaps to Ellen and Bits du Jour, the people who helped us promote the special, and especially to all our new customers. :)</p> <p><strong>Problems</strong></p> <p><strong></strong></p> <p>Over the course of the sale, we experience a few minor problems that we hadn’t noticed before.</p> <p>1. One of the main problems was that the store would allow you to enter the coupon code (and validate it) with an extra space character "BitsDuJour ".  But then when the Process Order button was pressed, the coupon would be rejected. Many people reported that they couldn't get the coupon code to work, and it wasn't until about 18 hours into the special that we figured out why and fixed the bug.  We lost sales because of this - people emailed us and told us so.</p> <p>2. Another weird problem was that some people (normally from Germany) had problems with the store redirected to WorldPay.  This was caused by the regional settings using a comma in the total amount instead of a decimal point.  We fixed the bug but also had to process some of these orders manually before we had figured out the reason why.</p> <p>3. We accidentally had heaps of references to FinalBuilder in the automated emails sent out for the store. This was more of an embarrassment than a problem, and we fixed it during the day as well.</p> <p><strong>What we've learnt</strong></p> <p><strong></strong></p> <p>1. Bits du Jour was great idea.  The customer base for Automise has grown, and there are a lot of happy people.  The price was low enough to create impulse purchases, and will hopefully act as a loss leader to make Automise better known.</p> <p>2. There were some bugs in the store that we should have known about.  More testing required!</p> <p>3. The order process is too difficult.  A lot of people got a bit peeved at the entire process, and I'm sure some people gave up.  There was a short thread on the Joel on Software forums with some criticism of the process:</p> <p><a href="http://discuss.joelonsoftware.com/default.asp?biz.5.421152.9">http://discuss.joelonsoftware.com/default.asp?biz.5.421152.9</a></p> <p>4. Promotion is very important.  See below for mentions of the Automise special which appeared on various blogs.  I posted the deal on a couple of mailing lists as well.  This made a huge difference.</p> <p><strong>Links from the Blogosphere, and other coverage of the BDJ Automise special</strong></p> <p><strong></strong></p> <p><a href="http://wesnerm.blogs.com/net_undocumented/2006/11/components.html">http://wesnerm.blogs.com/net_undocumented/2006/11/components.html</a></p> <p>"Coincidentally, his post today is offering Automise for $19 (down from $199) for 24 hours in <a href="http://bitsdujour.com/">Bits du Jour</a>, a site, much like <a href="http://www.woot.com/">Woot</a>, offering new discounted software daily."</p> <p><a href="http://aspiring-technology.com/blogs/troym/archive/2006/11/29/63.aspx">http://aspiring-technology.com/blogs/troym/archive/2006/11/29/63.aspx</a></p> <p>"Todays deal caught my eye - its 90% off. Automise - a general purpose automation tool (think GUI based scripting and debugging)."</p> <p><a href="http://weblogs.asp.net/rosherove/archive/2006/11/28/cool-promotion-automise-for-20-for-24h-window.aspx">http://weblogs.asp.net/rosherove/archive/2006/11/28/cool-promotion-automise-for-20-for-24h-window.aspx</a></p> <p>"A little bird tells me that in a few hours you'll be able to get Automise (that's the system admin's version of FinalBuilder - my favorite build automation tool) <a href="http://www.bitsdujour.com/">over here</a> for a 90% discount - less than $20 instead of $195 for a 24 hour window."</p> <p><a href="http://mortonfox.livejournal.com/465710.html">http://mortonfox.livejournal.com/465710.html</a></p> <p>"Got a copy of Automise at a 90% discount, thanks to <a href="http://www.bitsdujour.com/">Bits du Jour</a>. When I have more time, I'll dig deeper into the software to see if it's really that much better than <a href="http://www.autohotkey.com/">AutoHotkey</a>. I have Bits du Jour in my <a href="http://del.icio.us/pcheah">del.icio.us bookmarks</a>, but I'd forgotten all about it until IanH. <a href="http://discuss.joelonsoftware.com/default.asp?joel.3.420886.3">mentioned the deal</a> on the Joel on Software discussion forum."</p> <p><a href="http://midspot.wordpress.com/2006/11/29/automise-at-a-great-deal/">http://midspot.wordpress.com/2006/11/29/automise-at-a-great-deal/</a></p> <p>"Automise does it for you. I downloaded the trial last night and it is pretty slick and powerful. Try it for free, and today only you can get a <a href="http://www.bitsdujour.com/">huge discount on the product</a>."</p> <p><strong>Some other user comments</strong></p> <p><strong></strong></p> <p>"Holy discount, Batman! I almost feel duty bound to buy this 'cos of the 90% off!  Nice job BDJ and Automise!"</p> <p>"Thank you very much for this generous rebate!"</p> <p>"Very cool tool!<br /> <br /> I have tested many automation tools and Automise is one of the best. When I saw this promotion this morning I just bought it - thank you!"</p> <p>"I've heard good things about it, and at 90% off, you can't really go wrong, can you?"</p> 588Windows Powershellhttps://www.finalbuilder.com/resources/blogs/postid/581/windows-powershellAutomiseTue, 31 Oct 2006 03:00:00 GMT<p>Was just reading <a href="https://arnonel.com">Arno Nel's blog</a>, and he reminded me about Windows Powershell.<br /> <br /> All of us here had a look at Powershell a few weeks back and were really impressed - and we're going to be investigating adding support into FinalBuilder and Automise for Powershell soonish hopefully :)<br /> <br /> Here's a few links:</p> <ul> <li><a href="http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx">Windows PowerShell</a></li> <li><a href="http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx">Scripting with Windows PowerShell</a></li> <li><a href="http://blogs.msdn.com/PowerShell/">Windows PowerShell Blog</a></li> <li><a href="http://en.wikipedia.org/wiki/Windows_PowerShell">Windows PowerShell - Wikipedia, the free encyclopedia</a></li> </ul> <p> </p> 581Coupon Codeshttps://www.finalbuilder.com/resources/blogs/postid/554/coupon-codesAutomiseWed, 07 Jun 2006 04:00:00 GMT<a href="http://software.ericsink.com/">Eric Sink()</a> has just concluded his Coupon Code experiment for <a href="http://www.sourcegear.com/vault/index.html">Vault</a>.&nbsp; The results are <a href="http://software.ericsink.com/entries/Coupon_Results.html">very interesting</a>, and well worth a read.<br /> <br /> We are doing something a little similar - there is currently a huge discount as a special introductory offer for <a href="http://www.automise.com">Automise</a> - which we will <strong>never repeat</strong>.&nbsp; The coupon code is <a href="http://www.automise.com/automise/pricing.aspx">not well hidden</a>, and the promotion ends in a couple of weeks.<br />554We did it. We did it! :)https://www.finalbuilder.com/resources/blogs/postid/541/we-did-it-we-did-it-AutomiseTue, 25 Apr 2006 19:00:00 GMT<p>Significant day for us today... the release date of our second product, Automise! :)<br /> <br /> (sorry, nothing to do with Dory's and Marlin's victory song...)<br /> <br /> Now granted... <a href="/automise">Automise</a> is largely based on <a href="/finalbuilder">FinalBuilder</a> (ie. same actions, same engine, same UI, etc), but it has taken the best part of four months full time - which was a lot longer than we anticipated. <br /> <br /> It's amazing how "FinalBuildery" a lot of the code was.... for example, the error messages, captions in the UI, system variables visible in the user interface, help file, file extensions, etc.  So all this had to be made generic and driven by constants and defines - which is certainly easy to do, but when you've got to go over hundreds of thousands of lines of code it gets a little tedious after a while.  We've also had some good beta testers help with all this... so big thanks to them! :)<br /> <br /> The help file still needs some work; we're using the same <a href="http://www.ec-software.com/">Help&Manual</a> file to generate both the FinalBuilder and Automise help files - each with slightly different content.  There are a few hundred screen pictures which still need updating, but not much point holding up the release for that.<br /> <br /> And one of the pre-requisites was to update the website.  The new website was finished last week and is a <b>vast</b> improvement over the old FinalBuilder one - all based on <a href="http://www.dotnetnuke.com/">DotNetNuke</a> which has proved to be quite a good experience (especially for people like us who are a little graphically challenged).<br /> <br /> Now we've just got to wait for that first sale!</p> 541Variable Evaluation & Recursionhttps://www.finalbuilder.com/resources/blogs/postid/775/variable-evaluation-recursionAutomise,FinalBuilderTue, 04 Apr 2006 01:28:00 GMT<p>By default, when a FinalBuilder or Automise variable's value is referenced in a text field (using the %myvariable% syntax), FinalBuilder will expand the value of that variable recursively. </p> <p>So if the value of myvariable is %anothervariable% then the value of anothervariable will also be expanded. This will continue until no more variable references are found (or if recursion is detected).</p> <p>In most cases, the default expansion is exactly what we need, however in some rare cases you might require that the recursive variable expansion didn't happen. Fortunately FinalBuilder 4 or later has a way to do this. When referencing the variable in a text field , use a ! symbol in front of the name, e.g %!myvariable% - what this does is tell FinalBuilder to only expand the variable reference, but leave any variable references in the value of that variable unexpanded.</p> <p> </p> 775Automisehttps://www.finalbuilder.com/resources/blogs/postid/537/automiseAutomiseThu, 23 Mar 2006 12:50:00 GMT<p>Today we are finally making public the beta of <a href="/automise">Automise</a>.</p> <p>What is Automise you ask?</p> <p>Well... Automise is an automation tool for System Admins, Network Admins and other IT Professionals. Whereas <a href="/finalbuilder">FinalBuilder</a> is targeted and very much focused on developers, Automise is a more general purpose automation tool.  Both are build off the same code base, but there are subtle differences especially when it comes to editions - eg. for FinalBuilder we have <a href="/finalbuilder/feature-matrix">two editions</a>: Standard and Professional, whereas Automise will not have different editions and the mix of actions shipped will be slightly different too.  Automise will not include compiler support, version control system support and many of the other tools developers use, but will include ASync action groups, FileSet, File operations, XML Actions, Database actions, CD/DVD burning, etc.</p> <p>So - please, if you have time, why not <a href="/downloads/automise">download Automise</a> and give it a go and spread the word!? :)</p> <p>Discussion forums <a href="/forums">here</a>.</p> 537