<rss version="2.0">
  <channel>
    <title>AppleScript on Mark Alldritt</title>
    <link>https://Alldritt.micro.blog/categories/applescript/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Mon, 24 Sep 2018 13:03:00 -0700</lastBuildDate>
    
    <item>
      <title>MacScripter.net</title>
      <link>https://Alldritt.micro.blog/2018/09/24/macscripternet.html</link>
      <pubDate>Mon, 24 Sep 2018 13:03:00 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2018/09/24/macscripternet.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m excited to announce that I have become the new host of the &lt;a href=&#34;http://macscripter.net&#34;&gt;MacScripter.net&lt;/a&gt; discussion forum.  MacScripter has been a long standing resource for information concerning macOS automation using technologies such as AppleScript, Automator, and JavaScript For Automation.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/in/geeksuit&#34;&gt;Ray Barber&lt;/a&gt; established the site many many years ago and has grown it to the point where it is today with almost 30,000 members and an archive of 175,000 posts.  MacScripter is a core piece of the AppleScript and macOS automation landscape.  Links to MacScripter articles appear almost everywhere macOS automation is discussed.  This is all a testament to Ray&amp;rsquo;s vision in creating MacScripter.net and to his support of the site over the years.  Ray has decided to step down and I&amp;rsquo;m really pleased to be able to provide the resources needed to keep MacScripter.net going in the future.&lt;/p&gt;
&lt;p&gt;I sense we are at a point where automation of Apple products is seeing a resurgence.  The release of Shortcuts in iOS 12 suggests that Apple has become serious about automation on its mobile devices.  I feel this change will spur people to look for more opportunities to automate their Macs as well.  All of this represents a great opportunity for MacScripter to grow and become relevant to a new audience.&lt;/p&gt;
&lt;p&gt;MacScripter will remain more or less as it is.  It will continue to be a place to discuss topics related to macOS and iOS automation in a technology and product agnostic environment.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>MarksLib</title>
      <link>https://Alldritt.micro.blog/2017/03/09/markslib.html</link>
      <pubDate>Thu, 09 Mar 2017 12:35:43 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2017/03/09/markslib.html</guid>
      <description>&lt;p&gt;My MarksLib AppleScript library, which is featured in some of my Script Debugger tutorial videos, is now part of my &lt;a href=&#34;https://github.com/alldritt/AppleScriptLibraries&#34;&gt;AppleScript Libraries repository on GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;MarksLib is a collection of handlers for everyday operations that I find myself using in almost every script I write.  There are tools for reading and writing text files, string substitution, converting between strings and arrays and more.&lt;/p&gt;
&lt;h2 id=&#34;installation&#34;&gt;Installation&lt;/h2&gt;
&lt;p&gt;Enter the following command in the &lt;code&gt;Terminal&lt;/code&gt; application to install the latest version of MarksLib on your machine:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl https://raw.githubusercontent.com/alldritt/AppleScriptLibraries/master/MarksLib.applescript | osacompile -o ~/Library/Script\ Libraries/MarksLib.scpt
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;usage&#34;&gt;Usage&lt;/h2&gt;
&lt;p&gt;MarksLib provides the following handlers:&lt;/p&gt;
&lt;h3 id=&#34;readfromfile&#34;&gt;readFromFile&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;readFromFile(theFile)&lt;/code&gt; handler reads the contents of a text file.  The &lt;code&gt;theFile&lt;/code&gt; parameter can take many forms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;full HFS path (e.g. &lt;code&gt;readFromFile(&amp;quot;Macintosh HD:Users:Mark:Desktop:file.txt&amp;quot;)&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;full POSIX path (e.g. &lt;code&gt;readFromFile(&amp;quot;/Users/Mark/Desktop/file.txt&amp;quot;)&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;relative POSIX path (e.g.) (&lt;code&gt;readFromFile(&amp;quot;~/Desktop/file.txt&amp;quot;)&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;alias (e.g. &lt;code&gt;readFromFile(alias &amp;quot;Macintosh HD:Users:Mark:Desktop:file.txt&amp;quot;)&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;file reference (e.g. &lt;code&gt;readFromFile(file &amp;quot;Macintosh HD:Users:Mark:Desktop:file.txt&amp;quot;)&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;writetofile&#34;&gt;writeToFile&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;writeToFile(theFile, theData)&lt;/code&gt; handler writes the contents of a variable to a text file.  The &lt;code&gt;theFile&lt;/code&gt; parameter can take many forms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;full HFS path (e.g. &lt;code&gt;readFromFile(&amp;quot;Macintosh HD:Users:Mark:Desktop:file.txt&amp;quot;)&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;full POSIX path (e.g. &lt;code&gt;readFromFile(&amp;quot;/Users/Mark/Desktop/file.txt&amp;quot;)&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;relative POSIX path (e.g.) (&lt;code&gt;readFromFile(&amp;quot;~/Desktop/file.txt&amp;quot;)&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;alias (e.g. &lt;code&gt;readFromFile(alias &amp;quot;Macintosh HD:Users:Mark:Desktop:file.txt&amp;quot;)&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;file reference (e.g. &lt;code&gt;readFromFile(file &amp;quot;Macintosh HD:Users:Mark:Desktop:file.txt&amp;quot;)&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &lt;code&gt;theData&lt;/code&gt; parameter should be a string.&lt;/p&gt;
&lt;h3 id=&#34;replacetext&#34;&gt;replaceText&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;replaceText(theString, fString, rString)&lt;/code&gt; handler replaces all occurrences of &lt;code&gt;fString&lt;/code&gt; in &lt;code&gt;theString&lt;/code&gt; with &lt;code&gt;rString&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;use AppleScript version &amp;quot;2.4&amp;quot; -- Yosemite (10.10) or later
use MarksLib : script &amp;quot;MarksLib&amp;quot; version &amp;quot;1.0&amp;quot;

MarksLib&#39;s replaceText(&amp;quot;the quick brown fox jumped over the lazy dog&amp;quot;, &amp;quot;the&amp;quot;, &amp;quot;xxx&amp;quot;)
--&amp;gt;&amp;quot;xxx quick brown fox jumped over xxx lazy dog&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;trim&#34;&gt;trim&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;trim(theString)&lt;/code&gt; handler trims leading and trailing whitespace from a string.  The functional also works on arrays of strings, returning an array of trimmed strings.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;use AppleScript version &amp;quot;2.4&amp;quot; -- Yosemite (10.10) or later
use MarksLib : script &amp;quot;MarksLib&amp;quot; version &amp;quot;1.0&amp;quot;

