<?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/Software</title>
<link>http://earthlingsoft.net/ssp/blog/archives/software</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>Software-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-04-11T18:19:55+01:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=5.02" />

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

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

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

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

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

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

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

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

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

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

</channel>


<item rdf:about="http://earthlingsoft.net/ssp/blog/2010/04/messing_with_dropbox">
<title>Messing with DropBox</title>
<link>http://earthlingsoft.net/ssp/blog/2010/04/messing_with_dropbox</link>
<description><![CDATA[<p>
<img src="http://earthlingsoft.net/ssp/blog/graphics2/DropBox%20Icon.png" style="width:128px;height:128px;" alt="DropBox icon">
<a href="http://dropbox.com">DropBox</a> is one of the more amazing software tools of the past years. It synchronises a folder from your hard drive to the web, giving you access to its contents from your web browser as well as letting you synchronise it to several machines. Bonus features include the ability to share files and folders with other DropBox users, creating public web links to your files or an automatic photo web site for your Pictures folder.
</p><p>
An amazing number of my friends have DropBox accounts already [if you don&#8217;t, consider using this <a href="https://www.dropbox.com/referrals/NTM4Mjk5Nzk">referral link</a>, so both you and me get some bonus extra storage] and rightly so, because it &#8216;just works&#8217; for many things. The service is reasonably reliable, its speed is all right, its available not just on the Mac but also on Windows and Linux and it&#8217;s essentially effortless. Many others tried and failed at achieving the same.
</p><p class="aside">
Yes, there are shortcomings of DropBox such as a potential lack of privacy and its disrespect for metadata like extended attributes (to be solved with their currently-in-development 0.8 release, it seems), so you may have to be a little careful, but in general it just works.
</p><p>
An interesting question we asked ourselves is how DropBox handles file system peculiarities. The <a href="http://developer.apple.com/mac/library/technotes/tn/tn1150.html">HFS+ file system</a> in its usual incarnation is case insensitive and case preserving, normalising its file names to a decomposed forms [thus, somewhat confusingly, if you name a file with a composed name, e.g. &#8216;ü&#8217; (U+FC) in the Finder and copy its name afterwards or have its name in a folder listing by the web server, you get a decomposed result &#8216;ü&#8217; (U+75 U+308)], whereas the file systems on Linux (Ext-something?) seem to be case sensitive and normalisation agnostic. How will DropBox reconcile these worlds?
</p><p>
Like this, it seems:
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/Dropbox%20vs%20Normalisation%20Forms.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/Dropbox%20vs%20Normalisation%20Forms.png" style="width:95%;max-width:397px;max-height:368px;" alt="DropBox on Linux"></a>
</p><p>
Here we see DropBox syncing the file with the composed umlaut and refusing to sync the one with the decomposed umlaut. It appears that they are working in normalisation form C. DropBox does sync both the lowercase and the uppercase umlaut. Of course I won&#8217;t be able to get both of those file on my HFS+ volume and a &#8216;case conflict&#8217; is created by DropBox. In addition to that it seemed that trying to edit the case conflicted files leads to things becoming a bit messy. E.g. after editing on the Linux side which could in principle handle the case difference, I ended up with four files for some reason, all of which had lowercase names:
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/DropBox%20vs%20Case%20Sensitivity.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/DropBox%20vs%20Case%20Sensitivity.png" style="width:95%;max-width:358px;max-height:292px;" alt="DropBox case conflicts seen in the Linux file browser."></a>
</p><p>
It doesn&#8217;t look like you may lose data because of this, but it does look like things may become a bit messy. Luckily one doesn&#8217;t work with files whose names differ just in capitalisation outside geeky tests like this.
</p>
]]></description>
<dc:subject>Software</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2010-04-11T18:19:55+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2010/04/dangerous_vicinity">
<title>Dangerous vicinity</title>
<link>http://earthlingsoft.net/ssp/blog/2010/04/dangerous_vicinity</link>
<description><![CDATA[<p>
iPhone software is difficult. The device is fiddly, human hands are huge and clumsy, and they&#8217;re the way people interact with the device. As a consequence a lot of the user interface design on the platform has to walk the thin line between the convenience of keeping things close together and the safety of separating them.
</p><p>
One such point – which apparently has been changed on the more spacious iPad – is the positioning of the default &#8216;OK&#8217; button on the virtual keyboard. It is quite close to all the other keys and easily hit by accident when you made a typo and want to hit the backspace key right above it.
</p><p>
This may seem trivial when the button creates a new line in a text editor, but it becomes a small nuisance when you&#8217;re in the Google field of your web browser and inadvertently trigger the Google search this way, forcing you through extra waits and taps as a consequence. And sometimes it becomes a mis-design which can cost you money and make you look like an idiot. For example in <a href="http://itunes.apple.com/us/app/skype/id304878510?mt=8">Skype for iPhone</a>, which includes an otherwise nice SMS service that places the &#8216;Send&#8217; button in this dangerous position:
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/Skype%20Send%20next%20to%20Delete.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/Skype%20Send%20next%20to%20Delete.png" style="width:95%;max-width:320px;max-height:480px;" alt="Skype on the iPod with the Send button right next to the delete and backspace buttons on the keyboard."></a>
</p><p>
Other applications, like Apple&#8217;s SMS application or Twitterific put the &#8216;Send&#8217; button to a separate location. At least for the SMS application this looks like a deliberate design choice, for <a href="http://itunes.apple.com/de/app/twitterrific/id284540316?mt=8">Twitterrific</a> it could still be owed to the fact that &#8216;tweets&#8217; may contain line breaks, hence require the Return key on the keyboard.
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/Twitterrific%20Keyboard.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/Twitterrific%20Keyboard.png" style="width:95%;max-width:320px;max-height:480px;" alt="Twitterific message entry screen with the Send button separate from the keyboard."></a>
</p>
]]></description>
<dc:subject>Software</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2010-04-08T19:56:14+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2010/04/iphone_os_3">
<title>iPhone OS 3</title>
<link>http://earthlingsoft.net/ssp/blog/2010/04/iphone_os_3</link>
<description><![CDATA[<p>
It may be a bit late now to qualify as &#8216;news&#8217;, but still, I meant to create a sort-of review of iPhone OS 3 since I got it, so here it is – before everybody starts going crazy over iPhone OS 4.
</p>

<h4 id="price">Price</h4>

<p>
The update to iPhone OS 3 was free for iPhone users and €8 for iPod users. Not a big deal, I suppose. But perhaps charging people for the OS update that implements copy and paste could make Apple look like greedy bastards. And, thanks Apple apologists, please STFU about weird American tax laws which are your favourite excuse for Apple <em>being forced</em> to do this. It&#8217;s all about what they want to do.
</p>

<h4 id="copy">Copy &amp; Paste</h4>

<p>
The biggest deficiency of early iPhone OS versions was their lack of copy and paste. It has always been a <em>huge</em> feature for GUI computers because it lets you split your work (on iPhone OS I&#8217;d rather say &#8216;tasks&#8217; because its apps are toys) between several applications, which are dedicated the specific task. Hence one should think that the clipboard is <em>particularly</em> important on a &#8216;platform&#8217; full of feeble applications like the iPhone which made people so upset that it didn&#8217;t exist from day one.
</p><p>
iPhone OS 3&#8217;s copy and paste interface is reasonably nice: You tap and hold and the interface elements for changing the selection as well as performing copy, paste and cut commands (the lack of clear may be due to the lack of space but it keeps irritating me that I have to use cut instead) appear. That&#8217;s not particularly easy to discover – but who expected things to be easy when all you have to interact with the device is a finger?
</p><p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/iPhone%203%20Copy%20Scroll.png" style="width:171px;height:217px;" alt="An early version of iPhone OS 3 with the copy button being dislocated from the selection it belongs to after scrolling.">
I saw two main problems with the copy and paste interface. One is that the tap-and-hold gesture is easily used by accident when you hold the iPod and touch the screen while doing so. As a result you end up with a bunch of buttons you didn&#8217;t want. A conceptual problem that I don&#8217;t see going away. Another initial shortcoming was that the copy button, once visible, would not scroll along with the view it belonged to, giving some dislocated mess. It seems that by now Apple fixed this issue in their own apps at least, but it doesn&#8217;t seem to be solved on a general level, say for WebKit, as third party applications like Wikipanion still exhibit that behaviour.
</p>

<h4 id="bluetooth">Bluetooth</h4>

<p>
One big promise of iPhone OS 3 was that it would enable Bluetooth support on second generation iPod touches. Actually this was the main reason why I wanted to have iPhone OS 3 right away. However, a big disappointment was waiting for me: the Bluetooth support is crap. It only seems to work for games. Audio profiles are not supported. Meaning that I cannot use my Bluetooth headset to use Skype on the iPod which would have been rather neat, particularly as wired iPod headsets with a microphone only seem to exist in expensive and breaking within months (Apple) or semi-expensive and crap (non-Apple) varieties. 
</p><p>
Quite naturally, no kind of file or image transfer via Bluetooth is supported either. That would be too convenient for Apple&#8217;s brave new world of computing, I suppose.
</p>

<h4 id="languages">Languages</h4>

<p>
iPhone OS 3 comes with plenty of extra language support. You get right-to-left languages like Arabic (but shouldn&#8217;t the Springboard&#8217;s orientation be reversed for those as well? And how fine-tuned is it? I assume that only one of 23°and °23 makes a correct writing of 23° in an Arabic weather forecast…)
</p><p>
Another very neat feature is the support for Chinese text input by drawing the character on the iPod. (This is also available in <a href="http://earthlingsoft.net/ssp/blog/2009/08/mac_os_x6">Mac OS X.6</a> on machines with multi-touch trackpads, but strangely not when using a graphics tablet.) Using the feature isn&#8217;t overly easy, particularly if you aren&#8217;t really a writer of Chinese or Kanji. <em>But</em> if you happen to see a Chinese or Kanji character and wonder what it means without being familiar of the sort order of the relevant dictionaries (which are needed to have a chance of finding it in your Mac&#8217;s character palette), this can be a great tool: You draw the glyph on your iPod, manage to do so well enough in the second or third attempt to get the correct character match from the iPod and then you can Google it or look up its <code>kDefinition</code> Unihan property to get a rough idea of what it could mean.
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/iPhone%203%20Chinese%20Input.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/iPhone%203%20Chinese%20Input.png" style="width:95%;max-width:320px;max-height:480px;" alt="Text with right to left writing and the Chinese 'drawing' input method in the iPod"></a>
</p><p>
iPhone OS 3 also lets you turn off the system&#8217;s auto-correction feature. Particularly if you&#8217;re switching the language you are writing in, that is very important as otherwise you&#8217;ll get your perfectly correct words &#8220;auto-corrected&#8221; to foreign garbage. As typing on the iPhone OS&#8217;s software keyboard remains a mess you&#8217;d of course rather <em>use</em> the auto-correction. However, unfortunately, the whole system is rather poorly designed.
</p><p>
Apple&#8217;s current approach is the following: You pick a keyboard layout and the spell-checking language will follow. Which may sound logical to people who only use a single language, but is terrible if you really want to use it. Usually people are &#8216;hard-wired&#8217; to the keyboard layout they learned typing on. I learned on a German &#8216;QWERTZ&#8217; keyboard and type everything on that. Forcing me to use a &#8216;QWERTY&#8217; keyboard for English and an &#8216;AZERTY&#8217; keyboard for French is absolutely <em>not helpful</em>.
</p><p>
In fact, I <em>have</em> an English keyboard layout activated on my iPod, just so I can write stuff in English using the auto correction. But that clutters up my keyboard switching loop [said loop is particularly terrible, btw, as I also have the Chinese input method in that loop and iPhone OS always prefer to stall for a long time when trying to switch past that], it also feels stupid and regularly forces me to check which keyboard I am currently using and adjust the setting as needed.
</p><p>
Of course the right, or at least much better and more practical, way of doing this would be the one used in Mac OS X where you can switch the spell-checking language independently from the keyboard layout or – if that&#8217;s too much UI hassle – just go for the &#8216;Multilingual&#8217; spell checker which seems like a reasonably good compromise.
</p>

<h4 id="spotlight">&#8216;Spotlight&#8217;</h4>

<p>
iPhone OS 3 comes with a &#8216;Spotlight&#8217; screen that presents a universal search field. It appears as the left-most page in the row of application pages and I thought it is a rather neat feature that gives you quick access to a specific contact, song or very recent e-mail. 
</p><p>
That said, in practice I find that I very rarely <em>use</em> this universal search. Normally I find it more natural to just go to the application in question and look up the information there without further ado. 
</p>

<h4 id="speed">Speed</h4>

<p>
Some parts of the iPhone OS have been carefully optimised for speed. Animations usually happen smoothly and scrolling lists can be refreshingly quick. Yet, Apple decided to leave certain parts of the user interface non-optimised. I am not quite sure why they did that and neither am I sure why it is considered acceptable. The top three annoying delays I frequently notice in iPhone OS 3 are:
</p>

<ul>
<li>
<em>Unresponsive Keyboard:</em> Sometimes the keyboards presented by the OS can be <em>very</em> unresponsive. Meaning that a second or more can pass before the screen reflects which key you pressed. Given the nature of an on-screen keyboard without any tactile feedback this is as FAIL as it can get as it means you effectively cannot type until iPhone OS 3 decides it is ready to accept your input. If the problem becomes too prominent, the good old Windows trick of restarting the iPod usually resolves the issue. But surely, it shouldn&#8217;t happen to begin with. Even less explicable: I frequently see those delays on the numeric keypad used to unlock the iPod. As entering the code is almost the only thing you can do with the iPod in that situation I see no reason whatsoever, why things shouldn&#8217;t be loaded and ready to use the moment I touch the device.
</li><li>
<em>Unresponsive Music Player:</em> A very nice feature of the iPod is that double-pressing the home button while the screen is locked will bring up a minimal music player interface (a feature that only seems to work on the locked screen these days, which I think worked everywhere in iPhone OS 2…). This gives you a very quick and easy way to resume playing the current playlist when picking up the iPod and leaving. It makes up for the iPod&#8217;s lack of dedicated &#8216;Play&#8217; button. Unfortunately pressing that Play button frequently doesn&#8217;t have any immediate effect as far as music playback is concerned. It can easily take a few seconds for that to happen. Which is irritating and seemingly unnecessary when there&#8217;s no hard drive to spin up.
</li><li>
<em>Lock Sound:</em> Admittedly this may not be the third-worst speed issue in iPhone OS 3, but it regularly drives me nuts, so I have to list it here. When locking the iPod it plays a really nice metallic &#8216;lock&#8217; sound. I enjoy hearing that every single time. But to work well, it has to start playing the very moment the screen is turned off. Unfortunately that&#8217;s not the case and often the sound is only played a moment later which spoils the whole effect.
</li>
</ul>

<p class="aside">
I suspect that all these issues may have to do with Apple&#8217;s notoriously poor memory management and loading performance which may come from where the Unix smell in that company comes from. You see similar issues of non-smooth interaction because the relevant software has to be loaded first on the Mac as well – as any action that requires an authentication dialogue will remind you of.
</p>

<h4 id="other">Other Notes</h4>

<p>
While iPhone OS 3 was in no way revolutionary, there are many other little details which have been discussed all over the internet when it was released. I will use the rest of the page to list the points I found interesting or irritating.
</p>

<ul>
<li>
<em>Helvetica in Calculator:</em> the proportional font irriates me as the 1 is too narrow in the calculator which can lead to digits moving around in subsequent results.
</li><li>
<em>Poor sorting in Address Book:</em> This has been in the iPod&#8217;s Address Book from day 1, it simply FAILs to correctly sort entries which contain a &#8216;maiden name&#8217; entry. It appears as if the person in question is sorted in the section of the correct letter of the alphabet but within that section is sorted by their &#8216;maiden name&#8217;, i.e. usually at the very top or the very bottom of that section rather than along with their spouse. Compared to that, the fact that umlauts are sorted non-phone book style with &#8216;ö&#8217; being treated as &#8216;oe&#8217; in German rather than as &#8216;o&#8217; looks like a minor incompetence. If people from different departments were allowed to talk to each other at Apple, perhaps the iPhone Address Book people could just check how the Mac OS X Address Book sorts entries…
</li><li>
<em>Nice location tracking in Maps:</em> A sweet feature which may slip the attention of &#8216;always-online&#8217; iPhone users is in the Maps application: While it is far from perfect when used without an internet connection and could do with a bit more cacheing, it seems to do a rather good job of caching the location information for WLAN base stations it seems to download from Skyhook Wireless: This means you may be able to track your current location in a surprisingly large radius of your starting point without needing to have an internet connection at that time. That&#8217;s pretty neat.
</li><li>
<em>Timer without Seconds:</em> The iPod&#8217;s Clock remains one of my favourite applications. Yet, whenever I want to cook a 6 minute 20 second egg, I&#8217;d appreciate its timer having minutes and seconds instead of hours and minutes.
</li><li>
<em>Quiet Alarm Clock:</em> While I do understand the conceptual idea of having a global volume for a whole computer, this can be <em>really</em> problematic when it is applied to Alarms as well. The point of the Alarms used by the Clock&#8217;s Timer or Alarm Clock feature is to get noticed or even to wake you. But when the iPod&#8217;s system volume is set to a low level you simply will not notice them. This already caused a number of such alarm moments to go by unnoticed for me. I&#8217;d be more than happy to give up the strict conceptual idea there and let the iPod adjust the volume to the highest level for the alarm. Or to at least warn me clearly when starting an alarm-action while the volume is very low and when reducing the volume too far while waiting for an alarm. Alarms need to be reliable. This keeps the iPod&#8217;s alarms from being that.
</li><li>
<em>No timer on login screen:</em> While I support the idea of having a &#8216;clean&#8217; login screen on the iPod without extra gadgets on it, I&#8217;d frequently find it useful if a timer I&#8217;m running in the Clock application would be displayed just there. I tend to use the timer quite frequently when cooking. And when wanting to know how much time is left to go, I currently always have to turn on the iPod, unlock it and look at the timer. It&#8217;d be much more convenient if the time remaining for the timer would be displayed right there on the login screen. Just as push notifications are.
</li><li><p>
<em>Variable Speed Podcasts:</em> The iPod offers to play Podcasts at half and double their original speed (naturally without smurf voices) which is pretty neat on shows that are spoken very slowly (or very quickly). I thought that perhaps some intermediate speeds may be very useful, though, as doubling the speed often seems to overdo it. [I have no clue what the envelope icon in that screenshot is for, though, it seems to be inactive on my iPod, I couldn&#8217;t mail anything.]
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/iPod%20Podcasts%202x%20Speed.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/iPod%20Podcasts%202x%20Speed.png" style="width:95%;max-width:320px;max-height:75px;" alt="Scrubbing and speed controls in the iPod's audio player when playing back podcasts."></a>
</p>
</li><li>
<em>Calendar notifications not live:</em> I enjoy the iPod&#8217;s ability to give me an alarm sound for calendar events. That&#8217;s useful when I&#8217;m away from the computer. The iPod displays those alarms like push notifications on the login screen. Unfortunately said display is rather lame and static. I.e. when I am not using the iPod  for a day and an alarm comes up for a current event, it will still be on the login screen with a note claiming the event is &#8216;Today&#8217;, even though the event was &#8216;Yesterday&#8217;.
</li><li>
<em>Calendar Editing FAIL:</em> Whoever came up with the idea that subscribed calendars shouldn&#8217;t be editable and neither update themselves in the iPod when synced over from iCal should be told that it was a bad one. And no, hiding some way to subscribe to calendars far down in iPhone OS&#8217; Settings app doesn&#8217;t really improve this.
</li><li>
<em>Non-deletable crap:</em> A bunch of applications on the iPod are useless to me and my device. The voice memo app, for example, or the video, iTunes and stock exchange ones. I don&#8217;t use them, and I don&#8217;t want them to litter my precious screen real estate. Yet, Apple don&#8217;t let me remove them from the screen. Hence – and it turns out this seems to be common practice between iPhone OS users – the last screen of applications is a dedicated junkyard for the stuff I don&#8217;t want to use. 
</li><li>
<img src="http://earthlingsoft.net/ssp/blog/graphics/iPhone%20OS%203%20Mail%20Encrpytion.png" style="width:200px;height:52px;" alt="Encrypted message in iPhone Mail: displayed as content free" lang="de">
<em>Mail doesn&#8217;t support encryption:</em> Mail on my Mac supports encryption with the certificates I have installed; presumably everything syncs back and forth &#8216;just so&#8217; in the magic Apple universe, so I fail to understand why I cannot read my encrypted Mail on my iPod (insert conspiracy theories here). Even worse, iPhone Mail will wrongly claim the e-mail doesn&#8217;t have any content.
</li><li>
<em>WLAN Password sync is lacking:</em> If you ever had to enter some 30 character junk WPA password you will really prefer doing that on your Mac with its sane keyboard and sane user interface which includes the ability to display the whole password while typing. And then you want it to sync over to your iPod automagically. But Apple decided you prefer to enter the password once again on a wannabe on-screen keyboard without really seeing what you&#8217;re doing. Not so brilliant.
</li><li>
<em>&#8216;Smart&#8217; WLAN logins:</em> iPhone OS 3 comes with the presumably smart feature of recognising login pages for WLANs and automatically presenting them to you when a connection to such a WLAN is made. Our university WLAN offers the ability to log via both Cisco VPN and to also use a Web interface. It seems that iPhone OS 3 effectively prevents this from using the proper VPN connection as you need to press the Cancel button on the unwanted login page that pops up and the iPod then decides to just disconnect from the wireless network. This sucks and is far from reasonable or easy to use. It seems that our network people had to set up a separate SSID so iPhone OS devices can <a href="http://www.gwdg.de/index.php?id=124" hreflang="de">use the network</a> at all. FAIL.
</li>
</ul>

<p><img src="http://vg02.met.vgwort.de/na/6f1359c91e1b4f5f832bbdf193afba76" style="vorpixel" alt=""></p>
]]></description>
<dc:subject>Software</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2010-04-05T20:20:47+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2010/02/nsconference_day_2">
<title>NSConference Day 2</title>
<link>http://earthlingsoft.net/ssp/blog/2010/02/nsconference_day_2</link>
<description><![CDATA[<p>
Continuing <a href="http://earthlingsoft.net/ssp/blog/2010/02/nsconference_day_1">yesterday&#8217;s notes</a> on <a href="http://nsconference.com/">NSConference</a> in Reading.
</p>

<ul>
<li>
Unfortunately <a href="http://mattgemmell.com/">Matt Gemmell</a> had fallen ill and couldn&#8217;t give his talk on Tuesday morning. A Get Well Soon card made the rounds instead.
</li>
<li>
<a href="http://iphonedevelopment.blogspot.com/">Jeff LaMarche</a> had to take over the early session instead, running it with a lack of sleep and fresh clothes thanks to the less fortunate sides of air travel. He spoke about fiddling with the Cocoa runtime to dynamically analyse classes or to add methods to your own classes while running. I keep thinking this stuff sounds very clever and neat but that I just don&#8217;t need it. And - as Jeff pointed out as well - it&#8217;s probably bad to use such techniques just because they&#8217;re cool. You need to get real benefits from them.
</li>
<li>
I tried out Tom and my <a href="http://earthlingsoft.net/ssp/blog/2009/10/flame">Flame</a> iPhone Bonjour Browser during the talks. With dozens of Macs and iPhones full of geeky software on the network, it was a great opportunity to see how well the application works there. While doing so, I discovered numerous service names which we had never seen before and which are not in the <a href="http://dns-sd.org/ServiceTypes.html">list</a> at the DNS-SD website (yet). I tried to note all of them and hoped to figure out whet they are about. In case you can offer a description or link indicating what any of the following types is for, do me a favour and leave a comment: qmp4,  swblic, rsagent (could this be a Windows virus?), <del title="some iPhone todo app for synchronising todos with iCal via WLAN">todogwa</del>, <del title="iStat for iPhone">istatrmt</del>, aicheck, scan-target, <del title="TimeLog">timelog</del>, <del title="friedEgg Touch">friedegg</del>.
</li>
<li>
In the next talk, <a href="http://losingfight.com/blog/">Andy Finnell</a>. spoke about Core Image, going into the details of creating a watercolour brush. The physics modelling of the liquid and pigments in this was quite involved, possibly distracting from the Core Image aspects. OpenCL was touched in the talk which I found particularly interesting.
</li>
<li>
I tried to figure out more about <a href="http://www.khronos.org/opencl/">OpenCL</a> [<a href="http://en.wikipedia.org/wiki/OpenCL">Wikipedia</a>] and its capabilities. Andy pointed me to <a href="http://www.macanics.net/">Drew</a> who apparently touched the topic in his workshop on parallel processing on Sunday. And both of them pointed me to the <a href="http://www.macresearch.org/">Mac Research</a> site and the <a href="http://www.macresearch.org/opencl">tutorials</a> there. A colleague of mine is doing some insane number crunching and was trying to figure out whether it can be sped up by going beyond straight C. Using SSE seemed a bit crazy as it will mainly make the code very incompatible. OpenCL, being both &#8216;open&#8217; and  abstracted from the actual hardware could fit the bill perfectly there. It just seems that it&#8217;s so new that people don&#8217;t have much experience using it yet.
</li>
<li>
In the next session two somewhat ad-hoc talks came on to step in for Matt Gemmell. <a href="http://www.dribin.org/dave/">Dave Dribin</a> tried to earn some more bashing on twitter by speaking about version control systems and pointing out that Subversion is still king because it&#8217;s very widely supported while git is the king of hearts, in part thanks to <a href="http://www.github.com">github</a>, but it can still be confusing as hell [I agree, but to be honest I have the impression that git makes a surprisingly big effort to help the user at times - for a tool coming from Linux-land anyway - and even with next to no understanding of git I managed to do much more with it than with Subversion; the <a href="http://progit.org/book/">Pro Git book</a> is an invaluable resource for that] while Mercurial/hg [Hint: it&#8217;s stupid to <em>not</em> name your application and executable the same, no matter how &#8216;clever&#8217; it seemed at the time] is supposedly cleaner but nobody gives a damn. I think I had seen the slides for this talk before, so I didn&#8217;t find it particularly interesting.
</li>
<li>
Next, <a href="http://thaesofereode.info/">Graham Lee</a> spoke about code signing. I went through the pain of figuring that out for myself when it was new (and there was no neat popup menu in the build settings to do it). But Graham also showed a little demo app (nominate it for an ADA if you can! - Mac software these days needs to be &#8216;focused&#8217;.) illustrating how you can check the consistency of your application&#8217;s in-memory code at runtime thanks to code signing. Ultimately code signing is a double edged sword (you may appreciate knowing that an unaltered application is running when processing sensitive data, you&#8217;ll hate it if you need to modify someone else&#8217;s application to do its job in a way that suits your needs).
</li>
<li>
Graham&#8217;s talk also came with friendly piss-takes at the name of <a href="http://rentzsch.com/">&#8216;Jon&#8217; &#8216;Wolf&#8217; &#8216;Wrench&#8217;</a>, or whatever. The &#8216;Wolf&#8217; part keeps reminding me of people calling Mozart &#8216;Wolferl&#8217; (in <a href="http://www.imdb.com/title/tt0086879/">Amadeus</a> I think), so I&#8217;m not a big fan of it.
</li>
<li>
Incidentally I went on to discuss some <a href="http://github.com/rentzsch/clicktoflash/">clicktoflash</a> stuff with Jon during lunch. As time was running fairly quickly and the network hated us we didn&#8217;t manage to cover everything and perhaps we&#8217;ll need to discuss things a bit more until everybody&#8217;s on the same page. Which preferably should be <a href="http://github.com/ssp/clicktoflash/tree/cutting-edge">my cutting-edge page</a>, that still comes with a problem or two at the moment but could be a reasonable way to go forward. Things we could do with help for are <a href="http://rentzsch.lighthouseapp.com/projects/24342/tickets/501-104-compatibility">running on X.4</a> (I don&#8217;t really care, but I suspect this might be easy to fix <em>if</em> one is able to run the project there in a debugger) and for figuring out how/why the <a href="http://rentzsch.lighthouseapp.com/projects/24342/tickets/507">sIFR code</a> seems to have broken in refactoring.
</li>
<li>
Next on stage was <a href="http://www.bignerdranch.com/instructors/hillegass.shtml">Aaron Hillegass</a> who&#8217;s known for giving great courses and really does wear a &#8216;cowboy&#8217; hat on stage. He started off with iPad references and saying that local data is a dead concept and the future is in the cloud with local drives just being caches and pointing out the obvious benefits [no fear of data loss] without going into nasty details [how screwed will you be on network FAIL? what about privacy? (<q>you&#8217;ll get over it</q>) or encryption?] while mentioning others [like vendor lock-in, that&#8217;s an obvious problem in the Apple universe but frequently ignored my Mac developers]. Aaron then went on to present a <a href="http://github.com/hillegass/BNRPersistence">persistence framework he has just written</a> which could be superior to CoreData in some way and is designed for both the Mac and the iPhone as well as for being simple and fast. To be honest I didn&#8217;t quite get how both parts of his talk matched up apart from being about data. If his framework included things like synchronisation and conflict management, I could see how it&#8217;d fit into the &#8216;cloud&#8217; picture but at the moment it seems to do local persistence only.
</li>
<li>
The final session was mysteriously titled <q>Cocoa Rumble</q> which one could enter for beforehand. It turned out Scotty drew our names from a hat and assigned one attendee to each speaker, ultimately creating three groups of six people each. Then he put a bunch of &#8216;Core&#8217; frameworks in the hat, handing one to each group with the task of using 30 minutes to create a presentation making the point why <em>that</em> framework is the framework of the year. The drawn frameworks were CoreText, CoreAudio and CoreAnimation. Let&#8217;s say that was a rather uneven choice as in terms of flashy results and ease of use CoreAnimation should be the default winner. While CoreText will neither be known nor explicitly needed by most even if may play an important role for the Mac&#8217;s appearance. Similarly CoreAudio is unpleasant to work with and I remember it as painful - most likely for the good reason of the low-latency they try to achieve.
</li>
<li>
<p>
It turned out I ended up on the CoreAudio group with <a href="http://rentzsch.tumblr.com/">Rentzsch</a>, <a href="http://iphonedevelopment.blogspot.com/">Jeff Lamarche</a> (who had recovered his luggage by then!), <a href="http://www.macanics.net/">Drew</a>, <a href="http://www.danieltull.co.uk/">Daniel Tull</a> and <a href="http://danielkennett.org/">Daniel Kennett</a>. We were working frantically to whip up a kick-ass presentation:
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/NSConferenceTeamCoreAudio.jpeg" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/NSConferenceTeamCoreAudio.jpeg" style="width:95%;max-width:600px;max-height:450px;" alt="Team CoreAudio working on their presentation at NSConference 2010"></a>
</p><p>
&#8230; with a great slogan <q>CoreAudio is the API of Rock Stars</q> [Alex Rozanski has <a href="http://perspx.com/blog/archives/1253/nsconf-2010-mac-developer-conference-day-2/">a good photo of rentzsch presenting that</a>], proving how it kicks ass because it&#8217;s essential for iTunes <span title="Or - for those who paid attention during rentzsch's talk - running otool -L /Applications/iTunes.app/Contents/MacOS/iTunes | grep CoreAudio | wc with a non-zero result may do the trick">(of course we knew iTunes existed before CoreAudio as Uli <a href="http://twitter.com/uliwitness/status/8549363957">was keen to point out</a>, yet I doubt it&#8217;s playing a tone on my machine without CoreAudio)</span>, which is essential for Podcasts, which are essential for <a href="http://www.mac-developer-network.com/" title="Mac Developer Network">MDN</a> which is essential for NSConference. A great argument I think. Bashing the other APIs was a good idea as well, even though I still think that the slide saying that CoreText is an API for <q>girly men</q> with <a href="http://earthlingsoft.net/ssp/zapfino/">Zapfino</a> used to illustrate it is an insult both in terms of sexism and to the typeface. Probably another good indicator that having more than 2% female attendees wouldn&#8217;t be the worst of ideas.
</p><p>
Our presentation finished with all of us waving our MacBooks to create a bunch of sinewaves using <a href="http://earthlingsoft.net/Skip%20Checker/" title="a.k.a.: The one with the ugly icon">SkipChecker</a>. I wouldn&#8217;t have guessed that this painful excursion into the world of CoreAudio would make it to the &#8216;big stage&#8217; one day&#8230; incredibly dorky, I suppose, but fun.
</p>
</li>
<li>
And, yeah, needless to say that the CoreAnimation people won: an originally sealed set of WWDC DVDs from 2002 or so. Congratulations! More generally I thought their presentation was fun, but a bit too long. And I was rather disappointed by the CoreText team because their technology totally has the potential to outdo CoreAudio in terms of on-screen sexiness.
</li>
<li>
While we were preparing the presentations, people were invited to share their favourite little &#8216;tricks&#8217; with the audience. Unfortunately we were too busy pondering our own presentation to follow what was going on and the hints were said to be quite helpful. Notes on this didn&#8217;t seem to make it to the SubEthaEdit file, so I&#8217;m hoping videos will be available one day. &#8212; Uh, and someone please tell rentzsch that there is a difference between giving a short hint and a ten minute presentation of one&#8217;s pet project&#8230;
</li>
<li>
With all those sessions &#8216;done&#8217;, the drinking could begin. I happened to speak to the guys from <a href="http://www.shinyfrog.net/">Shiny Frog</a> who are doing the delicious client <a href="http://www.delibarapp.com/">delibar</a>. As I contributed code to the much more limited <a href="http://ianhenderson.org/delimport.html">delimport</a> application (actually I have a 64bit capable version of it running here already) which creates a backup copy of your delicious bookmarks and adds them to your Spotlight index, it was cool to talk to them. They&#8217;ve put an incredible amount of work into their user interface and, unfortunately, had to report that Yahoo &#8216;upgraded&#8217; delicious&#8217; API to something using OAuth and being horribly complicated. To make things more fun, it seems that Yahoo preferred not to tell anybody about this and randomly allow use of the &#8216;old&#8217; API for old accounts. To make things even less worthwhile it sounds like the &#8216;new&#8217; API can&#8217;t actually <em>do</em> more than the old one could (with a particular and very bandwidth-intensive shortcoming of the old API being that it won&#8217;t let you do requests like <q>send me all changed bookmarks since a given date</q> but always forces you to download <em>all</em> bookmarks, which can amount to a couple of megabytes if you&#8217;ve been using delicious for a while, to achieve that). 
</li>
<li>
Later we had dinner at the &#8216;nearby&#8217; Horse &amp; Groom pub  (Scotty even claimed one could <em>walk</em> there and lived up to that claim) with some local beers and nice pieces of steak. To the delight of the assembled geeks the landlord brought up some little logic games on the height of coins, turning around glasses and toothpicks which kept people busy throughout the evening. I even remember winning a game of &#8216;table-rugby&#8217; shortly before we left. I must have been 20 years younger and 10000km away when I last did that.
</li>
</ul>

<h4 id="thanks">Thanks</h4>

<p>
Many thanks go to Scotty and Tim for making NSConference happen. Without doubt they put in some great effort there. Let&#8217;s see how quickly they recover from NSConference US to switch from &#8216;I&#8217;ll never do this again&#8217; to &#8216;When can I do this again?&#8217; mode.
</p><p>
Many thanks also to <a href="http://mikeabdullah.net/">Mike</a> for being my host in Reading. 
</p><p>
Further thanks go to <a href="http://www.id.com/team.html">Chris Walters</a> who had done the pub reconnaissance and generously offered countless lifts to us and many other participants in his big car while seeming to survive on glasses of Tabasco (with tomato juice) night after night.
</p>
]]></description>
<dc:subject>Software</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2010-02-02T23:59:03+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2010/02/nsconference_day_1">
<title>NSConference Day 1</title>
<link>http://earthlingsoft.net/ssp/blog/2010/02/nsconference_day_1</link>
<description><![CDATA[<p>
The first day of <a href="http://nsconference.com/">NSConference</a> was interesting. Just some short notes to help my memory:
</p><ul>
<li>
Too much death and too little beef in Mike Lee&#8217;s keynote. While making valid points, I think I&#8217;m not American enough to really appreciate this &#8216;emotional&#8217; address, even in a keynote that&#8217;s supposed to set the mood.
</li><li>
Debugging fun with <a href="http://rentzsch.tumblr.com/">Wolf Rentzsch</a>, pointing out all (?) the ways to poke a non-running and a running application on the Mac. Probably starting out a bit too basic and thus missing out on some of the good stuff which must be out there but which I don&#8217;t know. Including respect for the awesome / magic <a href="http://ridiculousfish.com/hexfiend/">HexFiend</a>, disassembly using <code>otool -tV</code>, the otool postprocessor <a href="http://otx.osxninja.com/">otx</a> and the various techniques for getting your own code into other applications.
</li><li>
People&#8217;s notetaking of that in SubEthaEdit is awesome and will be useful to find / use the examples shown in the talks. Thanks to <a href="http://www.zathras.de/blog.htm">Uli Kusterer</a> for setting all that up. 
</li><li>
It&#8217;s probably a given: The hotel&#8217;s Wifi with a weird login page that seems super-slow on the iPod and <em>loves</em> forcing you to frequently re-enter of all info to use the network was a bit annoying. As were the common losses of signal. On the other hand, I had expected much worse for the catastrophic scenario of well over a hundred people with at least one wirelessly networked device descending on a venue at the same time.
</li><li>
<a href="http://www.dribin.org/dave/">Dave Dribin</a> on clean code: Good to be reminded of many of the things there. Again, nothing overly non-obvious but it&#8217;s always good to be reminded of a clean style  and pointing at the easily made mistakes. Not all of his points were equally good and one has the impression he may be teased about his <span title="Of course he didn't actually say it this way, it's more his least favourite">&#8216;KVO is evil&#8217; stance</span> and singleton hate, which became a bit of a running gag, for a while.
</li><li>
I was too busy watching the little lunch-time talks to manage to get a dessert, bummer!
</li><li>
<a href="http://www.macanics.net/">Drew McCormack</a>  about data presentation: Goes through many styles and points out how they&#8217;re all lists. Points to the <a href="http://code.google.com/p/core-plot/">core-plot</a> graphing framework project he helps run. Interesting stuff, even though I currently have no use for it. Having a way to draw graphs and do it performantly will be cool. The talk also pointed out the existence of <code>NSCollectionView</code> to me, but it sounded like it&#8217;s not better than a table view if you have a really long table.
</li><li>
Final talk was by <a href="http://www.cimgf.com/">Marcus Zarra on CoreAnimation. Interesting but not overly exciting if you&#8217;ve used CoreAnimation before, which he has <a href="http://www.cimgf.com/category/core-animation/">bunch of posts on on his site</a>. I had to laugh when he said most of the code in his demo app was for drawing the path he&#8217;s drawing and that he had to program it from a sketch he made. Totally reminded me of <a href="http://earthlingsoft.net/code/ESCursors/ArrowDrawing.jpeg">my efforts</a> when creating <a href="http://earthlingsoft.net/code/#escursors">ESCursors</a>.
</li><li>
Dinner was fine with special kudos to <a href="http://www.timisted.net/">Tim</a> for having gone through the effort of making sure we actually get good wines with it. 
</li><li>
Now if only I could remember the names of all the people I spoke to&#8230;
</li><li>
<a href="http://perspx.com/blog/archives/1210/nsconference-2010-mac-developer-conference-day-1">Notes with photos by Alex Rozanski</a>.
</li><li>
There seemed to be many iPhone people at the conference and many who are relatively new to Cocoa.
</li><li>
One thing I find hard when speaking with iPhone people is figuring out how to speak to them. I have a fairly low opinion of most iPhone applications, a sentiment which doesn&#8217;t seem too far off the general perception. And creating them probably is where the money is because people with bad taste and money will hire iPhone developers to create them. That&#8217;s certainly not my style of doing things and it&#8217;s hard to talk about people (after all they seem reasonable and probably don&#8217;t think they&#8217;re creating the greatest thing in the world when making some junk advertising app) about this topic.
</li><li>
<em>Of course</em> the missing semicolon in <code>[[NSConference alloc] init]</code> on the smart banners that decorated the stage made people talk. For my part, I welcome our new semicolon-less-C-overlords. Certainly makes things less painful. [I really recommend compiling with LLVM by the way, because its error messages for this stuff are just much more human-comprehensible].
</li>
</ul>
<p>
Read on for <a href="http://earthlingsoft.net/ssp/blog/2010/02/nsconference_day_2">notes on the second day&#8230;</a>
</p>
]]></description>
<dc:subject>Software</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2010-02-01T23:59:42+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2010/01/transmission">
<title>Transmission</title>
<link>http://earthlingsoft.net/ssp/blog/2010/01/transmission</link>
<description><![CDATA[<p>
File sharing used to be cool and exciting a decade ago. Not only did the very fact that it worked and enabled you to both find and retrieve files from &#8216;the intertubes&#8217; amaze, it also looked like a dawn of a new era and stretched imagination: the very real problem that some music should remain unavailable or condemned to residing on an old tape seemed solved, simply because even the most eclectic songs seemed to exist on <em>someone</em>&#8217;s hard drive <em>somewhere</em>, with you being able to find and get it.
</p><p>
I think the site giving the best results back then was called <a href="http://en.wikipedia.org/wiki/Audiogalaxy">Audiogalaxy</a> - and has duly been destroyed by capitalism since. As far as I can tell, the focus in file sharing then shifted to services/protocols like <a href="http://en.wikipedia.org/wiki/Gnutella">Gnutella</a> or <a href="http://en.wikipedia.org/wiki/Amule">aMule</a>. It also seemed to shift from the wonderful world of being able to find just <em>that</em> obscure song from the mix tape your friend gave you a decade ago to a world which focused on providing a gazillion copies of the latest Britney Spears album and shitty quality Star Wars recording from a cinema screen. (Plus porn, of course. I think file sharing clients are the first software in which I understood why &#8216;childsafe&#8217; features <em>may</em> be useful: pretty much any term you can think of seems to have a kinky double-entendre that can be used for a porn title.)
</p><p>
And not only did the content become lame, the software was even worse. There seemed to be an unwritten rule that file sharing clients need to be horrible to use, sport huge windows full of incomprehensible/useless buttons and be obviously &#8216;cross platform&#8217; in the worst way possible. And that&#8217;s before one mentions the cross-platform horror known as Java which successfully mixes mis-sized GUIs with humongous memory consumption. I was not impressed. It wasn&#8217;t fun. It wasn&#8217;t useful.
</p><p>
It was a shame because file sharing generally is a good thing. For some reason (giving them the benefit of the doubt I&#8217;ll assume that computer and business people are not smart enough to make this FAIL intentionally but that we&#8217;re simply seeing technical incompetence here&#8230;) file sharing software has always sucked horribly. Try transferring a 10GB video recording to a friend and unless you have a very good network connection <em>as well</em> as a fair bit of technical knowledge, you&#8217;ll find this supposedly simple technical task very difficult. Try transferring a 30MB file to a thousand people and you may need to think a bit about your web server&#8217;s speed and bandwidth limitations first. It&#8217;s a mess, it&#8217;s a lot of effort, it&#8217;s potentially expensive.
<p></p>

<p><a href="http://en.wikipedia.org/wiki/BitTorrent_(protocol)">BitTorrent</a> is one of the technological answers to these kinds of problems, I think. It uses file sharing technology to distribute files while avoiding the shenanigans about searching or hosting the actual materials which may be illegal in a <span title="actually criminal, like child pornography">serious or <span title="make lawyers and corporations rich, like music">less serious</a> way. I&#8217;ve been fascinated by that idea for a while, particularly the community aspect, the idea that many people cooperate and give their upload bandwidth, so other people can get a file quickly without needing an expensive server. And then people who have downloaded the file &#8216;giving back&#8217; by providing the file to others who want it as well later on. It seems like a smart way to solve the problem.
</p><p>
But the software situation isn&#8217;t great either. I think the first BitTorrent client I saw was Azureus (apparently called <a href="http://en.wikipedia.org/wiki/Vuze">Vuze</a> these days) which I can only describe as a huge slow Java mess. Someone pointed me to the  <a href="http://www.bitsonwheels.com/">Bits on Wheels</a> client on the Mac for downloading one of those SXSW torrents (another nice idea which might just be impossible/too expensive without torrent technology) and it had a funky (but I guess mostly useless) 3D display of the files transferred. But development of that stopped. 
</p><p>
<a href="http://earthlingsoft.net/ssp/blog/graphics/Transmission.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/Transmission.png" style="height:128px;width:128px;" alt="Transmission Icon"></a>
When looking for another client later on, I discovered <a href="http://www.transmissionbt.com/">Transmission</a>. And I was impressed (which, as regular readers will know, is rare) because it&#8217;s a refreshingly no-nonsense piece of software. First and foremost it puts no crap between that torrent-file you&#8217;ve got and the download starting. It has a simple user interface focusing on the important points and even containing a &#8216;simplified&#8217; way  of displaying things without all the nasty details, making a torrent download look just like a download from the web. I liked it a lot because it did away with the pain and suffering I connected with GUIs for file sharing clients. Even more amazing: Transmission actually <em>is</em> an open source cross-platform project. Unlike many others, however, it does make the effort of using the native GUI technologies for the platform in question, thus enabling themselves to provide a good user experience.
</p><p>
To give something back to the project, I thought I could provide a German localisation. I thought that&#8217;d be interesting, both because the project isn&#8217;t tiny and also because file sharing is a strange area with a lot of odd terminology which could be a challenge to localise. As I see Transmission as a BitTorrent client for the technically uninclined, I wanted to create a localisation that&#8217;s as un-technical as possible. I wanted to avoid odd file sharing terms and try to find reasonable German expressions for what&#8217;s going on. 
</p><p>
Doing so proved a bit tricky in some places. Both because I had to read up on some of the technical details that hide in the more advanced areas of the application. And because some terms needed a bit of pondering to find a reasonable solution for them. The most visible one of those is the &#8216;upload&#8217;/&#8217;download&#8217; pair. It&#8217;s really tricky because it seems that it&#8217;s considered all right on the Mac platform to simply use the noun &#8216;Download&#8217; in German these days. However, the same doesn&#8217;t seem to be true for &#8216;Upload&#8217;, nor for using &#8216;download&#8217; as a verb, as that would end up being a rather strange &#8216;downloaden&#8217;. Hence other terms were needed, and I settled  for <span lang="de">&#8216;Laden&#8217;/&#8217;Senden&#8217;</span>, the standard terminology Apple use for network transfers. However I wasn&#8217;t sure whether the short form of &#8216;L&#8217; and &#8216;S&#8217; for those would have been comprehensible.
</p><p>
My German localisation is part of the Transmission since version 1.80. While I checked and double checked everything there may still be some glitches or perhaps ideas how some terms could be localised more appropriately.
</p><p>
While I found it hard to get in touch with the Transmission people (I&#8217;m an e-mail person and they seem to be into that IRC thing which I completely fail to &#8216;get&#8217; - it seems like twitter with the additional downside that you can miss messages and the upside that it worked in the 1980s), I ended up with a reasonably good impression localisation-wise. Most projects&#8217; efforts on localisation seem rather half-assed, particularly in the open source area (hello Sparkle&#8230;). There may be downright mistakes or careless changes of localisation keys and typically there is a real lack of comments for the strings used in the .strings files of the localisation which can make it really hard to figure out where the string in question appears and what it will be used for. The comments in Transmission&#8217;s .strings, however, files were very complete and helpful and only a few details needed to be tweaked otherwise, making work very smooth.
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/Transmission%20Main%20Window.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/Transmission%20Main%20Window.png" style="width:95%;max-width:496px;max-height:480px;" alt="Transmission main window in German (and yeah, you absolutely want to get and watch that 26C3 Wikileaks torrent!)" lang="de"></a>
</p><p></p>
]]></description>
<dc:subject>Software</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2010-01-28T10:21:50+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2009/12/graphviz_omnigraffle">
<title>GraphViz &amp; OmniGraffle</title>
<link>http://earthlingsoft.net/ssp/blog/2009/12/graphviz_omnigraffle</link>
<description><![CDATA[<p>
I few days ago <a href="http://earthlingsoft.net/ssp/blog/2009/12/graphviz" title="GraphViz (Quarter Life Crisis)">I wrote about GraphViz</a> and how it&#8217;s an amazing software that lets you create interesting graphs from simple text input files. I also lamented how its documentation is pretty much unreadable and actually controlling the output enough to get good-looking graphs is impossible, both in terms of the &#8216;control&#8217; and the &#8216;good looks&#8217; you get.
</p><p>
While trying to figure out a thing or two about GraphViz, some search results told me that <a href="http://www.omnigroup.com/applications/OmniGraffle/">OmniGraffle</a> can import the GraphViz file format. OmniGraffle is one of those applications which has earned a rather high reputation in the Mac software world for being a tool that makes it easy to create good looking diagrams. So far I only had a <a href="http://earthlingsoft.net/ssp/blog/2005/02/8021x">single excuse</a> to actually try and use OmniGraffle and this seemed like a good opportunity for digging in a bit more deeply.
</p><p>
<img src="http://earthlingsoft.net/ssp/blog/graphics2/OmniGraffleIcon.png" style="width:128px;height:128px;" alt="OmniGraffle Icon">
Two things made OmniGraffle stand out in my opinion: First, the fact that it makes it easy to create reasonable diagrams by defaulting to all sorts of smart &#8216;magnetic&#8217; behaviour when joining up graphs and thus letting you focus on the the graph you want to draw rather than forcing you to put all your attention towards getting the lines in it &#8216;just right&#8217;. Second, the fact that OmniGraffle is also tuned for a reasonable amount of &#8216;pretty&#8217;. Not the bling-bling style &#8216;pretty&#8217; one would find in magazines, but the pretty of having shadows where you need them.
</p><p>
I was quite surprised to learn that OmniGraffle reads GraphViz files and contains GraphViz&#8217; automatic layout algorithms as I consider both these approaches to graphing as somewhat orthogonal. It&#8217;s all the better that one application tries to handle both. Trying to use the &#8216;best of both worlds&#8217; I could turn a mess of a graph into something reasonably looking.
</p><p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/GraffleGraphLayout.png" style="width:50%;max-width:270px;max-height:347px;" lang="de" alt="OmniGraffles settings for graph layout">
What&#8217;s particularly nice about OmniGraffle is that it doesn&#8217;t just import the GraphViz files but it also lets you edit them in the application, re-applying the GraphViz algorithms as you go. Particularly when using the &#8216;force-based&#8217; layout mode it gives you a few extra abilities to adjust line lengths. These can be used to tweak the graph a little.
</p><p>
While this is already a great improvement on &#8216;pure&#8217; GraphViz, particularly once you take into account in the better looks OmniGraffle gives your graphs as well, it still leaves plenty of room for improvement. One issue is that you may have machine-generated GraphViz files. You can easily add a few nodes to those. But OmniGraffle cannot &#8216;update&#8217; its current graph based on an updated GraphViz file. While this seems quite natural in the GraphViz view of things, it means that you must be really really <em>really</em> sure your graph is final before starting to make it pretty. Of course that&#8217;s not how things work and you may end up having to do things several times. Given how dynamic the layout of thes graphs is, it&#8217;s very likely that you will not be able to reproduce your previous work when doing this.
</p><p>
The next problem (again coming from GraphViz, I suppose) is that it&#8217;s really hard to &#8216;pin down&#8217; objects. Sometimes you really <em>need</em> some node to be right in the middle or you may <em>want</em> to move one node up a centimetre to make its edges not cross other nodes in a bad way. It&#8217;d be really handy to just fix a node at its desired location for that.
</p><p>
The same goes for the order of some nodes grouped around another one. It seems like the GraphViz algorithm just finds a <em>local</em> optimum for the layout. Meaning that other, much better layouts may exist which are just &#8216;out of reach&#8217;. I have often seen examples for this where a number of nodes are grouped around bigger nodes and a change of the order of those nodes would have given a much better layout with less edge-crossings. Unfortunately this kind of rearranging is mostly impossible (I have a theory that one <em>may</em> be able to adjust it by rearranging the lines in the GraphViz file, but that&#8217;s not really feasible if said file is automatically generated).
</p><p>
A further limitation of OmniGraffle is that the ranges for its adjustment sliders seem to be wrong as soon as you&#8217;re working with graphs that aren&#8217;t tiny. The usable part of the &#8216;repulsion&#8217; slider seems to be in the first 5% of its range, i.e. pretty much impossible to control. That&#8217;s particularly problematic as OmniGraffle can end up stalling for a long time when the setting is picked too large (as I assume the layout process is started with rather unreasonable parameters then).
</p><p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/GraffleSelection.png" style="width:50%;max-width:270px;max-height:311px;" alt="OmniGraffle selection tools">
Finally, OmniGraffle does not support the full range of GraphViz options (say node shapes or images in the nodes as used in my <a href="http://earthlingsoft.net/ssp/blog/2009/07/utis">UTI graph</a>), meaning that it&#8217;s difficult to communicate layout intent through your GraphViz file from the script creating it. A workaround for that is setting different colours and sizes for the element and using OmniGraffle&#8217;s cool selection features to select all objects with the same style.
</p><p>
My conclusion is that the automatic layout / GraphViz support makes OmniGraffle a very interesting tool for creating graphs. I am particularly surprised that they managed (dared to attempt) including some GraphViz algorithms into their application. But now that I&#8217;ve seen this I want more. As usual, none of what I want will be particularly easy to implement but it improve graph making.
</p><p>
Let me close with an illustration of what can be achieved. Taking a moderately elaborate GraphViz file which already makes an attempt to style things a little one could get a result like this:
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/GraffleBefore.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/GraffleBefore.png" style="width:95%;max-width:450px;max-height:381px;" alt="Graph as created by GraphViz"></a>
</p><p>
Tinkering a with OmniGraffle on this can clarify the result quite a bit:
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/GraffleAfter.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/GraffleAfter.png" style="width:95%;max-width:600px;max-height:333px;" alt="Graph as improved with OmniGraffle"></a>
</p>
]]></description>
<dc:subject>Software</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2009-12-17T08:39:52+01:00</dc:date>
</item>

<item rdf:about="http://earthlingsoft.net/ssp/blog/2009/12/graphviz">
<title>GraphViz</title>
<link>http://earthlingsoft.net/ssp/blog/2009/12/graphviz</link>
<description><![CDATA[<p>
<img src="http://earthlingsoft.net/ssp/blog/graphics2/GV-Icon.png" style="width:128px;height:128px;" alt="GraphViz file icon">
<a href="http://www.graphviz.org/">GraphViz</a> is an interesting visualisation tool. It lets you write a simple text file describing the nodes and the connections between them of a graph and then algorithmically creates the layout of the graph, apparently by trying to minimise the &#8216;forces&#8217; between the objects. Depending on the content of your graph there are several different algorithms to choose from, ranging from <code>dot</code> for tree-like graphs, <code>neato</code> and <code>fdp</code> for more force-based freestyle stuff and <code>twopi</code> or <code>circo</code> for more circular arrangements.
</p><p>
Thus, in theory, GraphViz is a fantastic tool to magically create meaningful graphs from simple relations between objects. Being open source and able to export into many file formats from bitmaps to PDF to SVG makes it also score high in buzzword bingo. There&#8217;s also a pretty abandoned looking, Design Award winning and not exactly easy to use <a href="http://www.pixelglow.com/graphviz/">graphical Mac application</a> for the <code>dot</code> tool as well as a cool looking but presumably useless iPhone version for the same people.
</p><p>
There are, however, problems with GraphViz. One of them is documentation. As is par for the course for open source software, there is a <a href="http://www.graphviz.org/doc/info/lang.html">formal specification</a> for the language used and an <a href="http://www.graphviz.org/doc/info/attrs.html">alphabetical list of all the parameters you can use</a>. Of course that&#8217;s pretty close to useless as it totally hides the fact that writing a dot file is quite easy. And once you figured that out, by looking at the pages of <a href="http://www.graphviz.org/Gallery.php">examples</a>, it still remains frustrating to use the software because not all of the options work in all of the tools and generally the outcomes seem quite random in the sense that it often seems gratuitously hard to figure out or achieve simple graphical effects.
</p><p>
Particularly so, once you start creating slightly complex graphs. Positioning nodes &#8216;just right&#8217; in those is pretty hard because the positions one node potentially affects all others. This makes it pretty much impossible to turn a graph which may represent the structure correctly into a graph that represents the structure correctly <em>and looks good</em>. Where &#8216;looking good&#8217; also means that the graph can become clearer as a consequence of that because you have fewer crossing lines or the order of the nodes is more adequate for your current application. To a certain extent you can tinker with some of these aspects, but in my experience it quickly ends up being a lot of effort while still not giving the results I want. 
</p><p>
In addition GraphViz, in true Unix style, is a one-shot-wonder - meaning that it simply processes the file you throw at it without any knowledge of previous runs. Hence even adding a single node to the graph can significantly change the layout the algorithm comes up with. This makes it pretty futile to try and &#8216;optimise&#8217; the graph in any way unless you are 100% sure its nodes and edges will not change. It also keeps you from doing something like a development of the graph over time as adding a node will quite likely create a discrete jump in the graph rather than lead to a continuous change. As far as I understand the readmes of GraphViz, the way it optimises graphs actually <em>is</em> continuous in nature, so it&#8217;s likely that all the necessary algorithms are pretty much in place already and a shame that no interface to them is exposed.
</p><p>
Finally, there is the difficulty of the middle ground. Looking through the GraphViz <a href="http://www.graphviz.org/Gallery.php">examples page</a> you will find mostly graphs which are small or structurally simple. Those tend to look all right. There are also a few examples which are <a href="http://www2.research.att.com/~yifanhu/GALLERY/GRAPHS/index.html">very large and complex</a> and in which the graph is seen as a global picture rather than revealing the details of its nodes. Of course the graphs <em>I</em> wanted to create are in the middle ground. They are too big and complex to fit in the first category but I am still interested in the detail information.
</p><p>
An example for many of these issues may be my <a href="http://earthlingsoft.net/ssp/blog/2009/07/utis">UTI graph</a>:
</p><p class="centred">
<a href="http://files.getdropbox.com/u/382997/UTIs.pdf" title="PDF file of the graph"><img src="http://earthlingsoft.net/ssp/blog/graphics/UTIGraph.jpeg" style="width:95%;max-width:428px;max-height:631px;" alt="UTIGraph"></a>
</p><p>
Once you start looking at it in detail to learn the exact information it contains, you will start noticing how the layout of the graph is far from perfect in many places. Improving on that seems quite hard. And getting everything &#8216;just right&#8217; could very much end up being impossible.
</p>
]]></description>
<dc:subject>Software</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2009-12-11T11:19:59+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/flame">
<title>Flame</title>
<link>http://earthlingsoft.net/ssp/blog/2009/10/flame</link>
<description><![CDATA[<p>
<img src="http://earthlingsoft.net/ssp/blog/graphics/flame_square.png" style="width:57px;height:57px;" alt="Flame Icon">
If you know a bit of Cocoa, the iPhone platform is an interesting toy to play with. And you&#8217;ll quickly find out that it&#8217;s relatively simple to come up with an application displaying a list that swooshes across  the screen every now and then. <a href="http://jerakeen.org/" title="Tom Insam">Tom</a> started porting his <a href="http://jerakeen.org/code/flame/">Mac Bonjour browser</a> called Flame to the iPhone almost a year ago. Over time I joined in and contributed a feature or two and tried to clean up the look to suit my taste. The resulting code <a href="http://github.com/jerakeen/flametouch">is available</a> for your amusement. And thanks to Tom going through Apple&#8217;s draconian sign-up and approval process, the <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=325206381">binary is as well</a>.
</p><p>
The application does the simple job of displaying all the Bonjour Services on your network. Either grouped by Server or by Service Type. You can look at the Services&#8217; details and open those for which you have matching applications installed. Interestingly Mobile Safari can handle FTP (for small values of &#8216;handle&#8217;) and unfortunately the VNC clients I looked at don&#8217;t seem to register protocol handlers. If the iPhone software &#8216;ecosystem&#8217; didn&#8217;t suck so badly, one could even send the authors of those applications an e-mail and let them know.
</p><p class="centred">
<a href="http://earthlingsoft.net/ssp/blog/graphics/Flame%20Service%20per%20Host.png" title="Click to enlarge."><img src="http://earthlingsoft.net/ssp/blog/graphics/Flame%20Service%20per%20Host.png" style="width:95%;max-width:320px;max-height:480px;" alt="Screenshot of Flame Touch displaying all services on a single machine"></a>
</p><p>
&#8216;Naturally&#8217; the application works on Wi-Fi only. It does its job in English, German and French (many thanks to <a href="http://www.cortig.net/localisations/?cat=2" title="Ronald Leroux">Ronald</a>, once again) and we hope it does it reasonably well. Let us know if it doesn&#8217;t; There&#8217;s a feedback link in the about box.
</p><p>
While it&#8217;s nice to see some software you contributed to out in the public, I have to say that the whole App-store crap makes it feel dirty. It&#8217;s essentially supporting the bad guys.
</p>

<hr>

<p>
Be sure to also look at the <a href="http://earthlingsoft.net/ssp/blog/2009/10/bookmark_advertiser">Bookmark Advertiser</a> Mac application which advertises your open Safari pages via Bonjour and which Flame supports.
</p>
]]></description>
<dc:subject>Software</dc:subject>
<dc:creator>ssp</dc:creator>
<dc:date>2009-10-29T23:08:33+01:00</dc:date>
</item>


</rdf:RDF>