<?xml version="1.0" encoding="UTF-8"?>


<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://earthlingsoft.net/ssp/blog/">
<title>Quarter Life Crisis/earthlingsoft</title>
<link>http://earthlingsoft.net/ssp/blog/archives/earthlingsoft</link>
<image>
<title>Quarter Life Crisis</title>
<url>http://earthlingsoft.net/ssp/blog/includes/qlc.gif</url>
<link>http://earthlingsoft.net/ssp/blog/</link>
</image>
<description>earthlingsoft-related posts from Quarter Life Crisis</description>
<dc:language>en</dc:language>
<dc:creator>Sven-S. Porst (ssp-web@earthlingsoft.net)</dc:creator>
<dc:date>2010-10-30T17:52:51+01:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=5.13-en" />

<items>
<rdf:Seq>
<rdf:li rdf:resource="http://earthlingsoft.net/ssp/blog/2010/10/unicodechecker_1151" />

<rdf:li rdf:resource="http://earthlingsoft.net/ssp/blog/2010/10/unicodechecker_115" />

<rdf:li rdf:resource="http://earthlingsoft.net/ssp/blog/2010/05/rechnungs_checker_115" />

<rdf:li rdf:resource="http://earthlingsoft.net/ssp/blog/2010/01/rechnungs_checker_114" />

<rdf:li rdf:resource="http://earthlingsoft.net/ssp/blog/2009/10/bookmark_advertiser" />

<rdf:li rdf:resource="http://earthlingsoft.net/ssp/blog/2009/10/unicodechecker_114" />

<rdf:li rdf:resource="http://earthlingsoft.net/ssp/blog/2009/04/earth_addresser_23" />

<rdf:li rdf:resource="http://earthlingsoft.net/ssp/blog/2009/03/earth_addresser_22" />

<rdf:li rdf:resource="http://earthlingsoft.net/ssp/blog/2009/01/earth_addresser_21" />

<rdf:li rdf:resource="http://earthlingsoft.net/ssp/blog/2009/01/earth_addresser_2" />
</rdf:Seq>
</items>

</channel>