MarksLib&#39;s trim(&amp;quot;  hello world  &amp;quot; &amp;amp; return)
--&amp;gt;&amp;quot;hello world&amp;quot;
MarksLib&#39;s trim({&amp;quot; abc &amp;quot;, &amp;quot;1234   &amp;quot;, &amp;quot;   &amp;quot;})
--&amp;gt;{&amp;quot;abc&amp;quot;, &amp;quot;1234&amp;quot;, &amp;quot;&amp;quot;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;split&#34;&gt;split&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;split(theString, theSeparator)&lt;/code&gt; handler splits a string into an array of strings.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;use AppleScript version &amp;quot;2.4&amp;quot; -- Yosemite (10.10) or later
use MarksLib : script &amp;quot;MarksLib&amp;quot; version &amp;quot;1.0&amp;quot;

MarksLib&#39;s split(&amp;quot;1, 2, 3, 4&amp;quot;, &amp;quot;,&amp;quot;)
--&amp;gt;{&amp;quot;1&amp;quot;, &amp;quot; 2&amp;quot;, &amp;quot; 3&amp;quot;, &amp;quot; 4&amp;quot;}
MarksLib&#39;s trim(MarksLib&#39;s split(&amp;quot;1, 2, 3, 4&amp;quot;, &amp;quot;,&amp;quot;))
--&amp;gt;{&amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot;, &amp;quot;4&amp;quot;}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;join&#34;&gt;join&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;|join|(theString, theSeparator)&lt;/code&gt; handler joins an array of strings together into a single string.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;use AppleScript version &amp;quot;2.4&amp;quot; -- Yosemite (10.10) or later
use MarksLib : script &amp;quot;MarksLib&amp;quot; version &amp;quot;1.0&amp;quot;

MarksLib&#39;s join({&amp;quot;hello&amp;quot;, &amp;quot;world&amp;quot;}, &amp;quot; &amp;quot;)
--&amp;gt;{&amp;quot;hello world&amp;quot;}
MarksLib&#39;s join(MarksLib&#39;s trim(MarksLib&#39;s split(&amp;quot;1, 2, 3, 4&amp;quot;, &amp;quot;,&amp;quot;)), &amp;quot;-&amp;quot;)
--&amp;gt;{&amp;quot;1-2-3-4&amp;quot;} 
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;formatforjson&#34;&gt;formatForJSON&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;formatForJSON(theValue)&lt;/code&gt; handler formats a string so that it is suitable for use as a value in a JSON structure.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;use AppleScript version &amp;quot;2.4&amp;quot; -- Yosemite (10.10) or later
use MarksLib : script &amp;quot;MarksLib&amp;quot; version &amp;quot;1.0&amp;quot;

MarksLib&#39;s formatForJSON(&amp;quot;My name is \&amp;quot;Mark\&amp;quot;&amp;quot;)
--&amp;gt;&amp;quot;My name is \&amp;quot;Mark\&amp;quot;&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&#34;formatforcsv&#34;&gt;formatForCSV&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;formatCSVString(theValue)&lt;/code&gt; handler formats a string so that is suitable for use as a value in a CSV file.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;use AppleScript version &amp;quot;2.4&amp;quot; -- Yosemite (10.10) or later
use MarksLib : script &amp;quot;MarksLib&amp;quot; version &amp;quot;1.0&amp;quot;

MarksLib&#39;s formatCSVString(&amp;quot;Nothing special&amp;quot;)
--&amp;gt;&amp;quot;Nothing special&amp;quot;
MarksLib&#39;s formatCSVString(&amp;quot;My name is \&amp;quot;Mark\&amp;quot;&amp;quot;)
--&amp;gt;&amp;quot;My name is &amp;quot;&amp;quot;Mark&amp;quot;&amp;quot;&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>FancyDroplet</title>
      <link>https://Alldritt.micro.blog/2016/09/16/fancydroplet.html</link>
      <pubDate>Fri, 16 Sep 2016 15:53:15 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2016/09/16/fancydroplet.html</guid>
      <description>&lt;p&gt;As a side project I am working on an improved AppleScript droplet shell.  My goal is to create a better AppleScript droplet experience by providing a better UI for receiving dropped files and offering a way of picking files to process via integrated Spotlight document searching (you&amp;rsquo;ll recognize this as being based on Script Debugger&amp;rsquo;s Open Quickly feature).  Additionally, I want to give droplet scripts an opportunity to clean up if the user stops or quits the script.&lt;/p&gt;
&lt;img src=&#34;http://forum.latenightsw.com/uploads/default/original/1X/48dcc81ff17f7392e11c0cacafd984791a84da77.gif&#34; width=&#34;630&#34; height=&#34;460&#34;&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://forum.latenightsw.com/t/downloading-using-fancydroplet/256&#34;&gt;Download &amp;amp; Documentation&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 6 Released</title>
      <link>https://Alldritt.micro.blog/2016/06/16/script-debugger-released.html</link>
      <pubDate>Thu, 16 Jun 2016 13:29:38 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2016/06/16/script-debugger-released.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m pleased to announce the release of Script Debugger 6.  This release introduces over 25 new features and embraces modern AppleScript, including AppleScriptObjC.  To sweeten the deal, Script Debugger&amp;rsquo;s price has been reduced by 50%!&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com&#34;&gt;&lt;img src=&#34;http://markalldritt.com/wp-content/uploads/2016/06/SD6Web.png&#34; alt=&#34;Script Debugger 6&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com&#34;&gt;Product Information&lt;/a&gt; | &lt;a href=&#34;http://www.latenightsw.com/free-trial&#34;&gt;Free Trial&lt;/a&gt; | &lt;a href=&#34;http://www.latenightsw.com/script-debugger-6-release-notes&#34;&gt;Release Notes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;For those unfamiliar with Script Debugger, it is an integraded development environment focused on AppleScript.  This focus allows us to deliver a suite of tools that makes AppleScript development amazingly productive.  Features like the dictionary explorer allow you to look directly into any application&amp;rsquo;s live scripting interface and step wise debugging with the ability to see the state of all your variables make AppleScript usable in a way you&amp;rsquo;ve never experienced before.  Of course, this is just a taste of the things Script Debugger does.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Acorn Is Scriptable!</title>
      <link>https://Alldritt.micro.blog/2016/06/01/acorn-is-scriptable.html</link>
      <pubDate>Wed, 01 Jun 2016 23:26:13 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2016/06/01/acorn-is-scriptable.html</guid>
      <description>&lt;p&gt;I oscillate between &lt;a href=&#34;http://flyingmeat.com/acorn/&#34;&gt;Acorn&lt;/a&gt; and &lt;a href=&#34;http://www.pixelmator.com/mac/&#34;&gt;Pixelmator&lt;/a&gt; on the Mac - its great to have two competent alternatives to Photoshop.  Pixelmator is my current fav on the iPad Pro (there&amp;rsquo;s nothing like using it&amp;rsquo;s object removal with the Apple Pencil).  However, today Acorn has me on the Mac because it is scriptable.  Whipped up this little script to generate images for Script Debugger 6 release notes:&lt;/p&gt;
&lt;pre&gt;
use AppleScript version &#34;2.4&#34; -- Yosemite (10.10) or later
use scripting additions

on downsampleImage(theFile)
	local destFolderHFSPath
	
	tell application &#34;Finder&#34;
		set destFolderHFSPath to get folder &#34;Web&#34; of desktop as string
	end tell
	
	tell application &#34;Acorn&#34;
		tell (open theFile)
			local imageName, imageWidth, imageHeight
			
			set {imageName, imageHeight, imageWidth} to {name, height, width}
			trim
			
			--	Create 1x down sampled image
			web export width (imageWidth * 0.328) height (imageHeight * 0.328) as PNG in file (destFolderHFSPath &amp; imageName &amp; &#34;.png&#34;)
			--	Create 2x down sampled image
			web export width (imageWidth * 0.65) height (imageHeight * 0.65) as PNG in file (destFolderHFSPath &amp; imageName &amp; &#34;@2x.png&#34;)
			
			close saving no
		end tell
	end tell
end downsampleImage

on open theFiles
	repeat with aFile in theFiles
		downsampleImage(contents of aFile)
	end repeat
end open
&lt;/pre&gt;
&lt;p&gt;No fuss, it just worked.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 6 Release Notes (6A162)</title>
      <link>https://Alldritt.micro.blog/2016/06/01/script-debugger-release.html</link>
      <pubDate>Wed, 01 Jun 2016 15:57:43 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2016/06/01/script-debugger-release.html</guid>
      <description>&lt;p&gt;Here is an updated version of the Script Debugger 6 (build 6A162) release notes.  We are very close to completion and this document quite accurately reflects the new features in Script Debugger 6.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DISCLAIMER&lt;/strong&gt;: &lt;font color=&#34;red&#34;&gt;&lt;em&gt;Nothing is final until the software ships and there is always the possibility that a feature may have to be removed or altered in the final product.&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;
&lt;h2 id=&#34;1-code-signing&#34;&gt;1. Code Signing&lt;/h2&gt;
&lt;p&gt;Script Debugger 6 adopts an always-on approach to code signing.  Once you enable code signing for a script by selecting a developer ID, Script Debugger signs your script each time you save it.  There is no requirement to go through a special Save or Export operation.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/06/CodeSigning.png&#34; alt=&#34;Code Signing&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;2-improved-bundled-script-resource-editing&#34;&gt;2. Improved Bundled Script Resource Editing&lt;/h2&gt;
&lt;p&gt;The Script Debugger 6 bundled script resource editor has been expanded.  You are now able to edit a bundle ID, copyright string, marketing version string and build number.  Script Debugger 6 gives you the option of auto-incrementing build numbers each time a script is saved.&lt;/p&gt;
&lt;p&gt;Additionally, you are able to identify a Scripting Definition (SDEF) file from your script’s bundle and to select a developer ID to enable always-on code signing for your script.&lt;/p&gt;
&lt;p&gt;You are able to specify a default copyright string which is used when creating new bundled scripts and applications.  This default copyright string may contain clipping directives which are expanded at the time a new script document is created.&lt;/p&gt;
&lt;h2 id=&#34;3-progress-reporting&#34;&gt;3. Progress Reporting&lt;/h2&gt;
&lt;p&gt;AppleScript’s progress reporting properties (introduced in Mac OS X 10.10 Yosemite) are fully supported in Script Debugger 6.  When a script begins reporting progress information by setting any of AppleScript’s progress reporting properties Script Debugger 6 responds by adding a progress bar display above the script’s source:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/06/ProgressBar.png&#34; alt=&#34;Progress Bar&#34;&gt;&lt;/p&gt;
&lt;p&gt;Script Debugger supports both determinate and indeterminate progress reporting.&lt;/p&gt;
&lt;p&gt;Note also that progress information is shown in the window title bar and the script’s document tab.  You can elect to dismiss the progress display by clicking the ‘x’ button.&lt;/p&gt;
&lt;h2 id=&#34;4-open-quickly&#34;&gt;4. Open Quickly&lt;/h2&gt;
&lt;p&gt;The Open Quickly command, which allows you to easily search for and open scripts containing a particular term in the name or the body of the script, has been heavily revised for Script Debugger 6.&lt;/p&gt;
&lt;h3 id=&#34;41-improved-search-hit-display&#34;&gt;4.1 Improved Search Hit Display&lt;/h3&gt;
&lt;p&gt;The Open Quickly window highlights the portion of the script’s name, description, Finder comment or script source that matches the search term(s) entered.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/06/OpenQuickly.png&#34; alt=&#34;Open Quickly&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;41-discontiguous-searching&#34;&gt;4.1 Discontiguous Searching&lt;/h3&gt;
&lt;p&gt;Discontiguous search matches are reported (when a single search term is entered), similar to the way Xcode’s Open Quickly command behaves when looking up identifiers and source file names.  When multiple search terms are entered the Open Quickly command looks for each term within the script name, description, finder comment and script source.&lt;/p&gt;
&lt;p&gt;For example, if you have a series of scripts containing the same ‘writeToFile’ handler, you can locate these scripts by entering the search terms ‘write’, ‘writeToFile’ or ‘writeFile’.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/06/OpenQuicklyDiscontiguous.png&#34; alt=&#34;Open Quickly Discontiguous&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;5-editor-improvements&#34;&gt;5. Editor Improvements&lt;/h2&gt;
&lt;h3 id=&#34;51-code-folding&#34;&gt;5.1 Code Folding&lt;/h3&gt;
&lt;p&gt;Script Debugger 6 at long last provides code folding where you can collapse block structures and comments within your code to reduce clutter when editing.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/06/CodeFolding.png&#34; alt=&#34;Code Folding&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;52-autocompletion&#34;&gt;5.2 Autocompletion&lt;/h3&gt;
&lt;p&gt;Improved code completion to include all matching user defined identifiers, commands from target applications and AppleScript Objective-C identifiers.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/06/Autocompletion.png&#34; alt=&#34;Autocompletion&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;53-applescript-objective-c-autocompletion&#34;&gt;5.3 AppleScript Objective-C Autocompletion&lt;/h3&gt;
&lt;p&gt;AppleScriptObjC code completion covers the main Cocoa frameworks, and automatically handles insertion of &lt;code&gt;current application&#39;s&lt;/code&gt; where required. The insertion can be either in-line, or in the form of automatically generated properties, with the ability to refactor between the two forms.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://markalldritt.com/wp-content/uploads/2016/06/ASObjCCompletion.png&#34; alt=&#34;ASObjC Autocompletioin&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;54-automatic-its-correction&#34;&gt;5.4 Automatic “it’s” Correction&lt;/h3&gt;
&lt;p&gt;If you type &amp;ldquo;it&amp;rsquo;s &amp;quot; in code, it will be changed to &amp;ldquo;its &amp;ldquo;. This avoids the new &amp;ldquo;&amp;ndash; Grammar Police&amp;rdquo; comment being inserted by the compiler in 10.11 (El Capitan).&lt;/p&gt;
&lt;h3 id=&#34;55-terminology-clash-avoidance&#34;&gt;5.5 Terminology Clash Avoidance&lt;/h3&gt;
&lt;p&gt;When using interleaved syntax for handlers, parameters will be escaped with pipe characters if they clash with defined terminology.&lt;/p&gt;
&lt;h3 id=&#34;56-identifier-case-changing&#34;&gt;5.6 Identifier Case Changing&lt;/h3&gt;
&lt;p&gt;Script Debugger 6 performs each script compilation in a new AppleScript compiler instance.  This avoids a long standing problem where it was impossible to change the case of a variable, property, handler or script object once the script had been compiled.&lt;/p&gt;
&lt;h3 id=&#34;57-dash-support&#34;&gt;5.7 Dash Support&lt;/h3&gt;
&lt;p&gt;If you have &lt;a href=&#34;https://kapeli.com/dash&#34;&gt;Dash&lt;/a&gt; installed, you can turn on support so that option-clicking on a word will look it up in Dash. See &amp;hellip; in Preferences.&lt;/p&gt;
&lt;h3 id=&#34;57-application-script-library-and-framework-picker&#34;&gt;5.7 Application, Script Library and Framework Picker&lt;/h3&gt;
&lt;p&gt;Script Debugger 6 offers new powers for placeholders referring to applications, script libraries and AppleScript Objective-C framework names when existing clippings, text substitutions and command completions.  Script Debugger offers a menu of running and favourite applications for application placeholders, a menu of installed script library names for script placeholders and a menu of commonly used framework names for framework placeholders.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/06/AppPicker.png&#34; alt=&#34;App Picker&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;6-debugging-improvements&#34;&gt;6. Debugging Improvements&lt;/h2&gt;
&lt;h3 id=&#34;61-non-persistent-global-variables&#34;&gt;6.1 Non-Persistent Global Variables&lt;/h3&gt;
&lt;p&gt;A new Persistent Global Variables command has been added to the Script menu which allows you to determine if the value of global variables and properties persists from one run to the next.  Note that when Code Signing is enabled, this setting is forced off to match the behaviour of signed scripts.&lt;/p&gt;
&lt;h3 id=&#34;62-applescript-objective-c-value-exploring&#34;&gt;6.2 AppleScript Objective-C Value Exploring&lt;/h3&gt;
&lt;p&gt;Script Debugger&amp;rsquo;s various explorers now support AppleScript Objective-C object references. Instead of seeing AppleScript Objective-C object references shown as «class ocid» id «data optr00000000F0FB3885FC7F0000», Script Debugger 6 shows you details of the object:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/06/ASObjCValueExploring.png&#34; alt=&#34;ASObjC Value Exploring&#34;&gt;&lt;/p&gt;
&lt;p&gt;As this screen shot illustrates, you are even able to explore into container objects to examine their contents.&lt;/p&gt;
&lt;h3 id=&#34;63-applescript-objective-c-value-viewers&#34;&gt;6.3 AppleScript Objective-C Value Viewers&lt;/h3&gt;
&lt;p&gt;Script Debugger 6’s support for AppleScript Objective-C objects extends to displaying “native” viewers for dates and images.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/06/ASObjCValueViewing.png&#34; alt=&#34;ASObjC Value Viewing&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;64-breakpoint-dragging&#34;&gt;6.4 Breakpoint Dragging&lt;/h3&gt;
&lt;p&gt;Breakpoints, which allow you mark specific lines of your script where execution will pause in debugging mode, can now be moved by dragging them within the script’s gutter. Additionally, you can delete a breakpoint by dragging it out of the script’s gutter.&lt;/p&gt;
&lt;h3 id=&#34;65-popover-breakpoint-editor&#34;&gt;6.5 Popover Breakpoint Editor&lt;/h3&gt;
&lt;p&gt;Double-clicking on a breakpoint in the script’s gutter allows you to edit a breakpoint in a popover window.  You can also summon this popover window using the breakpoint contextual menu or the Edit Breakpoint command in the Script menu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/06/PopoverBPEditing.png&#34; alt=&#34;Breakpoint Popover&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;66-remove-all-breakpoints&#34;&gt;6.6 Remove All Breakpoints&lt;/h3&gt;
&lt;p&gt;The Remove All Breakpoints command now confirms with you before removing all your breakpoints to avoid accidental breakpoint removal.&lt;/p&gt;
&lt;h3 id=&#34;67-remove-all-disabled-breakpoints&#34;&gt;6.7 Remove All Disabled Breakpoints&lt;/h3&gt;
&lt;p&gt;A new Remove All Disabled Breakpoints command has been added to remove all disabled breakpoints.  Like the Remove All Breakpoints command, this new command confirms with you before removing all your disabled breakpoints to avoid accidental breakpoint removal.&lt;/p&gt;
&lt;h3 id=&#34;68-improved-current-statement-highlighting&#34;&gt;6.8 Improved Current Statement Highlighting&lt;/h3&gt;
&lt;p&gt;Like Script Debugger 5, Script Debugger 6 moves the current text selection to the current statement as you step through code or pause at breakpoints.  However, Script Debugger 6 does not select the current statement’s trailing newline.  This avoids some visibility problems which occurred for some users with Script Debugger 5 when their current statement highlight color preference was too similar to the system text selection color.&lt;/p&gt;
&lt;h2 id=&#34;7-appleevent-logging-improvements&#34;&gt;7. AppleEvent Logging Improvements&lt;/h2&gt;
&lt;h3 id=&#34;71-added-close-and-clear-buttons&#34;&gt;7.1 Added Close and Clear Buttons&lt;/h3&gt;
&lt;p&gt;Added a Clear and a Close button to the Event Log bar within the script window.&lt;/p&gt;
&lt;h2 id=&#34;8-dictionary-improvements&#34;&gt;8. Dictionary Improvements&lt;/h2&gt;
&lt;h3 id=&#34;81-open-application-dictionary&#34;&gt;8.1 Open Application Dictionary&lt;/h3&gt;
&lt;p&gt;When the PrefChooseAppsUsingChooser expert preference is true, the dictionary chooser presented by Script Debugger when opening dictionaries lists scripting additions and script libraries just as the Script Editor does.&lt;/p&gt;
&lt;h3 id=&#34;82-better-application-scriptability-detection&#34;&gt;8.2 Better Application Scriptability Detection&lt;/h3&gt;
&lt;p&gt;Script Debugger 6 improves the way it determines if an application is scriptable.  For example, Apple’s Preview application is not recognized as scriptable.&lt;/p&gt;
&lt;h2 id=&#34;9-features-removed&#34;&gt;9. Features Removed&lt;/h2&gt;
&lt;h3 id=&#34;91-mac-os-x-version-support&#34;&gt;9.1 Mac OS X Version Support&lt;/h3&gt;
&lt;p&gt;Script Debugger 6 supports Mac OS X 10.10 (Yosemite) or later and Mac OS X 10.11 (El Capitan) is recommended.&lt;/p&gt;
&lt;h3 id=&#34;92-script-debugger-libraries&#34;&gt;9.2 Script Debugger Libraries&lt;/h3&gt;
&lt;p&gt;Script Debugger 5&amp;rsquo;s library inclusion mechanism is no longer supported in Script Debugger 6.  This means that Script Debugger 5&amp;rsquo;s Libraries pane has been removed along with the &lt;code&gt;Flatten Script&lt;/code&gt; command found in the Export submenu of the File menu.&lt;/p&gt;
&lt;p&gt;Script Debugger 6 provides a conversion service that translates Script Debugger 5 references into AppleScript &lt;code&gt;use script&lt;/code&gt; statments.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 6 Release Notes (6A121)</title>
      <link>https://Alldritt.micro.blog/2016/03/10/script-debugger-release.html</link>
      <pubDate>Thu, 10 Mar 2016 18:32:02 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2016/03/10/script-debugger-release.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m posting this in-progress document publicly as a bit of an experiment.  Given that it has been several years since the release of Script Debugger 5, I hope that the appearance of this information will give people confidence that Script Debugger 6&amp;rsquo;s release is imminent.&lt;/p&gt;
&lt;p&gt;Beta testing of Script Debugger 6 is on going and I will update this post as changes are made to the application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DISCLAIMER&lt;/strong&gt;: &lt;em&gt;Nothing is final until the software ships and there is always the possibility that a feature may have to be removed or altered in the final product.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;1-code-signing&#34;&gt;1. Code Signing&lt;/h2&gt;
&lt;p&gt;Script Debugger 6 adopts an always-on approach to code signing.  Once you enable code signing for a script by selecting a developer ID, Script Debugger signs your script each time you save it.  There is no requirement to go through a special Save or Export operation.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/03/CodeSigning.png&#34; alt=&#34;Code Signing&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;2-improved-bundled-script-resource-editing&#34;&gt;2. Improved Bundled Script Resource Editing&lt;/h2&gt;
&lt;p&gt;The Script Debugger 6 bundled script resource editor has been expanded.  You are now able to edit a bundle ID, copyright string, marketing version string and build number.  Script Debugger 6 gives you the option of auto-incrementing build numbers each time a script is saved.&lt;/p&gt;
&lt;p&gt;Additionally, you are able to identify a Scripting Definition (SDEF) file from your script’s bundle and to select a developer ID to enable always-on code signing for your script.&lt;/p&gt;
&lt;p&gt;You are able to specify a default copyright string which is used when creating new bundled scripts and applications.  This default copyright string may containing clipping directives where are expanded at the time a new script document is created.&lt;/p&gt;
&lt;h2 id=&#34;3-progress-reporting&#34;&gt;3. Progress Reporting&lt;/h2&gt;
&lt;p&gt;AppleScript’s progress reporting properties (introduced in Mac OS X 10.10 (Yosemite) are fully supported in Script Debugger 6.  When a script begins reporting progress information by setting any of AppleScript’s progress reporting properties Script Debugger 6 responds by adding a progress bar display above the script’s source:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/03/SD6Progress.png&#34; alt=&#34;SD6Progress&#34;&gt;&lt;/p&gt;
&lt;p&gt;Script Debugger supports both determinate and indeterminate progress reporting.&lt;/p&gt;
&lt;p&gt;Note also that progress information is shown in the window title bar and the script’s document tab.  You can elect to dismiss the progress display by clicking the ‘x’ button.&lt;/p&gt;
&lt;h2 id=&#34;4-open-quickly&#34;&gt;4. Open Quickly&lt;/h2&gt;
&lt;p&gt;The Open Quickly command has been heavily revised for Script Debugger 6.&lt;/p&gt;
&lt;h3 id=&#34;41-improved-search-hit-display&#34;&gt;4.1 Improved Search Hit Display&lt;/h3&gt;
&lt;p&gt;The Open Quickly window highlights the portion of the script’s name, description, Finder comment or script source that matches the search term(s) entered.
&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/03/OpenQuickly.png&#34; alt=&#34;Pasted-Attachment&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;41-better-searching&#34;&gt;4.1 Better Searching&lt;/h3&gt;
&lt;p&gt;Discontiguous search matches are reported (when a single search term is entered), similar to the way Xcode’s Open Quickly command behaves when looking up identifiers and source file names.  When multiple search terms are entered the Open Quickly command looks for each term within the script name, description, finder comment and script source.&lt;/p&gt;
&lt;p&gt;For example, if you have a series of scripts containing the same ‘writeToFile’ handler, you can locate these scripts by entering the search terms ‘write’, ‘writeToFile’ or ‘writeFile’.&lt;/p&gt;
&lt;h2 id=&#34;5-editor-improvements&#34;&gt;5. Editor Improvements&lt;/h2&gt;
&lt;h3 id=&#34;51-code-folding&#34;&gt;5.1 Code Folding&lt;/h3&gt;
&lt;p&gt;While not yet fully complete, Script Debugger 6 at long last provides code folding where you can collapse block structures and comments within your code to reduce clutter when editing.&lt;/p&gt;
&lt;h3 id=&#34;52-autocompletion&#34;&gt;5.2 Autocompletion&lt;/h3&gt;
&lt;p&gt;Improved code completion to include all matching user defined identifiers.  Additional improvements to autocompletion are planned to better support AppleScript Objective-C development.&lt;/p&gt;
&lt;h3 id=&#34;53-identifier-case-changing&#34;&gt;5.3 Identifier Case Changing&lt;/h3&gt;
&lt;p&gt;Script Debugger 6 performs each script compilation in a new AppleScript compiler instance.  This avoids a long standing problem where it was impossible to change the case of a variable, property, handler or script object once the script had been compiled.&lt;/p&gt;
&lt;h3 id=&#34;54-automatic-its-correction&#34;&gt;5.4 Automatic “it’s” Correction&lt;/h3&gt;
&lt;p&gt;If you type &amp;ldquo;it&amp;rsquo;s &amp;quot; in code, it will be changed to &amp;ldquo;its &amp;ldquo;. This avoids the new &amp;ldquo;&amp;ndash; Grammar Police&amp;rdquo; comment being inserted by the compiler in 10.11 (El Capitan).&lt;/p&gt;
&lt;h3 id=&#34;55-terminology-class-avoidance&#34;&gt;5.5 Terminology Class Avoidance&lt;/h3&gt;
&lt;p&gt;When using interleaved syntax for handlers, parameters will be escaped with pipe characters if they clash with defined terminology.&lt;/p&gt;
&lt;h3 id=&#34;56-dash-support&#34;&gt;5.6 Dash Support&lt;/h3&gt;
&lt;p&gt;If you have &lt;a href=&#34;https://kapeli.com/dash&#34;&gt;Dash&lt;/a&gt; installed, you can turn on support so that option-clicking on a word will look it up in Dash. See &amp;hellip; in Preferences.&lt;/p&gt;
&lt;h3 id=&#34;57-application-script-library-and-framework-picker&#34;&gt;5.7 Application, Script Library and Framework Picker&lt;/h3&gt;
&lt;p&gt;Script Debugger 6 offers new powers for placeholders referring to applications, script libraries and AppleScript Objective-C framework names when existing clippings, text substitutions and command completions.  Script Debugger offers a menu of running and favourite applications for application placeholders, a menu of installed script library names for script placeholders and a menu of commonly used framework names for framework placeholders.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/03/AppPicker.png&#34; alt=&#34;App Picker&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;58-more-coming&#34;&gt;5.8 …more coming&lt;/h3&gt;
&lt;h2 id=&#34;6-debugging-improvements&#34;&gt;6. Debugging Improvements&lt;/h2&gt;
&lt;h3 id=&#34;61-non-persistent-global-variables&#34;&gt;6.1 Non-Persistent Global Variables&lt;/h3&gt;
&lt;p&gt;A new Persistent Global Variables command has been added to the Script menu which allows you to determine if the value of global variables and properties persists from one run to the next.  Note that when Code Signing is enabled, this setting is forced off to match the behaviour of signed scripts.&lt;/p&gt;
&lt;h3 id=&#34;62-applescript-objective-c-value-exploring&#34;&gt;6.2 AppleScript Objective-C Value Exploring&lt;/h3&gt;
&lt;p&gt;Script Debugger&amp;rsquo;s various explorers now support AppleScript Objective-C object references. Instead of seeing AppleScript Objective-C object references shown as «class ocid» id «data optr00000000F0FB3885FC7F0000», Script Debugger 6 shows you details of the object:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/03/SD6ASObjCValueDisplay.png&#34; alt=&#34;SD6ASObjCValueDisplay&#34;&gt;&lt;/p&gt;
&lt;p&gt;As this screen shot illustrates, you are even able to explore into container objects to examine their contents.&lt;/p&gt;
&lt;h3 id=&#34;63-applescript-objective-c-value-viewers&#34;&gt;6.3 AppleScript Objective-C Value Viewers&lt;/h3&gt;
&lt;p&gt;Script Debugger 6’s support for AppleScript Objective-C objects extends to displaying “native” viewers for dates and images.&lt;br&gt;
&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/03/SD6NSImageViewer.png&#34; alt=&#34;SD6NSImageViewer&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;64-breakpoint-dragging&#34;&gt;6.4 Breakpoint Dragging&lt;/h3&gt;
&lt;p&gt;You can move breakpoints by dragging them within the script’s gutter.  Additionally, you can delete a breakpoint by dragging it out of the script’s gutter.&lt;/p&gt;
&lt;h3 id=&#34;65-popover-breakpoint-editor&#34;&gt;6.5 Popover Breakpoint Editor&lt;/h3&gt;
&lt;p&gt;Double-clicking on a breakpoint in the script’s gutter allows you to edit a breakpoint in a popover window.  You can also summon this popover window using the breakpoint contextual menu or the Edit Breakpoint command in the Script menu.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://blog.latenightsw.com/wp-content/uploads/2016/03/SD6BreakpointEditor.png&#34; alt=&#34;SD6BreakpointEditor&#34;&gt;&lt;/p&gt;
&lt;h3 id=&#34;66-remove-all-breakpoints&#34;&gt;6.6 Remove All Breakpoints&lt;/h3&gt;
&lt;p&gt;The Remove All Breakpoints command now confirms with you before removing all your breakpoints to avoid accidental breakpoint removal.&lt;/p&gt;
&lt;h3 id=&#34;67-remove-all-disabled-breakpoints&#34;&gt;6.7 Remove All Disabled Breakpoints&lt;/h3&gt;
&lt;p&gt;A new Remove All Disabled Breakpoints command has been added to remove all disabled breakpoints.  Like the Remove All Breakpoints command, this new command confirms with you before removing all your disabled breakpoints to avoid accidental breakpoint removal.&lt;/p&gt;
&lt;h3 id=&#34;68-improved-current-statement-highlighting&#34;&gt;6.8 Improved Current Statement Highlighting&lt;/h3&gt;
&lt;p&gt;Like Script Debugger 5, Script Debugger 6 moves the current text selection to the current statement as you step through code or pause at breakpoints.  However, Script Debugger 6 does not select the current statement’s trailing newline.  This avoids some visibility problems which occurred for some users with Script Debugger 5 when their current statement highlight color preference was too similar to the system text selection color.&lt;/p&gt;
&lt;h2 id=&#34;7-appleevent-logging-improvements&#34;&gt;7. AppleEvent Logging Improvements&lt;/h2&gt;
&lt;h3 id=&#34;71-added-close-and-clear-buttons&#34;&gt;7.1 Added Close and Clear Buttons&lt;/h3&gt;
&lt;p&gt;Added a Clear and a Close button to the Event Log bar within the script window.&lt;/p&gt;
&lt;h2 id=&#34;8-dictionary-improvements&#34;&gt;8. Dictionary Improvements&lt;/h2&gt;
&lt;h3 id=&#34;81-open-application-dictionary&#34;&gt;8.1 Open Application Dictionary&lt;/h3&gt;
&lt;p&gt;When the PrefChooseAppsUsingChooser expert preference is true, the dictionary chooser presented by Script Debugger when opening dictionaries lists scripting additions and script libraries just as the Script Editor does.&lt;/p&gt;
&lt;h3 id=&#34;82-better-application-scriptability-detection&#34;&gt;8.2 Better Application Scriptability Detection&lt;/h3&gt;
&lt;p&gt;Script Debugger 6 improves the way it determines if an application is scriptable.  For example, Apple’s Preview application is not recognized as scriptable.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Re: What if JavaScript had persistent globals?</title>
      <link>https://Alldritt.micro.blog/2015/12/20/re-what-if.html</link>
      <pubDate>Sun, 20 Dec 2015 16:03:10 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2015/12/20/re-what-if.html</guid>
      <description>&lt;p&gt;In a &lt;a href=&#34;http://scripting.com/liveblog/users/davewiner/2015/12/15/0640.html&#34;&gt;recent piece&lt;/a&gt; on his blog Dave Winer imagines what might have been had his ideas for persistent global variables in his Frontier development environment been copied into JavaScript.  I find this a fascinating thought.  It could have radically changed the way the local web app development evolved.&lt;/p&gt;
&lt;p&gt;For me, Frontier&amp;rsquo;s Object Database was the most compelling of all the things in Frontier.  I never really go into the language or the outliner parts of his work, but the Object Database was clearly a good idea.  So much so that I&amp;rsquo;ve been trying to figure out ways of incorporating it into AppleScript ever since.  Products like ScriptBase tried, but none of us have been able to achieve the integration that Dave did.&lt;/p&gt;
&lt;p&gt;The closest I came was with FaceSpan 5 where the entire UI and application were entries in a hierarchical object database, and event handling flowed up through the object tree from the source (e.g. a button) to the root (the application).  Everything was mutable and persistent which made for a hugely powerful tool, much as Frontier had demonstrated many years before.  Sadly, FaceSpan 5 was never finished.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>When Open Does Not Return An Object Reference</title>
      <link>https://Alldritt.micro.blog/2015/10/28/when-open-does.html</link>
      <pubDate>Wed, 28 Oct 2015 12:27:18 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2015/10/28/when-open-does.html</guid>
      <description>&lt;style type=&#34;text/css&#34;&gt;
    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Verdana}
    p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Verdana; color: #321c62}
    p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Verdana; min-height: 15.0px}
    p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Verdana; color: #4b8c00}
    span.s1 {color: #0433ff}
    span.s2 {color: #000000}
    span.s3 {color: #4b8c00}
    span.s4 {color: #812fdc}
    span.Apple-tab-span {white-space:pre}
  &lt;/style&gt;
&lt;p&gt;There is a long standing bug in Cocoa Scripting, the technology Apple provides to developers to help make their applications scriptable, where the Open, Move and Copy commands do not return a reference to the newly created or moved object. This makes scripting these applications difficult.&lt;/p&gt;
&lt;p&gt;I frequently get requests from Script Debugger customers for help solving this problem.  I see people resorting to UI Scripting and many other techniques to address this problem.&lt;/p&gt;
&lt;p&gt;The code below shows one way of working around the problem of the Open command not returning a reference to the newly opened document. I use the Preview application in my code, but this technique works equally well with other applications which fail to return a document reference from their Open commands.  &lt;em&gt;This technique fails is the file is already open&lt;/em&gt;.&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&lt;span class=&#34;s1&#34;&gt;&lt;b&gt;set&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;theFile&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt; &lt;b&gt;to&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s3&#34;&gt;&lt;b&gt;choose file&lt;/b&gt;&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt; &lt;/span&gt;&lt;i&gt;-- pick a file to open&lt;/i&gt;&lt;/p&gt;
&lt;p class=&#34;p3&#34;&gt;&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&lt;b&gt;tell&lt;/b&gt; &lt;span class=&#34;s1&#34;&gt;&lt;i&gt;application&lt;/i&gt;&lt;/span&gt; &#34;Preview&#34;&lt;/p&gt;
&lt;p class=&#34;p2&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;set&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s3&#34;&gt;theOldOpenFiles&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;b&gt;to&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s4&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;b&gt;of&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&lt;i&gt;documents&lt;/i&gt;&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;/span&gt;&lt;i&gt;-- sample the existing open documents&lt;/i&gt;&lt;/p&gt;
&lt;p class=&#34;p2&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&lt;b&gt;open&lt;/b&gt;&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s3&#34;&gt;theFile&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;/span&gt;&lt;i&gt;-- no new document reference returned - sigh&lt;/i&gt;&lt;/p&gt;
&lt;p class=&#34;p2&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;set&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s3&#34;&gt;theOpenFiles&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;b&gt;to&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s4&#34;&gt;path&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;b&gt;of&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&lt;i&gt;documents&lt;/i&gt;&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;/span&gt;&lt;i&gt;-- sample the new list of open documents&lt;/i&gt;&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&lt;b&gt;end&lt;/b&gt; &lt;b&gt;tell&lt;/b&gt;&lt;/p&gt;
&lt;p class=&#34;p3&#34;&gt;&lt;br&gt;&lt;/p&gt;
&lt;p class=&#34;p2&#34;&gt;&lt;i&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;Find the item in the list of new open documents that is not present in the old list of&lt;span class=&#34;Apple-converted-space&#34;&gt; &lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p class=&#34;p2&#34;&gt;&lt;i&gt;--&amp;nbsp;&amp;nbsp;&amp;nbsp;open documents.&lt;/i&gt;&lt;/p&gt;
&lt;p class=&#34;p4&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&lt;b&gt;set&lt;/b&gt; &lt;/span&gt;theNewFiles&lt;span class=&#34;s2&#34;&gt; &lt;b&gt;to&lt;/b&gt; &lt;/span&gt;finddifference&lt;span class=&#34;s2&#34;&gt; &lt;b&gt;of&lt;/b&gt; &lt;/span&gt;theOpenFiles&lt;span class=&#34;s2&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;against&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;/span&gt;theOldOpenFiles&lt;/p&gt;
&lt;p class=&#34;p3&#34;&gt;&lt;br&gt;&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&lt;b&gt;tell&lt;/b&gt; &lt;span class=&#34;s1&#34;&gt;&lt;i&gt;application&lt;/i&gt;&lt;/span&gt; &#34;Preview&#34;&lt;/p&gt;
&lt;p class=&#34;p2&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;i&gt;--&amp;nbsp;&amp;nbsp;recover the reference to the newly opened document&lt;/i&gt;&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;set&lt;/b&gt; &lt;span class=&#34;s3&#34;&gt;theOpenedDocument&lt;/span&gt; &lt;b&gt;to&lt;/b&gt; &lt;b&gt;first&lt;/b&gt; &lt;span class=&#34;s1&#34;&gt;&lt;i&gt;document&lt;/i&gt;&lt;/span&gt; &lt;b&gt;where&lt;/b&gt; &lt;span class=&#34;s4&#34;&gt;path&lt;/span&gt; &lt;b&gt;is&lt;/b&gt; (&lt;span class=&#34;s1&#34;&gt;&lt;i&gt;item&lt;/i&gt;&lt;/span&gt; 1 &lt;b&gt;of&lt;/b&gt; &lt;span class=&#34;s3&#34;&gt;theNewFiles&lt;/span&gt;)&lt;/p&gt;
&lt;p class=&#34;p3&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p class=&#34;p4&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;tell&lt;/b&gt; &lt;/span&gt;theOpenedDocument&lt;/p&gt;
&lt;p class=&#34;p2&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;i&gt;--&amp;nbsp;&amp;nbsp;your code targetting the newly opened document goes here...&lt;/i&gt;&lt;/p&gt;
&lt;p class=&#34;p4&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;set&lt;/b&gt; &lt;/span&gt;theDocumentName&lt;span class=&#34;s2&#34;&gt; &lt;b&gt;to&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s4&#34;&gt;name&lt;/span&gt;&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;end&lt;/b&gt; &lt;b&gt;tell&lt;/b&gt;&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&lt;b&gt;end&lt;/b&gt; &lt;b&gt;tell&lt;/b&gt;&lt;/p&gt;
&lt;p class=&#34;p3&#34;&gt;&lt;br&gt;&lt;/p&gt;
&lt;p class=&#34;p4&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&lt;b&gt;to&lt;/b&gt; &lt;/span&gt;finddifference&lt;span class=&#34;s2&#34;&gt; &lt;b&gt;of&lt;/b&gt; &lt;/span&gt;listA&lt;span class=&#34;s2&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;against&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;/span&gt;listB&lt;/p&gt;
&lt;p class=&#34;p2&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;i&gt;--&amp;nbsp;&amp;nbsp;This handler computes the &#39;difference&#39; between the contents of two lists&lt;/i&gt;&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;local&lt;/b&gt; &lt;span class=&#34;s3&#34;&gt;newList&lt;/span&gt;&lt;/p&gt;
&lt;p class=&#34;p3&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;set&lt;/b&gt; &lt;span class=&#34;s3&#34;&gt;newList&lt;/span&gt; &lt;b&gt;to&lt;/b&gt; {}&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;repeat&lt;/b&gt; &lt;b&gt;with&lt;/b&gt; &lt;span class=&#34;s3&#34;&gt;a&lt;/span&gt; &lt;b&gt;in&lt;/b&gt; &lt;span class=&#34;s3&#34;&gt;listA&lt;/span&gt;&lt;/p&gt;
&lt;p class=&#34;p2&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;set&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s3&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;b&gt;to&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s4&#34;&gt;contents&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;b&gt;of&lt;/b&gt; &lt;/span&gt;&lt;span class=&#34;s3&#34;&gt;a&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; &lt;/span&gt;&lt;i&gt;-- dereference implicit loop reference&lt;/i&gt;&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;if&lt;/b&gt; {&lt;span class=&#34;s3&#34;&gt;a&lt;/span&gt;} &lt;b&gt;is not&lt;/b&gt; &lt;b&gt;in&lt;/b&gt; &lt;span class=&#34;s3&#34;&gt;listB&lt;/span&gt; &lt;b&gt;then&lt;/b&gt; &lt;b&gt;set&lt;/b&gt; &lt;b&gt;end&lt;/b&gt; &lt;b&gt;of&lt;/b&gt; &lt;span class=&#34;s3&#34;&gt;newList&lt;/span&gt; &lt;b&gt;to&lt;/b&gt; &lt;span class=&#34;s3&#34;&gt;a&lt;/span&gt;&lt;/p&gt;
&lt;p class=&#34;p1&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;end&lt;/b&gt; &lt;b&gt;repeat&lt;/b&gt;&lt;/p&gt;
&lt;p class=&#34;p4&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;newList&lt;/p&gt;
&lt;p class=&#34;p4&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&lt;b&gt;end&lt;/b&gt; &lt;/span&gt;finddifference&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>OSAID Leaks Cause Crashes</title>
      <link>https://Alldritt.micro.blog/2014/12/04/osaid-leaks-cause.html</link>
      <pubDate>Thu, 04 Dec 2014 09:59:16 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2014/12/04/osaid-leaks-cause.html</guid>
      <description>&lt;p&gt;As a followup to my &lt;a href=&#34;http://blog.latenightsw.com/?p=836&#34;&gt;Getting Yosemite AppleScript Progress Information&lt;/a&gt; post I would like to offer this PSA.&lt;/p&gt;
&lt;p&gt;There an AppleScript crashing bug that you may encounter when using the &lt;code&gt;OSAGetProperty()&lt;/code&gt; call.&lt;/p&gt;
&lt;p&gt;If you fail to call &lt;code&gt;OSADispose()&lt;/code&gt; to release the OSAID values you receive from &lt;code&gt;OSAGetProperty()&lt;/code&gt; you have an OSAID leak.  If you begin to see difficult to reproduce crashes that look like this then you have an OSAID leak in your application:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#0  0x00007fff97a6a827 in CFRelease ()
#1  0x00000001054fb6b6 in UASMakeIDTable(unsigned long) ()
#2  0x00000001054fb81b in UASNewID(TUASScript*) ()
#3  0x00000001054c0f9d in ASGetPropertyLocal(int, unsigned int, AEDesc const*, unsigned int*) ()
#4  0x00000001054b7aad in AppleScriptComponent ()
#5  0x00007fff95704b73 in OSAGetProperty ()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I filed a Radar bug with Apple over 10 years ago but the issue appears to have gone unresolved.  It seems to me that when the available OSAIDs have been exhausted, &lt;code&gt;OSAGetProperty()&lt;/code&gt; (and all other OSA calls) should return some sort of error instead of crashing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If, like me, you wrap your OSAIDs in an Objective-C object, make sure your autorelease pool(s) drain properly.  You&amp;rsquo;re call to &lt;code&gt;OSADispose()&lt;/code&gt; probably happens when your object is dealloced and that may not happen when you expect.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Getting Yosemite AppleScript Progress Information</title>
      <link>https://Alldritt.micro.blog/2014/11/27/getting-yosemite-applescript.html</link>
      <pubDate>Thu, 27 Nov 2014 11:13:47 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2014/11/27/getting-yosemite-applescript.html</guid>
      <description>&lt;p&gt;Yosemite (Mac OS X 10.10) introduced 4 new properties scripts can set to report progress information:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;progress total steps&lt;/code&gt; (an integer)&lt;br&gt;
&lt;code&gt;progress completed steps&lt;/code&gt; (an integer)&lt;br&gt;
&lt;code&gt;progress description&lt;/code&gt; (text)&lt;br&gt;
&lt;code&gt;progress additional description&lt;/code&gt; (text)&lt;/p&gt;
&lt;p&gt;See the &lt;a href=&#34;https://developer.apple.com/library/mac/releasenotes/AppleScript/RN-AppleScript/RN-10_10/RN-10_10.html&#34;&gt;Yosemite AppleScript Release Notes&lt;/a&gt; for full details.&lt;/p&gt;
&lt;p&gt;What is not explained is how a host application can access this information and display a script&amp;rsquo;s progress in its own UI.  Here&amp;rsquo;s how you do it.&lt;/p&gt;
&lt;p&gt;At intervals the script will call the OSAActiveProc.  Within this callback function you can make OSA calls that access the running script&amp;rsquo;s state.  You start by getting a reference to the &amp;lsquo;AppleScript&amp;rsquo; object.  From there you can read the value of the four progress properties.  The following code uses my own OSAID wrapper object (RKOSAID - don&amp;rsquo;t ask, Script Debugger is 20 year old code).  You can use whichever OSA API you are most familiar with.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;--	Provisional property ID constants until Apple puts them into a public API

#define pASProgressTotalSteps_LNS       &#39;ppgt&#39;
#define pASProgressStepsCompleted_LNS   &#39;ppgc&#39;
#define pASProgressDescription_LNS      &#39;ppgd&#39;
#define pASProgressAdditionalDescription_LNS &#39;ppga&#39;

@interface RKOSAID (AppleScriptProgress)

- (NSDictionary*) appleScriptProgress;

@end

@implementation RKOSAID (AppleScriptProgress)

- (NSDictionary*) appleScriptProgress {

    // Get a reference to the &#39;AppleScript&#39; object
	RKOSAID* as = [self propertyForPropertyID:pASTopLevelScript];
	
	// Extract the progress properties
	RKOSAID* totalSteps = [as propertyForPropertyID:pASProgressTotalSteps_LNS];
	RKOSAID* steps = [as propertyForPropertyID:pASProgressStepsCompleted_LNS];
	RKOSAID* description = [as propertyForPropertyID:pASProgressDescription_LNS];
	RKOSAID* addnlDescription = [as propertyForPropertyID:pASProgressAdditionalDescription_LNS];
	
	// Convert into Cocoa objects and return
	return @{@&amp;quot;totalSteps&amp;quot;: @(totalSteps.descriptor.int32Value),
			 @&amp;quot;steps&amp;quot;: @(steps.descriptor.int32Value),
			 @&amp;quot;description&amp;quot; : description.descriptor.stringValue,
			 @&amp;quot;additionalDescription&amp;quot; : addnlDescription.descriptor.stringValue};
}

@end
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: My -[RKOSAID propertyForPropertyID:] call wraps the OSAGetProperty() call defined in ASDebugging.h.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SEE ALSO&lt;/strong&gt;: &lt;a href=&#34;http://blog.latenightsw.com/?p=893&#34;&gt;OSAID Leaks Cause Crashes&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 5.0 Released</title>
      <link>https://Alldritt.micro.blog/2012/06/06/script-debugger-released.html</link>
      <pubDate>Wed, 06 Jun 2012 11:54:48 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2012/06/06/script-debugger-released.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m pleased to announce that I have finally completed &lt;a href=&#34;http://www.latenightsw.com&#34;&gt;Script Debugger 5.0&lt;/a&gt;.  After an extremely long development period, it is finally done and I can take a breath.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.7</title>
      <link>https://Alldritt.micro.blog/2011/07/19/script-debugger.html</link>
      <pubDate>Tue, 19 Jul 2011 08:08:34 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2011/07/19/script-debugger.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m pleased to announce the release of Script Debugger 4.5.7. Script Debugger 4.5.7 is a free maintenance release that addresses a series of issues that came to light following the release of Script Debugger 4.5.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/download.html&#34;&gt;Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/releaseNotes.html&#34;&gt;Release Notes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Among the changes in the Script Debugger 4.5.7 maintenance release is a fix for crashing bug when opening or creating documents on Mac OS X 10.7 (Lion).&lt;/p&gt;
&lt;p&gt;A big thank you to all the folks who downloaded the various Script Debugger 4.5.7 Beta builds.  I really appreciate all the great feedback and bug reports I received.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.7b4</title>
      <link>https://Alldritt.micro.blog/2011/07/09/script-debugger-b.html</link>
      <pubDate>Sat, 09 Jul 2011 19:04:27 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2011/07/09/script-debugger-b.html</guid>
      <description>&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://blog.latenightsw.com/?p=503&#34;&gt;Script Debugger 4.5.7 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As was the case with Script Debugger 4.5.5 and 4.5.6, I am struggling to resolve some stability problems that appeared following the release of Mac OS X 10.6 (Snow Leopard).  Resolving these issues has been very difficult as I am not been able to reproduce the crashes on my own systems.&lt;/p&gt;
&lt;p&gt;To help me determine if I’ve resolved the stability issues (or at least improved things), please allow Script Debugger to submit &lt;strong&gt;ALL&lt;/strong&gt; crash reports. I know that this may slow you down a little, but it will help me as I work to resolve the stability problems.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;Intel or PowerPC Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.6, 10.5, 10.4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/ScriptDebugger4.5.7b4.dmg&#34;&gt;Script Debugger 4.5.7b4&lt;/a&gt; (12MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;Mount the ScriptDebugger4.5.7 disk image&lt;/li&gt;
&lt;li&gt;Copy the Script Debugger 4.5 application from the disk image to your Applications folder (or any other place on your disk)&lt;/li&gt;
&lt;li&gt;Restart your Macintosh to ensure all caches are flushed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.6 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on October 1, 2011&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.7b4 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;15112 [Crash] Script Debugger co-exists with installations of the forthcoming Script Debugger 5.0.&lt;/li&gt;
&lt;li&gt;15101 [Crash] Script Debugger no longer crashes when creating new documents on Lion (Mac OS X 10.7).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Script Debugger 4.5.7b3 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;15108 Addressed a problem where the Dictionary/Explorer control in the Dictionary window was not updated to &amp;lsquo;Dictionary&amp;rsquo; following a search.&lt;/li&gt;
&lt;li&gt;14862 Added support for ASObjC scripts by allowing &amp;lsquo;class &amp;ldquo;ClassName&amp;rdquo;&amp;rsquo; constructs to compile.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;http://blog.latenightsw.com/?p=491&#34;&gt;Script Debugger 4.5.7b2 Changes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.7b2</title>
      <link>https://Alldritt.micro.blog/2011/04/29/script-debugger-b.html</link>
      <pubDate>Fri, 29 Apr 2011 09:58:07 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2011/04/29/script-debugger-b.html</guid>
      <description>&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://blog.latenightsw.com/?p=503&#34;&gt;Script Debugger 4.5.7 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As was the case with Script Debugger 4.5.5 and 4.5.6, I am struggling to resolve some stability problems that appeared following the release of Mac OS X 10.6 (Snow Leopard).  Resolving these issues has been very difficult as I am not been able to reproduce the crashes on my own systems.  The Script Debugger 4.5.7b2 build addresses some additional problems that I hope will further improve stability.&lt;/p&gt;
&lt;p&gt;To help me determine if I’ve resolved the stability issues (or at least improved things), please allow Script Debugger to submit &lt;strong&gt;ALL&lt;/strong&gt; crash reports. I know that this may slow you down a little, but it will help me as I work to finally resolve the stability problems.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;Intel or PowerPC Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.6, 10.5, 10.4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/ScriptDebugger4.5.7b2.dmg&#34;&gt;Script Debugger 4.5.7b2&lt;/a&gt; (12MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;Mount the ScriptDebugger4.5.7 disk image&lt;/li&gt;
&lt;li&gt;Copy the Script Debugger 4.5 application from the disk image to your Applications folder (or any other place on your disk)&lt;/li&gt;
&lt;li&gt;Restart your Macintosh to ensure all caches are flushed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.6 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on July 1, 2011&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.7b2 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;15107 Script Debugger no longer attempts to compile scripts when saving changes to an existing Text (.applescript) document.&lt;/li&gt;
&lt;li&gt;15106 Script Debugger no longer causes AppleScript to convert &amp;ldquo;reference&amp;rdquo; to &amp;ldquo;specifier&amp;rdquo; when compiling scripts.&lt;/li&gt;
&lt;li&gt;14862 Added support for ASObjC scripts by allowing &amp;lsquo;class &amp;ldquo;ClassName&amp;rdquo;&amp;rsquo; constructs to compile.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;http://blog.latenightsw.com/?p=466&#34;&gt;Script Debugger 4.5.7b1 Changes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.7b1</title>
      <link>https://Alldritt.micro.blog/2011/03/17/script-debugger-b.html</link>
      <pubDate>Thu, 17 Mar 2011 08:45:48 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2011/03/17/script-debugger-b.html</guid>
      <description>&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://blog.latenightsw.com/?p=503&#34;&gt;Script Debugger 4.5.7 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As was the case with Script Debugger 4.5.5 and 4.5.6, I am struggling to resolve some stability problems that appeared following the release of Mac OS X 10.6 (Snow Leopard).  Resolving these issues has been very difficult as I am not been able to reproduce the crashes on my own systems.  The Script Debugger 4.5.7b1 build addresses some additional problems that I hope will further improve stability.&lt;/p&gt;
&lt;p&gt;To help me determine if I’ve resolved the stability issues (or at least improved things), please allow Script Debugger to submit &lt;strong&gt;ALL&lt;/strong&gt; crash reports. I know that this may slow you down a little, but it will help me as I work to finally resolve the stability problems.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;Intel or PowerPC Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.6, 10.5, 10.4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://blog.latenightsw.com/?p=491&#34;&gt;no longer available&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;Mount the ScriptDebugger4.5.7 disk image&lt;/li&gt;
&lt;li&gt;Copy the Script Debugger 4.5 application from the disk image to your Applications folder (or any other place on your disk)&lt;/li&gt;
&lt;li&gt;Restart your Macintosh to ensure all caches are flushed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.6 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on May 1, 2011&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.7b1 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;15090 [CRASH] Resolved a bug in the Balance command that could result in crashes if compound AppleScript statements (tell x to y, if x then y) appear within a block style comment.&lt;/li&gt;
&lt;li&gt;15094 [CRASH] Another attempt to resolve the intermittent crashes which began with the release of Mac OS X 10.6 (Snow Leopard).&lt;/li&gt;
&lt;li&gt;15093 Resolved a problem where the Dictionary window fails to display dictionary descriptions for multiple items selected from the browser.&lt;/li&gt;
&lt;li&gt;15092 Resolved a problem where application bundles saved as 32-bit appear as PowerPC applications in the Finder.&lt;/li&gt;
&lt;li&gt;15091 Fixed a typo in the property definition clipping.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>AppleScriptObjC Explored 2.0</title>
      <link>https://Alldritt.micro.blog/2011/02/07/applescriptobjc-explored.html</link>
      <pubDate>Mon, 07 Feb 2011 09:19:00 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2011/02/07/applescriptobjc-explored.html</guid>
      <description>&lt;p&gt;&lt;a href=&#34;email:sstanley@myriad-com.com.au&#34;&gt;Shane Stanley&lt;/a&gt; has just released version 2 of &lt;a href=&#34;http://www.macosxautomation.com/applescript/apps/&#34;&gt;AppleScriptObjC Explored&lt;/a&gt;, his book documenting Apple&amp;rsquo;s  AppleScriptObjC (the successor to AppleScript Studio).&lt;/p&gt;
&lt;p&gt;Shane&amp;rsquo;s book has become the most comprehensive documentation for AppleScriptObjC available.  If you are attempting to use AppleScriptObjC to put a User Interface around your AppleScript code, this is a resource you must look into.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 5: Dictionary Redesign Prototype</title>
      <link>https://Alldritt.micro.blog/2010/12/31/script-debugger-dictionary.html</link>
      <pubDate>Fri, 31 Dec 2010 14:01:41 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2010/12/31/script-debugger-dictionary.html</guid>
      <description>&lt;p&gt;I have been plugging away at a redesign of the Script Debugger 5 dictionary window, and by extension the value viewer that appears throughout the Script Debugger user interface.&lt;/p&gt;
&lt;p&gt;The focus of the redesign is to remove the need for multiple windows unless you want them, to simplify navigation between dictionaries and through large dictionaries/object models, and to take better advantage of wide-screen displays.  I&amp;rsquo;ve also tried to modernize Script Debugger&amp;rsquo;s appearance and make the presentation of dictionary information more consistent.&lt;/p&gt;
&lt;p&gt;Rather than say too much more I&amp;rsquo;ll leave you to check out the screencast and just say that this is a very rough cut at what may or may not appear in Script Debugger 5.  All icons are placeholders, etc, etc.&lt;/p&gt;
&lt;p&gt;&lt;object width=&#34;560&#34; height=&#34;340&#34;&gt;&lt;param name=&#34;movie&#34; value=&#34;http://www.youtube.com/v/XAY28Nc-Ys4?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;hd=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999&#34;&gt;&lt;/param&gt;&lt;param name=&#34;allowFullScreen&#34; value=&#34;true&#34;&gt;&lt;/param&gt;&lt;param name=&#34;allowscriptaccess&#34; value=&#34;always&#34;&gt;&lt;/param&gt;&lt;embed src=&#34;http://www.youtube.com/v/XAY28Nc-Ys4?fs=1&amp;amp;hl=en_US&amp;amp;rel=0&amp;amp;hd=1&amp;amp;color1=0x3a3a3a&amp;amp;color2=0x999999&#34; type=&#34;application/x-shockwave-flash&#34; allowscriptaccess=&#34;always&#34; allowfullscreen=&#34;true&#34; width=&#34;560&#34; height=&#34;340&#34;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Best viewed full-screen at 720p&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I realize that you may not be able to say too much without being able to actually use the software, but I&amp;rsquo;m very interested in feedback on the changes.  In particular, are there obvious omissions/problems?  Am I heading in the right direction or is this the wrong thing.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.6</title>
      <link>https://Alldritt.micro.blog/2010/08/29/script-debugger.html</link>
      <pubDate>Sun, 29 Aug 2010 21:59:49 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2010/08/29/script-debugger.html</guid>
      <description>&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: I have released Script Debugger 4.5.6 which resolves a license limit exceeded error that effected some users.  In all other ways, 4.5.6 is identical to 4.5.5.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m pleased to announce the release of Script Debugger 4.5.5. Script Debugger 4.5.5 is a free maintenance release that addresses a series of issues that came to light following the release of Script Debugger 4.5.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/download.html&#34;&gt;Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/releaseNotes.html&#34;&gt;Release Notes&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This maintenance release attempts to resolve the stability problems that some Script Debugger users have experienced on Snow Leopard.  While I have made progress improving stability, there is still more to be done.  This maintenance release addresses a number of other important issues so I decided to make these fixes available now rather than hold the release back while I continue resolving the stability problems.&lt;/p&gt;
&lt;p&gt;A big thank you to all the folks who downloaded the various Script Debugger 4.5.5 Beta builds.  I really appreciate all the great feedback and bug reports I received.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Scripting Additions Updated</title>
      <link>https://Alldritt.micro.blog/2010/08/28/scripting-additions-updated.html</link>
      <pubDate>Sat, 28 Aug 2010 22:18:43 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2010/08/28/scripting-additions-updated.html</guid>
      <description>&lt;p&gt;After an extremely long gestation in Beta I&amp;rsquo;ve released 64-Bit Intel compatible versions of the following Scripting Additions:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/freeware/XMLTools2/index.html&#34;&gt;XML Tools 2.9.4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/freeware/PListTools/index.html&#34;&gt;Property List Tools 1.0.7&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/freeware/RecordTools/index.html&#34;&gt;List &amp;amp; Record Tools 1.0.6&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.5b6</title>
      <link>https://Alldritt.micro.blog/2010/07/26/script-debugger-b.html</link>
      <pubDate>Mon, 26 Jul 2010 22:13:29 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2010/07/26/script-debugger-b.html</guid>
      <description>&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://blog.latenightsw.com/?p=328&#34;&gt;Script Debugger 4.5.5 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release.&lt;/p&gt;
&lt;p&gt;I have been struggling to resolve some stability problems ever since the release of Script Debugger 4.5.  Resolving these issues has been very difficult as I&amp;rsquo;ve not been able to reproduce several of the crashes on my own systems. The Script Debugger 4.5.5b3, b4 and b5 releases have resolved several crashes, but some problems remain.  The Script Debugger 4.5.5b6 build addresses some additional problems that I hope will further improve stability.&lt;/p&gt;
&lt;p&gt;To help me determine if I’ve resolved the stability issues (or at least improved things), please allow Script Debugger to submit &lt;strong&gt;ALL&lt;/strong&gt; crash reports. I know that this may slow you down a little, but it will help me as I work to finally resolve the stability problems.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;Intel or PowerPC Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.6, 10.5, 10.4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/SD4.5.5b6.dmg&#34;&gt;Script Debugger 4.5.5b6&lt;/a&gt; (11.4MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;Mount the SD4.5.5 disk image&lt;/li&gt;
&lt;li&gt;Copy the Script Debugger 4.5 application from the disk image to your Applications folder (or any other place on your disk)&lt;/li&gt;
&lt;li&gt;Restart your Macintosh to ensure all caches are flushed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.4 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on September 1, 2010&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.5b6 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14907 [Crash] Improved the Explorer to protect against some more instances where the UI thread may be accessing data while background threads are altering the data.&lt;/li&gt;
&lt;li&gt;14927 The Script Debugger 4.0 OSA component is removed if it is still present to avoid the possibility of memory corruptions that might destabilize Script Debugger 4.5.&lt;/li&gt;
&lt;li&gt;14928 Script Debugger auto-saves documents each time they are compiled.  This may slow things down slightly, but it will improve Script Debugger&amp;rsquo;s ability to recover the contents of open documents in the event of a crash.  Previously, Script Debugger auto-saved only before a document was executed.&lt;/li&gt;
&lt;li&gt;14926 When exporting a Run-Only script over an existing file, Script Debugger ensures that pre-eisting recovery and QuickLook preview data is removed.&lt;/li&gt;
&lt;li&gt;14925 This change addresses a regression in bug 14881.  Script Debugger no longer reports 32-bit scripting addition warnings for StandardAdditions.osax when saving on 32-bit machines as StandardAdditions.osax will always be fully compatible with the host hardware.  Script Debugger now only does 32-bit scripting addition checking when running on Mac OS X 10.6 or later.&lt;/li&gt;
&lt;li&gt;14885 FontSyncScripting.app is no longer mistaken as a Scripting Addition.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/blog/?p=303&#34;&gt;Script Debugger 4.5.5b5 Changes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.5b5</title>
      <link>https://Alldritt.micro.blog/2010/07/09/script-debugger-b.html</link>
      <pubDate>Fri, 09 Jul 2010 13:00:23 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2010/07/09/script-debugger-b.html</guid>
      <description>&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://www.latenightsw.com/blog/?p=316&#34;&gt;Script Debugger 4.5.5b6 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release.&lt;/p&gt;
&lt;p&gt;I have been struggling to resolve some stability problems ever since the release of Script Debugger 4.5.  Resolving these issues has been very difficult as I&amp;rsquo;ve not been able to reproduce several of the crashes on my own systems so I&amp;rsquo;m debugging in the blind. The Script Debugger 4.5.5b3 and b4 releases have resolved several crashes, but some problems remain.  The Script Debugger 4.5.5b5 build addresses two additional crashes.&lt;/p&gt;
&lt;p&gt;To help me determine if I’ve resolved the stability issues (or at least improved things), please allow Script Debugger to submit &lt;strong&gt;ALL&lt;/strong&gt; crash reports. I know that this may slow you down a little, but it will help me as I work to finally resolve the stability problems.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;Intel or PowerPC Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.6, 10.5, 10.4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/SD4.5.5b5.dmg&#34;&gt;Script Debugger 4.5.5b5&lt;/a&gt; (11.4MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt; Delete all copies of Script Debugger.component and Script Debugger 4.5.component from your ~/Library/Components folder&lt;/li&gt;
&lt;li&gt;Mount the SD4.5.5 disk image&lt;/li&gt;
&lt;li&gt;Copy the Script Debugger 4.5 application from the disk image to your Applications folder (or any other place on your disk)&lt;/li&gt;
&lt;li&gt;Restart your Macintosh to ensure all caches are flushed&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.4 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on September 1, 2010&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.5b5 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14907 [Crash] Improved the Explorer to protect against some more instances where the UI thread may be accessing data while background threads are altering the data.&lt;/li&gt;
&lt;li&gt;14899 [Crash] Resolved a bug that caused Script Debugger to crash when AppleScript reports error text ranges that lie beyond the end of the script.  This happens most commonly when you have an unclosed quoted string within a block comment.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/blog/?p=288&#34;&gt;Script Debugger 4.5.5b4 Changes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.5b4</title>
      <link>https://Alldritt.micro.blog/2010/06/06/script-debugger-b.html</link>
      <pubDate>Sun, 06 Jun 2010 11:29:15 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2010/06/06/script-debugger-b.html</guid>
      <description>&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://www.latenightsw.com/blog/?p=303&#34;&gt;Script Debugger 4.5.5b5 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release.&lt;/p&gt;
&lt;p&gt;I have been struggling to resolve some stability problems ever since the release of Script Debugger 4.5.  The rate of crash reports has diminished significantly with the Script Debugger 4.5.5b3 beta build, but I&amp;rsquo;m still getting a few crashes.  This new beta build contains fixes for a few more instances where AppleScript may be causing crashes.&lt;/p&gt;
&lt;p&gt;To help me determine if I’ve actually solved the stability issues (or at least improved things), please allow Script Debugger to submit all crash reports. I know that this may slow you down a little, but it will help us all as I work to finally resolve the stability problems.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;Intel or PowerPC Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.6, 10.5, 10.4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/SD4.5.5b4.dmg&#34;&gt;Script Debugger 4.5.5b4&lt;/a&gt; (11.4MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt; Delete all copies of Script Debugger.component and Script Debugger 4.5.component from your ~/Library/Components folder&lt;/li&gt;
&lt;li&gt;Mount the SD4.5.5 disk image&lt;/li&gt;
&lt;li&gt;Copy the Script Debugger 4.5 application from the disk image to your Applications folder (or any other place on your disk)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.4 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on September 1, 2010&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.5b4 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14898 More changes that attempt to resolve Script Debugger&amp;rsquo;s stability issues (&lt;em&gt;Please ensure you have deleted all old copies of Script Debugger.component and Script Debugger 4.5.component from your ~/Library/Components folder&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/blog/?p=263&#34;&gt;Script Debugger 4.5.5b3 Changes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.5b3</title>
      <link>https://Alldritt.micro.blog/2010/06/01/script-debugger-b.html</link>
      <pubDate>Tue, 01 Jun 2010 23:42:09 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2010/06/01/script-debugger-b.html</guid>
      <description>&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://www.latenightsw.com/blog/?p=288&#34;&gt;Script Debugger 4.5.5b4 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release.&lt;/p&gt;
&lt;p&gt;I have been struggling to resolve some stability problems ever since the release of Script Debugger 4.5.  I thought I had these problems resolved a couple of times, but they persist.  With the release of Mac OS X 10.6 they seem to have gotten worse.&lt;/p&gt;
&lt;p&gt;For the Script Debugger 4.5.5 maintenance release I want to try and resolve these stability issues once and for all.  The difficulty is that I cannot reproduce any of these crashes here on my systems, and the crash reports that I receive don&amp;rsquo;t point to any obvious causes.&lt;/p&gt;
&lt;p&gt;I had a bit of luck and was able to find and resolve some memory management errors in Script Debugger which may have contributed to the problem.  I&amp;rsquo;ve also identified a problem in AppleScript that may also be contributing to the stability issues.&lt;/p&gt;
&lt;p&gt;To help me determine if I&amp;rsquo;ve actually solved the stability issues (or at least improved things), please allow Script Debugger to submit all crash reports.  I know that this may slow you down a little, but it will help us all as I work to finally resolve the stability problems.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;Intel or PowerPC Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.6, 10.5, 10.4&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/SD4.5.5b3.dmg&#34;&gt;Script Debugger 4.5.5b3&lt;/a&gt; (11.4MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IMPORTANT&lt;/strong&gt; Delete all copies of Script Debugger.component and Script Debugger 4.5.component from your ~/Library/Components folder&lt;/li&gt;
&lt;li&gt;Mount the SD4.5.5 disk image&lt;/li&gt;
&lt;li&gt;Copy the Script Debugger 4.5 application from the disk image to your Applications folder (or any other place on your disk)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.4 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on September 1, 2010&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.5b3 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14898 Several changes that attempt to resolve Script Debugger&amp;rsquo;s stability issues and reduce memory leakage when closing documents (&lt;em&gt;Please ensure you have deleted all old copies of Script Debugger.component and Script Debugger 4.5.component from your ~/Library/Components folder&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;14886, 14151 Corrected a series of issues that prevented the Manifest command from properly detecting AppleEvents sent to applications.  Note that these fixes also restore Script Debugger&amp;rsquo;s ability to detect which applications will be launched when opening scripts.&lt;/li&gt;
&lt;li&gt;14885 FontSyncScripting.app is no longer mistaken as a Scripting Addition.&lt;/li&gt;
&lt;li&gt;14884 Script Debugger&amp;rsquo;s logic for opening scripts with incorrect filename extensions has been improved.  For instance, compiled scripts carrying a &amp;lsquo;.applescript&amp;rsquo; extension will open correctly (.applescript normally indicates a plain text file).&lt;/li&gt;
&lt;li&gt;14881 A new 32-Bit Only option has been added to the Save As panel allowing you to create 32-Bit applets directly from Script Debugger (this avoids having to visit the Finder&amp;rsquo;s Get Info window to select the 32-Bit Only execution option).&lt;/li&gt;
&lt;li&gt;14853 Script Debugger can now open the iCal dictionary and any other application dictionaries which make use of xinclude directives.&lt;/li&gt;
&lt;li&gt;14883 Script Debugger now reports error information in the AppleEvent Log window.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.4</title>
      <link>https://Alldritt.micro.blog/2010/02/01/script-debugger.html</link>
      <pubDate>Mon, 01 Feb 2010 12:07:14 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2010/02/01/script-debugger.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m pleased to announce the release of Script Debugger 4.5.4. Script Debugger 4.5.4 is a free maintenance release that addresses a series of issues that came to light following the release of Script Debugger 4.5.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/download.html&#34;&gt;Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/releaseNotes.html&#34;&gt;Release Notes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Snow Leopard vs My Scripting Additions, Part 3</title>
      <link>https://Alldritt.micro.blog/2009/12/08/snow-leopard-vs.html</link>
      <pubDate>Tue, 08 Dec 2009 10:15:52 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/12/08/snow-leopard-vs.html</guid>
      <description>&lt;p&gt;In a &lt;a href=&#34;http://www.latenightsw.com/blog/?p=231&#34;&gt;previous post&lt;/a&gt; I released beta builds of Snow Leopard versions of 3 out of 4 of my AppleScript Scripting Additions.&lt;/p&gt;
&lt;p&gt;The remaining Scripting Addition, &lt;a href=&#34;http://www.latenightsw.com/freeware/XSLTTools/index.html&#34;&gt;XSLT Tools&lt;/a&gt;, has proved to be a difficult problem to solve.  XSLT Tools makes heavy use of Carbon APIs that are not available to 64-bit builds on Snow Leopard.  However, even the existing 32-bit version crashes on Snow Leopard systems.&lt;/p&gt;
&lt;p&gt;Here is a new 32-bit &lt;strong&gt;Snow Leopard/Intel only&lt;/strong&gt; build of XSLT Tools that no longer crashes:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/XSLTTools2.1.3b1.zip&#34;&gt;XSLT Tools 2.1.3b1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In order to use this version of XSLT Tools, you need to run the AppleScript Script Editor, applets and droplets in 32-bit mode. This is done by modifying these files using the Finder’s Get Info panel and then checking the 32-bit mode checkbox.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.4b4</title>
      <link>https://Alldritt.micro.blog/2009/11/27/script-debugger-b.html</link>
      <pubDate>Fri, 27 Nov 2009 22:05:01 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/11/27/script-debugger-b.html</guid>
      <description>&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release. This maintenance release addresses Snow Leopard (Mac OS X 10.6) compatibility and some remaining stability issues in Script Debugger 4.5.3. Here is another &lt;strong&gt;BETA&lt;/strong&gt; build of Script Debugger 4.5.4 for testing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://www.latenightsw.com/blog/?p=258&#34;&gt;Script Debugger 4.5.4 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;PowerPC or Intel Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.4, 10.5, 10.6&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/SD4.5.4b4.dmg&#34;&gt;Script Debugger 4.5.4b4&lt;/a&gt; (11.4MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Expand the SD4.5.4 archive&lt;/li&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;Move the Script Debugger 4.5 application to your Applications folder (or any other place on your disk)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.3 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on February 1, 2010&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.4b4 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14870 Corrected a problem that caused the insertion point to be in wrong place when dragging items to the last line of a script.&lt;/li&gt;
&lt;li&gt;14869 Corrected a series of parsing bugs that sometimes caused parts of scripts to be omitted from the Table Of Contents menu.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/blog/?p=225&#34;&gt;Script Debugger 4.5.4b3 Changes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Snow Leopard vs My Scripting Additions, Part 2</title>
      <link>https://Alldritt.micro.blog/2009/11/02/snow-leopard-vs.html</link>
      <pubDate>Mon, 02 Nov 2009 09:40:44 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/11/02/snow-leopard-vs.html</guid>
      <description>&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: Final versions of these Scripting Additions have been &lt;a href=&#34;http://blog.latenightsw.com/?p=323&#34;&gt;released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In a &lt;a href=&#34;http://www.latenightsw.com/blog/?p=188&#34;&gt;previous post&lt;/a&gt; I described how my Scripting Additions were incompatible with Snow Leopard (Mac OS X 10.6).&lt;/p&gt;
&lt;p&gt;I am developing new versions of &lt;a href=&#34;http://www.latenightsw.com/freeware/XMLTools2/index.html&#34;&gt;XML Tools&lt;/a&gt;, &lt;a href=&#34;http://www.latenightsw.com/freeware/PListTools/index.html&#34;&gt;Property List Tools&lt;/a&gt; and &lt;a href=&#34;http://www.latenightsw.com/freeware/RecordTools/index.html&#34;&gt;List &amp;amp; record Tools&lt;/a&gt; which are 64-bit native and take full advantage of the new capabilities of Snow Leopard (multi-threading).  The problem is that my Intel hardware is 32-bit Core Duo based (Original MacBook Pro) so I cannot fully test the 64-bit part.  If you have scripts that use these scripting additions on 64-bit Intel hardware running Snow Leopard, please download and test these beta builds and report any problems:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/XMLTools2.9.4b1.zip&#34;&gt;XML Tools 2.9.4b1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/PListTools1.0.7b1.zip&#34;&gt;Property List Tools 1.0.7b1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/ListRecordTools1.0.6b1.zip&#34;&gt;List &amp;amp; Record Tools 1.0.6b1&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IMPORTANT NOTE&lt;/strong&gt;: Due to bugs in Mac OS X 10.5 (Leopard), it is not possible to make a Scripting Addition that takes full advantage of Mac OS X 10.6 (Snow Leopard) and also be backward compatible with Mac OS X 10.5.  As a result, these builds are &lt;strong&gt;Intel only&lt;/strong&gt;, and should &lt;strong&gt;only be used with Mac OS X 10.6&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For those who use my &lt;a href=&#34;http://www.latenightsw.com/freeware/XSLTTools/index.html&#34;&gt;XSLT Tools&lt;/a&gt; scripting addition, I&amp;rsquo;m finding that the underlying XML and XSLT libraries make heavy use of Carbon APIs that are not available on 64-Bit Mac OS X 10.6.  As a result, I&amp;rsquo;m still not sure if I&amp;rsquo;ll be able to create an upgraded version of this Scripting Addition.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.4b3</title>
      <link>https://Alldritt.micro.blog/2009/10/20/script-debugger-b.html</link>
      <pubDate>Tue, 20 Oct 2009 10:35:08 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/10/20/script-debugger-b.html</guid>
      <description>&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release. This maintenance release addresses Snow Leopard (Mac OS X 10.6) compatibility and some remaining stability issues in Script Debugger 4.5.3. Here is another &lt;strong&gt;BETA&lt;/strong&gt; build of Script Debugger 4.5.4 for testing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://www.latenightsw.com/blog/?p=240&#34;&gt;Script Debugger 4.5.4b4 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;PowerPC or Intel Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.4, 10.5, 10.6&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/SD4.5.4b3.dmg&#34;&gt;Script Debugger 4.5.4b3&lt;/a&gt; (11.4MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Expand the SD4.5.4 archive&lt;/li&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;Move the Script Debugger 4.5 application to your Applications folder (or any other place on your disk)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.3 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on December 1, 2009&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.4b3 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14848 Corrected a crashing bug that occurred when code completion was used with JavaScript OSA.&lt;/li&gt;
&lt;li&gt;14866 Corrected a crashing bug that occurred when using Find Next/Previous Handler commands in scripts with inconsistent line endings.&lt;/li&gt;
&lt;li&gt;14864 Corrected a parsing error that prevented the compilation of code that uses statements like &amp;lsquo;tell (&amp;hellip; to &amp;hellip;)&amp;rsquo; when debugging is enabled.&lt;/li&gt;
&lt;li&gt;14863 Script Debugger now offers to install its self in /Applications after it has been run directly from the installation disk image.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/blog/?p=190&#34;&gt;Script Debugger 4.5.4b2 Changes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Snow Leopard vs My Scripting Additions</title>
      <link>https://Alldritt.micro.blog/2009/10/02/snow-leopard-vs.html</link>
      <pubDate>Fri, 02 Oct 2009 09:15:26 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/10/02/snow-leopard-vs.html</guid>
      <description>&lt;p&gt;My various Scripting Additions (&lt;a href=&#34;http://www.latenightsw.com/freeware/XMLTools2/index.html&#34;&gt;XML Tools&lt;/a&gt;, &lt;a href=&#34;http://www.latenightsw.com/freeware/XSLTTools/index.html&#34;&gt;XSLT Tools&lt;/a&gt;, &lt;a href=&#34;http://www.latenightsw.com/freeware/PListTools/index.html&#34;&gt;Property List Tools&lt;/a&gt; and &lt;a href=&#34;http://www.latenightsw.com/freeware/RecordTools/index.html&#34;&gt;List &amp;amp; record Tools&lt;/a&gt;) are compiled for 32-bit Intel and PowerPC machines.  With the advent of Snow Leopard, AppleScript Script Editor, applets and droplets run as 64-bit processes which causes my Scripting Additions to fail to load on 64-bit hardware.&lt;/p&gt;
&lt;p&gt;In order to continue using my Scripting Additions, you need to run the AppleScript Script Editor, applets and droplets in 32-bit mode.  This is done by using the Finder&amp;rsquo;s Get Info panel and then checking the 32-bit Model checkbox.&lt;/p&gt;
&lt;p&gt;My scripting additions make heavy use of Carbon which is 32-bit only, so making 64-bit versions may be difficult.  I don&amp;rsquo;t want to say I&amp;rsquo;ll never make 64-bit versions, but at this stage its not clear to me how to move forward.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: This problem and solution also applies to &lt;a href=&#34;http://www.latenightsw.com/freeware/JavaScriptOSA/index.html&#34;&gt;JavaScript OSA&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.4b2</title>
      <link>https://Alldritt.micro.blog/2009/10/01/script-debugger-b.html</link>
      <pubDate>Thu, 01 Oct 2009 15:42:26 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/10/01/script-debugger-b.html</guid>
      <description>&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release. This maintenance release addresses Snow Leopard (Mac OS X 10.6) compatibility and some remaining stability issues in Script Debugger 4.5.3. Here is another &lt;strong&gt;BETA&lt;/strong&gt; build of Script Debugger 4.5.4 for testing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://www.latenightsw.com/blog/?p=225&#34;&gt;Script Debugger 4.5.4b3 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;PowerPC or Intel Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.4, 10.5, 10.6&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/SD4.5.4b2.dmg&#34;&gt;Script Debugger 4.5.4b2&lt;/a&gt; (11.4MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Expand the SD4.5.4 archive&lt;/li&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;Move the Script Debugger 4.5 application to your Applicatioons folder (or any other place on your disk)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.3 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on November 1, 2009&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.4b2 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14840 Corrected a parsing error where # characters appearing within a block comment would cause the parser to fail to parse the remainder of the script in some instances.&lt;/li&gt;
&lt;li&gt;14844 The Manifest command once again correctly shows the events generated by a script.&lt;/li&gt;
&lt;li&gt;14852 Pressing the Tab key in the dictionary Search Results panel now moves keyboard focus to the description area of the window.&lt;/li&gt;
&lt;li&gt;14839 Corrected a terminology conflict that prevented the creation of &amp;lsquo;file&amp;rsquo; objects on 10.4 systems.  Scripts that use the file property of Script Debugger&amp;rsquo;s document object must be updated to use the &amp;lsquo;file spec&amp;rsquo; property.&lt;/li&gt;
&lt;li&gt;14830 Changed the &amp;lsquo;source&amp;rsquo; constant to &amp;lsquo;source code&amp;rsquo; and changed the &amp;lsquo;raw&amp;rsquo; constant to &amp;lsquo;raw code&amp;rsquo;  to avoid terminology conflicts with scripts that used these terms as variable names.&lt;/li&gt;
&lt;li&gt;14858 The Fonts &amp;amp; Colors preferences panel now offers to let you set Snow Leopard&amp;rsquo;s new AppleScript formatting options.  A crashing bug that occurred if you double-click in the blank area below the last formatting option has been resolved.&lt;/li&gt;
&lt;li&gt;14855 Corrected a problem where getting the value of the &amp;lsquo;scripts menu folder&amp;rsquo;, &amp;lsquo;clippings menu folder&amp;rsquo; or &amp;lsquo;script libraries folder&amp;rsquo; properties of Script Debugger&amp;rsquo;s application object would fail intermittently.&lt;/li&gt;
&lt;li&gt;14850 Dragging text from a script window to another application now includes style information.&lt;/li&gt;
&lt;li&gt;14824 The Mail dictionary now shows &amp;lsquo;unicode text&amp;rsquo; instead of &amp;lsquo;utf8&amp;rsquo; for properties returning a unicode text value.&lt;/li&gt;
&lt;li&gt;14860 Bundled compiled scripts exported as Run-Only bundled applications no longer includes Recover/QuickLook data that could reveal the source code for your script.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/blog/?p=182&#34;&gt;Script Debugger 4.5.4b1 Changes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.4b1</title>
      <link>https://Alldritt.micro.blog/2009/09/11/script-debugger-b.html</link>
      <pubDate>Fri, 11 Sep 2009 08:28:21 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/09/11/script-debugger-b.html</guid>
      <description>&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release. This maintenance release addresses Snow Leopard (Mac OS X 10.6) compatibility the and some remaining stability issues in Script Debugger 4.5.3. Here is another &lt;strong&gt;BETA&lt;/strong&gt; build of Script Debugger 4.5.4 for testing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;: &lt;a href=&#34;http://www.latenightsw.com/blog/?p=190&#34;&gt;Script Debugger 4.5.4b2 has been released&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;PowerPC or Intel Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.4 or 10.5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/SD4.5.4b1.dmg&#34;&gt;Script Debugger 4.5.4b1&lt;/a&gt; (10.8MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Expand the SD4.5.4 archive&lt;/li&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;Move the Script Debugger 4.5 application to your Applicatioons folder (or any other place on your disk)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.3 around in case you need to revert to that build.  &lt;strong&gt;Note also that this BETA build expires on November 1, 2009&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.4b1 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14836 Snow Leopard: global variables are once again correctly displayed in the Variables browser on Mac OS X 10.6.x systems.&lt;/li&gt;
&lt;li&gt;14806 Tiger: the AppleScript Formatting preferences panel no longer fails to load on Mac OS X 10.4.x systems.&lt;/li&gt;
&lt;li&gt;14846 Resolved a crash that occurred after the AppleScript Formatting preferences panel has been used.&lt;/li&gt;
&lt;li&gt;14829 Added a new &lt;em&gt;Edit License&amp;hellip;&lt;/em&gt; command to the &lt;em&gt;Script Debugger&lt;/em&gt; menu.  This command allows you to enter new software registration information if you should need to re-license Script Debugger.&lt;/li&gt;
&lt;li&gt;14828 When Script Debugger detects that too many copies of Script Debugger are using the same license it now names the machines that are using Script Debugger to help identify the cause of the problem.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Viewing Local Variables in Script Debugger</title>
      <link>https://Alldritt.micro.blog/2009/07/24/viewing-local-variables.html</link>
      <pubDate>Fri, 24 Jul 2009 11:05:44 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/07/24/viewing-local-variables.html</guid>
      <description>&lt;p&gt;The issue of how to view local variables (variables declared within an AppleScript handler) in Script Debugger keeps coming up.  This problem has been an issue ever since Script Debugger 2.0 when local variable display was introduced.  This issue surfaced again &lt;a href=&#34;http://lists.apple.com/archives/applescript-users/2009/Jul/msg00275.html&#34;&gt;recently on the AppleScript-Users mailing list&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
Hello, how can I see the value of y in the variables pane of Script Debugger when I run this simple example script in debug mode:

set x to 3

beeping(x)

on beeping(x)
	--local y
	set y to 5
	beep x
	delay 2
	beep y
end beeping

Bert.
&lt;/pre&gt;
&lt;p&gt;Script Debugger requires all local variables be explicitly declared before they are displayed in the variables browser.  AppleScript allows you to explicitly declare locals in several ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;explicitly using the &amp;lsquo;local&amp;rsquo; statement&lt;/li&gt;
&lt;li&gt;as the loop variable in a &amp;lsquo;repeat with&amp;rsquo; statement&lt;/li&gt;
&lt;li&gt;as a parameter to a handler&lt;/li&gt;
&lt;li&gt;as a parameter to an &amp;lsquo;on error&amp;rsquo; statement&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The problem arrises when a variable is declared implicitly through an assignment within a handler.  In this instance, Script Debugger&amp;rsquo;s parser is not able to detect the new variable (y), and thus fails to display it in the variables browser.&lt;/p&gt;
&lt;p&gt;The solution is the uncomment the &amp;lsquo;local y&amp;rsquo; statement.&lt;/p&gt;
&lt;p&gt;&lt;object width=&#34;480&#34; height=&#34;385&#34;&gt;&lt;param name=&#34;movie&#34; value=&#34;http://www.youtube-nocookie.com/v/P0jF8262xe0&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6&#34;&gt;&lt;/param&gt;&lt;param name=&#34;allowFullScreen&#34; value=&#34;true&#34;&gt;&lt;/param&gt;&lt;param name=&#34;allowscriptaccess&#34; value=&#34;always&#34;&gt;&lt;/param&gt;&lt;embed src=&#34;http://www.youtube-nocookie.com/v/P0jF8262xe0&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x2b405b&amp;color2=0x6b8ab6&#34; type=&#34;application/x-shockwave-flash&#34; allowscriptaccess=&#34;always&#34; allowfullscreen=&#34;true&#34; width=&#34;480&#34; height=&#34;385&#34;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;You can find &lt;a href=&#34;http://www.latenightsw.com/sd4/help/indexfolder/developfolder/debugfolder/variablesdebug.html&#34;&gt;additional information&lt;/a&gt; in the Script Debugger Help Book by searching for &amp;lsquo;local&amp;rsquo; from the Help menu.&lt;/p&gt;
&lt;p&gt;The AppleScript runtime does not provide public debugging hooks.  As a result, Script Debugger must resort to a series of hacks to implement step-wise debugging and variable display.  One of the limitations of this approach to AppleScript debugging is that Script Debugger must detect the names of all local variables at compile-time.  AppleScript&amp;rsquo;s support for multi-word identifiers in dictionaries makes parsing AppleScript source a very problematic thing to do, and makes detecting local variables without knowing AppleScript&amp;rsquo;s internal state impossible.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.3 On-Line Help as PDF</title>
      <link>https://Alldritt.micro.blog/2009/07/24/script-debugger-online.html</link>
      <pubDate>Fri, 24 Jul 2009 09:53:55 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/07/24/script-debugger-online.html</guid>
      <description>&lt;p&gt;Recently I have received several requests for Script Debugger 4.5&amp;rsquo;s On-Line help as a single PDF file.  &lt;a href=&#34;http://www.tidbits.com/matt/&#34;&gt;Matt Neuburg&lt;/a&gt;, who writes the Script Debugger 4 documentation, was able to oblige with a nicely hyperlinked PDF file.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/ScriptDebugger4.5.3Help.pdf&#34;&gt;Script Debugger 4.5.3 Help Book&lt;/a&gt;&lt;/strong&gt; (PDF, 3.9MB)&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.3</title>
      <link>https://Alldritt.micro.blog/2009/06/11/script-debugger.html</link>
      <pubDate>Thu, 11 Jun 2009 09:43:37 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/06/11/script-debugger.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m pleased to announce the release of Script Debugger 4.5.3. Script Debugger 4.5.3 is a free maintenance release that addresses a series of issues that came to light following the release of Script Debugger 4.5.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/download.html&#34;&gt;Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/releaseNotes.html&#34;&gt;Release Notes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.3b7</title>
      <link>https://Alldritt.micro.blog/2009/06/01/script-debugger-b.html</link>
      <pubDate>Mon, 01 Jun 2009 00:09:36 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/06/01/script-debugger-b.html</guid>
      <description>&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release.  This maintenance release tries to address the remaining stability issues in the Script Debugger 4.5.2 build. Here is another Beta build of Script Debugger 4.5.3 for testing.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;PowerPC or Intel Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.4 or 10.5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/SD4.5.3b7.dmg&#34;&gt;Script Debugger 4.5.3b7&lt;/a&gt; (10.8MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Expand the SD4.5.3 archive&lt;/li&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;Move the Script Debugger 4.5 application to your Applicatioons folder (or any other place on your disk)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.2 around in case you need to revert to that build.  Note also that this Beta build expires on July 1, 2009.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.3b7 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14821 Corrected a hanging bug that occurred when a script running in a Script Debugger window told Script Debugger to quit.&lt;/li&gt;
&lt;li&gt;14806 Integrated Help Book updates.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/blog/?p=59&#34;&gt;Changes in previous Script Debugger 4.5.3 Beta builds&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>AppleScript Profiling</title>
      <link>https://Alldritt.micro.blog/2009/05/27/applescript-profiling.html</link>
      <pubDate>Wed, 27 May 2009 09:05:03 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/05/27/applescript-profiling.html</guid>
      <description>&lt;p&gt;An Script Debugger feature that I&amp;rsquo;ve been pondering for a long time is a profiler.  Given that Script Debugger&amp;rsquo;s debugger has the ability to track each statement executed, I can capture quite a bit of data about time spent in handlers, and even particular statements.  I can also track AppleEvents back to the statement that initiated them.&lt;/p&gt;
&lt;p&gt;A little bit of this information is presented in the existing Script Debugger interface.  Firstly, the script timer (bottom of result drawer) displays the number of AppleEvents sent and breaks execution time down into time spent executing in AppleScript and time spent waiting for AppleEvents.  The AppleEvent Log window&amp;rsquo;s contextual menu lets you go to the source statement that generated a particular AppleEvent.&lt;/p&gt;
&lt;p&gt;My experience is that most AppleScript performance issues can be traced to inefficient sending of AppleEvents to other applications. As a result, my curiosity is in the tracking of events sent to other applications. But my usage patterns tend to avoid implementing anything but the most trivial algorithms in AppleScript due to its poor string handling and list performance.  I also tend to avoid the use of script objects because of they are quite buggy in my experience.&lt;/p&gt;
&lt;p&gt;Given all this, what are the questions you need an AppleScript Profiler to answer?  Feel free to add a comment to this post or &lt;a href=&#34;mailto:alldritt@latenightsw.com&#34;&gt;email me&lt;/a&gt; directly with your thoughts.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.3b6</title>
      <link>https://Alldritt.micro.blog/2009/05/26/script-debugger-b.html</link>
      <pubDate>Tue, 26 May 2009 08:58:56 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/05/26/script-debugger-b.html</guid>
      <description>&lt;p&gt;I am preparing another Script Debugger 4.5 maintenance release.  This maintenance release tries to address the remaining stability issues in the Script Debugger 4.5.2 build.&lt;/p&gt;
&lt;p&gt;##Requirements&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Script Debugger 4.5 registration number&lt;/li&gt;
&lt;li&gt;PowerPC or Intel Macintosh&lt;/li&gt;
&lt;li&gt;Mac OS X 10.4 or 10.5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Download&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/archives/beta_for_script_debugger/SD4.5.3b6.dmg&#34;&gt;Script Debugger 4.5.3b6&lt;/a&gt; (10.8MB)&lt;/p&gt;
&lt;p&gt;##Installation&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Expand the SD4.5.3 archive&lt;/li&gt;
&lt;li&gt;Quit Script Debugger if it is running&lt;/li&gt;
&lt;li&gt;Move the Script Debugger 4.5 application to your Applicatioons folder (or any other place on your disk)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend keeping your copy of Script Debugger 4.5.2 around in case you need to revert to that build.  Note also that this Beta build expires on June 1, 2009.&lt;/p&gt;
&lt;p&gt;##Script Debugger 4.5.3b6 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14540 The &amp;lsquo;file spec&amp;rsquo; document property has been renamed &amp;lsquo;file&amp;rsquo;.  This change corrects a terminology conflict that caused AppleScript to rewrite &amp;lsquo;file spec&amp;rsquo; as &amp;lsquo;file&amp;rsquo; following a compile.&lt;/li&gt;
&lt;li&gt;14816 Addressed a problem where references to &amp;lsquo;path&amp;rsquo; outside a tell block generated incorrect 4-character codes (as compared to Apple&amp;rsquo;s Script Editor).&lt;/li&gt;
&lt;li&gt;14820 Corrected a block auto-close/balance bug that happens with unbalanced )}] characters appear in a &amp;ndash; style comment&lt;/li&gt;
&lt;li&gt;14819 The &amp;lsquo;stic&amp;rsquo; enumeration associated with the &amp;lsquo;display dialog&amp;rsquo; command is once again displayed correctly.&lt;/li&gt;
&lt;li&gt;14817 A hanging bug when exploring the InDesign dictionary is (I hope) resolved.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Script Debugger 4.5.3b5 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14809 When pasting Object Reference as nested tell blocks, the code respects the existing tell context.&lt;/li&gt;
&lt;li&gt;14811 Corrected a problem in the Tell Context inspector that caused the inspector to stop displaying the current tell context after inspecting the &amp;lsquo;disk&amp;rsquo; property of any Finder element.&lt;/li&gt;
&lt;li&gt;14812 Addressed a crashing problem when getting &amp;lsquo;properties of document 1 of application &amp;ldquo;Adobe InDesign&amp;rdquo;&amp;rsquo;.&lt;/li&gt;
&lt;li&gt;14814 Added a &amp;lsquo;Paste Object References as nested Tell blocks&amp;rsquo; preference to the Editor preferences panel.&lt;/li&gt;
&lt;li&gt;14813 Holding down the Option key while pasting Object References inverts the &amp;lsquo;Paste Object References as nested Tell blocks&amp;rsquo; preference setting.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Script Debugger 4.5.3b4 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14799 Two changes: Shift-Command-C copes an explorer value (available from the Edit and Contextual menus), and pasting an object reference into a script now results in a series of nested tell blocks rather than a single object reference string.&lt;/li&gt;
&lt;li&gt;14768 Resolved a balance problem that caused block auto-closing to fail if AppleScript block statements (if, repeat) appear within a block comment.&lt;/li&gt;
&lt;li&gt;14805 The Script Debugger dictionary viewer now correctly displays property/parameter/result types when a type is defined as both singular and plural in the SDEF XML.&lt;/li&gt;
&lt;li&gt;14807 Unicode characters appearing in AppleScript error messages are now displayed correctly in Script Debugger&amp;rsquo;s Script Error panel.&lt;/li&gt;
&lt;li&gt;14790 Resolved several bugs that occurred when using fonts that don&amp;rsquo;t map into the legacy QuickDraw font model.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Script Debugger 4.5.3b3 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14717 Adjusted dictionary search results so that partial hits matching the start of a name are weighted higher than partial hits in the middle or end of a name.&lt;/li&gt;
&lt;li&gt;14775 Addressed a crash that could sometimes occur when closing documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Script Debugger 4.5.3b2 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14776 Addressed a crash that occurred when expanding a browser item for which there is an open viewer window.&lt;/li&gt;
&lt;li&gt;14774 Addressed a crash that occurred when canceling the Set Keystroke dialog using the Escape key.&lt;/li&gt;
&lt;li&gt;14775 Addressed a hanging bug that occur when Script Debugger was stressed heavily during the running/stepping of scripts.  This fix also addresses a memory leak that occurred stepping through a script under scripting control.&lt;/li&gt;
&lt;li&gt;14611 A long standing intermittent crashing bug that occurred creating new documents has finally been resolved.&lt;/li&gt;
&lt;li&gt;14721 Issuing a Cut, Copy, Paste, or Delete command in the Dictionary Search results pane no longer causes a hang.&lt;/li&gt;
&lt;li&gt;14773 The scripting interface now correctly reports a script is not debuggable when you try and step into/over/into a script which does not have debugging enabled.&lt;/li&gt;
&lt;li&gt;14705 Tooltip evaluation tooltips are now properly removed when dictionary windows are opened using the Command-D shortcut.&lt;/li&gt;
&lt;li&gt;14702 Uncommenting lines without a comment no longer causes leading whitespace to be stripped.&lt;/li&gt;
&lt;li&gt;14770 Removing the Step Over, Step Into, and Step Out toolbar buttons no longer renders the corresponding menus inoperable.&lt;/li&gt;
&lt;li&gt;14713 The &amp;lsquo;scripts folder&amp;rsquo; and &amp;lsquo;clippings folder&amp;rsquo; properties in the scripting interface have been renamed &amp;lsquo;scripts menu folder&amp;rsquo; and &amp;lsquo;clippings menu folder&amp;rsquo; to avoid a terminology conflict with the &amp;lsquo;scripts folder&amp;rsquo; constant defined in by Standard Additions.osax.&lt;/li&gt;
&lt;li&gt;14772 Option- modifier problems when using Norwegian keyboard layouts have been corrected.&lt;/li&gt;
&lt;li&gt;14709 Option- modifier problems when using German keyboard layouts have been corrected.&lt;/li&gt;
&lt;li&gt;14771 Write-only properties are no longer displayed in the Dictionary Explorer.&lt;/li&gt;
&lt;li&gt;14755 Leopard-style selection highlighting is used when showing balancing brackets and braces while typing.&lt;/li&gt;
&lt;li&gt;14749 Hiding/Showing the Dock when the dock is positioned on the right of the screen no longer causes inspector windows to move.&lt;/li&gt;
&lt;li&gt;14724 Auto-paring problems relating to typing &amp;lsquo;(&amp;rsquo; before &amp;lsquo;&amp;ldquo;N&amp;rdquo; &amp;amp; aVar&amp;rsquo; have been resolved.&lt;/li&gt;
&lt;li&gt;14720 Addressed an issue in the Scripts and Clippings inspectors that could case the Hide/Show Icon state to become confused.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Script Debugger 4.5.3b1 Changes&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;14708 A slight performance improvement when opening scripts with the &amp;lsquo;Warn when applications may be launched&amp;rsquo; setting turned on.  Script Debugger no longer loads the dictionaries of all installed Scripting Additions as it did before.&lt;/li&gt;
&lt;li&gt;14707 New Fatten preference has been added.  I have added a hidden preference &amp;lsquo;PrefFlattenAtBeginning&amp;rsquo; that controls where libraries are placed when flattening scripts.  By default, libraries are placed before the main script.  Setting this preference to &amp;lsquo;no&amp;rsquo; with the Unix &amp;lsquo;defaults&amp;rsquo; command causes libraries to be placed after the main script.  No UI is planned for this preference setting.&lt;/li&gt;
&lt;li&gt;14706 Script Debugger now allows you to continue when it detects that there are duplicate symbols coming from libraries.  The ability to continue was present in Script Debugger 3.0 and was somehow lost in the transition to 4.0.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;##Bug Reporting&lt;/p&gt;
&lt;p&gt;You can email all bug reports to &lt;a href=&#34;mailto:alldritt@latenightsw.com&#34;&gt;me&lt;/a&gt;.  Wherever possible, please include the sample documents and the steps needed to reproduce the problem you are experiencing.  Also, please include processor (PPC/Intel) and Mac OS version information (10.4 or 10.5). Please don&amp;rsquo;t assume that others are reporting the bugs you are experiencing - I would prefer to get duplicate bug reports than to miss something.  Here is a template for a bug report:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SUMMARY
Recap the problem title and/or include more descriptive summary information.&lt;/li&gt;
&lt;li&gt;STEPS TO REPRODUCE&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Setup or prep work&lt;/li&gt;
&lt;li&gt;Include explicit and accurate steps to reproduce. Do not include extraneous or irrelevant steps.&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;RESULTS
Describe your results and how they differed from what you expected.&lt;/li&gt;
&lt;li&gt;REGRESSION
Provide information on steps taken to isolate the problem. Describe circumstances where the problem occurs or does not occur, such as software versions and/or hardware configurations.&lt;/li&gt;
&lt;li&gt;NOTES
Document any additional information that might be useful in resolving the problem, such as references to related problems, leads on diagnosis, screen shots, included attachments, and any workarounds.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>XML Tools 2.9.2</title>
      <link>https://Alldritt.micro.blog/2009/05/14/xml-tools.html</link>
      <pubDate>Thu, 14 May 2009 08:49:52 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/05/14/xml-tools.html</guid>
      <description>&lt;p&gt;I have just uploaded a new version of my freeware &lt;strong&gt;&lt;a href=&#34;http://www.latenightsw.com/freeware/XMLTools2/index.html&#34;&gt;XML Tools&lt;/a&gt;&lt;/strong&gt; AppleScript Scripting Addition.  This new release addresses a regression in the 2.9.1 release that prevented XML Tools from loading correctly on Mac OS X 10.4 (Tiger) systems.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>XML Tools 2.9.1</title>
      <link>https://Alldritt.micro.blog/2009/05/07/xml-tools.html</link>
      <pubDate>Thu, 07 May 2009 07:29:22 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/05/07/xml-tools.html</guid>
      <description>&lt;p&gt;I have just uploaded a new version of my freeware &lt;strong&gt;&lt;a href=&#34;http://www.latenightsw.com/freeware/XMLTools2/index.html&#34;&gt;XML Tools&lt;/a&gt;&lt;/strong&gt; AppleScript Scripting Addition.  This new release addresses a series of issues that have come to light since the 2.9 release in June, 2007.&lt;/p&gt;
&lt;p&gt;Changes in this release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resolved a crashing bug that occurred when parsing XML data containing XML namespace declarations on elements other than the root element.&lt;/li&gt;
&lt;li&gt;AppleScript errors signaled from the &lt;code&gt;XMLParseResult&lt;/code&gt; SAX event handler are now reported to the script invoking the &lt;code&gt;parse XML&lt;/code&gt; command.  Previously, errors signaled from this handler would case the handler to fail silently.&lt;/li&gt;
&lt;li&gt;AppleScript errors signaled from SAX event handlers are now reported to the &lt;code&gt;XMLParseResult&lt;/code&gt; SAX event handler via parameters. The &lt;code&gt;XMLParseResult&lt;/code&gt; event handler is now declared as: &lt;code&gt;on XMLParseResult(errNumber, errMessage)&lt;/code&gt;.  Note that these parameters are optional which allows existing code lacking these parameter declarations to continue working unaltered.&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>XSLT Tools 2.1.2</title>
      <link>https://Alldritt.micro.blog/2009/05/05/xslt-tools.html</link>
      <pubDate>Tue, 05 May 2009 11:24:17 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/05/05/xslt-tools.html</guid>
      <description>&lt;p&gt;I’ve just uploaded a new version of my freeware XSLT Tools AppleScript Scripting Addition.&lt;/p&gt;
&lt;p&gt;This build addresses a problem that caused errors when non-literal parameters were passed to AppleScript handlers from XSL stylesheets.  For example, &lt;code&gt;&amp;lt;xsl:value-of select=&amp;quot;ns1:AppleScriptHandler($stringVar)&amp;quot;/&amp;gt;&lt;/code&gt; would fail in the past.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://www.latenightsw.com/freeware/XSLTTools/index.html&#34;&gt;Download XSLT Tools 2.1.2 Here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5 Can Take a Long Time to Open Scripts</title>
      <link>https://Alldritt.micro.blog/2009/01/17/script-debugger-can.html</link>
      <pubDate>Sat, 17 Jan 2009 18:49:25 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/01/17/script-debugger-can.html</guid>
      <description>&lt;p&gt;A few customers have written me to report that Script Debugger 4.5 takes much longer to open their scripts than did Script Debugger 4.0.&lt;/p&gt;
&lt;p&gt;This slowdown is an unintended consequence of a new feature in Script Debugger 4.5 where Script Debugger warns you that opening a script will cause other applications to be launched.&lt;/p&gt;
&lt;p&gt;This slowdown is most dramatic when opening scripts that target applications which have very large AppleScript dictionaries such as Adobe InDesign, Adobe Illustrator, or Microsoft Word.  Generally the delay should only be felt the first time Script Debugger 4.5 reads the dictionaries for these applications.  If Script Debugger is left running, it will reuse the dictionary information cached in memory.&lt;/p&gt;
&lt;p&gt;Script Debugger 4.5.1 introduced a new &amp;lsquo;Opening: Warn when applications may be launched&amp;rsquo; setting in the General Preferences panel that allows you to turn off the application launch warning when opening scripts.  If the delay opening your scripts is slowing down your work or if the warning becomes irritating, you can use this preferences setting to disable the feature.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;http://www.latenightsw.com/blog/wp-content/uploads/2009/01/prefs.jpg&#34; alt=&#34;Preferences&#34;&gt;&lt;/p&gt;
&lt;img src=&#34;https://Alldritt.micro.blog/uploads/2022/bbbb273c0c.jpg&#34; /&gt; 
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.2</title>
      <link>https://Alldritt.micro.blog/2009/01/15/script-debugger.html</link>
      <pubDate>Thu, 15 Jan 2009 09:13:55 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2009/01/15/script-debugger.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m pleased to announce the release of Script Debugger 4.5.2. Script Debugger 4.5.2 is a free maintenance release that addresses a series of issues that came to light following the release of Script Debugger 4.5.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/download.html&#34;&gt;Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/releaseNotes.html&#34;&gt;Release Notes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5.1</title>
      <link>https://Alldritt.micro.blog/2008/12/17/script-debugger.html</link>
      <pubDate>Wed, 17 Dec 2008 16:07:58 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2008/12/17/script-debugger.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m pleased to announce the release of Script Debugger 4.5.1.  Script Debugger 4.5.1 is a free maintenance release that addresses a series of issues that came to light following the release of Script Debugger 4.5.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/download.html&#34;&gt;Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.latenightsw.com/sd4/releaseNotes.html&#34;&gt;Release Notes&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Script Debugger 4.5</title>
      <link>https://Alldritt.micro.blog/2008/11/25/script-debugger.html</link>
      <pubDate>Tue, 25 Nov 2008 07:47:08 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2008/11/25/script-debugger.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;m pleased to announce the release of &lt;a href=&#34;http://www.latenightsw.com/sd4/index.html&#34;&gt;Script Debugger 4.5&lt;/a&gt;.  This upgrade to Script Debugger brings a host of additions and improvements.  You can check out the &lt;a href=&#34;http://www.latenightsw.com/sd4/whatsNewIn4.html&#34;&gt;release notes&lt;/a&gt; for a full description of the changes in this upgrade.&lt;/p&gt;
&lt;p&gt;I would like to thank all my beta testers for providing a lot of great feedback and finding all those tough bugs.  My thanks also goes to &lt;a href=&#34;http://www.tidbits.com/matt/&#34;&gt;Matt Neuburg&lt;/a&gt; for producing yet another great Help Book.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>XSLT Tools 2.1.1</title>
      <link>https://Alldritt.micro.blog/2008/07/14/xslt-tools.html</link>
      <pubDate>Mon, 14 Jul 2008 10:41:52 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2008/07/14/xslt-tools.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve just uploaded a new version of my XSLT Tools AppleScript scripting addition.  This build addresses a problem that was introduced by Mac OS X 10.5 (Leopard).  This problem prevented XSLT Tools from correctly parsing XML passed to it as a UTF-16 string.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://www.latenightsw.com/freeware/XSLTTools/index.html&#34;&gt;Download XSLT Tools 2.1.1 Here&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Finding OSA scripts with Spotlight</title>
      <link>https://Alldritt.micro.blog/2008/07/09/finding-osa-scripts.html</link>
      <pubDate>Wed, 09 Jul 2008 23:31:12 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2008/07/09/finding-osa-scripts.html</guid>
      <description>&lt;p&gt;With the release of Script Debugger 4.0, I added a Spotlight searching capability for OSA scripts created with Script Debugger.  Based on a series of customer support emails I realized that this is not a well documented aspect of the product.  Here is a quick overview of how to use Script Debugger Spotlight support to find OSA scripts on your Macintosh.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: Spotlight indexing of OSA scripts only works for scripts that have beenn saved using Script Debugger.  Scripts created with Apple&amp;rsquo;s Script Editor are &lt;strong&gt;not&lt;/strong&gt; indexed.&lt;/p&gt;
&lt;p&gt;Script Debugger provides indexing information for three aspects of your OSA scripts:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;the source text of the script (kMDItemTextContent)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;the script&amp;rsquo;s description (kMDItemDescription)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;the script&amp;rsquo;s language name (kMDItemKeywords) which is normally &amp;ldquo;AppleScript&amp;rdquo;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here some ways to find all the scripts on your Macintosh which target the Apple Mail application.  First, we&amp;rsquo;ll search for documents containing &amp;ldquo;Mail&amp;rdquo; and with the AppleScript keyword:&lt;/p&gt;
&lt;p&gt; 
&lt;img src=&#34;https://Alldritt.micro.blog/uploads/2022/4ed4cfa0ba.jpg&#34;/&gt;&lt;/p&gt;
&lt;p&gt;This is good, but we get some documents that are not scripts.  Instead, we&amp;rsquo;ll search for OSA scripts that contain &amp;ldquo;Mail&amp;rdquo;:&lt;/p&gt;
&lt;img src=&#34;https://Alldritt.micro.blog/uploads/2022/0556c6171e.jpg&#34; /&gt;
&lt;p&gt;Perfect, all the OSA scripts on my machine that target the Apple Mail application.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Cocoa Scripting: Properties with Multiple Data Types</title>
      <link>https://Alldritt.micro.blog/2007/09/09/cocoa-scripting-properties.html</link>
      <pubDate>Sun, 09 Sep 2007 22:05:13 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2007/09/09/cocoa-scripting-properties.html</guid>
      <description>&lt;p&gt;The SDEF (Scripting Definition) XML dictionary format allows you to define properties that have multiple data types.  This allows applications to support the &lt;em&gt;as&lt;/em&gt; parameter to the AppleScript &lt;em&gt;Get&lt;/em&gt; command.  However, Cocoa Scripting does not fully support the notion of properties with multiple data types.  This article describes how to implement multiple data type support using Cocoa Scripting.&lt;/p&gt;
&lt;p&gt;####Why Do This?&lt;/p&gt;
&lt;p&gt;Before I get into the code, let me briefly describe why you might want to do this in your application.  Simply put, the value of certain properties may be expressed in difference data types.  For example, you might have a &lt;em&gt;selection&lt;/em&gt; property.  Lets say that by default, the selection property returns the selected text in your application.  However, you may also want to allow the user to ask for a reference to the location of the selected text:&lt;/p&gt;
&lt;pre&gt;
get selection --&gt; &#34;Hello World&#34;
get selection as string --&gt; &#34;Hello World&#34;
get selection as reference --&gt; word 2 thru 3 of document 1
&lt;/pre&gt;
&lt;p&gt;When the scripter tries to alter the selection, they may do it in two ways:&lt;/p&gt;
&lt;pre&gt;
set selection to &#34;Goodbye&#34; --&gt; Replace the selected text with &#34;Goodbye&#34;
set selection to word 1 of document 1 --&gt; select the first word
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;CAUTION&lt;/strong&gt;: please use multiple data types correctly.  The value returned for each data type should represent the same &lt;em&gt;value&lt;/em&gt;, but in different ways. Correct use of multiple types avoids the need to have multiple versions of a given property in your dictionary, each returning the same value expressed in a different way.&lt;/p&gt;
&lt;p&gt;####The SDEF&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a snippet from an SDEF defining a &lt;em&gt;selection&lt;/em&gt; property that supports two data types: text and specifier.&lt;/p&gt;
&lt;pre&gt;
  &lt;property name=&#34;selection&#34; ... &gt;
	&lt;cocoa key=&#34;AESelection&#34; /&gt;
	&lt;type type=&#34;text&#34; /&gt;
	&lt;type type=&#34;specifier&#34; /&gt;
  &lt;/property&gt;
&lt;/pre&gt;
&lt;p&gt;####Supporting Set Operations (Easy)&lt;/p&gt;
&lt;p&gt;Cocoa Scripting facilitates Set operations for properties with multiple types.  It will convert the incoming AppleEvent data to an instance of NSString for a text value or an instance of NSScriptObjectSpecifier if the value is an object reference (specifier).  Here&amp;rsquo;s how you might implement the setAESelection: accessor:&lt;/p&gt;
&lt;pre&gt;
- (void) setAESelection:(id) value
{
  if ([value isKindOfClass:[NSString class]])
  {
	// replace the selected text with the incoming value
  }
  else if ([value isKindOfClass:[NSScriptObjectSpecifier class]])
  {
  	// change the selection to the range of text specified in the
  	// incoming object specifier
  }
}
&lt;/pre&gt;
&lt;p&gt;####Supporting Get-As Operations (A Little Harder)&lt;/p&gt;
&lt;p&gt;Here is where Cocoa Scripting leaves you to your own devices.  The problem is that the desired data type is not passed to the accessor function.  You have to get this from the current AppleEvent yourself.  I use this function:&lt;/p&gt;
&lt;pre&gt;
DescType FSRequestedTypeForCurrentEvent()
{
  NSAppleEventDescriptor* event = [[NSAppleEventManager sharedAppleEventManager] currentAppleEvent];
  NSAppleEventDescriptor* requestedType = [event descriptorForKeyword:keyAERequestedType];

  if (requestedType)
	return [requestedType typeCodeValue];
  else
	return typeBest;
}
&lt;/pre&gt;
&lt;p&gt;Then, the Accessor can be written like this:&lt;/p&gt;
&lt;pre&gt;
- (id) AESelection
{
	switch (FSRequestedTypeForCurrentEvent())
	{
	case typeBest:	// the default if no &#39;as&#39; parameter specified
	case typeText:
	case typeUnicodeText:
		// return an NSString instance containing the selected string
		break;

	case typeObjectSpecifier:
		// return an NSScriptObjectSpecifier instance describing the
		// location of the selection
		break;

	default: // unsupported type
		[[NSScriptCommand currentCommand] setScriptErrorNumber: errAEWrongDataType];
		return nil;
	}
}
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: I generally have AppleEvent specific accessors for use with Cocoa Scripting that in turn use my bindings compatible accessors.  This is because Cocoa Scripting needs to support things like multiple data types, and reports errors in a different way.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>We Need a Scripting User Interface Evangelist</title>
      <link>https://Alldritt.micro.blog/2007/06/20/we-need-a.html</link>
      <pubDate>Wed, 20 Jun 2007 16:54:41 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2007/06/20/we-need-a.html</guid>
      <description>&lt;p&gt;I had an epiphany at this year&amp;rsquo;s WWDC while listening to John Geleynse’s User Interface design talk.  We need someone to evangelize Scripting Interface Design with the same passion and clarity that John Geleynse brings to Graphical User Interface design on the Macintosh.&lt;/p&gt;
&lt;p&gt;During the course of his talk John gave a compelling series of examples, tips and references that left me believing that I could improve the UI of my products, despite the small size of my organization.  Even more importantly, he clearly demonstrated the difference between a good and a bad graphical user interface, and the consequences of bad User Interface design for the user.&lt;/p&gt;
&lt;p&gt;Because this year&amp;rsquo;s WWDC was largely a repeat of last year, I spent more time in the introductory AppleScript, Automator and Cocoa Scripting sessions than I  normally would.  I left these sessions with the impression that developing a scripting interface was a difficult and error prone exercise.  The Q&amp;amp;A questions at the end of these sessions confirmed for me that the audience was not clear on how to proceed.  Everything that was said in these presentations was technically accurate, but I came away uninspired.&lt;/p&gt;
&lt;p&gt;Interestingly, I believe that the issues John Geleynse so ably discussed (user centered design, identifying objects and tasks that matter to the user, knowing when to use certain widgets, etc.) are the very same issues that a Scripting User Interface designer must consider.&lt;/p&gt;
&lt;p&gt;Several years ago, &lt;a href=&#34;http://www.google.com/search?rls=en&amp;amp;q=cal+simone+applescript&amp;amp;ie=UTF-8&amp;amp;oe=UTF-8&#34;&gt;Cal Simone&lt;/a&gt; tried to fill this role.  Cal and I differed on the specifics, but it has to be said that he was effective at motivating developers to &amp;ldquo;do the right thing&amp;rdquo;, and at keeping Apple focused on the problem.  Since Cal left the scene, Apple has been left to do this for itself and it has not really risen to the challenge.&lt;/p&gt;
&lt;p&gt;Scripting User Interface design is not about Cocoa, Cocoa Scripting, Objective-C, or even AppleScript.  It&amp;rsquo;s about designing a programatic interface for an application that mirrors the &lt;strong&gt;user&amp;rsquo;s&lt;/strong&gt; view of the application&amp;rsquo;s data model and functionality.  Very often the user&amp;rsquo;s view of the application is not the same as how the application works internally.&lt;/p&gt;
&lt;p&gt;There are features of Leopard that are going to make each application&amp;rsquo;s scripting user interface much more prominent (my NDA with Apple prevents me from giving specifics), and so this issue is going to become more important as time goes on.&lt;/p&gt;
&lt;p&gt;Developing a Scripting User Interface is not &lt;em&gt;that&lt;/em&gt; hard.  I&amp;rsquo;ve built some large scripting interfaces over the years (Illustrator 7/8, Visualizer, Script Debugger 3, and now FaceSpan 5), and there is a method to it.  But you need to approach it with as much care and forethought as you do with your Graphical User Interface design.&lt;/p&gt;
&lt;p&gt;Apple&amp;rsquo;s &lt;a href=&#34;http://developer.apple.com/technotes/tn2002/tn2106.html&#34;&gt;Tech Note 2106&lt;/a&gt; is a start, but it does not go far enough.  This document is too much about code and not enough about process.  For instance, It does not give a methodology for developing a scripting user interface.&lt;/p&gt;
&lt;p&gt;Somehow developers need to be made to understand the why and the how of designing and implementing a compelling Scripting User Interface.  As &lt;a href=&#34;http://inessential.com/2002/09/&#34;&gt;Brent Simmons&lt;/a&gt; once said, designing User Interfaces for the Mac is the &amp;ldquo;The Show&amp;rdquo;.  If you are going to play, do it well.&lt;/p&gt;
&lt;p&gt;Finally, I think Scripting User Interface design should be considered when scoring entrants in Apple&amp;rsquo;s Software Design Awards.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Avoiding Word &amp; Excel AppleEvent Crashes</title>
      <link>https://Alldritt.micro.blog/2007/02/01/avoiding-word-excel.html</link>
      <pubDate>Thu, 01 Feb 2007 09:05:34 -0700</pubDate>
      
      <guid>http://Alldritt.micro.blog/2007/02/01/avoiding-word-excel.html</guid>
      <description>&lt;p&gt;Microsoft Word and Excel can crash frequently when the Script Debugger Explorer is used.  These crashes can also be caused by AppleScript.  Here are some tips for avoiding many of these crashing bugs.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Turn off Script Debugger&amp;rsquo;s &amp;lsquo;Scan for elements of count fails&amp;rsquo; Dictionary preferences option&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Doing this will make it much less likely that Script Debugger&amp;rsquo;s Explorer will generate AppleEvents that cause Word or Excel to crash.&lt;/p&gt;
&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;Avoid using the Exists commands in your scripts&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have found that asking Word or Excel if a non-existent object exists will very often cause a crash.  For example, if you open a new document and run the following script, Word will crash:&lt;/p&gt;
&lt;code&gt;
tell application &#34;Microsoft Word&#34;
	exists shape 1 of selection
end
&lt;/code&gt;
&lt;p&gt;The workaround is to use count:&lt;/p&gt;
&lt;code&gt;
tell application &#34;Micorosft Word&#34;
	try
		return count shapes of selection &gt;= 1
	on error
		return false
	end
end
&lt;/code&gt;
</description>
    </item>
    
  </channel>
</rss>