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

<channel>
	<title>Apokalypse Software Corp. &#187; leopard</title>
	<atom:link href="http://apokalypsesoftware.com/blog/tags/leopard/feed/" rel="self" type="application/rss+xml" />
	<link>http://apokalypsesoftware.com</link>
	<description>words from the wilderness</description>
	<pubDate>Thu, 02 Apr 2009 16:48:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to Install the iPhone 2.2.1 SDK on a PowerPC-based Mac</title>
		<link>http://apokalypsesoftware.com/blog/2009/03/23/130/</link>
		<comments>http://apokalypsesoftware.com/blog/2009/03/23/130/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 21:05:24 +0000</pubDate>
		<dc:creator>huperniketes</dc:creator>
		
		<category><![CDATA[announcement]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[iPhone]]></category>

		<category><![CDATA[leopard]]></category>

		<guid isPermaLink="false">http://apokalypsesoftware.com/?p=130</guid>
		<description><![CDATA[Instructions for installing the iPhone 2.2.1 SDK on PowerPC-based Macs. Plus a link to a $5 utility which automates the process for the most part.

]]></description>
			<content:encoded><![CDATA[<p><em><strong>Update:</strong> I forgot to mention that I got help from the great folks at <a href='http://nscodernight.com/?cat=9'>NSCoder Nights in San Francisco</a> when mucking about the installer and Xcode files. Particularly helpful were Bruce Spath and <a href='http://www.dangrover.com/'>Dan Grover.</a> Thanks again, guys!</em></p>
<p>Here&#8217;s how you can install the iPhone SDK for 2.2.1 on a Mac running at least MOX 10.5.5:</p>
<p>1. Ensure you have at least 6 gigs of disk space available. If you have tried to install the iPhone SDK on the target volume before, it may state an upgrade will be performed instead of an install.  Sadly, the only solution I currently have for this situation is to uninstall Xcode using <em>/Library/Developer/3.1/uninstall-devtools</em>.<br />
2. Download the <a href="http://adcdownload.apple.com/iphone/iphone_sdk_for_iphone_os_2.2.1__9m2621a__final/iphone_sdk_for_iphone_os_2.2.19m2621afinal.dmg">SDK disk image</a>.<br />
3. Mount the image by double-clicking it.<br />
4. Copy the mounted volume to a hard drive.<br />
5. Navigate to <em>iPhone SDK.mpkg/Contents/iPhoneSDK.dist</em> in the copied folder and replace line 340 which should be<br />
<code>	start_selected = "isIntel() &amp;&amp; hasRightOS() &amp;&amp; agreedToSLA()"<br />
</code><br />
with<br />
<code>	start_selected = "true"<br />
</code><br />
6. Run the installer, selecting either the default location <em>/Developer</em> or another directory name if you&#8217;re looking to preserve your current Xcode installation.<br />
7. After a successful installation, navigate from the installation directory (default of <em>/Developer</em>) to <em>/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications/iPhone Simulator Architectures.xcspec</em>, and make the following two changes.</p>
<p>First, replace</p>
<p><code>    {   Type = Architecture;<br />
        Identifier = Standard;<br />
        Name = "Standard (iPhone Simulator: i386)";<br />
        Description = "32-bit iPhone Simulator architectures";<br />
        ListInEnum = YES;<br />
        SortNumber = 1;<br />
        RealArchitectures = ( i386 );<br />
        ArchitectureSetting = "ARCHS_STANDARD_32_BIT";<br />
    },<br />
</code></p>
<p>with</p>
<p><code>	{<br />
		Type = Architecture;<br />
		Identifier = Standard;<br />
		Name = "Standard (iPhone Simulator: i386)";<br />
		Description = "32-bit iPhone Simulator architectures";<br />
		ListInEnum = YES;<br />
		SortNumber = 1;<br />
		RealArchitectures = (<br />
			i386,<br />
		);<br />
		ArchitectureSetting = "ARCHS_OLD_STANDARD_32_BIT";<br />
	},<br />
	{<br />
		Type = Architecture;<br />
		Identifier = Standard;<br />
		Name = "Standard (iPhone Simulator: ppc)";<br />
		Description = "32-bit iPhone Simulator architectures";<br />
		ListInEnum = YES;<br />
		SortNumber = 1;<br />
		RealArchitectures = (<br />
			ppc,<br />
		);<br />
		ArchitectureSetting = "ARCHS_STANDARD_32_BIT";<br />
	},<br />
</code></p>
<p>then, replace</p>
<p><code>    {   Type = Architecture;<br />
        Identifier = i386;<br />
        Name = "Intel";<br />
        Description = "32-bit Intel";<br />
        PerArchBuildSettingName = "Intel";<br />
        ByteOrder = little;<br />
        ListInEnum = NO;<br />
        SortNumber = 105;<br />
    },<br />
</code></p>
<p>with</p>
<p><code>	{<br />
		Type = Architecture;<br />
		Identifier = i386;<br />
		Name = Intel;<br />
		Description = "32-bit Intel";<br />
		"PerArchBuildSettingName" = Intel;<br />
		ByteOrder = little;<br />
		ListInEnum = NO;<br />
		SortNumber = 105;<br />
	},<br />
	{<br />
		Type = Architecture;<br />
		Identifier = ppc;<br />
		Name = "Minimal (32-bit PowerPC only)";<br />
		Description = "32-bit PowerPC ";<br />
		"PerArchBuildSettingName" = PowerPC;<br />
		ByteOrder = big;<br />
		ListInEnum = No;<br />
		SortNumber = 201;<br />
	},<br />
	{<br />
		Type = Architecture;<br />
		Identifier = ppc7400;<br />
		Name = "PowerPC G4";<br />
		Description = "32-bit PowerPC for G4 processor";<br />
		ByteOrder = big;<br />
		ListInEnum = NO;<br />
		SortNumber = 202;<br />
	},<br />
	{<br />
		Type = Architecture;<br />
		Identifier = ppc970;<br />
		Name = "PowerPC G5 32-bit";<br />
		Description = "32-bit PowerPC for G5 processor";<br />
		ByteOrder = big;<br />
		ListInEnum = NO;<br />
		SortNumber = 203;<br />
	},<br />
</code></p>
<p>Now go ahead and start Xcode and when you select the &#8220;File > New Project…&#8221; menu item, you should see a darling iPhone category for projects. Also, run the iPhone simulator in <em>/(Xcode install path)/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\\ Simulator.app</em>, it&#8217;s really mind-blowing to run it on your desktop, especially one Apple tells you isn&#8217;t able to run their iPhone SDK.</p>
<p>By the way, if you don&#8217;t feel like going through these steps yourself I&#8217;ve put together <a href="http://apokalypsesoftware.com/products/node/2783">iPhoneSDKonqueror, an app</a> which will handle these steps for you in a mostly automated manner. <a href="http://apokalypsesoftware.com/products/cart/add/2783?destination=node%2F2783">You should buy it.</a> It&#8217;s only USD$5 and if you appreciate the ability to use your PowerPC Mac to write apps for the iPhone, it&#8217;s the right gesture to make to me.</p>
]]></content:encoded>
			<wfw:commentRss>http://apokalypsesoftware.com/blog/2009/03/23/130/feed/</wfw:commentRss>
		</item>
		<item>
		<title>An Urgent Mori 1.6.10 Release To Correct Bugs, and Workaround Spotlight Flaws</title>
		<link>http://apokalypsesoftware.com/blog/2008/02/27/110/</link>
		<comments>http://apokalypsesoftware.com/blog/2008/02/27/110/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 20:54:33 +0000</pubDate>
		<dc:creator>huperniketes</dc:creator>
		
		<category><![CDATA[apple]]></category>

		<category><![CDATA[bugs]]></category>

		<category><![CDATA[debugging]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[leopard]]></category>

		<category><![CDATA[localization]]></category>

		<category><![CDATA[mori]]></category>

		<category><![CDATA[mox]]></category>

		<category><![CDATA[rant]]></category>

		<category><![CDATA[tiger]]></category>

		<category><![CDATA[unit tests]]></category>

		<guid isPermaLink="false">http://apokalypsesoftware.com/blog/2008/02/27/110/</guid>
		<description><![CDATA[While making the changes to Mori&#8217;s code for 1.7, I encountered some oddities in test results, and it turned out there was a bug which I had introduced in an earlier release. While it doesn&#8217;t appear to endanger data in Mori notebooks, it might not return all the results you expect in a search, or [...]]]></description>
			<content:encoded><![CDATA[<p>While making the changes to Mori&#8217;s code for 1.7, I encountered some oddities in test results, and it turned out there was a bug which I had introduced in an earlier release. While it doesn&#8217;t appear to endanger data in Mori notebooks, it might not return all the results you expect in a search, or in entry summaries.</p>
<p>In addition, it has what I hope are a couple of performance improvements, continued improvements to Italian localization, and a work-around for Leopard&#8217;s insistence to treat non-Apple Spotlight metadata files as third-class citizens.</p>
<p>Normally when Spotlight discovers a file has been created or changed, it will ask the responsible program to figure out what&#8217;s inside, and feed it back to Spotlight. But one of the drawbacks to Spotlight&#8217;s design is it lacks the ability to define containers, or documents which contain logically distinct elements such as the chapters of a book, pictures in a photo album, or entries from a Mori notebook; and which can nest other containers as well. Treating a document as a single entity, Spotlight will open a document at the beginning (or maybe the place where the cursor was the last time it was open), even if what you&#8217;re looking for is somewhere near the end.</p>
<p>Because it doesn&#8217;t understand that a file can have distinct elements, the development teams for other Apple software (e.g., iPhoto, Safari, Stickies, etc.) came up with a scheme to trick Spotlight by creating new files with the data for those elements. So that&#8217;s how Jesse coded Mori&#8217;s behavior: duplicate the data for that logically distinct element in its own file. A separate copy of each element&#8217;s data in its own file. One extra file per element. That means the space taken up by your data is easily half again more than if Apple just added a container definition for Spotlight metadata (once for the notebook, another for the entry metadata file, and the third copy in Spotlight&#8217;s database).</p>
<p>But that isn&#8217;t all. While we&#8217;d like to keep all those extra files inside a notebook bundle (a directory which Finder treats as a file), because Spotlight treats a document as a single element it won&#8217;t look for those files inside the bundle. So Mori creates those files in the metadata cache folder (in your Library/Caches/Metadata folder), along with the metadata files from some of Apple&#8217;s programs. If you open the metadata folder and look at these files, you&#8217;ll see they have numbers to help Mori figure out which entry contains that data. But when you do a search using the Spotlight menu, and when you select menu item &#8216;Show All&#8217; and the results are displayed in the Finder, you won&#8217;t see the numbers; you&#8217;ll see the titles for the entries they represent.</p>
<p>Leopard however, isn&#8217;t so democratic; which is why users where complaining about the entries when Leopard was released. First off, it ignores any non-Apple metadata files in the cache folder <em>unless</em> you set your Spotlight preferences to use those files. Secondly, it will ignore the title info embedded in the entry metadata file and just display the file&#8217;s actual title, meaning the number. How&#8217;s that for Apple <strong>undermining the work of third-party developers</strong>?</p>
<p>So the workaround I came up with is to add the entry&#8217;s title (or Untitled, if it has none) at the <em>beginning</em> of the filename, so you at least have an idea which entry matches your search terms.</p>
<p><img src='http://apokalypsesoftware.com/wp-content/uploads/2008/02/refilename.png' alt='Spotlight Filename Workaround' /> (Thanks for wasting about a whole month total of my development time on that alone, Apple. I feel the love.)</p>
<p>I am, of course, more than happy to eat crow should I be proven to be completely mistaken or speaking from out-dated information. It&#8217;s easily worth it in order to improve the user experience.</p>
<p>Regardless of the rationale for the design decisions, <a href='http://apokalypsesoftware.com/products/files/releases/Mori-1.6.10.zip'>enjoy</a>, and thank you for being part of the community and continuing to support Mori!</p>
]]></content:encoded>
			<wfw:commentRss>http://apokalypsesoftware.com/blog/2008/02/27/110/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mori: v1.6.7 Post-Mortem and Upcoming Changes</title>
		<link>http://apokalypsesoftware.com/blog/2007/11/27/79/</link>
		<comments>http://apokalypsesoftware.com/blog/2007/11/27/79/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 22:34:19 +0000</pubDate>
		<dc:creator>huperniketes</dc:creator>
		
		<category><![CDATA[agile]]></category>

		<category><![CDATA[apple]]></category>

		<category><![CDATA[cvs]]></category>

		<category><![CDATA[debugging]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[gtd]]></category>

		<category><![CDATA[hogbaysoftware]]></category>

		<category><![CDATA[leopard]]></category>

		<category><![CDATA[localization]]></category>

		<category><![CDATA[mgtd]]></category>

		<category><![CDATA[mori]]></category>

		<category><![CDATA[mox]]></category>

		<category><![CDATA[process improvement]]></category>

		<category><![CDATA[refactoring]]></category>

		<category><![CDATA[scm]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[subversion]]></category>

		<category><![CDATA[taskpaper]]></category>

		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://apokalypsesoftware.com/blog/2007/11/27/79/</guid>
		<description><![CDATA[Well, it looks like the latest toolbar fix has finally stuck. There were actually a few, very subtle interrelated items, and some procedural issues that cascaded into others. Code was shifted around hither and yon, resulting in elimination of two of a main class&#8217; instance variables and simplification of logic in several methods.
Speaking of which, [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it looks like the latest toolbar fix has finally stuck. There were actually a few, very subtle interrelated items, and some procedural issues that cascaded into others. Code was <a href='http://en.wikipedia.org/wiki/Refactoring'>shifted around</a> hither and yon, resulting in elimination of two of a main class&#8217; instance variables and simplification of logic in several methods.</p>
<p>Speaking of which, I&#8217;d really love to try out Xcode3&#8217;s new refactoring tools, but that would mean
<ol>
<li>spending more time in Leopard, which freezes on me,</li>
<li>and spending more time in Xcode3, whose text editing I already loathe.</li>
</ol>
<p>I will need to investigate how well refactoring works in TextMate (which I already own and use from time to time when bumping against some other Xcode2 limitation.)</p>
<p>The <a href='http://www.igda.org/articles/erobinson_crunch.php'>pressure cooker development level</a> of the past couple of weeks really put the development process here through the wringer. Some things held up. Some things fell apart. So more &#8216;behind the scenes&#8217; development is going to take place here to minimize the interference caused by the mismatch between what needs to be done and what the tools require me to do next.</p>
<ol>Some observations of the release&#8217;s development:</p>
<li><strong>The primary, agile-based, processes were abandoned in the panic over the continued toolbar problems and Leopard incompatibilities.</strong><br />
There was no established process for handling emergencies, so the chaotic edit-compile-test behavior resurfaced. This is not to be repeated.</p>
<p><strong>Corrective Measures:</strong> A plan of action for dealing with emergencies must be established. Exercises and drills prepared and performed so the proper outcome occurs next time.
</p>
</li>
<li><strong>Users seemed to be unaware, or unconvinced, of my plans for Leopard.</strong><br />
Although I had made statements regarding the planned support for Leopard, it was only in response to questioning by users. I had failed to provide information ahead of time and prominently.</p>
<p><strong>Corrective Measures:</strong> While users refer to the forum when there are questions or they have some issue to resolve, they refer to the blog constantly. It&#8217;s best to have already disclosed plans so users have time to assimilate needed info and prepare accordingly. Blog. Blog. Blog. Forum posting: link to blog. Then blog.</p>
</li>
<li><strong>Unit testing got skipped.</strong><br />
It was unavoidable given the current process because tests didn&#8217;t cover the critical issue being developed: the user interface (i.e., toolbar items and empty windows).</p>
<p><strong>Corrective Measures:</strong> Mock objects are inadequate to sufficiently test the UI. For all my blustering that the UI <em>is testable</em>, it&#8217;s clearly time I seek or develop the necessary tools and put them to use.
</p>
</li>
<li><strong><a href='http://subversion.tigris.org'>Subversion</a> is a win, but it&#8217;s an ugly win.</strong><br />
Being able to restore files, or the project, of a particular beta or release build, or of a particular date and time, is great. Being able to make wholesale changes to the project, then abandoning them, or keeping them along a separate branch to continue experiments at a later date without juggling project directories here and there, is great. Being able to merge or contrast multiple working project directories from separate environments (Tiger, Leopard, laptop, and the v1.6.3 release) quickly and easily, is great.</p>
<p>Nibs saved as a smattering of files in the repository: not so great. Confusing subversion with its own metadata when copying/adding directories: not so great. Performing an add/delete when moving or copying directories and files instead of adding &#8220;move&#8221; or &#8220;copy&#8221; semantics to the system: not so great. Poor integration mechanism for multiple offline revisions: not so great.</p>
<p><a href='http://en.wikipedia.org/wiki/Source_code_management'>SCM</a> is great. I&#8217;ve used <a href='http://www.nongnu.org/cvs/'>CVS</a> for years. I&#8217;ve even set up another project or two using Subversion before I <a href='http://apokalypsesoftware.com/news/apokalypse-software-corp-acquires-mori-clockwork-from-hog-bay-software/'>bought Mori and Clockwork</a> from <a href='http://hogbaysoftware.com'>Jesse</a>. But I don&#8217;t see where it&#8217;s an obviously better package than CVS, but perhaps that&#8217;s because I&#8217;ve learned to work around CVS&#8217; shortcomings. (Reviewing the feature list at <a href='http://subversion.tigris.org/'>http://subversion.tigris.org</a>, the only practical feature I see that means anything to someone actually <em>using</em> Subversion is command-level manipulation of directories, although the handling of renames is poor. Hrmm. And svn+ssh access to the repository, with <a href='http://developer.apple.com/documentation/DeveloperTools/Conceptual/XcodeUserGuide/Contents/Resources/en.lproj/12_UsingSubversion/chapter_951_section_3.html'>Xcode integration</a> even!)</p>
</p>
<p><strong>Corrective Measures:</strong> For the time being, the messiness of the metadata in copies and moves will have to remain unsettled. As long as the structure ends up correct, and it doesn&#8217;t take long to get it to that state, it remains tolerable in the face of bigger issues. A procedure must be established to handle the circumstance where developers are offline and must &#8220;commit&#8221; in some manner which is transferrable to the repository when they are back online.
</p>
</li>
<li><strong>Debugging is severely inadequate for professional-grade development.</strong><br />
Can you tell Apple&#8217;s team has a severe case of <a href=http://freemasonry.bcy.ca/fiction/other/our_gang.html'>he-man, mouse-haters club</a> insecurities? (Either that, or they&#8217;re <a href='http://apokalypsesoftware.com/blog/2007/04/13/33/'>operating in crunch mode</a> so much, they don&#8217;t have time to develop the appropriate tools. Nah!) The debugging facilities they provide for developers operate primarily through the use of environment variables, console output and functions and output which require gdb to access.</p>
<p>ZeroLink didn&#8217;t work well and was abandoned; Fix and Continue is still problematic; and the vaunted debug libraries (to help you catch errors in the parameters passed to the AppKit and Foundation libraries) hasn&#8217;t worked right since 10.4.3.</p>
<p>My own debugging facilities are rudimentary and lacking in depth. More of the failures in the field should be communicated back to me (remember Safari&#8217;s &#8216;bug&#8217; button?). The crash reporting mechanism should work when the crash occurs, not the next time Mori runs. Also, exceptions are logged to the console, but otherwise go unnoticed by Mori and the user.</p>
<p><strong>Corrective Measures:</strong> Extend the runtime monitoring and browsing tools. Rewrite the crash reporting mechanism to activate when the application terminates. Add an exception handler which sends reports back. Develop proper high-level debugging tools for Objective-C, the UI, CoreData and Bindings. Coding takes place at a higher level. Debugging should be at least at that same level. <em>-fobjc-gc</em> exists for a reason. Take advantage of it!
</p>
</li>
<li><strong>The build process is inconsistent, confused and unstable.</strong><br />
The various plugins&#8217; build settings aren&#8217;t consistent. Extraneous resources (images, sounds, etc.) are stored in the nibs. At times the build directory must be purged for a functioning executable to be built.</p>
<p><strong>Corrective Measures:</strong> A Build Settings Table has already been prepared and Mori and its plugins have had their settings documented. The settings for the Blocks plugins has yet to be documented. The effect of some settings has to be determined, which can then be propagated to the targets as appropriate. The project file should be purged of duplicated actions, unnecessary references, etc.
</p>
</li>
<li><strong>Debugging Mori when it&#8217;s used for normal work results in too much human activity thrashing.</strong><br />
Because the debug and test versions use the same preferences/file settings, the release version used for normal work had to be exited to avert data corruption in the notebooks.</p>
<p><strong>Corrective Measures:</strong> This issue was resolved with the Oneill branch. However, that uses a separate target to achieve its distinction. Some means of specifying a special bundle id for the debug and test builds must be developed to accomplish a similar effect, perhaps through preprocessing the Info.plist.</p>
</li>
<li><strong>Checklists are great</strong><br />
Being able to state that processes are being followed, builds are complete, and updates were released correctly, is great.</p>
<p><strong>Corrective Measures:</strong> Checklists are great, but scripted procedures are better. Automate as much of every process as possible.
</p>
</li>
<li><strong>To-Do lists, Getting Things Done (GTD), or whatever Time Management activity that is put into practice definitely helps.</strong><br />
I&#8217;ve got the <a href='http://www.davidco.com/store/catalog/Getting-Things-Done-Abridged-CD-p-16179.php'>audio book</a>. Mori&#8217;s got the <a href='http://apokalypsesoftware.com/products/node/2243'>plugin</a>. I&#8217;ve got <a href='http://hogbaysoftware.com/products/taskpaper'>Taskpaper</a>, too. I&#8217;ve got a Handspring <a href='http://www.palm.com/us/support/visor/visoredge/'>Visor Edge</a> and its Palm Desktop software. Something, anything, that helps track tasks that need to be done so nothing falls between the cracks is a plus. They are effective at keeping things moving forward, but I&#8217;m not efficient at it and a lot of discipline and effort must be used to keep moving things forward.<br />
<strong>Corrective Measure:</strong> I used TaskPaper to handle the tracking during this hectic period. I&#8217;ve got a blog entry in preparation, but basically, I found it a great way to get into the GTD system due to its simple interface. I must continue developing my understanding of this system to manage my activities, and see about getting the various software/devices integrated better.</li>
</ol>
<p />
<p />
<h2>Next Batch of Changes</h2>
<p>I&#8217;ve already begun work on v1.6.8: Improved checking and repair functionality for notebooks. <em>Correct</em> Italian localization, thanks to Mario Pettenghi. The code for the Blocks framework will be tweaked so it compiles without triggering warnings (e.g., unused parameters, missing prototype, etc.). Additional unit testing for the UI, and refactoring of UI code.</p>
<p>These improvements to the code will set up the continuation of progress for v1.7, which should then be ready during the holidays. At least that&#8217;s the current goal.</p>
]]></content:encoded>
			<wfw:commentRss>http://apokalypsesoftware.com/blog/2007/11/27/79/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Probable Release of v1.6.7 Today</title>
		<link>http://apokalypsesoftware.com/blog/2007/11/21/77/</link>
		<comments>http://apokalypsesoftware.com/blog/2007/11/21/77/#comments</comments>
		<pubDate>Wed, 21 Nov 2007 20:16:34 +0000</pubDate>
		<dc:creator>huperniketes</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[leopard]]></category>

		<category><![CDATA[mori]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://apokalypsesoftware.com/blog/2007/11/21/77/</guid>
		<description><![CDATA[Since it appears that the users still experiencing the &#8220;empty window&#8221; or missing notes problem are running Leopard and have some strange mixture of preferences (particularly &#8220;Enable check spelling as you type in new windows&#8221;), I should be able to get some update out today to Tiger users at least.
I received word a short while [...]]]></description>
			<content:encoded><![CDATA[<p>Since it appears that the users still experiencing the &#8220;empty window&#8221; or missing notes problem are running Leopard and have some strange mixture of preferences (particularly &#8220;Enable check spelling as you type in new windows&#8221;), I should be able to get some update out today to Tiger users at least.</p>
<p>I received word a short while ago from users experiencing this specific symptom, and <a href='http://apokalypsesoftware.com/blog/2007/11/20/76/#comments'>byakkie</a>, who thankfully took the time to experiment with all the preferences to help pin down the most likely causes, regarding the results of running an experimental build to deal with the big remaining issues. With those results, and knowing it&#8217;s Leopard-specific (those more stringent parameter requirements!) I&#8217;ll reboot into Leopard in a moment and get down to exorcising that gremlin. If it&#8217;s like the other Leopard problems encountered it should be relatively easy to find the problem, and hopefully not-too-difficult to engineer a solution.</p>
<p>While I had awaited word, I worked on streamlining and pruning certain aspects of the build process and decided to tackle the recurring error message on my console:</p>
<blockquote><p>
*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (WebView)
</p></blockquote>
<p>which is always cause for concern for developers when things go wrong that you didn&#8217;t even realize were going on! &#8220;WebView?! Since when is there a WebView in an outliner?&#8221;</p>
<p>So I tackled it and discovered it is part of Blocks&#8217; software update service, which checks for new versions of Mori and displays the release notes when found. Once I linked the WebKit framework into the Blocks software update plug-in, the release notes window popped up to announce a new version! Then it had a redirect issue I had to fix (because www.apokalypsesoftware.com redirects to apokalypsesoftware.com). Then I discovered the links in the release notes weren&#8217;t pointing to the correct location. And so on.</p>
<p>This all leads me to one conclusion: you folks are hard-core Mori users! Do you Fred Flintstone your way to work? Do you eat stale bread? Do you really love Mori&#8217;s features so much that you&#8217;ve been willing to put up with the broken stuff for so long? (And just what Mori features are you particularly fond of? I&#8217;d like to intensify that experience for you!) It&#8217;s just a more pleasant experience when the software does things for you like it should. Wow!</p>
<p>Well, while I am half-joking, I am truly impressed and grateful that you&#8217;ve been willing to endure some inconvenient obstacles just for the productivity that you gain with Mori. Thank you so much! I plan to continue fixing these annoyances as features are added, so that you find there&#8217;s more that can be done by Mori and less roadblocks it puts in your way.</p>
<p>Anyway, now on to Leopard and that fix!</p>
]]></content:encoded>
			<wfw:commentRss>http://apokalypsesoftware.com/blog/2007/11/21/77/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mori v1.6.6 is Taxiing to the Runway</title>
		<link>http://apokalypsesoftware.com/blog/2007/11/16/75/</link>
		<comments>http://apokalypsesoftware.com/blog/2007/11/16/75/#comments</comments>
		<pubDate>Sat, 17 Nov 2007 02:34:04 +0000</pubDate>
		<dc:creator>huperniketes</dc:creator>
		
		<category><![CDATA[leopard]]></category>

		<category><![CDATA[mori]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://apokalypsesoftware.com/blog/2007/11/16/75/</guid>
		<description><![CDATA[I just shipped the latest Release Candidate (Mori 1.6.6alpha89) to the beta testers, and I feel pretty certain it&#8217;s fine.
I&#8217;m about to do some final checks in Leopard (10.5.1) and may even install 10.5 again to double-check there while I await word from the testers.
I&#8217;m going to add a special dialog thanking the beta testers [...]]]></description>
			<content:encoded><![CDATA[<p>I just shipped the latest Release Candidate (Mori 1.6.6alpha89) to the beta testers, and I feel pretty certain it&#8217;s fine.</p>
<p>I&#8217;m about to do some final checks in Leopard (10.5.1) and may even install 10.5 again to double-check there while I await word from the testers.</p>
<p>I&#8217;m going to add a special dialog thanking the beta testers for their bravery and helpful comments and pointers. Not only have they helped to nail the big &#8220;empty windows&#8221; and Leopard freezing/crashing bugs, but their insights and explanations have revealed some things that I wasn&#8217;t aware of in Mori&#8217;s functionality! It should take maybe two or three days of coding and testing to add to Mori.</p>
<p>But it&#8217;ll have to wait as I know a lot of folks have been patiently enduring the problems in hope of a quick and stable release. So let me just thank them here for their fantastic service to me and Mori&#8217;s user community:</p>
<p>Bob Embry<br />
Michael Koch<br />
Rolf Schmolling<br />
Joe Wicentowski</p>
<p>For their patient vigil and endurance, I am grateful.</p>
]]></content:encoded>
			<wfw:commentRss>http://apokalypsesoftware.com/blog/2007/11/16/75/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mori v1.6.6 Clearing for Takeoff</title>
		<link>http://apokalypsesoftware.com/blog/2007/11/15/74/</link>
		<comments>http://apokalypsesoftware.com/blog/2007/11/15/74/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 21:39:50 +0000</pubDate>
		<dc:creator>huperniketes</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[leopard]]></category>

		<category><![CDATA[mori]]></category>

		<category><![CDATA[mox]]></category>

		<category><![CDATA[process improvement]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[tiger]]></category>

		<guid isPermaLink="false">http://apokalypsesoftware.com/blog/2007/11/15/74/</guid>
		<description><![CDATA[It looks like the showstoppers which were part of 1.6.4, 1.6.5 (and even 1.6.3 counting the toolbar) have been dealt with. The latest build even seems to function normally in Leopard.
Thus, now that Leopard 10.5.1 has been released, and my Leopard install was for testing purposes anyway and not as my primary development environment, I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>It looks like the showstoppers which were part of 1.6.4, 1.6.5 (and even 1.6.3 counting the toolbar) have been dealt with. The latest build even seems to function normally in Leopard.</p>
<p>Thus, now that Leopard 10.5.1 has been released, and my Leopard install was for testing purposes anyway and not as my primary development environment, I&#8217;m going to install it and test the 1.6.6 build against it as well to make sure it still works. That is, after a stopover in Tigerland just to make sure that nothing in Leopard loused up my main volume.</p>
<p>The problems in Leopard appear to result, not from changes in the architecture of the Cocoa classes, but in how stringent the standards for values passed to them are, and how they deal with values which are unacceptable (invalid parameters and exception handling). Sure, code should only pass correct data all the time, but sometimes our expectations are off. Sometimes we get incorrect data ourselves (<a href='http://en.wikipedia.org/wiki/GIGO'>Garbage In Garbage Out</a>), and sometimes, bad things happen in the real world in which computers operate.</p>
<p>Tiger used to be somewhat more non-chalant about this issues. It would ignore all but the most egregious problems, unless the programmer or the user asked otherwise. Leopard seems to be more restrictive and demanding of Mac developers and the code they write. Again, not bad by any means, except for the unexpected and the change in behavior for things that used to work before.</p>
<p>So, with more testing and better debugging (so why can&#8217;t I get &#8220;debug&#8221; suffix to work?!), we&#8217;ll hopefully see this occur less often in Mori&#8217;s code.</p>
<p>Now&#8230;back to that checklist.</p>
]]></content:encoded>
			<wfw:commentRss>http://apokalypsesoftware.com/blog/2007/11/15/74/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Late Night Cruisin&#8217;</title>
		<link>http://apokalypsesoftware.com/blog/2007/11/15/73/</link>
		<comments>http://apokalypsesoftware.com/blog/2007/11/15/73/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 06:59:18 +0000</pubDate>
		<dc:creator>huperniketes</dc:creator>
		
		<category><![CDATA[development]]></category>

		<category><![CDATA[leopard]]></category>

		<category><![CDATA[mori]]></category>

		<category><![CDATA[mox]]></category>

		<category><![CDATA[rant]]></category>

		<category><![CDATA[software]]></category>

		<category><![CDATA[tiger]]></category>

		<guid isPermaLink="false">http://apokalypsesoftware.com/blog/2007/11/15/73/</guid>
		<description><![CDATA[Ever since I decided to treat my blog more like Twitter, and just write micro-events rather than an entire epistle, writing either has come to a virtual standstill. (Except of course for the firestorm that has been Mori v1.6.4, v.1.6.5, and v.1.6.6 which is now undergoing 3rd party testing and I&#8217;m still trying to squash [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since I decided to treat my blog more like Twitter, and just write micro-events rather than an entire epistle, writing either has come to a virtual standstill. (Except of course for the firestorm that has been Mori v1.6.4, v.1.6.5, and v.1.6.6 which is now undergoing 3rd party testing and I&#8217;m still trying to squash that &#8220;freezes while writing in Leopard&#8221; bug.)</p>
<p>Option-clicking the &#8216;Run&#8217; icon in Xcode3 causes Mori to execute, then gdb starts up and attaches to Mori&#8217;s process, then Mori quits. Huh?</p>
<p>As if that weren&#8217;t enough, everytime gdb starts up, it spews out a lot of warnings about object files it can&#8217;t find. Like so,</p>
<blockquote><p>
warning: Could not find object file &#8220;/BinaryCache/Libsystem/Libsystem-111~176/Root/usr/local/lib/system/libc_debug.a(errno.o)&#8221; - no debug information available for &#8220;/SourceCache/Libc/Libc-498/sys/errno.c&#8221;.</p>
<p>warning: Could not find object file &#8220;/usr/local/lib/system/libcommonCrypto_debug.a(md2_dgst.o)&#8221; - no debug information available for &#8220;/SourceCache/CommonCrypto/CommonCrypto-32207/Source/Digest/md2_dgst.c&#8221;.</p>
<p>warning: Could not find object file &#8220;/usr/local/lib/system/libcommonCrypto_debug.a(md4_dgst.o)&#8221; - no debug information available for &#8220;/SourceCache/CommonCrypto/CommonCrypto-32207/Source/Digest/md4_dgst.c&#8221;.</p>
<p>warning: Could not find object file &#8220;/usr/local/lib/system/libcommonCrypto_debug.a(md5_dgst.o)&#8221; - no debug information available for &#8220;/SourceCache/CommonCrypto/CommonCrypto-32207/Source/Digest/md5_dgst.c&#8221;.</p>
<p>warning: Could not find object file &#8220;/usr/local/lib/system/libinfo_debug.a(gethnamaddr.o)&#8221; - no debug information available for &#8220;gethnamaddr.c&#8221;.</p>
<p>warning: Could not find object file &#8220;/var/tmp/Libm/Libm-287.1~6/Libm.build/Libm_debug.a.build/Objects-normal/ppc/scalb.o&#8221; - no debug information available for &#8220;/SourceCache/Libm/Libm-287.1/Source/PowerPC/scalb.c&#8221;.
</p></blockquote>
<p>What kind of railroad are we running here?</p>
<p>Anyway, at this point I&#8217;m planning on changing the file format after v1.7 ships. It&#8217;s just making it too tough to do some fixes. Mori still won&#8217;t require Leopard for some time yet, but I have to make my job, and putting out updates, somewhat simpler.</p>
]]></content:encoded>
			<wfw:commentRss>http://apokalypsesoftware.com/blog/2007/11/15/73/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