<item rdf:about="http://earthlingsoft.net/ssp/blog/2010/10/unicodechecker_1151">
<title>UnicodeChecker 1.15.1</title>
<link>http://earthlingsoft.net/ssp/blog/2010/10/unicodechecker_1151</link>
<description><![CDATA[<p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/UnicodeCheckerLarge2.png" style="width:128px;height:128px;" alt="UnicodeChecker Icon">
Perhaps the <a href="http://earthlingsoft.net/ssp/blog/2010/10/unicodechecker_115">UnicodeChecker 1.15</a> release was a little bit too rushed in an attempt to bring the Unicode 6 update to our users as quickly as possible. Soon after releasing we discovered problems with the Utilities window and two users pointed out a bug in the implementation of the new IDNA 2008 algorithm when applied to  right-to-left texts.
</p><p>
Thanks to those reports – the application&#8217;s specialist nature seems to ensure that UnicodeChecker&#8217;s users are generally both helpful and qualified  – the bug in the algorithm could be fixed quickly. As could the other issues. To further support for Mac OS X.6, <a href="http://earthlingsoft.net/UnicodeChecker">UnicodeChecker</a> also starts supporting Sudden Termination with version 1.15.1.
</p>
]]></description>
<dc:subject>earthlingsoft</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2010-10-30T17:52:51+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2010/10/unicodechecker_115">
<title>UnicodeChecker 1.15</title>
<link>http://earthlingsoft.net/ssp/blog/2010/10/unicodechecker_115</link>
<description><![CDATA[<p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/UnicodeCheckerLarge2.png" style="width:128px;height:128px;" alt="UnicodeChecker Icon">
It&#8217;s been a year since the <a href="http://earthlingsoft.net/ssp/blog/2009/10/unicodechecker_114">previous</a> <a href="http://earthlingsoft.net/UnicodeChecker/">UnicodeChecker</a> update. That&#8217;s quite a long time and still only half the time we needed for the  one before that. Unfortunately all Unicode-related features we could think of are built into the application already (any more ideas?), so updates are mostly triggered by updates of the underlying standards these days.
</p><p>
The &#8216;star&#8217; new feature of UnicodeChecker 1.15 is that it ships with files for the newly available <a href="http://www.unicode.org/versions/Unicode6.0.0/">Unicode 6</a> standard. It finally brings us emoticons (say hello to &#x1f601;: U+1F601 <q>GRINNING FACE WITH SMILING EYES</q> [interesting note: something in the blogging software decides to truncate the post at that character, escaping it seems mandatory]) and other, more serious, new codepoints. It&#8217;s highly unlikely that these codepoints are supported by any font on your Mac right now, but that&#8217;s the pleasure of living on the cutting edge.
</p><p>
The other major update is the <a href="http://en.wikipedia.org/wiki/Internationalized_domain_name"></a><acronym title="Internationalizing Domain Names in Applications">IDNA</acronym></a>. As the recently RFCified IDNA 2008 is quite a different beast in specification, implementation details, terminology and – potentially – also results than IDNA 2003, UnicodeChecker&#8217;s Utility now supports both versions (with the AppleScript interface defaulting to the new one). I&#8217;m curious where this development is going but the changes suggest that IDNA 2003 wasn&#8217;t the most precise and reasonable standard.
</p><p>
A further, technical, change is that UnicodeChecker now ships as a 64bit binary. Mac OS X.3 compatibility had to be dropped to make that possible. Crazy, I know…
</p>
]]></description>
<dc:subject>earthlingsoft</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2010-10-22T00:42:10+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2010/05/rechnungs_checker_115">
<title>Rechnungs Checker 1.15</title>
<link>http://earthlingsoft.net/ssp/blog/2010/05/rechnungs_checker_115</link>
<description><![CDATA[<p> 
<img src="http://earthlingsoft.net/ssp/blog/graphics/Rechnungs%20Checker%20Icon2.png" style="width:128px;height:128px;" alt="Rechnungs Checker icon.">
A new <a href="http://earthlingsoft.net/Rechnungs%20Checker/">Rechnungs Checker</a> release has come upon us. Unlike its <a href="http://earthlingsoft.net/ssp/blog/2010/01/rechnungs_checker_114">predecessor</a> which introduced 64bit support, this one is rather unexciting: With the newly added support for itemised phone bills by O2 in the UK, it turned out that they seem to supply slightly different file formats and we now have support for everything I could get my hands on.
</p><p>
All other changes are fixes for small glitches in the user interface as well as work on internal details.
</p>
]]></description>
<dc:subject>earthlingsoft</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2010-05-11T18:51:35+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2010/01/rechnungs_checker_114">
<title>Rechnungs Checker 1.14</title>
<link>http://earthlingsoft.net/ssp/blog/2010/01/rechnungs_checker_114</link>
<description><![CDATA[<p> 
<img src="http://earthlingsoft.net/ssp/blog/graphics/Rechnungs%20Checker%20Icon2.png" style="width:128px;height:128px;" alt="Rechnungs Checker icon.">
After about two and a half years, another update for 
<a href="http://earthlingsoft.net/Rechnungs%20Checker/" title="Rechnungs Checker">Rechnungs Checker</a> has arrived. Most of the changes in the new version are tiny, so I never bothered to release a new version as the old one kept working just fine, but they do add up: a few UI tweaks here, a new file parser there, a 64bit binary, a new version numbering scheme there (I had to get rid of that idiotic zero in the middle) and an improved icon. Nothing earth shattering, but here it is.
</p><p>
I started Rechnungs Checker about seven years ago to learn Cocoa and simplify the mundane task of splitting up the phone bill because Deutsche Telekom&#8217;s website was (and still is) a monstrous mess which makes this task pretty much impossible if you like your sanity. Over time the application grew to support the online billing files created by other phone companies and Mac OS X matured a lot in the time: A lot of the code I had to write back then would be unnecessary for applications written today.
</p><p>
Many new APIs became available as well and Rechnungs Checker tried to keep up with those it could benefit from or be a better OS X &#8216;citizen&#8217;: Integration with the system-wide address book, Spotlight support or, in the latest version, support for &#8216;Sudden Termination&#8217; and 512px icons. Over time the application has also grown from a PowerPC only application in 2003, to a Universal Binary running natively on PowerPC as well as 32bit and 64bit Intel machines today.
</p><p>
As Rechnungs Checker is a fairly simple application using standard Cocoa techniques only, those seemingly big transitions were not very complicated. In fact, I don&#8217;t think that any of them was particularly difficult from a technical point-of-view. However, those weren&#8217;t completely pain-free either as Apple&#8217;s developer documentation tends to be far less specific and complete than one would like it to be and XCode&#8217;s behaviour remains somewhat incomprehensible. If they put some more effort into those details, which are probably &#8216;completely obvious&#8217; for the people who made up Cocoa and XCode, one&#8217;s sanity would benefit. None of these problems are terribly hard. But they may require a lot of fiddling to make the tools to just the right thing. 
</p><p class="aside">
Just to add some examples to illustrate this: Think about version numbers and Info.plists. I, and, judging from other people&#8217;s projects I downloaded, many other people&#8217;s projects have severe difficulties in getting XCode to copy a new Info.plist into the compiled application, leading to things like version number confusion all over; Sometimes only a time consuming Clean action will sort that out properly. Then there&#8217;s XCode&#8217;s habit of linking the wrong libraries (just think about the pain that is Sparkle which requires you to have loads of different versions of it around for different projects, each, possibly, with different set-ups for languages, architectures and garbage-collection) which I still find unpredictable. An interesting bit of documentation-difficulty I ran into for this release was the following: My document class&#8217; <code>-readFromURL:ofType:error:</code> received different type strings in the 64bit and 32bit versions, the UTI in the former and the name of the file type in the latter. Thanks to a helpful hint I learned that this is actually documented - but I would have to read the Mac OS X.5 Cocoa release notes to learn it. Definitely not the first place I&#8217;m looking at when making my application ready for X.6. Stronger cross referencing in Cocoa&#8217;s documentation or a non-useless search in the XCode documentation browser would help here.
</p>

<hr>

<p>
Bonus material: Let me express how much I loathe VersionTracker/cnet or whatever they are called these days. They provided a fine service a decade ago but seemed to focus <em>only</em> on selling their company over and over again since. The result is a messy site with poor results. And a site which <a href="http://upload.cnet.com/4370-21_5-499-136.html?tag=editProduct;addEditProduct">does not let me update my software listing unless I agree to them hosting my files</a>. Which I have no intention to agree to. As a consequence I&#8217;ll have to hope that they steal the updated listing from <a href="http://osx.iusethis.com/app/rechnungschecker">iusethis</a> or <a href="http://www.macupdate.com/info.php/id/16334/rechnungs-checker">macupdate</a> (let&#8217;s see whether macupdate manage updating the icon&#8230;) and I&#8217;ll be fairly sure that they&#8217;ll manage to only copy incomplete data or fuck things up otherwise when doing so. Because that&#8217;s the level of competence at which they operate. The same level of competence that turns &#8216;ä&#8217;s in my application description into &#8216;Ã&#8217;Â¤&#8217; - which looks a bit but not quite like a <a href="http://earthlingsoft.net/ssp/blog/2008/07/mysql_vs_utf8">double UTF-8 fuck-up</a>.
</p>
]]></description>
<dc:subject>earthlingsoft</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2010-01-05T12:16:54+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2009/10/bookmark_advertiser">
<title>Bookmark Advertiser</title>
<link>http://earthlingsoft.net/ssp/blog/2009/10/bookmark_advertiser</link>
<description><![CDATA[<p>
One of my motivations for getting involved in <a href="http://earthlingsoft.net/ssp/blog/2009/10/flame">Flame</a> was the fact that Apple decided to make transferring a web page which you are viewing in Safari on your Mac to Safari on the iPod very difficult. I find I want to do just that from time to time when I discovered some interesting web page and want to show it to somebody else in the kitchen or so. All ways to achieve this goal require me to do clumsy things like e-mailing the page&#8217;s address to myself or using the iPod&#8217;s clumsy keyboard.
</p><p>
My idea would be that Safari lets you &#8216;share&#8217; the pages you are currently viewing and those bookmarks then appear in the iPod&#8217;s Safari via Bonjour. But things don&#8217;t work this way. As Safari on the Mac lacks such a sharing feature, the URLs of the currently open pages have to be advertised by an additional application. As Safari on the iPod lacks Bonjour support, you can&#8217;t possibly see any advertised services in the application itself anyway (and implementing the bookmark sharing in such a way would require a bit of cleverness and background work because the standard advertising of web servers via Bonjour only works for services with addresses on your own machine).
</p><p>
So the hackish workaround is the following: You launch the <a href="http://code.google.com/p/service-advertiser/downloads/list">Bookmark Advertiser</a> application, it grabs the addresses of the web pages you are currently viewing in Safari and advertises them via Bonjour as a service of type &#8216;urlbookmark&#8217;. Flame then just happens to recognise that service type and display it as an openable service which will display the web page in Safari on the iPod.
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/Bookmark%20Advertiser%20Window.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/Bookmark%20Advertiser%20Window.png" style="width:95%;max-width:554px;max-height:250px;" alt="Bookmark Advertiser Window"></a>
</p><p>
This is very lightweight, only supports Safari, doesn&#8217;t automatically refresh and fails for URLs which are too long. Yet it does the trick for the applications I had in mind.
</p>
]]></description>
<dc:subject>earthlingsoft</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2009-10-31T20:12:19+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2009/10/unicodechecker_114">
<title>UnicodeChecker 1.14</title>
<link>http://earthlingsoft.net/ssp/blog/2009/10/unicodechecker_114</link>
<description><![CDATA[<p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/UnicodeCheckerLarge2.png" style="width:128px;height:128px;" alt="UnicodeChecker Icon">
<a href="http://earthlingsoft.net/UnicodeChecker/">
It has been quite a while since the <a href="http://earthlingsoft.net/ssp/blog/2007/08/unicodechecker_113">previous UnicodeChecker update</a>, a bit over two years in fact. Thus, people may have been left with the impression that the application is dead by now. That, however, would be quite far from the truth. The <span title="freshly vacuumed, mind you">truth</a>, according to earthlingsoft, is that UnicodeChecker did its job - or rather all of its many jobs - just fine all the time, thank you. We were tempted to release a new version when Unicode 5 was published, but bumping our version number just for including a bunch of new files from a third party seemed like cheating. In fact, bullying all our users into an update when the few of them who can really tell the difference between Unicode versions can easily download those data files and put them into UnicodeChecker&#8217;s Application Support subfolder would seem a little rude.
</p><p>
Today things change. <a href="http://www.unicode.org/versions/Unicode5.2.0/">Unicode 5.2</a> was published at the beginning of the month and the structure of its data files for Unihan data saw a major change. Hence UnicodeChecker had to be updated to work with that and the new version 1.14 is published today. 
</p><p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/UnicodeChecker%20114%20Unihan%20Progress.png" style="width:50%;max-width:256px;max-height:86px;" alt="Unihan Loading Progress Indicator">
The <strong>updated Unihan data file format</strong> is a royal pain as it is is now delivered in a bunch of files instead of a single one which makes gathering the information much harder. To keep the a reasonably short launch time for the people who use Unihan, UnicodeChecker now reads those files in the background after launching. Which means that the application will be available right away but not provide Unihan information in the first few seconds after launching. And if you look carefully, you can watch a little progress bar as the loading progresses. The bad news is that this totally destroys the very clever and efficient scheme UnicodeChecker used previously which let it use Unihan without storing all of the data in memory. As a consequence memory consumption increases by an obscene amount (about 100MB) because of that.
</p><p>
While the Unihan file still isn&#8217;t part of UnicodeChecker due to its size, the <strong>Unicode 5.2</strong> data files are included. There are plenty of additions in this revision. They even introduced additional Snowman codepoints! Black Snowman (U+26C7) and Snowman without Snow (U+26C4) OMG ☃☃☃11!!!!!1☃☃☃11! Now I&#8217;ll just need a font with glyphs for these new codepoints.
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/UnicodeChecker%20114%20Unicode%2052%20Snowmen.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/UnicodeChecker%20114%20Unicode%2052%20Snowmen.png" style="width:95%;max-width:443px;max-height:236px;" alt="New Snowman codepoints"></a>
</p><p>
There are also new features: The first is the new <strong>Length Utility</strong>. It tells you the number of codepoints and bytes of a string in various Unicode encodings. Due to the various forms Unicode can take those numbers are interesting at times:
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/UnicodeChecker%20114%20Length.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/UnicodeChecker%20114%20Length.png" style="width:95%;max-width:365px;max-height:330px;" alt="UnicodeChecker Length Utility"></a>
</p><p>
The other new feature is the addition of a <strong>QuickLook</strong> plug-in to UnicodeChecker. <em>If</em> you have the UnicodeChecker Spotlight support set up (command in the File menu), the QuickLook previews will let you peek at the glyphs you found without needing to go into UnicodeChecker for each of them:
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/UnicodeChecker%20114%20QuickLook.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/UnicodeChecker%20114%20QuickLook.png" style="width:95%;max-width:781px;max-height:679px;" alt="QuickLook display of Spotlight Search for Unicode Characters"></a>
</p><p>
And there are plenty of additional details: You can now conveniently use <strong>drag and drop in the Split Up Utility</strong> to rearrange the characters in a string (handy when dealing with composed characters and wanting to shift an accent around, say); Users of the Escape Utility may be delighted that it now lets them escape the &#8216;standard&#8217; characters (e.g. a-z) as well; the submenus in the Character Blocks menu have been rearranged to accommodate all the added entries without scrolling on small screens; and if you have the slightest idea what Adobe&#8217;s Glyph List for New Fonts is, you may be delighted to work with the latest version of that.
</p><p>
There are also a few things this version doesn&#8217;t do. To begin with it&#8217;s not a 64bit application. Say thank you to our users who wanted Growl support for that. As UnicodeChecker is made to run on Mac OS X.4 (well, theoretically, it should even run on X.3, but we can neither test nor care too much) and the 64bit version of Growl doesn&#8217;t support that, we couldn&#8217;t have both.
</p><p class="aside"> 
I am sure that one could <em>in principle</em> find some terribly smart way of setting different versions up in the same application, but the reason one uses readymade frameworks is that one can be lazy and not smart; besides, if you have ever used XCode you&#8217;ll know that any attempt to do anything even slightly clever will immediately backfire and turn into hours and hours wasted to make the setup &#8216;just right&#8217;.
</p><p>
As this update is needed to read the current Unihan data, the choice we made was to stick to 32bit for the time being, so X.4 users aren&#8217;t left out. As most people probably still run 32bit applications on their X.6 systems anyway at this time, the difference should be hardly noticeable anyway. As they are independent from the main executable, the Spotlight and Quick Look plug-ins <em>are</em> 64bit, by the way.
</p><p>
UnicodeChecker can&#8217;t make coffee yet, either. A real shame.
</p>
]]></description>
<dc:subject>earthlingsoft</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2009-10-12T00:58:28+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2009/04/earth_addresser_23">
<title>Earth Addresser 2.3</title>
<link>http://earthlingsoft.net/ssp/blog/2009/04/earth_addresser_23</link>
<description><![CDATA[<p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/Earth%20Addresser%20Icon2.png" style="width:128px;height:128px;" alt="New Earth Addresser Icon">
A few more ideas and fixes for <a href="http://earthlingsoft.net/Earth%20Addresser/">Earth Addresser</a> have been released in  version 2.3 that went online today. 
</p><p>
The most notable new feature, inspired by a user request, was to give users the option to not have all their addresses in a single placemarks folder in Google Earth, but to let Earth Addresser create a folder for each address label. For people on business travel this will make it easy to view only the home addresses of their friends or the businesses they have to visit for work, for example. 
</p><p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/GoogleEarthEarthAddresserFolders.png" style="width:137px;height:99px;" alt="Folders for Earth Addresser Placemarks in Google Earth">
Nice side effects of this new feature were two-fold. On a technical level it forced me to change the internal code a little, so it can take into account address labels and create groups for them. Which in turn finally made me re-structure (well, the &#8216;re&#8217; may be inadequate there) my atrocious KML file generation code into smaller pieces that are easier to handle. On a user level, this also let me implement a feature which I wanted for quite a while now: Earth Addresser can now deactivate certain addresses (those labelled &#8216;Old&#8217; in English, German or French) in the KML file it creates by default. As I tend to keep people&#8217;s old addresses in my Address Book, this ensures that the old addresses don&#8217;t clutter things up when displayed in Google Earth.
</p><p>
Small improvements in GUI word capitalisation, keyboard navigation, accessibility setup and error handling made it into the version as well. 
</p>
]]></description>
<dc:subject>earthlingsoft</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2009-04-01T20:12:58+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2009/03/earth_addresser_22">
<title>Earth Addresser 2.2</title>
<link>http://earthlingsoft.net/ssp/blog/2009/03/earth_addresser_22</link>
<description><![CDATA[<p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/Earth%20Addresser%20Icon2.png" style="width:128px;height:128px;" alt="New Earth Addresser Icon">
We released a small update to <a href="http://earthlingsoft.net/Earth%20Addresser/">Earth Addresser</a> today. After releasing the <a href="http://earthlingsoft.net/ssp/blog/2009/01/earth_addresser_21">previous version</a>, I started being quite unhappy with the icon. It wasn&#8217;t supposed to be good, but I started finding that the overdone glow in there was just horrible. In addition to that Google released Google Earth 5 in the meantime - the icon of which is by far better than the one of the previous version. Hence I was keen to update our icon for that reason alone, thus looking for an excuse to re-release.
</p><p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/EarthAddresser22Icons.png" style="width:110px;height:97px;" alt="Home and Work icons on the map">
Said excuse came by one of our heavy Earth Addresser users suggesting we could display distinct icons for home and work addresses on the map. While I couldn&#8217;t figure out a way to make that look reasonable for contacts that are displayed with their address book photo instead of Google Earth&#8217;s standard drawing pin, it makes a good addition for all the other addresses, giving a bit of extra information right there on the map.
</p><p>
In addition to that, I figured out that Earth Addresser&#8217;s handling of situations without a network connection was rather poor. So instead of pretending to do the job and not getting anything done, Earth Addresser now stops trying immediately if there is an error and displays a message for that. I must say that the infrastructure <code>NSError</code> provides for that - complete with localised error messages - comes in handy here.
</p>
]]></description>
<dc:subject>earthlingsoft</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2009-03-03T23:49:00+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2009/01/earth_addresser_21">
<title>Earth Addresser 2.1</title>
<link>http://earthlingsoft.net/ssp/blog/2009/01/earth_addresser_21</link>
<description><![CDATA[<p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/Earth%20Addresser%20Icon.png" style="width:128px;height:128px;" alt="Earth Addresser Icon">
It&#8217;s always a bad sign when you offer an update for one of your applications within a few days of the previous release. But, alas, that&#8217;s just what&#8217;s happening for <a  href="http://earthlingsoft.net/Earth%20Addresser/">Earth Addresser</a> today to fix a memory problem which people with many addresses in their Address Book started to run into.
</p><p>
More technically, the problem was that I do create the necessary <code>NSAutoreleasePool</code> in the thread that looks up the addresses to make sure no objects are leaked. But I underestimated the amount of memory that gets autoreleased by running the web download. As I never noticed any memory related problems myself - not even unexpected swapping -  I never gave much thought to that, having in mind that each download I do only retrieves a very small file and even with the string processing I do before and after it, only a few kilobytes of RAM should be needed.
</p><p>
But I didn&#8217;t have in mind that doing the download may cause many other things to happen. One of them apparently being that a few megabytes of my (virtual) address space get eaten by each download. And I only recover those once my autorelease pool is released - after my loop has finished running, that is. Which means that after a small four digit number of address lookups Earth Addresser would hit the virtual memory ceiling and give a nice crash somewhere in Apple&#8217;s code (it appears that gracefully handling a lack of memory remains out of vogue even in the basic libraries).
</p><p>
Had the original bug reporter not pointed out that he observed high memory usage, I&#8217;m not sure I could have made sense of the crash reports, but with this in mind, creating a new autorelease pool for each iteration of my lookup loop was an easy way to solve the problem. Phew.
</p><p>
Another issue that cropped up - and which I fail to understand - is the following: Currently Earth Addresser is available in French for everything but the readme. My understanding of Cocoa&#8217;s localised resource loading is that in this case the code
</p><pre>
NSWorkspace * WORKSPACE = [NSWorkspace sharedWorkspace];
[WORKSPACE openFile:[[NSBundle mainBundle] pathForResource:@"readme" ofType:@"html"]];
</pre><p>
should open the readme.html file in the next best language  as the French version is not available. But somehow it doesn&#8217;t do anything as the path returned by the NSBundle is <code>nil</code>. Am I misunderstanding anything there? And how can I deal with such situations without needing to put a copy of the English file into the French localisation?
</p>
]]></description>
<dc:subject>earthlingsoft</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2009-01-31T23:59:16+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2009/01/earth_addresser_2">
<title>Earth Addresser 2</title>
<link>http://earthlingsoft.net/ssp/blog/2009/01/earth_addresser_2</link>
<description><![CDATA[<p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/Earth%20Addresser%20Icon.png" style="width:128px;height:128px;" alt="Earth Addresser Icon">
When I first came up with <a  href="http://earthlingsoft.net/Earth%20Addresser/">Earth Addresser</a> a <a href="http://earthlingsoft.net/ssp/blog/2007/03/earth_addresser">long time ago</a>, it kept nagging me that it only wrote addresses to the KML file rather than the coordinates associated to those addresses. A consequence of that shortcoming was that every single time you opened the Earth Addresser created KML file in Google Earth, each address had to be looked up again by the application. Which seemed like a waste of Google&#8217;s resources - for all the duplicate lookups - as well as overly keen on sending addresses around.
</p><p>
It turned out that doing the relevant lookups through Google&#8217;s Maps API isn&#8217;t too hard, and  I eventually even got my act together to give that a little testing, revamp the user interface, get to know about a few cool use cases for the application and add an ugly icon. And thus, today, I present the &#8216;all new&#8217; Earth Addresser 2 which will send your addresses around the internet - without name or other information attached to them - and create a KML file for them to use in Google Earth. A nice toy.
</p><hr><p>
Next up, I&#8217;d like Cocoa minded people to discuss whether or not Apple&#8217;s Address Book framework is somewhat half-assed in the way it handles country information. For automated lookups having country codes is extremely helpful as they avoid problems with the many ways you can write a country&#8217;s name (just think about the many ways one could designate the country information for someone living in London: England? U.K.? GB? Great Britain? United Kingdom? Vereinigtes Königreich? Großbritannien? Großbritannien und Nordirland (UK)? &#8230; and that&#8217;s just the start of it). 
</p><p>
Apple&#8217;s current Address Book framework does provide a &#8216;country code&#8217; which works reasonably well. Unfortunately said country code is only exposed via the slightly obscure address format setting in the Address Book and - even worse - the <a href="http://developer.apple.com/DOCUMENTATION/UserExperience/Reference/AddressBook/Classes/ABPerson_Class/Reference/Reference.html#//apple_ref/doc/c_ref/kABAddressCountryCodeKey">list of countries supported by the framework</a> is extremely incomplete. If you know people in poor countries, you lose. So there&#8217;s more room for improvement in this. Perhaps I&#8217;ll get to that at a later stage, perhaps I&#8217;ll just try to sit it out and hope that Apple improve their Address Book framework (haha!).
</p>
]]></description>
<dc:subject>earthlingsoft</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2009-01-28T01:28:18+01:00</dc:date>
</item>


</rdf:RDF>
