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

<channel>
	<title>Mark Alldritt&#039;s Journal</title>
	<atom:link href="http://blog.latenightsw.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.latenightsw.com</link>
	<description>Just another developer weblog</description>
	<lastBuildDate>Sun, 06 Jan 2013 18:49:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>My First iPhone App</title>
		<link>http://blog.latenightsw.com/?p=686</link>
		<comments>http://blog.latenightsw.com/?p=686#comments</comments>
		<pubDate>Wed, 03 Oct 2012 19:50:23 +0000</pubDate>
		<dc:creator>Mark Alldritt</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://blog.latenightsw.com/?p=686</guid>
		<description><![CDATA[Now that Script Debugger 5 has been released, and most of the fires have been put out, I am turning my attention to new projects. As part of this I have been doing a lot of reading and experimenting with Android and iOS development. I realize I&#8217;m late to the party with iOS/Android development, but [...]]]></description>
			<content:encoded><![CDATA[<p>Now that Script Debugger 5 has been released, and most of the fires have been put out, I am turning my attention to new projects.  As part of this I have been doing a lot of reading and experimenting with Android and iOS development.  I realize I&#8217;m late to the party with iOS/Android development, but Mac OS work has kept my busy.</p>

<p>I finally decided to get my feet out of the mud and build something useful.  I chose as my first significant iPhone app a client for the <a href="http://vvtc.bc.ca">Victoria Virtual Tennis Club</a>.  This is a PHP/MySQL based web site which I developed to help this organization host Tennis matches in the Victoria B.C. area.  </p>

<p>Like most desktop developers moving to mobile, I&#8217;m struggling to keep things simple on iOS and adopt the UI idioms users have come to expect and understand.  I&#8217;m sure I&#8217;ll find ways to simply this app after I&#8217;ve had time to play with it.</p>

<p>This is a standard master-detail app which lists a calendar of upcoming VVTC events:</p>

<p><img src="http://blog.latenightsw.com/wp-content/uploads/2012/10/VVTCMaster.jpg" alt="Master Screen" /></p>

<p>Taping on an event in the master screen takes you to a detail screen where you can see event details, a list of participants and then sign up for the event if you want to.</p>

<p><img src="http://blog.latenightsw.com/wp-content/uploads/2012/10/VVTCDetail.jpg" alt="Detail Screen" /></p>

<p>Behind the scenes, this involved adding a simple REST service to the VVTC web site to get the current calendar information, and to request signup.  This data is returned as a JSON structure.</p>

<p>I decided to avoid the various iOS REST frameworks I found, and simply roll my own since I only have two URLs (get calendar, request signup).  This decision may haunt me in the future, but for now things are working and I can understand what&#8217;s going on.  The new NSJSONSerialization class worked flawlessly with the data returned by PHP&#8217;s json_encode function.  Dealing with dates was a bit of an issue, but I finally settled on the ISO 6801 date format and that problem was solved.</p>

<p>Going forward, I want to add a Month view that mimics Apple&#8217;s Calendar application using the <a href="https://github.com/klazuka/Kal">Kal</a> project as an alternative to the list view I currently have.</p>

<p>I want to give full credit to the following resources that made this whole exercise possible within the 2 days I gave myself:</p>

<ol>
<li><p><a href="http://www.apeth.net/matt/">Matt Neuburg</a>&#8216;s new &#8220;<a href="http://http://shop.oreilly.com/product/0636920023562.do">Programming iOS 5</a>&#8221; book.  This book explained lots of things for me, but most importantly it allowed me to adopt ARC along with a lot of Objective-C 2 features in my iPhone app.  After <strong>many</strong> years of doing manual memory management in Script Debugger, it took a lot to let go of the rains and trust this to the compiler.  This exercise has kind of spoiled me for dealing with my old code.</p>

<p>I read the first edition of Matt&#8217;s book cover-to-cover a few years ago and that gave me my basic understanding of the iOS SDK.  A lot has changed over the years, and the new version of the book was great at reacquainting me with the iOS SDK.</p></li>
<li><p><a href="http://www.informit.com/authors/bio.aspx?a=8FF32343-952D-4C6F-BFA6-F4B757655420">Erica Sadun</a>&#8216;s &#8220;<a href="http://www.informit.com/store/product.aspx?isbn=0321832078">The iOS Developer&#8217;s Cookbook</a>&#8220;.  Lifting pieces of Erica&#8217;s code out of her examples saved me a bunch of time.</p></li>
<li><p>The <a href="https://github.com/escoz/QuickDialog">QuickDialog</a> project.  I used this to build all the detail views in my app and it saved me a mountain of time.</p></li>
<li><p>There are many web sites offing directories of reusable iOS (and Mac OS) UI components, but I recently found <a href="http://www.cocoacontrols.com">Cocoa Controls</a>.  This site led me to stumble upon QuickDialog and a number of other useful things.</p></li>
</ol>

<p><strong>UPDATE</strong>: I am missing Cocoa Bindings under iOS.  I know that iOS provides Key Value Observing, but Bindings are missing.  How are others dealing with this omission?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.latenightsw.com/?feed=rss2&#038;p=686</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Re: The Skeuomorphism Rift Within Apple</title>
		<link>http://blog.latenightsw.com/?p=668</link>
		<comments>http://blog.latenightsw.com/?p=668#comments</comments>
		<pubDate>Thu, 13 Sep 2012 01:13:45 +0000</pubDate>
		<dc:creator>Mark Alldritt</dc:creator>
				<category><![CDATA[Apple]]></category>

		<guid isPermaLink="false">http://blog.latenightsw.com/?p=668</guid>
		<description><![CDATA[I came across Austin Carr&#8217;s piece (via Daring Fireball) discussing a struggle within Apple regarding the use of Faux-Real UIs for many of its applications. Some of the example applications cited include the fake leather Calendar and iBooks&#8217; shelves. A recent addition that stuck in my mind was the new Podcasts app which uses the [...]]]></description>
			<content:encoded><![CDATA[<p>I came across <a href="http://www.fastcodesign.com/1670760/will-apples-tacky-software-design-philosophy-cause-a-revolt">Austin Carr&#8217;s</a> piece (<a href="http://daringfireball.net/linked/2012/09/11/skeuomorphism-apple">via Daring Fireball</a>) discussing a struggle within Apple regarding the use of Faux-Real UIs for many of its applications.  Some of the example applications cited include the fake leather Calendar and iBooks&#8217; shelves.  </p>

<p>A recent addition that stuck in my mind was the new Podcasts app which uses the metaphor of a reel-to-reel tape recorder as a background while playing podcasts.  </p>

<p><img src="http://blog.latenightsw.com/wp-content/uploads/2012/09/PodcastsII.jpg" alt="Podcasts UI" /></p>

<p>At first I thought this was clever, but than I realized that (a) most iOS device users are too young to have any memory of these machines, and (b) Apple has gone to extreme lengths to create this fiction.  The tape moves from one spinning reel to the other as a podcast plays, just as it did on the real machine.  When you pause or play a podcast, the tape tensioner moves to take up the slack in the virtual tape traveling over the playback heads. </p>

<p>The programmer in me is impressed by this attention to detail, but as a customer I&#8217;m left wondering how much useful functionality was dropped from the product to make time for this kind of &#8220;play&#8221; in the UI.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.latenightsw.com/?feed=rss2&#038;p=668</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Impression of the new Retina MacBook Pro</title>
		<link>http://blog.latenightsw.com/?p=662</link>
		<comments>http://blog.latenightsw.com/?p=662#comments</comments>
		<pubDate>Sun, 02 Sep 2012 18:07:47 +0000</pubDate>
		<dc:creator>Mark Alldritt</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://blog.latenightsw.com/?p=662</guid>
		<description><![CDATA[Marco Arment recently wrote a Retina MacBook Pro review (via Daring Fireball) which I found helpful in making my decision to purchase one of these machines for my development work. I&#8217;ll add a few additional observations after having used my new machine for about a week: It is fast! I&#8217;ve not had a desktop Mac [...]]]></description>
			<content:encoded><![CDATA[<p>Marco Arment recently wrote a <a href="http://www.marco.org/2012/08/26/retina-mbp-review">Retina MacBook Pro review</a> (via <a href="http://www.daringfireball.net">Daring Fireball</a>) which I found helpful in making my decision to purchase one of these machines for my development work.</p>

<p>I&#8217;ll add a few additional observations after having used my new machine for about a week:</p>

<ul>
<li><p>It is fast!  I&#8217;ve not had a desktop Mac for many years so I cannot compare this MacBook Pro to a Mac Pro or iMac, but this is the first time I&#8217;ve gotten a new Mac laptop that was dramatically faster than my previous machine.  The combination of solid-state disk, lots of RAM and a fast CPU make the machine very responsive.  Building my <a href="http://www.latenightsw.com/">Script Debugger 5</a> product from scratch went from ~4m30s down to ~1m15s.</p></li>
<li><p>Like Marco, I&#8217;m running my display in scaled mode because the standard video mode does not provide enough space for my needs.  In this mode, the GPU isn&#8217;t strong enough to keep up with some operations.  Examples include swiping between spaces causes a noticeable lag and some scrolling operations are a little slow.  But Xcode works just fine, as do all the other development tools I use.</p></li>
<li><p>iPhoto and iMovie are revelations.  All my images look so much better on the retina display.  I shoot a lot of images of sculptures and finally these images are starting to carry the same impact on the retina display as they do when printed.  The awful flatness of older displays is gone.  We are finally beginning to get back some of the power of slide film.</p>

<p>This change is more noticable on the retina MacBook Pro than it is on the retina iPad (which is very good).  This may simply be a consequence of the MacBook&#8217;s display being bigger than the iPads.</p></li>
<li><p>You are going to use more disk space.  For example, iPhoto and iMovie will generate higher fidelity thumbnail images which are going to take more space on your disk.  If you have a large iPhoto library, this could mean a few more GB lost to thumbnails.</p></li>
<li><p>Surprisingly, Terminal really benefits from the retina display.  Small font sizes are easily readable making it possible to show more lines and columns in a Terminal window.</p></li>
<li><p>If you like to rip CDs in iTunes, you&#8217;ll need to buy Apple&#8217;s external USB CD/DVD drive as the Remote CD/DVD drive sharing system does not allow this kind of operation (You also cannot use HandBrake to rip DVDs).  I get the DVD limitation because DVDs are copy protected, but CDs are not and its a drag to buy yet another accessory (you will probably have already bought the Gigabit Ethernat to Thunderbolt adapter).</p></li>
<li><p>I have 50 year old eyes and eye strain seems to be reduced.  </p></li>
<li><p>I&#8217;m waiting to see if this display improves my ability to catch errors when proof reading.  In the past I found I have to print out my copy to properly proof read it.  We&#8217;ll see if a higher quality display improves legibility and comprehension.</p></li>
<li><p>The machine runs <strong>much</strong> cooler than my old MacBook Pro.  The silence of the thing is eery.  I have to push the machine fairly hard (long Xcode compile) to get the fans to spin up.</p></li>
<li><p>The heartbeat pulsating light on the front edge of the body is gone.  As a result, there is no visible clue when the lid is closed that the machine is sleeping vs powered down.  The battery level indicator lights are also gone so you have to wake the machine to see where your battery is at.</p></li>
<li><p>Safari finally feels fast.  I&#8217;ve always found Safari to be slow when loading PHP and Rails pages hosted on my own machine, but now it loads without any noticable delay.</p></li>
</ul>

<p>Overall, I&#8217;m very happy with the machine.</p>

<p>New Machine: Mid-2012 2.7Ghz Core i7 Retina MacBook Pro, 8GB RAM</p>

<p>Old Machine: Mid-2010 2.66Ghz Core i7 MacBook Pro with Hi-Res Display, 8GB RAM</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.latenightsw.com/?feed=rss2&#038;p=662</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Script Debugger 5.0 Released</title>
		<link>http://blog.latenightsw.com/?p=654</link>
		<comments>http://blog.latenightsw.com/?p=654#comments</comments>
		<pubDate>Wed, 06 Jun 2012 18:54:48 +0000</pubDate>
		<dc:creator>Mark Alldritt</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[Late Night Software]]></category>
		<category><![CDATA[Script Debugger 5]]></category>

		<guid isPermaLink="false">http://blog.latenightsw.com/?p=654</guid>
		<description><![CDATA[I&#8217;m pleased to announce that I have finally completed Script Debugger 5.0. After an extremely long development period, it is finally done and I can take a breath.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pleased to announce that I have finally completed <a href="http://www.latenightsw.com">Script Debugger 5.0</a>.  After an extremely long development period, it is finally done and I can take a breath.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.latenightsw.com/?feed=rss2&#038;p=654</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Blog Reorganization</title>
		<link>http://blog.latenightsw.com/?p=650</link>
		<comments>http://blog.latenightsw.com/?p=650#comments</comments>
		<pubDate>Wed, 06 Jun 2012 18:52:08 +0000</pubDate>
		<dc:creator>Mark Alldritt</dc:creator>
				<category><![CDATA[Late Night Software]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://blog.latenightsw.com/?p=650</guid>
		<description><![CDATA[With the release of Script Debugger 5 I am splitting my blog into two parts. Late Night Software announcements and Script Debugger related postings are available on a new blog hosted at www.latenightsw.com. All of my development and personal postings will remain here.]]></description>
			<content:encoded><![CDATA[<p>With the release of <a href="http://www.latenightsw.com/">Script Debugger 5</a> I am splitting my blog into two parts.  Late Night Software announcements and Script Debugger related postings are available on a new blog hosted at <a href="http://www.latenightsw.com/">www.latenightsw.com</a>.  All of my development and personal postings will remain here.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.latenightsw.com/?feed=rss2&#038;p=650</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FaceSpan 5 (Mark&#8217;s Misadventure)</title>
		<link>http://blog.latenightsw.com/?p=637</link>
		<comments>http://blog.latenightsw.com/?p=637#comments</comments>
		<pubDate>Sun, 06 May 2012 04:38:48 +0000</pubDate>
		<dc:creator>Mark Alldritt</dc:creator>
				<category><![CDATA[FaceSpan]]></category>
		<category><![CDATA[Late Night Software]]></category>

		<guid isPermaLink="false">http://blog.latenightsw.com/?p=637</guid>
		<description><![CDATA[A review of my failed FaceSpan 5 project and a chance to try the software out.]]></description>
			<content:encoded><![CDATA[<p>Back in May 2009 I made the <a href="http://blog.latenightsw.com/?p=50">difficult decision to abandon FaceSpan 5</a>. This was a wrenching period in my life and it has taken a long time to recover.  The failure of this project seriously stressed my relationship with a couple of good friends and cost me a lot of money and time.  At last I feel like I have enough distance to begin to talk about what was accomplished and the mistakes I made. </p>

<p>I am a self-funded Indie (lone) developer.  I made a number of classic business blunders on the FaceSpan 5 project.  I broke the golden rule: <strong>never (never!) rewrite a software product</strong>.  I massively underestimated the effort required to complete the product.  I set off without having sufficient resources to complete the project.  Because I took so long to complete my work, the market moved on &#8212; AppleScript&#8217;s importance to the customers I intended to target declined.  Some may argue that the market was never really there to provide a return for a product of this complexity.  Finally, I didn&#8217;t pull the plug soon enough.  Hindsight its great.</p>

<p>Not all was lost.  <em>Some</em> of the code I developed for FaceSpan 5 found a home in <a href="http://blog.latenightsw.com/?cat=18">Script Debugger 5</a>.</p>

<h2>A Little History</h2>

<p>Many years previously I developed FaceSpan 3 under contract for its owner. As part of that effort I became impressed with FaceSpan&#8217;s power and simplicity. FaceSpan 3 was successful, for a development tool, and even received an Apple Design Award at that year&#8217;s Worldwide Developers Conference.  Sadly, after my involvement with the product ended, FaceSpan fell into disrepair and did not make the leap to Mac OS X. FaceSpan&#8217;s developer finally produced FaceSpan 4 which was to little to late and not as successful as hoped for.</p>

<p>I acquired FaceSpan 4 in 2006 and, after a period where I tried to fix the most serious issues with the product, I concluded that FaceSpan 4&#8242;s dependance on AppleScript Studio was its core problem.  FaceSpan 4 had great integration of a visual UI bilder and coder editor, but lacked a good runtime environment and debugging.</p>

<p>Work on FaceSpan 5 began in 2007 with the aim of freeing FaceSpan from AppleScript Studio and restoring the classic FaceSpan&#8217;s attractiveness. By the time I stopped FaceSpan&#8217;s development I believe I was well on my way to achieving my aims. Two great Mac developers helped me with the project:</p>

<ul>
<li>Adrian Ruigrok, who now works for Apple, developed much of the FaceSpan 5 IDE code.</li>
<li>Matt Neuburg acted as a sounding board for my ideas and developed the initial FaceSpan 5 documentation.</li>
</ul>

<p>The project turned out to be too ambitious given my resources.  Additionally, FaceSpan revealed a number of AppleScript issues and problems in Apple&#8217;s Cocoa Scripting framework which I was ultimately unable to overcome.</p>

<h2>What Is (Was) FaceSpan?</h2>

<p>FaceSpan 5 was an integrate tool for building Cocoa applications using AppleScript.  Many people saw similarities to Apple&#8217;s HyperCard.  FaceSpan provided a visual UI builder, an AppleScript editor, an AppleScript debugger and a runtime environment designed to take the best advantage of AppleScript&#8217;s strengths and provide a collection services and UI widgets out of which applications can be built.  Matt wrote this <a href="http://blog.latenightsw.com/?page_id=565">description of FaceSpan 5</a> back when the project was active.</p>

<p><img src="http://blog.latenightsw.com/wp-content/uploads/2012/05/FaceSpan5.png" alt="FaceSpan 5 Project Window" /></p>

<p>The FaceSpan 5 runtime environment wrapped Apple&#8217;s Cocoa Frameworks in a sanitized and simplified AppleScript focused programming interface.  This allowed one to build fully Cocoa-native applications using AppleScript without having to learn anything about Cocoa.  The intent was for Cocoa to be an implementation detail rather than the programming interface.</p>

<p>We&#8217;ll never know if the FaceSpan 5 approach was actually better than the <a href="http://developer.apple.com/legacy/mac/library/documentation/AppleScript/Conceptual/StudioBuildingApps/StudioBuildingApps.pdf">AppleScript Studio</a> interface offered by Apple.  My hope was that FaceSpan&#8217;s approach was actually simpler, and not simply a substitution of one complicated programming interface for another.</p>

<p>Since FaceSpan 5 was abandoned there have been several developments in the area of AppleScript GUI tools.  Firstly, Apple transitioned from AppleScript Studio to <a href="http://developer.apple.com/library/mac/#releasenotes/ScriptingAutomation/RN-AppleScriptObjC/_index.html">AppleScriptObjC</a>.  Shane Stanley has released his <a href="http://www.macosxautomation.com/applescript/apps/runner.html">ASObjC Runner</a> which can display progress dialogs.  And then there is the long lived <a href="http://www.24usoftware.com/AppearanceOSAX">Appearance OSAX</a> from 24U Software.</p>

<h2>The Last Build</h2>

<p>When I stopped developing FaceSpan 5, a lot of people came out of the woodwork looking for a copy of the software.  I was not willing to make the software available at that time, but I am now.  I&#8217;m doing this now because I think it might be interesting for those of you who were/are curious about what I was working on to get a chance to play with the product.  </p>

<p>Keep in mind that this build predates the release of Xcode 4 and there are some interesting similarities.  Apple had to be developing parts of Xcode 4 during the same period so its fascinating to me how common ideas arrise in different places.</p>

<p>Before you download the software, please keep the following conditions in mind:</p>

<ul>
<li>This is <strong><a href="http://en.wikipedia.org/wiki/Alpha_software#Alpha">Alpha-Stage</a></strong> software.  This means that it is buggy and its not feature or UI complete.  Expect it to crash and fail.  If you stick to the examples included with the documentation, you should be okay.  </li>
<li><strong>THE FACESPAN SOFTWARE IS PROVIDED AS-IS FOR EVALUATION PURPOSES ONLY.  USE AT YOUR OWN RISK</strong>.</li>
<li><strong>PLEASE DO NOT FILE BUG REPORTS</strong>.  I&#8217;m not going to produce another build.</li>
<li><strong>PLEASE DO NOT ASK ME TO OPEN SOURCE THE PROJECT</strong>.  This product shares a lot of code with my Script Debugger product and I&#8217;m not willing to release the code.</li>
<li><strong>RTFM</strong>.  Seriously, you are on your own.</li>
<li>The software should run on Snow Leopard (10.6) or Lion (10.7).  I have no idea if it will work on Mountain Lion (10.8) or beyond.</li>
</ul>

<p>View <strong><a href="http://blog.latenightsw.com/wp-content/uploads/facespan_beta/index.html">Matt Neuburg&#8217;s Alpha Documentation</a></strong>.  More <a href="http://blog.latenightsw.com/?page_id=568">FaceSpan 5 information and screencasts</a>.</p>

<p>Download <strong><a href="https://s3.amazonaws.com/latenightsw.com/FaceSpan5.dmg">FaceSpan 5.0</a></strong>.</p>

<p><strong><a href="http://blog.latenightsw.com/?cat=10">FaceSpan 5 Blog Posts</a></strong>.</p>

<p>To get you going, check out this post: <a href="http://blog.latenightsw.com/?p=569">Dock Icon Changer</a>.</p>

<p>Have Fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.latenightsw.com/?feed=rss2&#038;p=637</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Pretty Polaroids II</title>
		<link>http://blog.latenightsw.com/?p=532</link>
		<comments>http://blog.latenightsw.com/?p=532#comments</comments>
		<pubDate>Wed, 22 Feb 2012 01:03:43 +0000</pubDate>
		<dc:creator>Mark Alldritt</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://blog.latenightsw.com/?p=532</guid>
		<description><![CDATA[My first <a href="http://blog.latenightsw.com/?p=523">Pretty Polaroids</a> post shows my first cut at implementing the <a href="http://www.premiumpixels.com">Premium Pixels</a> <a href="http://www.premiumpixels.com/freebies/pretty-polaroids-psd/">Pretty Polaroids</a> UI mockup. I realized that my first cut did not convert the iamges to grayscale as they are in the Pretty Polaroids muckup.]]></description>
			<content:encoded><![CDATA[<p>My first <a href="http://blog.latenightsw.com/?p=523">Pretty Polaroids post</a> shows my first cut at implementing the <a href="http://www.premiumpixels.com">Premium Pixels</a> <a href="http://www.premiumpixels.com/freebies/pretty-polaroids-psd/">Pretty Polaroids</a> UI mockup. I realized that my first cut did not convert the iamges to grayscale as they are in the Pretty Polaroids muckup.  </p>

<p>For v2, I added the conversion to grayscale.  I took this opportunity to add a Settings menu to the app&#8217;s Action Bar which toggles between Color and Grayscale display.  Finally, I found that I needed to retain the Color/Grayscale setting in the app&#8217;s preferences so I added that as well.</p>

<p><img src="http://blog.latenightsw.com/wp-content/uploads/2012/02/androidUI.jpg" alt="Android UI" /></p>

<p>You can download the source code for this application here:</p>

<p><strong><a href="http://blog.latenightsw.com/wp-content/uploads/2012/02/PolaroidII.zip">PolaroidII.zip</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.latenightsw.com/?feed=rss2&#038;p=532</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pretty Polaroids</title>
		<link>http://blog.latenightsw.com/?p=523</link>
		<comments>http://blog.latenightsw.com/?p=523#comments</comments>
		<pubDate>Tue, 21 Feb 2012 18:58:01 +0000</pubDate>
		<dc:creator>Mark Alldritt</dc:creator>
				<category><![CDATA[Android]]></category>

		<guid isPermaLink="false">http://blog.latenightsw.com/?p=523</guid>
		<description><![CDATA[I came across the <a href="http://www.premiumpixels.com">Premium Pixels</a> site which offers a series of attractive free UI design elements.   I decided to start with their <a href="http://www.premiumpixels.com/freebies/pretty-polaroids-psd/">Pretty Polaroids</a> example and try and implement it as an Adroid application.]]></description>
			<content:encoded><![CDATA[<p>I recently received a Samsung Galaxy Tab 10.1 tablet as part of a promotion for new Cable TV service we subscribed to.  Now that I have an Android device in the house, I decided to start learning the Android SDK.</p>

<p>I came across the <a href="http://www.premiumpixels.com">Premium Pixels</a> site which offers a series of attractive free UI design elements.   I decided to start with their <a href="http://www.premiumpixels.com/freebies/pretty-polaroids-psd/">Pretty Polaroids</a> example and try and implement it as an Adroid application.</p>

<p>This sample Android application allowed me to experiment with the <a href="http://developer.android.com/reference/android/graphics/package-summary.html">android.graphics</a> objects.</p>

<p>Here&#8217;s how the Premium Pixels UI mockup looks:</p>

<p><img src="http://blog.latenightsw.com/wp-content/uploads/2012/02/muckup.jpg" alt="UI Mockup" /></p>

<p>Here&#8217;s how my Android implementation of this UI turned out:</p>

<p><img src="http://blog.latenightsw.com/wp-content/uploads/2012/02/android.jpg" alt="Android Mockup" /></p>

<p>You can download the source code for this application here:</p>

<p><strong><a href="http://blog.latenightsw.com/wp-content/uploads/2012/02/Polaroid.zip">Polaroid.zip</a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.latenightsw.com/?feed=rss2&#038;p=523</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TimePicker Cocoa View</title>
		<link>http://blog.latenightsw.com/?p=512</link>
		<comments>http://blog.latenightsw.com/?p=512#comments</comments>
		<pubDate>Fri, 10 Feb 2012 16:35:19 +0000</pubDate>
		<dc:creator>Mark Alldritt</dc:creator>
				<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://blog.latenightsw.com/?p=512</guid>
		<description><![CDATA[This project implements <a href="http://dribbble.com/iamdavid">David Cristian</a>'s <a href="http://dribbble.com/shots/380911-Hour-Picker">Hour Picker</a> UI design (which I found via <a href="http://www.uiparade.com/">UI Parade</a>) as a Cocoa View]]></description>
			<content:encoded><![CDATA[<h1>TimePicker Cocoa View</h1>

<p><a href="http://blog.latenightsw.com/wp-content/uploads/2012/02/TimePicker.zip">Downlaod TimePicker.zip</a></p>

<p>This project is an attempt to implement <a href="http://dribbble.com/iamdavid">David Cristian</a>&#8216;s <a href="http://dribbble.com/shots/380911-Hour-Picker">Hour Picker</a> UI design (which I found via <a href="http://www.uiparade.com/">UI Parade</a>) as a Cocoa View.  Here is how David&#8217;s UI mockup appears:</p>

<p><img src="http://dribbble.com/system/users/2555/screenshots/380911/hourpicker.png?1326280179" alt="Hour Picker" /></p>

<p>When I first saw this UI design I found it visually compelling, and it really seems like a nice solution to the problem of allowing the user to quickly pick periods of time in 1/2 hour increments.  When I began turning it into a functional UI a number of issues concerning how users interact with the UI begin to surface:</p>

<ol>
<li>This mockup shows only 6 hours.  The UI needs to scroll in order to show the full 24-hour day.</li>
<li>I chose only to implement click and drag to select time ranges.  I imagine that shift-clicking might be desirable.  I didn&#8217;t attempt to handle keyboard input.</li>
<li>At first I though the 1/2 hour grid was self evident.  However, when I began using the UI, I decided I needed duration feedback while dragging to know exactly how long the selected period is.</li>
</ol>

<p>Here&#8217;s how my implementation looks while the user is dragging the mouse:</p>

<p><img src="http://farm8.staticflickr.com/7181/6852015443_a5759f239c.jpg" alt="Cocoa Time Picker" /></p>

<p>There are limitations to this UI:</p>

<ol>
<li>Time can only be selected in 1/2 hour increments.</li>
<li>Time can only be selected within a single 24-hour day.</li>
<li>Auto-scrolling while dragging is problematic.  It may be that auto-scrolling needs to slow down, or more rows need to be made visible in the scroll view.</li>
</ol>

<h2>Requirements</h2>

<p>The project requires Xcode 4.2, and the Mac OS X 10.7 SDK.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.latenightsw.com/?feed=rss2&#038;p=512</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script Debugger 4.5.7</title>
		<link>http://blog.latenightsw.com/?p=503</link>
		<comments>http://blog.latenightsw.com/?p=503#comments</comments>
		<pubDate>Tue, 19 Jul 2011 15:08:34 +0000</pubDate>
		<dc:creator>Mark Alldritt</dc:creator>
				<category><![CDATA[AppleScript]]></category>
		<category><![CDATA[Late Night Software]]></category>
		<category><![CDATA[Script Debugger 4.5]]></category>

		<guid isPermaLink="false">http://blog.latenightsw.com/?p=503</guid>
		<description><![CDATA[Script Debugger 4.5.7 is a free maintenance release that addresses a series of issues that came to light following the release of Script Debugger 4.5.  Script Debugger 4.5.7 provides compatibility with Mac OS X 10.7 (Lion).]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pleased to announce the release of Script Debugger 4.5.7. Script Debugger 4.5.7 is a free maintenance release that addresses a series of issues that came to light following the release of Script Debugger 4.5.</p>

<p><a href="http://www.latenightsw.com/sd4/download.html">Download</a></p>

<p><a href="http://www.latenightsw.com/sd4/releaseNotes.html">Release Notes</a></p>

<p>Among the changes in the Script Debugger 4.5.7 maintenance release is a fix for crashing bug when opening or creating documents on Mac OS X 10.7 (Lion).</p>

<p>A big thank you to all the folks who downloaded the various Script Debugger 4.5.7 Beta builds.  I really appreciate all the great feedback and bug reports I received.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.latenightsw.com/?feed=rss2&#038;p=503</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.465 seconds -->
<!-- Cached page served by WP-Cache -->
