<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Stay Frosty</title><link>https://frosty.blog/</link><description>Recent content on Stay Frosty</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><copyright>© James Frost</copyright><lastBuildDate>Sun, 12 Jul 2026 00:12:00 +0100</lastBuildDate><atom:link href="https://frosty.blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Now</title><link>https://frosty.blog/now/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://frosty.blog/now/</guid><description>&lt;h1 id="now"&gt;Now&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;What I&amp;rsquo;m focused on at the moment. (This is a &lt;a href="https://nownownow.com/about"&gt;now page&lt;/a&gt;.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Last updated: July 2026&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Revamping this website and moving off WordPress!&lt;/p&gt;
&lt;h2 id="life--work"&gt;Life &amp;amp; Work&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I&amp;rsquo;m living near Bristol, UK with my wonderful family.&lt;/li&gt;
&lt;li&gt;Working as an iOS and Mac developer at DuckDuckGo, working on their native web browsers for those platforms. It&amp;rsquo;s such a fantastic company, with privacy at the core of everything we do.&lt;/li&gt;
&lt;li&gt;Reducing my phone usage, and reading more. A lot more!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hobbies"&gt;Hobbies&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Rehearsing for a production of Wyrd Sisters (based on the Discworld book) with &lt;a href="https://www.sodburyplayers.org.uk/"&gt;Sodbury Players&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Building an app to help actors learn their lines. Hoping to bring in some testers soon.&lt;/li&gt;
&lt;li&gt;Still 3D printing. Recently, a lot of it has been for props for Sodbury Players shows. I love making props! The group did a production of Cluedo back in May and I made a bunch of the murder weapons, which was fun.&lt;/li&gt;
&lt;li&gt;I love the idea of photography and like collecting cameras, but I&amp;rsquo;m not taking many photos right now that aren&amp;rsquo;t on a phone. Trying to get better at carrying a proper camera with me.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="media"&gt;Media&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve been thinking a lot recently about owning my own content. I&amp;rsquo;m getting fed up with having many many subscriptions and yet not owning anything, as well as restrictions on content I do &amp;lsquo;own&amp;rsquo; such as Kindle books. To this end:&lt;/p&gt;</description><content:encoded><![CDATA[<h1 id="now">Now</h1>
<p><em>What I&rsquo;m focused on at the moment. (This is a <a href="https://nownownow.com/about">now page</a>.)</em></p>
<p><strong>Last updated: July 2026</strong></p>
<p>Revamping this website and moving off WordPress!</p>
<h2 id="life--work">Life &amp; Work</h2>
<ul>
<li>I&rsquo;m living near Bristol, UK with my wonderful family.</li>
<li>Working as an iOS and Mac developer at DuckDuckGo, working on their native web browsers for those platforms. It&rsquo;s such a fantastic company, with privacy at the core of everything we do.</li>
<li>Reducing my phone usage, and reading more. A lot more!</li>
</ul>
<h2 id="hobbies">Hobbies</h2>
<ul>
<li>Rehearsing for a production of Wyrd Sisters (based on the Discworld book) with <a href="https://www.sodburyplayers.org.uk/">Sodbury Players</a>.</li>
<li>Building an app to help actors learn their lines. Hoping to bring in some testers soon.</li>
<li>Still 3D printing. Recently, a lot of it has been for props for Sodbury Players shows. I love making props! The group did a production of Cluedo back in May and I made a bunch of the murder weapons, which was fun.</li>
<li>I love the idea of photography and like collecting cameras, but I&rsquo;m not taking many photos right now that aren&rsquo;t on a phone. Trying to get better at carrying a proper camera with me.</li>
</ul>
<h2 id="media">Media</h2>
<p>I&rsquo;ve been thinking a lot recently about owning my own content. I&rsquo;m getting fed up with having many many subscriptions and yet not owning anything, as well as restrictions on content I do &lsquo;own&rsquo; such as Kindle books. To this end:</p>
<ul>
<li>I&rsquo;ve been exploring regular local music playing apps, as alternatives to Spotify and Apple Music</li>
<li>I&rsquo;m trying out Immich, a self-hosted photo management tool. I&rsquo;ve been really impressed so far.</li>
<li>I&rsquo;m now buying my ebooks from <a href="https://www.kobo.com/gb/en">Kobo</a> instead of Amazon<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, I&rsquo;ve cancelled my Audible account, and back in May, I picked up a Kobo Clara BW e-reader to replace my Kindle – I love it, and it&rsquo;s given my reading a huge boost. From reading maybe one or two books last year, I&rsquo;m now on my 13th book in ~2.5 months!</li>
</ul>
<h4 id="top-recent-reads">Top recent reads:</h4>
<ul>
<li><a href="https://hardcover.app/books/piranesi">Piranesi</a> by Susanna Clarke – this has instantly become one of my favourite books of all time.</li>
<li>I discovered the <a href="https://hardcover.app/series/ernest-cunningham-benjamin-stevenson">Everyone In My Family Has Killed Someone / Ernest Cunningham</a> series by Benjamin Stevenson. Really great &lsquo;fair play&rsquo; murder mysteries. I&rsquo;ve read two of them and have another two to go.</li>
<li><a href="https://hardcover.app/books/bookshops-bonedust">Bookshops &amp; Bonedust</a> by Travis Baldree – I&rsquo;m really loving the <a href="https://hardcover.app/series/legends-lattes">Legends and Lattes</a> series, and I think I even preferred this to the first book. Trying to pace myself before picking up the next.</li>
<li><a href="https://hardcover.app/books/the-seven-husbands-of-evelyn-hugo">The Seven Husbands of Evelyn Hugo</a> by Taylor Jenkins Reid – I&rsquo;d heard lots of people raving about this one, and now I totally see why. Fantastic book.</li>
</ul>
<h3 id="games">Games</h3>
<ul>
<li>I haven&rsquo;t actually been playing many games recently. I just finished <a href="https://ioi.dk/007firstlightgame">007: First Light</a>, which was excellent. I love IOI&rsquo;s Hitman series, and they&rsquo;ve really knocked it out of the park with this one.</li>
<li>Also just picked up <a href="https://www.nintendo.com/en-gb/Games/Nintendo-Switch-2-games/Star-Fox-3094728.html">Star Fox</a> for the Switch 2. I spent so much time as a kid playing Lylat Wars on the N64, so seeing it reimagined with modern graphics is wild.</li>
<li>Waiting to hear more about the Ocarina of Time remake!</li>
<li>Was hoping to pick up a Steam Machine, but sadly didn&rsquo;t make the list.</li>
</ul>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Amazon&rsquo;s Kindle policies have become increasingly user-hostile: many old Kindle models have now been retired (so they can no longer download new books), and you can no longer download books that you&rsquo;ve already paid for to your computer.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Uses</title><link>https://frosty.blog/uses/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://frosty.blog/uses/</guid><description>&lt;h1 id="uses"&gt;Uses&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;Software, hardware, and gear I like and use. (Inspired by &lt;a href="https://uses.tech"&gt;uses.tech&lt;/a&gt;.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Last updated: July 2026&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="hardware"&gt;Hardware&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Phone:&lt;/strong&gt; I switched to Android last year after being on iOS since the iPhone 3G, and it&amp;rsquo;s been really fun exploring the plethora of options available. Currently using a &lt;a href="https://store.google.com/product/pixel_9a?hl=en-US"&gt;Google Pixel 9a&lt;/a&gt; with &lt;a href="https://niagaralauncher.com/"&gt;Niagara Launcher&lt;/a&gt;, cut down to only essential apps. But I also occasionally switch to a &lt;a href="https://nothing.tech/products/phone-3a"&gt;Nothing Phone (3a)&lt;/a&gt; or a &lt;a href="https://www.samsung.com/us/smartphones/galaxy-z-flip7/"&gt;Samsung Galaxy Z Flip7&lt;/a&gt;. They&amp;rsquo;re all great in different ways.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Headphones:&lt;/strong&gt; &lt;a href="https://nothing.tech/"&gt;Nothing Headphone (1)&lt;/a&gt; for over-ears, and &lt;a href="https://nothing.tech/products/ear-a"&gt;Nothing Ear (a)&lt;/a&gt; for buds. I love Nothing&amp;rsquo;s design language.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="software-and-services"&gt;Software and Services&lt;/h2&gt;
&lt;h3 id="daily-tools"&gt;Daily tools&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Web browser and search engine:&lt;/strong&gt; &lt;a href="https://duckduckgo.com/"&gt;DuckDuckGo&lt;/a&gt;, of course — it&amp;rsquo;s what I work on for my day job, and it&amp;rsquo;s private!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="https://www.fastmail.com/"&gt;Fastmail&lt;/a&gt;. I moved from Gmail several years ago and have been really pleased with Fastmail – fast, no-nonsense, and private.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Password management:&lt;/strong&gt; &lt;a href="https://1password.com/"&gt;1Password&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Notes:&lt;/strong&gt; &lt;a href="https://obsidian.md/"&gt;Obsidian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tasks:&lt;/strong&gt; &lt;a href="https://ticktick.com/"&gt;TickTick&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Android launcher:&lt;/strong&gt; &lt;a href="https://niagaralauncher.com/"&gt;Niagara Launcher&lt;/a&gt;. Super customizable and minimal, but still really fast to launch any app.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="media"&gt;Media&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Podcasts:&lt;/strong&gt; &lt;a href="https://pocketcasts.com/"&gt;Pocket Casts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Music:&lt;/strong&gt; Currently &lt;a href="https://www.spotify.com/"&gt;Spotify&lt;/a&gt; and &lt;a href="https://music.apple.com/"&gt;Apple Music&lt;/a&gt;, though lately I&amp;rsquo;ve been feeling the pull to own my own music again so I&amp;rsquo;ve been testing regular music player apps. Haven&amp;rsquo;t settled on one yet though!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Music for focus:&lt;/strong&gt; &lt;a href="https://endel.io/"&gt;Endel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Books:&lt;/strong&gt; I&amp;rsquo;m mostly buying from the &lt;a href="https://www.kobo.com/"&gt;Kobo Store&lt;/a&gt; after recently moving away from Amazon (which feels GREAT). I&amp;rsquo;d use &lt;a href="https://bookshop.org/"&gt;Bookshop.org&lt;/a&gt; too, but their DRM is currently more restrictive, so I can&amp;rsquo;t read those books on my readers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audiobooks:&lt;/strong&gt; I used &lt;a href="https://www.audible.com/"&gt;Audible&lt;/a&gt; for many years, but again: owned by Amazon. I haven&amp;rsquo;t needed to buy more audiobooks recently, but I&amp;rsquo;m keen to try &lt;a href="https://xigxag.co.uk/"&gt;xigxag&lt;/a&gt; and &lt;a href="https://libro.fm/"&gt;Libro.fm&lt;/a&gt; as Audible alternatives.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="utilities"&gt;Utilities&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Photos:&lt;/strong&gt; I&amp;rsquo;ve historically used &lt;a href="https://www.apple.com/ios/photos/"&gt;Apple Photos&lt;/a&gt;, but I&amp;rsquo;m currently trialling self-hosting &lt;a href="https://immich.app/"&gt;Immich&lt;/a&gt; – partly to own my own data, and partly to make it easier keeping things in sync between Android and iOS. I&amp;rsquo;ve been really impressed with it so far.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Peer-to-peer local file transfers (like AirDrop):&lt;/strong&gt; &lt;a href="https://localsend.org/"&gt;LocalSend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identifying birdsong:&lt;/strong&gt; &lt;a href="https://merlin.allaboutbirds.org/"&gt;Merlin Bird ID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;iMessage on Android:&lt;/strong&gt; &lt;a href="https://openbubbles.com/"&gt;OpenBubbles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Git client:&lt;/strong&gt; I had been using &lt;a href="https://gitup.co/"&gt;GitUp&lt;/a&gt;, but it kept crashing and having issues with slowdown. I&amp;rsquo;m currently using &lt;a href="https://www.sublimemerge.com/"&gt;Sublime Merge&lt;/a&gt;, but I don&amp;rsquo;t love it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminal&lt;/strong&gt;: &lt;a href="https://ghostty.org/"&gt;Ghostty&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="desk--everyday-carry"&gt;Desk &amp;amp; everyday carry&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;E-readers:&lt;/strong&gt; &lt;a href="https://gb.kobobooks.com/products/kobo-clara-bw"&gt;Kobo Clara BW&lt;/a&gt;, and I just picked up the &lt;a href="https://www.xteink.com/products/xteink-x3"&gt;XTeink X3&lt;/a&gt; and &lt;a href="https://www.xteink.com/products/xteink-x4"&gt;XTeink X4&lt;/a&gt; to try out.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Camera:&lt;/strong&gt; &lt;a href="https://www.ricoh-imaging.co.jp/english/products/gr-3/"&gt;Ricoh GR III&lt;/a&gt; and an older &lt;a href="https://explore.omsystem.com/us/en/om-d-e-m10-mark-iv"&gt;OM-D E-M10 Mark IV&lt;/a&gt;. I also just picked up a &lt;a href="https://joinflashback.co"&gt;Flashback One35 V2&lt;/a&gt;, but it hasn&amp;rsquo;t arrived yet.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wallet:&lt;/strong&gt; &lt;a href="https://www.trove.cc/"&gt;Trove&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Everyday sling bag:&lt;/strong&gt; &lt;a href="https://www.tomtoc.com/products/aviator-t33-chest-bag-l"&gt;tomtoc Aviator-T33 Chest Bag 3.5L&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Micro-tool:&lt;/strong&gt; &lt;a href="https://gerbergear.com/products/dime-black-30-000469n"&gt;Gerber Dime&lt;/a&gt;. I preferred my old &lt;a href="https://www.leatherman.com/pages/retired-products"&gt;Leatherman Squirt PS4&lt;/a&gt;, but they don&amp;rsquo;t make them any more.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3D printer&lt;/strong&gt;: &lt;a href="https://bambulab.com/en/p1"&gt;Bambu Lab P1S&lt;/a&gt;. It&amp;rsquo;s been brilliant – effortlessly good prints with minimal maintenance.&lt;/li&gt;
&lt;/ul&gt;</description><content:encoded><![CDATA[<h1 id="uses">Uses</h1>
<p><em>Software, hardware, and gear I like and use. (Inspired by <a href="https://uses.tech">uses.tech</a>.)</em></p>
<p><strong>Last updated: July 2026</strong></p>
<h2 id="hardware">Hardware</h2>
<ul>
<li><strong>Phone:</strong> I switched to Android last year after being on iOS since the iPhone 3G, and it&rsquo;s been really fun exploring the plethora of options available. Currently using a <a href="https://store.google.com/product/pixel_9a?hl=en-US">Google Pixel 9a</a> with <a href="https://niagaralauncher.com/">Niagara Launcher</a>, cut down to only essential apps. But I also occasionally switch to a <a href="https://nothing.tech/products/phone-3a">Nothing Phone (3a)</a> or a <a href="https://www.samsung.com/us/smartphones/galaxy-z-flip7/">Samsung Galaxy Z Flip7</a>. They&rsquo;re all great in different ways.</li>
<li><strong>Headphones:</strong> <a href="https://nothing.tech/">Nothing Headphone (1)</a> for over-ears, and <a href="https://nothing.tech/products/ear-a">Nothing Ear (a)</a> for buds. I love Nothing&rsquo;s design language.</li>
</ul>
<h2 id="software-and-services">Software and Services</h2>
<h3 id="daily-tools">Daily tools</h3>
<ul>
<li><strong>Web browser and search engine:</strong> <a href="https://duckduckgo.com/">DuckDuckGo</a>, of course — it&rsquo;s what I work on for my day job, and it&rsquo;s private!</li>
<li><strong>Email:</strong> <a href="https://www.fastmail.com/">Fastmail</a>. I moved from Gmail several years ago and have been really pleased with Fastmail – fast, no-nonsense, and private.</li>
<li><strong>Password management:</strong> <a href="https://1password.com/">1Password</a></li>
<li><strong>Notes:</strong> <a href="https://obsidian.md/">Obsidian</a></li>
<li><strong>Tasks:</strong> <a href="https://ticktick.com/">TickTick</a></li>
<li><strong>Android launcher:</strong> <a href="https://niagaralauncher.com/">Niagara Launcher</a>. Super customizable and minimal, but still really fast to launch any app.</li>
</ul>
<h3 id="media">Media</h3>
<ul>
<li><strong>Podcasts:</strong> <a href="https://pocketcasts.com/">Pocket Casts</a></li>
<li><strong>Music:</strong> Currently <a href="https://www.spotify.com/">Spotify</a> and <a href="https://music.apple.com/">Apple Music</a>, though lately I&rsquo;ve been feeling the pull to own my own music again so I&rsquo;ve been testing regular music player apps. Haven&rsquo;t settled on one yet though!</li>
<li><strong>Music for focus:</strong> <a href="https://endel.io/">Endel</a></li>
<li><strong>Books:</strong> I&rsquo;m mostly buying from the <a href="https://www.kobo.com/">Kobo Store</a> after recently moving away from Amazon (which feels GREAT). I&rsquo;d use <a href="https://bookshop.org/">Bookshop.org</a> too, but their DRM is currently more restrictive, so I can&rsquo;t read those books on my readers.</li>
<li><strong>Audiobooks:</strong> I used <a href="https://www.audible.com/">Audible</a> for many years, but again: owned by Amazon. I haven&rsquo;t needed to buy more audiobooks recently, but I&rsquo;m keen to try <a href="https://xigxag.co.uk/">xigxag</a> and <a href="https://libro.fm/">Libro.fm</a> as Audible alternatives.</li>
</ul>
<h3 id="utilities">Utilities</h3>
<ul>
<li><strong>Photos:</strong> I&rsquo;ve historically used <a href="https://www.apple.com/ios/photos/">Apple Photos</a>, but I&rsquo;m currently trialling self-hosting <a href="https://immich.app/">Immich</a> – partly to own my own data, and partly to make it easier keeping things in sync between Android and iOS. I&rsquo;ve been really impressed with it so far.</li>
<li><strong>Peer-to-peer local file transfers (like AirDrop):</strong> <a href="https://localsend.org/">LocalSend</a></li>
<li><strong>Identifying birdsong:</strong> <a href="https://merlin.allaboutbirds.org/">Merlin Bird ID</a></li>
<li><strong>iMessage on Android:</strong> <a href="https://openbubbles.com/">OpenBubbles</a></li>
<li><strong>Git client:</strong> I had been using <a href="https://gitup.co/">GitUp</a>, but it kept crashing and having issues with slowdown. I&rsquo;m currently using <a href="https://www.sublimemerge.com/">Sublime Merge</a>, but I don&rsquo;t love it.</li>
<li><strong>Terminal</strong>: <a href="https://ghostty.org/">Ghostty</a></li>
</ul>
<h2 id="desk--everyday-carry">Desk &amp; everyday carry</h2>
<ul>
<li><strong>E-readers:</strong> <a href="https://gb.kobobooks.com/products/kobo-clara-bw">Kobo Clara BW</a>, and I just picked up the <a href="https://www.xteink.com/products/xteink-x3">XTeink X3</a> and <a href="https://www.xteink.com/products/xteink-x4">XTeink X4</a> to try out.</li>
<li><strong>Camera:</strong> <a href="https://www.ricoh-imaging.co.jp/english/products/gr-3/">Ricoh GR III</a> and an older <a href="https://explore.omsystem.com/us/en/om-d-e-m10-mark-iv">OM-D E-M10 Mark IV</a>. I also just picked up a <a href="https://joinflashback.co">Flashback One35 V2</a>, but it hasn&rsquo;t arrived yet.</li>
<li><strong>Wallet:</strong> <a href="https://www.trove.cc/">Trove</a></li>
<li><strong>Everyday sling bag:</strong> <a href="https://www.tomtoc.com/products/aviator-t33-chest-bag-l">tomtoc Aviator-T33 Chest Bag 3.5L</a></li>
<li><strong>Micro-tool:</strong> <a href="https://gerbergear.com/products/dime-black-30-000469n">Gerber Dime</a>. I preferred my old <a href="https://www.leatherman.com/pages/retired-products">Leatherman Squirt PS4</a>, but they don&rsquo;t make them any more.</li>
<li><strong>3D printer</strong>: <a href="https://bambulab.com/en/p1">Bambu Lab P1S</a>. It&rsquo;s been brilliant – effortlessly good prints with minimal maintenance.</li>
</ul>
]]></content:encoded></item><item><title>Projects</title><link>https://frosty.blog/projects/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://frosty.blog/projects/</guid><description>&lt;h1 id="projects"&gt;Projects&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;A collection of things I&amp;rsquo;ve made.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="software"&gt;Software&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Coming soon: Off Book, an app to help actors learn their lines.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="acting"&gt;Acting&lt;/h2&gt;
&lt;p&gt;I joined Sodbury Players in 2021 and developed a huge love of acting and being on stage. Since then, I&amp;rsquo;ve appeared in:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dracula&lt;/strong&gt; – Renfield&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Neville&amp;rsquo;s Island&lt;/strong&gt; – Roy&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Lady in the Van&lt;/strong&gt; – Alan Bennett&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Blackadder II&lt;/strong&gt; – Baldrick&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The Legend of Sleepy Hollow&lt;/strong&gt; – Van Ripper&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Treasure Island&lt;/strong&gt; (pantomime) – Musket (comedy duo)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cinderella&lt;/strong&gt; – Musty (ugly sister)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Robin Hood &amp;amp; Babes in the Wood&lt;/strong&gt; – Nurse Nellie (dame)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Aladdin&lt;/strong&gt; – Genie&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Snow White&lt;/strong&gt; – Pop (head dwarf)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prop-making"&gt;Prop-making&lt;/h2&gt;
&lt;p&gt;I love making props for shows! Some of my favourite creations have been:&lt;/p&gt;</description><content:encoded><![CDATA[<h1 id="projects">Projects</h1>
<p><em>A collection of things I&rsquo;ve made.</em></p>
<h2 id="software">Software</h2>
<ul>
<li>Coming soon: Off Book, an app to help actors learn their lines.</li>
</ul>
<h2 id="acting">Acting</h2>
<p>I joined Sodbury Players in 2021 and developed a huge love of acting and being on stage. Since then, I&rsquo;ve appeared in:</p>
<ul>
<li><strong>Dracula</strong> – Renfield</li>
<li><strong>Neville&rsquo;s Island</strong> – Roy</li>
<li><strong>The Lady in the Van</strong> – Alan Bennett</li>
<li><strong>Blackadder II</strong> – Baldrick</li>
<li><strong>The Legend of Sleepy Hollow</strong> – Van Ripper</li>
<li><strong>Treasure Island</strong> (pantomime) – Musket (comedy duo)</li>
<li><strong>Cinderella</strong> – Musty (ugly sister)</li>
<li><strong>Robin Hood &amp; Babes in the Wood</strong> – Nurse Nellie (dame)</li>
<li><strong>Aladdin</strong> – Genie</li>
<li><strong>Snow White</strong> – Pop (head dwarf)</li>
</ul>
<h2 id="prop-making">Prop-making</h2>
<p>I love making props for shows! Some of my favourite creations have been:</p>
<ul>
<li>Camping stove with gas ring LED effect</li>
<li>Toto dog rod puppet for a youth production of The Wizard of Oz</li>
<li>A giant glitterball costume, modelled around an inflatable gym ball</li>
<li>3D printed lego knight helmets for guards in Robin Hood</li>
<li>Cluedo weapons, including a candlestick, lead pipe, and realistic pipe attack prosthetic</li>
<li>Replica of the headless horseman&rsquo;s sword from the Sleepy Hollow movie</li>
</ul>
<h2 id="misc">Misc</h2>
<ul>
<li>I recently build a wearable moving &ldquo;Mad-Eye Moody&rdquo; eye for my son&rsquo;s World Book Day costume, using a tiny RP2040 board, a servo, and some 3D printed parts.</li>
</ul>
]]></content:encoded></item><item><title>Here We Go Again</title><link>https://frosty.blog/2026/07/12/here-we-go-again/</link><pubDate>Sun, 12 Jul 2026 00:12:00 +0100</pubDate><guid>https://frosty.blog/2026/07/12/here-we-go-again/</guid><description>&lt;p&gt;It’s been five years since my previous post, and it hasn’t aged well. Automattic and I parted ways last year, but I’m happy to say I’m now in a &lt;strong&gt;much&lt;/strong&gt; better place as an iOS and Mac developer at DuckDuckGo.&lt;/p&gt;
&lt;p&gt;With the rapid enshittification of the internet, I felt drawn to revive my personal website — so here I am. We need more one-off, quirky, custom websites to push back against algorithms, ads, and dopamine-hijacking short-form videos. This is my small contribution. Most of the posts here are likely embarrassingly outdated now, but hey – onwards and upwards.&lt;/p&gt;</description><content:encoded><![CDATA[<p>It’s been five years since my previous post, and it hasn’t aged well. Automattic and I parted ways last year, but I’m happy to say I’m now in a <strong>much</strong> better place as an iOS and Mac developer at DuckDuckGo.</p>
<p>With the rapid enshittification of the internet, I felt drawn to revive my personal website — so here I am. We need more one-off, quirky, custom websites to push back against algorithms, ads, and dopamine-hijacking short-form videos. This is my small contribution. Most of the posts here are likely embarrassingly outdated now, but hey – onwards and upwards.</p>
]]></content:encoded></item><item><title>Sabbatical</title><link>https://frosty.blog/2021/06/25/sabbatical/</link><pubDate>Fri, 25 Jun 2021 18:44:36 +0000</pubDate><guid>https://frosty.blog/2021/06/25/sabbatical/</guid><description>&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2021/06/ezgif-2-c55e9c25cae9-1.gif" alt="" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;I&amp;rsquo;m so grateful to work for such an incredible company as Automattic. Not only are they already very flexible around working schedules and time off (which has been incredibly helpful this past year), but once you&amp;rsquo;ve been at the company for 5 years &lt;a href="https://automattic.com/benefits/"&gt;you are encouraged&lt;/a&gt; to take a 2 - 3 month paid sabbatical. And that&amp;rsquo;s completely disconnecting: no Slack, no email, no communication, no work events. Just do whatever you want that&amp;rsquo;s not work related (psst, we&amp;rsquo;re &lt;a href="https://automattic.com/work-with-us/"&gt;always hiring&lt;/a&gt;).&lt;/p&gt;</description><content:encoded><![CDATA[<figure>
  <img src="/images/2021/06/ezgif-2-c55e9c25cae9-1.gif" alt="" loading="lazy">
</figure>
<p>I&rsquo;m so grateful to work for such an incredible company as Automattic. Not only are they already very flexible around working schedules and time off (which has been incredibly helpful this past year), but once you&rsquo;ve been at the company for 5 years <a href="https://automattic.com/benefits/">you are encouraged</a> to take a 2 - 3 month paid sabbatical. And that&rsquo;s completely disconnecting: no Slack, no email, no communication, no work events. Just do whatever you want that&rsquo;s not work related (psst, we&rsquo;re <a href="https://automattic.com/work-with-us/">always hiring</a>).</p>
<p>I&rsquo;ve now been at the company for 5 and a half years, and after the year that was 2020 I&rsquo;m very happy to be starting my sabbatical at the end of today, to recharge and unwind.</p>
<p>Here are some things I&rsquo;m hoping to do with the time away:</p>
<ul>
<li><strong>Disconnect!</strong> I&rsquo;ll certainly be disconnecting from anything work related, but because of that I&rsquo;ll also be spending far less time in front of a computer.</li>
<li><strong>Spend time with family.</strong> I&rsquo;m looking forward to spending more time with my young kids and my wife, as well as catching up on a lot of lost time from the past year with our extended family.</li>
<li><strong>Get fit!</strong> I started making an effort to get fit again earlier this year, but then I got ill for a couple of days and fell off the rails. Three months feels like a good amount of time to make a big dent here though, eating better and exercising regularly.</li>
<li><strong>Be more creative.</strong> I&rsquo;d like to make some time to do some more creative endeavours, like writing and drawing.</li>
<li><strong>Get away.</strong> Back when my wife and I first started discussing my sabbatical a couple of years ago, we had ideas of travelling around northern Europe; Sweden, Norway, Finland, Denmark. But with the pandemic still ongoing, we figured it would be easiest to stay close to home. We&rsquo;re got some breaks planned around the UK, to Devon, the Lake District, and York.</li>
<li><strong>Ride.</strong> I recently got an electric bike, which I&rsquo;m really enjoying riding. I&rsquo;d like to do some longer local rides!</li>
<li><strong>Gamedev.</strong> Game development has long been an aspirational hobby of mine, and I&rsquo;ve made some small games and entered game jams in the past. I&rsquo;ve started <a href="/2021/05/16/game-engine-investigations/">getting back into it over the last few months</a>, and while I do want to take more time away from the computer I&rsquo;d also like to continue learning and building some small games.</li>
<li><strong>Sleep.</strong> I haven’t been getting anywhere enough sleep recently (not because of work, I’m just terrible at going to sleep at the right time). The Apple Health app tells me that my average time asleep over the last month is 5 hours, so I’d like to improve that.</li>
<li><strong>Home improvements.</strong> Just some DIY tasks to do around the house that I always put off because the weekend&rsquo;s never long enough.</li>
</ul>
<p>And I think that&rsquo;s enough! I don&rsquo;t want to busy myself too much with goals, as the whole point is to take time out and unwind, but I also don&rsquo;t want to look back and the end and feel that I wasted the time. I&rsquo;ll report back when I return to work in late September!</p>
]]></content:encoded></item><item><title>Game Engine Investigations</title><link>https://frosty.blog/2021/05/16/game-engine-investigations/</link><pubDate>Sun, 16 May 2021 20:14:50 +0000</pubDate><guid>https://frosty.blog/2021/05/16/game-engine-investigations/</guid><description>&lt;p&gt;I’ve always been interested in game development. Some of the first code I ever wrote was typing BASIC game listings out of books into my BBC Micro and modifying them to fit my own ideas. Then came Windows 3.1 and countless hours noodling around with &lt;a href="https://youtu.be/LUTpumYboDs"&gt;Klik N Play&lt;/a&gt;, followed by DarkBASIC on Windows 95 or 98.&lt;/p&gt;
&lt;p&gt;Ten years ago I entered the popular &lt;a href="https://ldjam.com"&gt;Ludum Dare&lt;/a&gt; game jam (creating a game in just 48 or 72 hours). I made a tiny Indiana Jones-esque temple escape game called &lt;a href="https://web.archive.org/web/20210117135329/http://ludumdare.com/compo/ludum-dare-21/"&gt;Daring Do&lt;/a&gt;, which unfortunately isn’t playable today as I used ActionScript and Flash as my technologies of choice and we all know how that ended up. Nonetheless, I ranked #16 out of 90 entries which I don’t think was too bad as my first ‘proper’ effect.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I’ve always been interested in game development. Some of the first code I ever wrote was typing BASIC game listings out of books into my BBC Micro and modifying them to fit my own ideas. Then came Windows 3.1 and countless hours noodling around with <a href="https://youtu.be/LUTpumYboDs">Klik N Play</a>, followed by DarkBASIC on Windows 95 or 98.</p>
<p>Ten years ago I entered the popular <a href="https://ldjam.com">Ludum Dare</a> game jam (creating a game in just 48 or 72 hours). I made a tiny Indiana Jones-esque temple escape game called <a href="https://web.archive.org/web/20210117135329/http://ludumdare.com/compo/ludum-dare-21/">Daring Do</a>, which unfortunately isn’t playable today as I used ActionScript and Flash as my technologies of choice and we all know how that ended up. Nonetheless, I ranked #16 out of 90 entries which I don’t think was too bad as my first ‘proper’ effect.</p>
<p>Recently I’ve wanted to get back into doing some game dev as a hobby. I’m only really interested in 2D right now as it’s just where I have more interest. I’ve dabbled with Unity a couple of times in the past but I’ve never built anything of much substance, so I’ve decided to spend a couple of weeks getting to know what’s possible with some of the most popular game engines out there today:</p>
<ul>
<li><a href="https://unity.com">Unity</a></li>
<li><a href="https://godotengine.org">Godot</a></li>
<li><a href="https://www.yoyogames.com/en/gamemaker">GameMaker Studio 2</a></li>
<li>Possibly a <a href="https://haxe.org">Haxe</a>-based framework such as <a href="https://haxeflixel.com">HaxeFlixel</a> or <a href="https://heaps.io">Heaps</a></li>
</ul>
<p>I’m planning to take up to a week getting to know the basics of each engine, then build a very small 2D platformer – which can literally just be one or two screens. At the least I’d like to get an understanding of:</p>
<ul>
<li>How good their 2D support is (and in particular pixel art support)</li>
<li>Creating a basic character controller</li>
<li>Importing assets, creating tilemaps, and animating sprites</li>
<li>Scripting and communicating between different components</li>
<li>Support for effects like 2D lighting, shaders, and particle effects</li>
</ul>
<p>This first week I’ve been looking at Godot, and I’ve really been loving it so far. More soon!</p>
]]></content:encoded></item><item><title>Original Game Boy Backlight Mod</title><link>https://frosty.blog/2020/08/30/original-game-boy-backlight-mod/</link><pubDate>Sun, 30 Aug 2020 09:48:12 +0000</pubDate><guid>https://frosty.blog/2020/08/30/original-game-boy-backlight-mod/</guid><description>&lt;p&gt;Following my &lt;a href="https://frosty.blog/2020/08/13/game-boy-advance-screen-upgrade/"&gt;Game Boy Advance screen mod&lt;/a&gt;, I decided to try modding an original Game Boy.&lt;/p&gt;
&lt;p&gt;There are several screen mods available for the original Game Boy&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;. Just like with the Game Boy Advance there are IPS screens available, which give you the best image quality. You can also keep the original screen but add a backlight to it, which is what I opted to do. This is much cheaper, and also gives a result closer to the look of the original display.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Following my <a href="/2020/08/13/game-boy-advance-screen-upgrade/">Game Boy Advance screen mod</a>, I decided to try modding an original Game Boy.</p>
<p>There are several screen mods available for the original Game Boy<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. Just like with the Game Boy Advance there are IPS screens available, which give you the best image quality. You can also keep the original screen but add a backlight to it, which is what I opted to do. This is much cheaper, and also gives a result closer to the look of the original display.</p>
<h3 id="supplies">Supplies</h3>
<p>The first thing I needed was a Game Boy! My brother and I had a yellow ‘Play It Loud’ edition when we were younger, which came bundled with a yellow Donkey Kong Land game cartridge. Unfortunately while I have our original games, I’ve been unable to find the Game Boy itself – so I bought another on eBay:</p>
<div class="gallery">
<figure>
  <a href="/images/2020/09/img_4013-scaled.jpg"><img src="/images/2020/09/img_4013-scaled-1600.jpg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/09/img_4021-scaled.jpg"><img src="/images/2020/09/img_4021-scaled-1600.jpg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/09/img_4020-scaled.jpg"><img src="/images/2020/09/img_4020-scaled-1600.jpg" alt="" loading="lazy"></a>
</figure>
</div>
<p>Except for needing a bit of a clean and having a few small scratches on the screen, it was in very good condition.</p>
<p>Next, I picked up a <a href="http://www.deadpanrobot.co.uk/lemon-yellow-pro-backlight-kit-dmg-lcd-pro-lemon-yellow">‘lemon yellow’ backlight kit</a> from Deadpan Robot, as well as a <a href="http://www.deadpanrobot.co.uk/bivert-mod-custom-circuit-board-for-nintendo-game-boy-bivert-board-deadpan">bivert chip</a>. Just adding a backlight makes the screen brighter, but it also washes out the picture. A bivert chip inverts the pixels and in turn increases the contrast. It’s recommended to install one if you’re adding a backlight.</p>
<h3 id="the-mod">The Mod</h3>
<p>The first step was to disassemble the unit. I also washed the casing, buttons, and silicon pads with mild soapy water.</p>
<div class="gallery">
<figure>
  <img src="/images/2020/09/A6F9EB80-D9EF-4C39-BBDA-E2B656962293_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<figure>
  <img src="/images/2020/09/879C8F01-C6E1-4B13-8880-AFA6D0509377_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<figure>
  <img src="/images/2020/09/875ADF9A-B91E-41F5-9311-8BE0D439F708_1_105_c.jpeg" alt="" loading="lazy">
</figure>
</div>
<p>And here’s the screen itself:</p>
<figure>
  <img src="/images/2020/09/0E4CB5FA-F1F1-43A2-9623-536AF0D53B60_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<p>To install the backlight unit, you first need to remove the existing reflective backing and polarizer from the screen. This proved to be quite tricky. At first I was just scraping the foil off, nervous of damaging the screen, but then I got more confident and managed to get a craft knife underneath the polarizer layer. This made it easier to peel the whole thing off in one go.</p>
<div class="gallery">
<figure>
  <img src="/images/2020/09/CAD263F3-2372-457A-9D7B-7B03D91D3518_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<figure>
  <img src="/images/2020/09/44DC5BF4-F091-4497-A401-F40DE4038809_1_105_c.jpeg" alt="" loading="lazy">
</figure>
</div>
<p>The thing that makes it particularly difficult is that the screen remains attached by a very delicate ribbon cable, so access is tricky. After peeling the polarizer off, I cleaned off the remaining glue with some isopropyl alcohol.</p>
<div class="gallery">
<figure>
  <img src="/images/2020/09/82F0BEF3-D97A-42CC-B757-C7D66F0A2A6F_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<figure>
  <img src="/images/2020/09/BAB7ACE1-FF40-4736-8BA8-7A4D8A566236_1_105_c.jpeg" alt="" loading="lazy">
</figure>
</div>
<p>The new backlight panel (a piece of plastic with some LEDs attached to the bottom) slides in behind the LCD, and the polarizer goes in between. You have to make sure the polarizer is rotated the right way so that the pixels will be visible. The guide I was following also recommended lightly dusting the polarizer with baby powder or diatomaceous earth to avoid it sticking to the screen.</p>
<p>Finally, the two wires coming from the backlight panel needed soldering to the main board along with a resistor.</p>
<p>Next, I installed the bivert chip. To do this, you need to desolder and disconnect two pins on the screen cable connector, insert the board underneath, and resolder it. At first I miscounted and lifted the wrong pin, so I tried resoldering it as best I could, crossed my fingers, and finished the installation.</p>
<div class="gallery">
<figure>
  <img src="/images/2020/09/EA23B9A1-D4DB-4BAF-8FEC-CEFB7826CDEC_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<figure>
  <img src="/images/2020/09/6ECC362C-B8B6-42A1-A7F4-72E9754DDDCA_1_105_c.jpeg" alt="" loading="lazy">
</figure>
</div>
<p>I powered it up and there was light! But no picture 😬</p>
<figure>
  <img src="/images/2020/09/21FA0102-1960-4E77-B9FA-69D2CAE24CDD_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<h3 id="troubleshooting">Troubleshooting</h3>
<p>I knew the Game Boy as a whole was still working correctly, as I could hear the audio for the game. I guessed that the culprit was either my shoddy soldering on the bivert chip (turns out soldering is harder than I remember!), or I didn&rsquo;t repair the damage correctly when I lifted the wrong pin.</p>
<p>It turned out to be a combination of both. After some testing with a multimeter (and a lot of help from <a href="https://twitter.com/SofaRacing">@SofaRacing</a> and <a href="https://twitter.com/elsmorian">@elsmorian</a>), I discovered that one of the solder connections on the bivert board wasn&rsquo;t making contact properly (so I re-did it), and also that there was no connection between the pin I lifted and its intended destination.</p>
<p>To work around this I added a new wire that ran from the pin, over the top of the board, to the other side. I couldn&rsquo;t help but think about the similarities with writing software as I was debugging the issue and fitting my workaround.</p>
<div class="gallery">
<figure>
  <img src="/images/2020/09/7A26434E-0E39-4FE6-A78F-B30A7605DCF3_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<figure>
  <img src="/images/2020/09/67AF65F1-A381-41A9-A1D1-2275E5A2BE10_1_105_c.jpeg" alt="" loading="lazy">
</figure>
</div>
<p>I turned the unit back on, and there was a picture! Tetris looked great with the backlight:</p>
<div class="gallery">
<figure>
  <img src="/images/2020/09/ECF65D37-B075-40BC-98B0-8791054AE0B5_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<figure>
  <img src="/images/2020/09/E977B210-2A82-40C6-A8F0-372839396E08_1_105_c.jpeg" alt="" loading="lazy">
</figure>
</div>
<h3 id="wrapping-up">Wrapping up</h3>
<p>I finished things up with a new glass screen lens, and new start and select buttons to match the cyan border around the screen.</p>
<p>It wasn&rsquo;t the neatest installation, but I was pretty happy for my first attempt. The finished device looks great.</p>
<div class="gallery">
<figure>
  <img src="/images/2020/09/F38DC90F-D17B-4952-A192-410194C0A9A2_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<figure>
  <img src="/images/2020/09/608D0B2E-B4B6-4645-BA3C-A1F1422D3FAC_1_105_c.jpeg" alt="" loading="lazy">
</figure>
</div>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Also known as the DMG because of its model number: DMG-01. DMG stands for Dot Matrix Game.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Game Boy Advance Screen Upgrade</title><link>https://frosty.blog/2020/08/13/game-boy-advance-screen-upgrade/</link><pubDate>Thu, 13 Aug 2020 13:55:32 +0000</pubDate><guid>https://frosty.blog/2020/08/13/game-boy-advance-screen-upgrade/</guid><description>&lt;p&gt;The original Game Boy Advance screen is so dim that it’s hard to see it property even in a brightly lit room. I remember as a kid mostly playing with a special external light that clipped around the case. It had two arms that shone light down onto the display. Even with that, it still wasn’t great!&lt;/p&gt;
&lt;p&gt;It also has a kind of ‘&lt;a href="https://en.m.wikipedia.org/wiki/Screen-door_effect"&gt;screen door effect&lt;/a&gt;’ between the pixels, so it looks pretty grainy.&lt;/p&gt;</description><content:encoded><![CDATA[<p>The original Game Boy Advance screen is so dim that it’s hard to see it property even in a brightly lit room. I remember as a kid mostly playing with a special external light that clipped around the case. It had two arms that shone light down onto the display. Even with that, it still wasn’t great!</p>
<p>It also has a kind of ‘<a href="https://en.m.wikipedia.org/wiki/Screen-door_effect">screen door effect</a>’ between the pixels, so it looks pretty grainy.</p>
<div class="gallery">
<figure>
  <a href="/images/2020/08/img_3659-scaled.jpg"><img src="/images/2020/08/img_3659-scaled-1600.jpg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/08/img_3658-scaled.jpg"><img src="/images/2020/08/img_3658-scaled-1600.jpg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/08/img_3660-scaled.jpg"><img src="/images/2020/08/img_3660-scaled-1600.jpg" alt="" loading="lazy"></a>
</figure>
</div>
<p>I still love playing retro games from time to time, so I recently kitted out my Advance with an upgrade.</p>
<p>There have been a number of screen mods available for the GBA over the years. For a long time, the best improvement was to switch the screen out for the backlit screen that’s used in the Game Boy Advance SP. More recently, a better alternative has emerged: a large, even brighter IPS LCD panel.</p>
<p>The larger LCD requires some areas of the inner case to be cut out to make space for it. I didn’t fancy trying to do that, so I ordered a special pre-trimmed shell from <a href="https://retrosix.co.uk/">RetroSix</a>, along with the screen kit. RetroSix manufacture their own GBA shells ready for the new LCD (they said most aftermarket shells aren&rsquo;t very high quality), along with optional modifications to fit a USB-C battery pack. If you&rsquo;re in the US, I&rsquo;ve heard that <a href="https://www.retromodding.com/">Retro Modding</a> are a good parts supplier.</p>
<h3 id="installation">Installation</h3>
<p>Installation involved opening up the Game Boy, disconnecting the screen and discarding the old shell, connecting the new screen, mounting it with adhesive and a 3D printed bracket (to get the correct positioning), screwing it all back together, and installing a new glass lens over the top.</p>
<figure>
  <img src="/images/2020/08/DBA0F3E0-A550-463B-9C00-126E599E70D5_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<p>RetroSix&rsquo;s own instructions were fairly barebones, but I found a couple of different tutorials online that helped to guide me through it. The most problematic parts were:</p>
<ul>
<li>Correctly aligning the screen when installing it. Now that it&rsquo;s complete, I can&rsquo;t help noticing that it&rsquo;s a <em>fraction</em> of a millimetre down on one side.</li>
<li>Installing both the screen and the glass lens without getting any dust in between them. I did a decent job, but I can see one tiny speck under there. I think compressed air could help here.</li>
<li>The 3D printed bracket wasn&rsquo;t super precise. I had to file down some parts of it, and I ended up removing one piece altogether as it was pressing into the back of the screen and causing a light area to appear.</li>
</ul>
<p>Overall though, I&rsquo;m very happy with the outcome!</p>
<figure>
  <img src="/images/2020/08/768AEACF-DBB6-4295-A4A8-516B21BF68C5_1_105_c.jpeg" alt="" loading="lazy">
</figure>
<h3 id="screen">Screen++</h3>
<p>The screen is just in a different class to the original. It&rsquo;s really bright, very clear, and has nice vibrant colours. The RetroSix shell is also very good, although I wouldn&rsquo;t say <em>quite</em> the same quality of the original – it doesn&rsquo;t feel as solid, perhaps. I love the gold holographic detail on the screen lens.</p>
<p>Here&rsquo;s some very short videos showing each screen in action:</p>
<figure class="video-embed">
  <video controls loop muted playsinline preload="metadata">
    <source src="/videos/gba-before.mp4" type="video/mp4">
    Your browser doesn't support embedded video.
  </video>
  <figcaption><p>Before...</p></figcaption>
</figure>

<figure class="video-embed">
  <video controls loop muted playsinline preload="metadata">
    <source src="/videos/gba-after.mp4" type="video/mp4">
    Your browser doesn't support embedded video.
  </video>
  <figcaption><p>And after!</p></figcaption>
</figure>

<p>It&rsquo;s also possible to solder in a couple of extra wires to allow for setting the brightness level of the screen by holding a couple of buttons down. I don&rsquo;t currently own a soldering iron, so I&rsquo;m saving this for another day!</p>
]]></content:encoded></item><item><title>Four Great Games</title><link>https://frosty.blog/2020/07/03/four-great-games/</link><pubDate>Fri, 03 Jul 2020 13:05:08 +0000</pubDate><guid>https://frosty.blog/2020/07/03/four-great-games/</guid><description>&lt;p&gt;Here are four games I played recently that I really enjoyed. Two short, two longer.&lt;/p&gt;
&lt;h3 id="a-short-hike"&gt;&lt;a href="https://ashorthike.com/"&gt;A Short Hike&lt;/a&gt;&lt;/h3&gt;
&lt;figure&gt;
 &lt;img src="https://ashorthike.com/press/images/banner2.png" alt="Banner showing the logo of the game A Short Hike, and the main character (a bird) looking up into the distance" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;&lt;a href="https://ashorthike.com/"&gt;A Short Hike&lt;/a&gt; is a small and delightful game in which you hike to the top of Hawk Peak provincial park. Follow the trails or go off the beaten track, meet other hikers, find some collectables, and just unwind for a couple of hours.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Here are four games I played recently that I really enjoyed. Two short, two longer.</p>
<h3 id="a-short-hike"><a href="https://ashorthike.com/">A Short Hike</a></h3>
<figure>
  <img src="https://ashorthike.com/press/images/banner2.png" alt="Banner showing the logo of the game A Short Hike, and the main character (a bird) looking up into the distance" loading="lazy">
</figure>
<p><a href="https://ashorthike.com/">A Short Hike</a> is a small and delightful game in which you hike to the top of Hawk Peak provincial park. Follow the trails or go off the beaten track, meet other hikers, find some collectables, and just unwind for a couple of hours.</p>
<p>It has really charming 3DS-style low resolution graphics and a fantastic chilled out soundtrack. A lovely little experience!</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/qsA5p0MKdoM?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>

<hr>
<h3 id="lonely-mountains-downhill"><a href="https://lonelymountains.com/">Lonely Mountains: Downhill</a></h3>
<figure>
  <img src="/images/2020/07/LMD_Keyartwork_withLogo_1920x1080.png" alt="" loading="lazy">
</figure>
<p><a href="https://lonelymountains.com/">Lonely Mountains: Downhill</a> bears some similarities to <em>A Short Hike</em>: it&rsquo;s a quiet experience where you make your way <em>down</em> a variety of picturesque mountain trails. Only this time, you&rsquo;re on a bike. There&rsquo;s no music – the only sounds that accompany you are the sounds of nature and your bike carving across the terrain.</p>
<p>The difficulty curve is really well done. Your first time on each trail, you just have to get to the bottom of the mountain. Then, you might have to do the same trail but with a time limit, or a limited number of crashes (and you will crash a lot). Then an even tighter time limit or even fewer crashes. For each challenge you complete you&rsquo;ll unlock extra bike parts, trails, and mountains. As you get to know each mountain you&rsquo;ll find extra routes to take to shave seconds off your time and you&rsquo;ll get more confident with the fantastic controls.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/t0T-m5F-Q84?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>

<hr>
<h3 id="outer-wilds"><a href="https://www.mobiusdigitalgames.com/outer-wilds.html">Outer Wilds</a></h3>
<figure>
  <img src="/images/2020/07/OW_logo.png" alt="" loading="lazy">
</figure>
<p><a href="https://www.mobiusdigitalgames.com/outer-wilds.html">Outer Wilds</a> (not to be confused with <a href="https://outerworlds.obsidian.net/en">The Outer Worlds</a>, which came out around the same time) took a little while to grab me, but once I got into it I was captivated. It&rsquo;s now easily one of my favourite games that I&rsquo;ve ever played.</p>
<p>You play as the latest astronaut to join Outer Wilds Ventures, a budding space agency on the small planet of Timber Hearth. You climb into your rickety wooden spaceship and jet off into space. There&rsquo;s no mission given to you and it&rsquo;s up you to explore the solar system however you like. You could visit Brittle Hollow; a crumbling planet with a black hole at its center, Giant&rsquo;s Deep; an ocean planet covered in perpetual storms, or perhaps the Hourglass Twins; a pair of planets that orbit one another as sand pours from the desert of one onto the rocky landscape of the other. As you travel, you&rsquo;ll uncover the history of the Nomai – an ancient raced who lived here before you, hundreds of thousands of years ago.</p>
<p>And then, 22 minutes after you set out, the sun explodes. You wake up back at the start of the game, ready to set out on your maiden voyage. 22 minutes later, the sun will explode again. You&rsquo;re stuck in a time loop, and you&rsquo;re the only one who knows it&rsquo;s happening. Your leisurely wandering suddenly takes on more meaning: can you uncover the secrets of the solar system, and find out why the sun is exploding and your day keeps repeating itself?</p>
<p>I don&rsquo;t really want to share much more, as the whole joy of the game is in the discoveries you make along the way. However I will say that the ending of Outer Wilds is an experience will stay with me forever.</p>
<p>If you want to get a taste for what Outer Wilds is like, <a href="https://www.youtube.com/watch?v=huL_TawYrMs">this 10 minute walkthrough from the game&rsquo;s Creative Director</a> gives you a good idea without giving away too much.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/YS2KB_cFrTo?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>

<hr>
<h3 id="control"><a href="https://controlgame.com/">Control</a></h3>
<figure>
  <a href="/images/2020/07/screen3.jpg"><img src="/images/2020/07/screen3-1600.jpg" alt="" loading="lazy"></a>
</figure>
<p>Finally, Control is an action game set inside The Oldest House, a building that warps time and space which is home to the Federal Bureau of Control – a branch of government tasked with investigating the paranormal and the unexplained.</p>
<p>As you enter the building, you discover that it&rsquo;s been invaded by a hostile force. It&rsquo;s up to you to learn the build&rsquo;s secrets, find out exactly what the Bureau has been up to, and to take back control. Along the way you pick up a very satisfying array of paranormal activities such as levitation and telekenesis. By the end of the game, you feel like a complete badass. There&rsquo;s one particular late-game sequence that really lets you show off your skills and it&rsquo;s one of the best set pieces I&rsquo;ve ever played in a game.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/uvKAHpIvbl8?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>

]]></content:encoded></item><item><title>No-Knead Bread</title><link>https://frosty.blog/2020/04/22/no-knead-bread/</link><pubDate>Wed, 22 Apr 2020 14:19:06 +0000</pubDate><guid>https://frosty.blog/2020/04/22/no-knead-bread/</guid><description>&lt;p&gt;&lt;a href="https://cooking.nytimes.com/recipes/11376-no-knead-bread"&gt;No-Knead Bread&lt;/a&gt;, from the New York Times, is my new favourite bread recipe. I&amp;rsquo;ve been prepping the dough mix just after lunchtime, leaving it for around 18 hours, and then finishing and baking the following morning. Super easy, and has produced a perfect loaf each time I&amp;rsquo;ve made it so far.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d suggest following the written recipe rather than the video, as the video seems to miss out a couple of steps. I also used baking parchment to let the dough rise before baking instead of tea towels, as I didn&amp;rsquo;t trust it not to stick.&lt;/p&gt;</description><content:encoded><![CDATA[<p><a href="https://cooking.nytimes.com/recipes/11376-no-knead-bread">No-Knead Bread</a>, from the New York Times, is my new favourite bread recipe. I&rsquo;ve been prepping the dough mix just after lunchtime, leaving it for around 18 hours, and then finishing and baking the following morning. Super easy, and has produced a perfect loaf each time I&rsquo;ve made it so far.</p>
<p>I&rsquo;d suggest following the written recipe rather than the video, as the video seems to miss out a couple of steps. I also used baking parchment to let the dough rise before baking instead of tea towels, as I didn&rsquo;t trust it not to stick.</p>
<div class="gallery">
<figure>
  <a href="/images/2020/04/60759820966__A080B222-4C43-4A6C-BBB8-E9059E240B56.jpeg"><img src="/images/2020/04/60759820966__A080B222-4C43-4A6C-BBB8-E9059E240B56-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/04/IMG_2196.jpeg"><img src="/images/2020/04/IMG_2196-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/04/IMG_2351.jpeg"><img src="/images/2020/04/IMG_2351-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/04/IMG_2200.jpeg"><img src="/images/2020/04/IMG_2200-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/04/IMG_2264.jpeg"><img src="/images/2020/04/IMG_2264-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/04/IMG_2265.jpeg"><img src="/images/2020/04/IMG_2265-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/04/IMG_2364.jpeg"><img src="/images/2020/04/IMG_2364-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/04/IMG_2365.jpeg"><img src="/images/2020/04/IMG_2365-1600.jpeg" alt="" loading="lazy"></a>
</figure>
</div>
]]></content:encoded></item><item><title>Switching to Fastmail</title><link>https://frosty.blog/2020/02/22/switching-to-fastmail/</link><pubDate>Sat, 22 Feb 2020 22:13:12 +0000</pubDate><guid>https://frosty.blog/2020/02/22/switching-to-fastmail/</guid><description>&lt;p&gt;Last year, I switched my primary email account away from Gmail. I’d been considering making this change for some time, and I&amp;rsquo;m very glad I finally did it.&lt;/p&gt;
&lt;figure&gt;
 &lt;a href="https://frosty.blog/images/2020/02/FM-Logo-RGB.png"&gt;&lt;img src="https://frosty.blog/images/2020/02/FM-Logo-RGB-1600.png" alt="" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;h3 id="why-switch"&gt;Why switch?&lt;/h3&gt;
&lt;p&gt;I was increasingly bothered by Google storing all of my emails, which contain so much personal information. I didn&amp;rsquo;t want adverts to be pushed at me alongside my email. And for a service like email, I feel better if I can pay for it to support the provider through a revenue system that isn&amp;rsquo;t targetted ads.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Last year, I switched my primary email account away from Gmail. I’d been considering making this change for some time, and I&rsquo;m very glad I finally did it.</p>
<figure>
  <a href="/images/2020/02/FM-Logo-RGB.png"><img src="/images/2020/02/FM-Logo-RGB-1600.png" alt="" loading="lazy"></a>
</figure>
<h3 id="why-switch">Why switch?</h3>
<p>I was increasingly bothered by Google storing all of my emails, which contain so much personal information. I didn&rsquo;t want adverts to be pushed at me alongside my email. And for a service like email, I feel better if I can pay for it to support the provider through a revenue system that isn&rsquo;t targetted ads.</p>
<p>Also, I use custom domains for my email, and setting that up with Gmail on iOS and macOS has always been a pain. In third party apps like Outlook you can add aliases, but the system mail apps can be tricky. And even if you do get it configured, it’s often added to the email header in a way that makes it clear it’s being sent on behalf of your @gmail.com address. I want to own my email address!</p>
<h3 id="enter-fastmail">Enter Fastmail</h3>
<p>I didn’t really research many options when I chose a provider. I’d heard <a href="https://marco.org/2015/05/29/why-not-google">great things about Fastmail</a>, so that was the first and only place I went.</p>
<p><a href="https://www.fastmail.com">Fastmail</a> is an independent Australian company that simply offers email services in exchange for money. This is great! It means they’re focused on running the service and making it better in order to keep receiving more money and provide a better service for their users. They&rsquo;re big on open source and open standards – they just helped with the JMAP specification to replace IMAP, which enables them to provide a more modern email experience.</p>
<p>I really like their straightforward <a href="https://www.fastmail.com/values/">core values</a>: their customers are <em>customers</em>, not a product; your data belongs to you; they&rsquo;ll look after your data; and they&rsquo;ll contribute to open source and improving email for everyone.</p>
<h3 id="the-service">The Service</h3>
<p>The first thing I was struck by was the quality of their experiences. Both their web and mobile apps offer a really clean user interface, and <strong>wow</strong> is it fast. They really earn their title. It feels to me, in a good way, like the ‘old’ internet, before everything was built on top of teetering piles of JavaScript. Pages load so quickly that they feel like static web pages. The UI is uncluttered, functional, easy to use, and very responsive. Through their work on the <a href="https://fastmail.blog/2019/08/16/jmap-new-email-open-standard/">JMAP standard</a>, they&rsquo;ve recently added nice-to-have features like ‘undo send’ and snoozing emails.</p>
<figure>
  <a href="/images/2020/02/Fastmail_Inbox_Undo_Send.png"><img src="/images/2020/02/Fastmail_Inbox_Undo_Send-1600.png" alt="" loading="lazy"></a>
</figure>
<p>I was also very surprised by their mobile apps. I’m an iOS app developer and an app snob, and if I&rsquo;m honest I tend to look down on ‘non-native’ apps that use web technologies. I’m almost certain that Fastmail’s app isn’t native (it doesn&rsquo;t <em>feel</em> native), but I really like it. It’s fast and clean and just works. It also offers one of my favourite features for any email client: I have the options to both archive or delete any given message. Many apps only give you one or the other of those options at a time.</p>
<p>The app also provides push notifications, and they’re incredibly fast. There have been numerous occasions where both my wife and I have been sent an email, and the Fastmail app will tell me about it tens of seconds before my wife’s Gmail app does.</p>
<div class="gallery">
<figure>
  <a href="/images/2020/02/Fastmail_Inbox-1.png"><img src="/images/2020/02/Fastmail_Inbox-1-1600.png" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2020/02/Fastmail_Snooze-1.png"><img src="/images/2020/02/Fastmail_Snooze-1-1600.png" alt="" loading="lazy"></a>
</figure>
</div>
<h3 id="migrating-to-fastmail">Migrating to Fastmail</h3>
<p>The process of <a href="https://www.fastmail.com/help/account/gmailimport.html">migrating over to Fastmail</a> was very simple. They have a <a href="https://www.fastmail.com/help/receive/migratemail.html">migration tool</a> where you can simply enter the credentials for your existing email service. They then begin importing all your emails into the correct folders, and they’ll let you know when it’s finished.</p>
<p>They also offer helpful guides to configuring your DNS settings to point your MX records to their mail servers, if you wish to do so.</p>
<h3 id="no-regrets">No regrets</h3>
<p>I’d recommend <a href="https://www.fastmail.com">Fastmail</a> in an instant to anybody who wants ownership of their own email. I feel like I am now in control of my own data. I’m also able to configure things like custom domains and spam filtering however I like.</p>
<p>I’d love to take this further by also moving away from Google for web search, but I’ve still yet to encounter another search provider that gives me the results I want to see. Last time I tried, Duck Duck Go still wasn’t there yet and I&rsquo;d regularly have to go back to Google to find what I needed. For now, I perform most of my searches in a private browsing instance.</p>
]]></content:encoded></item><item><title>Hacking with Swift: Live!</title><link>https://frosty.blog/2019/07/28/hacking-with-swift-live/</link><pubDate>Sun, 28 Jul 2019 08:06:19 +0000</pubDate><guid>https://frosty.blog/2019/07/28/hacking-with-swift-live/</guid><description>&lt;p&gt;A couple of weeks ago, I attended the first ever &lt;a href="https://www.hackingwithswift.com/live"&gt;Hacking with Swift: Live!&lt;/a&gt; conference in Bath, England. Helpfully, Bath is less than an hour away from where I live so it seemed like a great opportunity to attend a conference while still getting to see my family. And it was fantastic!&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://www.hackingwithswift.com/uploads/hws-live.jpg" alt="" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;If you&amp;rsquo;re not familiar with &lt;a href="Https://www.hackingwithswift.com"&gt;Hacking with Swift&lt;/a&gt;, it&amp;rsquo;s a website run by &lt;a href="https://twitter.com/twostraws"&gt;Paul Hudson&lt;/a&gt;. Paul is a one-man tutorial &lt;em&gt;machine&lt;/em&gt;. I have no idea how he produces so much content. He&amp;rsquo;s written 15 books on Swift and Apple&amp;rsquo;s platforms, and his website contains a &lt;em&gt;ton&lt;/em&gt; of free articles, tutorials, and videos all about Swift. His SwiftUI content has been really helpful, and again I don&amp;rsquo;t know how he created so much of it so soon after WWDC.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A couple of weeks ago, I attended the first ever <a href="https://www.hackingwithswift.com/live">Hacking with Swift: Live!</a> conference in Bath, England. Helpfully, Bath is less than an hour away from where I live so it seemed like a great opportunity to attend a conference while still getting to see my family. And it was fantastic!</p>
<figure>
  <img src="https://www.hackingwithswift.com/uploads/hws-live.jpg" alt="" loading="lazy">
</figure>
<p>If you&rsquo;re not familiar with <a href="Https://www.hackingwithswift.com">Hacking with Swift</a>, it&rsquo;s a website run by <a href="https://twitter.com/twostraws">Paul Hudson</a>. Paul is a one-man tutorial <em>machine</em>. I have no idea how he produces so much content. He&rsquo;s written 15 books on Swift and Apple&rsquo;s platforms, and his website contains a <em>ton</em> of free articles, tutorials, and videos all about Swift. His SwiftUI content has been really helpful, and again I don&rsquo;t know how he created so much of it so soon after WWDC.</p>
<p>Hacking with Swift: Live was Paul&rsquo;s first attempt at running this conference and I think it was a huge success. The venue was modern, clean, and bright, the wifi worked excellently, and the food was really good. There were around 200 attendees which felt like just the right number to me. The format of the event was a little different than other conferences I&rsquo;ve attended before.</p>
<h3 id="day-1">Day 1</h3>
<p><strong>Day 1</strong> was quite standard conference fare, with 8 talks from some fantastic speakers: Cory Benfield (Apple), Kelly Hutchinson, Kilo Loco, Ellen Shapiro, Sally Shepard, Daniel Steinberg, John Sundell, and James Thomson. I particularly enjoyed:</p>
<ul>
<li>Cory&rsquo;s explanation of an easy place to get caught out in terms of performance with Swift&rsquo;s copy-on-write behaviour.</li>
<li>Ellen&rsquo;s talk about the Swift package manager, and using Swift scripts and tools to improve your development life.</li>
<li>Daniel&rsquo;s talk, which cleverly walked through a SwiftUI example by calling out which Swift Evolution proposals were responsible for which pieces of syntax, and explained how they worked.</li>
<li>James&rsquo;s history of easter eggs in Apple&rsquo;s software.</li>
</ul>
<p>But they were all great! The videos are all available on YouTube, and you can find links in <a href="https://www.hackingwithswift.com/articles/197/hacking-with-swift-live-2019-raises-30-000-for-charity">this post on hackingwithswift.com</a>.</p>
<h3 id="day-2">Day 2</h3>
<p><strong>Day 2</strong> was one big workshop. Paul literally <em>wrote a book</em> just for the conference, with 3 large example apps covering most of the big iOS 13 features. We then spent the day following along on our laptops as he led us through each tutorial. It was great to get a chunk of dedicated time working through a real example using the new features.</p>
<div class="gallery">
<figure>
  <a href="/images/2019/07/img_5053.jpeg"><img src="/images/2019/07/img_5053-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/07/img_5054.jpeg"><img src="/images/2019/07/img_5054-1600.jpeg" alt="" loading="lazy"></a>
</figure>
</div>
<p>I particularly enjoyed the morning, which was all SwiftUI. I have to say I have been somewhat skeptical about SwiftUI up until this point (these kids and their new-fangled technologies, what&rsquo;s wrong with the way we do it now? grumble mumble), but using it for a couple of hours&hellip; <strong>wow</strong> is it quick and convenient to build a UI and preview it.</p>
<figure>
  <a href="/images/2019/07/simulator-screen-shot-iphone-xca80-2019-07-10-at-17.18.42.png"><img src="/images/2019/07/simulator-screen-shot-iphone-xca80-2019-07-10-at-17.18.42-1600.png" alt="" loading="lazy"></a>
  <figcaption><p>The SwiftUI demo app we built</p></figcaption>
</figure>
<p>The other standout new pieces of API were diffable data sources (they clean up so much code!) and compositional collection view layouts.</p>
<h3 id="a-good-cause">A good cause</h3>
<p>All of the proceeds from Hacking with Swift: Live went to charity. The conference supported <a href="https://www.specialeffect.org.uk">Special Effect</a>, a charity that &ldquo;puts fun and inclusion back into the lives of people with physical disabilities by helping them to play video games&rdquo;. It seemed like a great cause, and the conference was able to donate $30,000!</p>
<h3 id="summary">Summary</h3>
<p>Paul ended the conference by talking about &rsquo;the bigger picture&rsquo;. How code brought us all together, but it&rsquo;s not the most important thing in any of our lives, and how we should think about the difference we can all make in the wider world. He also said how proud he was to bring everybody together to his home town, and brought his family onstage to say they were his reason for doing everything he does. I may have cried a little 😅.</p>
<p>I really enjoyed the event and felt like it could&rsquo;ve easily been a few days longer (although just two days was quite nice as it limited time away from home). I&rsquo;m keen to go back next year if they hold it again!</p>
]]></content:encoded></item><item><title>So I Bought an Oppo Phone</title><link>https://frosty.blog/2019/03/10/so-i-bought-an-oppo-phone/</link><pubDate>Sun, 10 Mar 2019 22:07:00 +0000</pubDate><guid>https://frosty.blog/2019/03/10/so-i-bought-an-oppo-phone/</guid><description>&lt;p&gt;&lt;a href="https://www.oppo.com/uk/"&gt;Oppo&lt;/a&gt;, one of the biggest phone manufacturers in China and owner of &lt;a href="https://www.oneplus.com/uk"&gt;OnePlus&lt;/a&gt; (who make the popular &lt;a href="https://www.oneplus.com/uk/6t"&gt;6T&lt;/a&gt;) recently released some phones in the UK. I needed a new Android test device so I picked up an &lt;a href="https://www.oppo.com/uk/smartphone-rx17-pro/"&gt;RX17 Pro&lt;/a&gt; to see a different perspective – I’ve only really used stock Android before.&lt;/p&gt;
&lt;div class="gallery"&gt;
&lt;figure&gt;
 &lt;a href="https://frosty.blog/images/2019/03/IMG_3165-2.jpeg"&gt;&lt;img src="https://frosty.blog/images/2019/03/IMG_3165-2-1600.jpeg" alt="" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;figure&gt;
 &lt;a href="https://frosty.blog/images/2019/03/IMG_3161-2.jpeg"&gt;&lt;img src="https://frosty.blog/images/2019/03/IMG_3161-2-1600.jpeg" alt="" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p&gt;The hardware is actually really nice. It’s got a huge 6.4 inch screen which is almost edge to edge (slight chin), and a small notch in a nice droplet shape. It’s got a metal body and a glass back, both in this striking blue to purple fade 😍.&lt;/p&gt;</description><content:encoded><![CDATA[<p><a href="https://www.oppo.com/uk/">Oppo</a>, one of the biggest phone manufacturers in China and owner of <a href="https://www.oneplus.com/uk">OnePlus</a> (who make the popular <a href="https://www.oneplus.com/uk/6t">6T</a>) recently released some phones in the UK. I needed a new Android test device so I picked up an <a href="https://www.oppo.com/uk/smartphone-rx17-pro/">RX17 Pro</a> to see a different perspective – I’ve only really used stock Android before.</p>
<div class="gallery">
<figure>
  <a href="/images/2019/03/IMG_3165-2.jpeg"><img src="/images/2019/03/IMG_3165-2-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/03/IMG_3161-2.jpeg"><img src="/images/2019/03/IMG_3161-2-1600.jpeg" alt="" loading="lazy"></a>
</figure>
</div>
<p>The hardware is actually really nice. It’s got a huge 6.4 inch screen which is almost edge to edge (slight chin), and a small notch in a nice droplet shape. It’s got a metal body and a glass back, both in this striking blue to purple fade 😍.</p>
<div class="gallery">
<figure>
  <a href="/images/2019/03/IMG_3162-2.jpeg"><img src="/images/2019/03/IMG_3162-2-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/03/IMG_3164-2.jpeg"><img src="/images/2019/03/IMG_3164-2-1600.jpeg" alt="" loading="lazy"></a>
</figure>
</div>
<p>It has an in-display fingerprint reader - underneath the display - which seems to work well and is just very cool. It feels like proper sci-fi technology! It also has pretty good cameras - 25MP selfie camera on the front and a 20MP triple camera setup on the back.</p>
<figure>
  <a href="/images/2019/03/IMG_3167-2.jpeg"><img src="/images/2019/03/IMG_3167-2-1600.jpeg" alt="" loading="lazy"></a>
</figure>
<p>And it has <strong>incredible</strong> fast charging (seemingly <a href="https://www.theverge.com/circuitbreaker/2018/10/10/17958648/oppo-super-vooc-fast-charging-find-x-lamborghini-edition">the fastest available</a> right now), albeit with the somewhat stupid name of &ldquo;Super VOOC&rdquo;. It charges to 40% in <em>10 minutes</em>, and a full charge takes just over 35 minutes. It is <em><strong>bananas</strong></em> 🍌.</p>
<figure>
  <img src="/images/2019/03/supervooc.gif" alt="" loading="lazy">
</figure>
<p>Unfortunately it all falls apart a little once you get to the software. Oppo uses their own Android fork called <a href="https://www.oppo.com/uk/coloros/">ColorOS</a>, which copies a lot of design and features from iOS. A couple of examples are the sharing screen in the photos app, the system search UI, the settings app, and the camera (although everybody seems to copy iOS&rsquo;s camera app).</p>
<div class="gallery">
<figure>
  <a href="/images/2019/03/Screenshot_2019-03-08-16-30-51-72.png"><img src="/images/2019/03/Screenshot_2019-03-08-16-30-51-72-1600.png" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/03/Screenshot_2019-03-08-16-42-01-08.png"><img src="/images/2019/03/Screenshot_2019-03-08-16-42-01-08-1600.png" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/03/Screenshot_2019-03-08-16-31-28-23-1.png"><img src="/images/2019/03/Screenshot_2019-03-08-16-31-28-23-1-1600.png" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/03/Screenshot_2019-03-08-16-36-13-84-1.png"><img src="/images/2019/03/Screenshot_2019-03-08-16-36-13-84-1-1600.png" alt="" loading="lazy"></a>
</figure>
</div>
<p>I checked out the privacy policy during setup. Collecting browsing data about websites visited? Sending push notification adverts? Collecting occupation, postcode, and other details to form a targeted profile? I don’t know how much of this is normal but it doesn’t <em>sound</em> great.</p>
<figure>
  <a href="/images/2019/03/IMG_3156.jpg"><img src="/images/2019/03/IMG_3156-1600.jpg" alt="" loading="lazy"></a>
</figure>
<p>Every single system app asks for permissions the first time you run it. Some of the permissions are baffling, and most of the alerts are badly written. Why do the camera and wallpaper apps need to make and manage phone calls? Why does the music app need me IMEI number? Clock?!</p>
<div class="gallery">
<figure>
  <a href="/images/2019/03/Screenshot_2019-03-08-16-41-44-87.png"><img src="/images/2019/03/Screenshot_2019-03-08-16-41-44-87-1600.png" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/03/Screenshot_2019-03-08-16-46-56-42.png"><img src="/images/2019/03/Screenshot_2019-03-08-16-46-56-42-1600.png" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/03/Screenshot_2019-03-08-19-12-33-75.png"><img src="/images/2019/03/Screenshot_2019-03-08-19-12-33-75-1600.png" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/03/Screenshot_2019-03-08-21-44-54-69.png"><img src="/images/2019/03/Screenshot_2019-03-08-21-44-54-69-1600.png" alt="" loading="lazy"></a>
</figure>
</div>
<p>There’s a huge lack of attention to detail in English text throughout the OS. Worst affected seems to be lists, and anything containing a comma – these usually don&rsquo;t have enough spaces around them.</p>
<div class="gallery">
<figure>
  <a href="/images/2019/03/Rectangle.png"><img src="/images/2019/03/Rectangle-1600.png" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/03/Rectangle-Copy.jpg"><img src="/images/2019/03/Rectangle-Copy-1600.jpg" alt="" loading="lazy"></a>
</figure>
</div>
<p>All the menu options in the messages app refer to &ldquo;Msgs&rdquo; – even though there&rsquo;s plenty of room to write &ldquo;messages&rdquo;. Also I don&rsquo;t know if it was a bug in the software or an issue on my carrier&rsquo;s end, but I apparently received 19 messages telling me my SIM was ready to use.</p>
<div class="gallery">
<figure>
  <a href="/images/2019/03/Screenshot_2019-03-08-16-33-22-71.png"><img src="/images/2019/03/Screenshot_2019-03-08-16-33-22-71-1600.png" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2019/03/Screenshot_2019-03-09-14-46-41-56.png"><img src="/images/2019/03/Screenshot_2019-03-09-14-46-41-56-1600.png" alt="" loading="lazy"></a>
</figure>
</div>
<p>I mean it&rsquo;s still pretty great but these rough edges are baffling and it&rsquo;s a shame the software is so far behind the hardware. You can&rsquo;t even argue that it&rsquo;s a budget / mid-range device, as the same OS is used on Oppo&rsquo;s £799 flagship, the <a href="https://www.oppo.com/uk/smartphone-find_x/">Find X</a>. But people will buy it, and nobody will care.</p>
<p>At least somebody took the time to round the corners of the system security keyboard to match the screen&rsquo;s curves. Except, by default it&rsquo;s never displayed at the bottom of the screen. 🙃</p>
<figure>
  <a href="/images/2019/03/IMG_3143.jpeg"><img src="/images/2019/03/IMG_3143-1600.jpeg" alt="" loading="lazy"></a>
</figure>
]]></content:encoded></item><item><title>My 2018 in Gaming</title><link>https://frosty.blog/2019/02/09/my-2018-in-gaming/</link><pubDate>Sat, 09 Feb 2019 22:05:53 +0000</pubDate><guid>https://frosty.blog/2019/02/09/my-2018-in-gaming/</guid><description>&lt;p&gt;2018 was the first year I’ve managed to consistently track the games I’ve been playing throughout the year. I’m using a Trello board to track games I want to play (Unplayed), am playing (Playing), have played (Beaten), or gave up on (Abandoned)&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Rather than writing a list of ‘top games’ of the year, and inspired by a couple of my colleagues (&lt;a href="https://www.gamebits.net/2018/12/31/gaming-in-2018/"&gt;#1&lt;/a&gt;, &lt;a href="https://blog.anonymous-function.net/2018/12/21/gaming-in-2018/"&gt;#2&lt;/a&gt;), I thought I’d instead simply post a summary of the various games I played in 2018 and what I thought of them. I’ve highlighted my favourites with a ⭐️.&lt;/p&gt;</description><content:encoded><![CDATA[<p>2018 was the first year I’ve managed to consistently track the games I’ve been playing throughout the year. I’m using a Trello board to track games I want to play (Unplayed), am playing (Playing), have played (Beaten), or gave up on (Abandoned)<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<p>Rather than writing a list of ‘top games’ of the year, and inspired by a couple of my colleagues (<a href="https://www.gamebits.net/2018/12/31/gaming-in-2018/">#1</a>, <a href="https://blog.anonymous-function.net/2018/12/21/gaming-in-2018/">#2</a>), I thought I’d instead simply post a summary of the various games I played in 2018 and what I thought of them. I’ve highlighted my favourites with a ⭐️.</p>
<h2 id="beaten">Beaten</h2>
<h3 id="shadow-of-the-colossus-ps4-remaster-"><a href="https://www.metacritic.com/game/playstation-4/shadow-of-the-colossus">Shadow of the Colossus</a> (PS4 Remaster) ⭐️</h3>
<p>Shadow of the Colossus is easily one of my my favourite games of all time. It’s so simple, yet does such an incredible job of conveying the atmosphere of its empty world. The remaster takes an old game that had really clunky performance, and makes it look and play like a dream.</p>
<h3 id="celeste-switch-"><a href="https://www.metacritic.com/game/switch/celeste">Celeste</a> (Switch) ⭐️</h3>
<p>Celeste is an outstanding indie game, and a deserved contender on a lot of top games of 2018 lists. I got so into it that I stayed up into the early hours of the morning playing the last couple of chapters all in one sitting. I just couldn’t put it down.</p>
<h3 id="oxenfree-switch"><a href="https://www.metacritic.com/game/switch/oxenfree">Oxenfree</a> (Switch)</h3>
<p>A creepy mystery adventure, but pretty slow going.</p>
<h3 id="splatoon-2-singleplayer-switch"><a href="https://www.metacritic.com/game/switch/splatoon-2">Splatoon 2 Singleplayer</a> (Switch)</h3>
<p>I’ve been playing Splatoon 2 multiplayer since it was released in 2017, but I finally finished up the single player ‘campaign’ at the start of the year. It was fine, I guess? The boss fights were the best part, but I think the main multiplayer modes of Splatoon are good enough that it’s not really necessary.</p>
<h3 id="subsurface-circular-switch"><a href="https://www.metacritic.com/game/switch/subsurface-circular">Subsurface Circular</a> (Switch)</h3>
<p>A short game that’s most like an interactive novel, with a few puzzles thrown in.</p>
<h3 id="darkside-detective-switch"><a href="https://www.metacritic.com/game/switch/the-darkside-detective">Darkside Detective</a> (Switch)</h3>
<p>A very simple (each scene is mostly static, and you don’t even see the characters walking about) but quite entertaining point and click adventure.</p>
<h3 id="donkey-kong-country-tropical-freeze-switch-"><a href="https://www.metacritic.com/game/switch/donkey-kong-country-tropical-freeze">Donkey Kong Country: Tropical Freeze</a> (Switch) ⭐️</h3>
<p>I absolutely loved my time with Tropical Freeze. It’s hands-down one of the best 2D (with 3D graphics) platformers ever made. Really inventive, nicely challenging, great to play, and the levels are full of life.</p>
<h3 id="hollow-knight-switch-"><a href="https://www.metacritic.com/game/switch/hollow-knight">Hollow Knight</a> (Switch) ⭐️⭐️⭐️</h3>
<p>Wow. Hollow Knight is my favourite game that I played this year, and is instantly one of my favourite games of all time. It just has so much atmosphere, and it’s great at drip-feeding you abilities and giving you a rush when you realise you can now access some previously inaccessible area. I still shudder when I think about Deepnest&hellip;</p>
<figure>
  <img src="/images/2019/02/image.jpeg" alt="" loading="lazy">
</figure>
<h3 id="captain-toad-treasure-tracker-switch"><a href="https://www.metacritic.com/game/switch/captain-toad-treasure-tracker">Captain Toad: Treasure Tracker</a> (Switch)</h3>
<p>A cutesy, fun little puzzle game. However, I found that I got bored about halfway through, and there wasn’t enough variety in the levels or mechanics to keep me interested.</p>
<h3 id="spider-man-ps4-"><a href="https://www.metacritic.com/game/playstation-4/marvels-spider-man">Spider-Man</a> (PS4) ⭐️</h3>
<p>Probably my second favourite game of the year, after Hollow Knight. It’s an open world game, but the developer didn’t feel the need to make the world too big, or cram it full of too much stuff. It’s <em>managable</em>, in a way that a game like Assassin’s Creed isn’t. I’ve almost 100%ed the main game, which is something I never normally bother to do.</p>
<h3 id="steamworld-dig-2-switch"><a href="https://www.metacritic.com/game/switch/steamworld-dig-2">Steamworld Dig 2</a> (Switch)</h3>
<p>A Metroidvania with a digging mechanic. It has quite a tight little gameplay loop, with you revisiting the surface regularly as you dig deeper and deeper, but it didn’t really ever completely suck me in.</p>
<h3 id="night-in-the-woods-switch"><a href="https://www.metacritic.com/game/switch/night-in-the-woods">Night in the Woods</a> (Switch)</h3>
<p>I didn’t enjoy this as much as I’d hoped I would. It looks lovely, and it has a nice atmosphere, but it’s very slow and the ending comes out of nowhere.</p>
<h2 id="unbeaten">Unbeaten</h2>
<h3 id="zelda-breath-of-the-wild-champions-ballad-dlc-switch"><a href="https://www.metacritic.com/game/switch/the-legend-of-zelda-breath-of-the-wild---the-champions-ballad">Zelda: Breath of the Wild Champions’ Ballad DLC</a> (Switch)</h3>
<p>I really enjoyed Breath of the Wild, but I haven’t been back since I beat Ganon. I started the DLC earlier this year and had a good time with it, but I haven’t played in quite some time. I think it might be tricky to pick it back up. It has a lot of overworld exploration and tasks, which is great for me as I didn’t really enjoy the game’s shrines (and I only ever bothered completing a fraction of them).</p>
<h3 id="skyrim-switch"><a href="https://www.metacritic.com/game/switch/the-elder-scrolls-v-skyrim">Skyrim</a> (Switch)</h3>
<p>I’ve played Skyrim on the PC, XBox 360, PS4, PSVR, and now the Switch. One day, I’ll finally finish the main quest.</p>
<h3 id="god-of-war-ps4"><a href="https://www.metacritic.com/game/playstation-4/god-of-war">God of War</a> (PS4)</h3>
<p>I’ve really enjoyed God of War so far. In particular, the opening hour or so is like something straight out of a Marvel movie. But for some reason I keep falling off it and I still haven’t got round to finishing it.</p>
<h3 id="dark-souls-switch"><a href="https://www.metacritic.com/game/switch/dark-souls-remastered">Dark Souls</a> (Switch)</h3>
<p>After playing quite a lot of Dark Souls, I now see what all the fuss is about. The world, the atmosphere, the combat, the thrill and relief when you finally find a bonfire after attempting an area time and time again. But I put it down to play other games and I haven’t come back yet. The oppressive atmosphere and high difficulty isn’t generally what I’m looking for when I just want to relax with a game in the evening.</p>
<h3 id="pokémon-lets-go-pikachu-switch"><a href="https://www.metacritic.com/game/switch/pokemon-lets-go-pikachu!">Pokémon Let’s Go Pikachu</a> (Switch)</h3>
<p>I’ve never finished a Pokemon game. I started with Pokemon Red on the Gameboy, and I’ve picked up a few others along the way – Black, Y, Soul Silver&hellip; but I’ve always lost interest quite early on. I’ve got a reasonable way through Let’s Go, and it’s a wonderful update of the original Pokemon Yellow&hellip; but I’m very close to dropping out yet again. I think at some point I might just have to accept that I don’t find Pokémon battling very interesting.</p>
<h3 id="astro-bot-rescue-mission-psvr-"><a href="https://www.metacritic.com/game/playstation-4/astro-bot-rescue-mission">Astro Bot Rescue Mission</a> (PSVR) ⭐️</h3>
<p>One of the best things I’ve played this year, and one of the best things I’ve played in VR. Astro Bot Rescue Mission has Nintendo-levels of whimsy, character, and innovation. A must-have if you have PSVR.</p>
<h3 id="hyrule-warriors-switch"><a href="https://www.metacritic.com/game/switch/hyrule-warriors-definitive-edition">Hyrule Warriors</a> (Switch)</h3>
<p>I’ve been unsure whether to pick this one up for some time. I’m a big Zelda fan, but I didn’t know whether I’d like the <a href="https://www.giantbomb.com/musou/3025-704/">Musou</a> gameplay. Turns out I do! It kind of operates on two levels – the battlefield management sometimes gets quite stressful, but the moment-to-moment fighting is actually quite mindless and relaxing. Plus it’s just amazing Zelda fan service.</p>
<h3 id="wandersong-switch-"><a href="https://www.metacritic.com/game/switch/wandersong">Wandersong</a> (Switch) ⭐️</h3>
<p>Wandersong is a wonderful (or should that be WANDERful?), original indie title where you play a bard and interact with the world entirely through singing. I put it down for a bit while waiting for a bugfix to be released, but I can’t wait to get back into it and wrap up the story.</p>
<h3 id="the-rest">The Rest</h3>
<p>I picked up a handful of games on the Switch that I’m not actively playing, but I’ll probably continue to dip into now and again: Stardew Valley, Dead Cells, Flinthook, Immortal Redneck, and Hand of Fate 2. I’ve also started but completely abandoned a couple of games, including the Horizon Zero Dawn: The Frozen Wilds (I absolutely <em>loved</em> Horizon Zero Dawn, but I left it way too long to get back into it and I just feel like I’m done with that world), and Bayonetta 2 (<em>completely</em> not a game for me. I really really don’t like the gameplay or the aesthetics).</p>
<p>So: 12 games beaten, 8 still on the go, and a handful abandoned. 2018 was a great year for games, and for me once again it was dominated by the Switch.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Hat tip to Shaun Inman’s <a href="https://shauninman.com/unplayed/">Unplayed</a> lists for the original inspiration for this categorisation.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Week Links – 2019/01/20</title><link>https://frosty.blog/2019/01/20/week-links-2019-01-20/</link><pubDate>Sun, 20 Jan 2019 21:42:29 +0000</pubDate><guid>https://frosty.blog/2019/01/20/week-links-2019-01-20/</guid><description>&lt;ul&gt;
&lt;li&gt;I got a lot of value from Cal Newport&amp;rsquo;s last book, &lt;a href="https://www.amazon.co.uk/dp/B013UWFM52/ref=dp-kindle-redirect?_encoding=UTF8&amp;amp;btkr=1"&gt;Deep Work&lt;/a&gt;, so I&amp;rsquo;m looking forward to his new one, out at the beginning of February: &lt;a href="https://www.amazon.co.uk/Digital-Minimalism-Living-Better-Technology/dp/0241341132"&gt;Digital Minimalism&lt;/a&gt;. Cal was recently on the podcast Hurry Slowly, discussing &lt;a href="https://hurryslowly.co/cal-newport/"&gt;Using Technology with Intention&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/s/notes-on-changing-your-life/how-to-develop-better-habits-in-2019-143e1e21ecbc"&gt;How to Develop Better Habits in 2019&lt;/a&gt;: Some good practical tips from Ryan Holiday for building habits this year.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://thefocuscourse.com/a-weekly-review-for-your-goals/"&gt;A Weekly Review For Your Goals&lt;/a&gt;: Review your goals weekly to see your progress and push your plans forward.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.tombartel.me/blog/exhibit-leadership-as-individual-contributor/"&gt;How to Exhibit Leadership as an Individual Contributor&lt;/a&gt;: &amp;ldquo;Leadership is not tied to a position. Leadership is a mindset.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;I just started using &lt;a href="https://ulysses.app"&gt;Ulysses&lt;/a&gt; this week to organise my writing and notes, and it&amp;rsquo;s fantastic. A simple hierarchical folder structure (with custom icons!) is a game changer. I found &lt;a href="https://thesweetsetup.com/shawn-blanc-ulysses-setup/"&gt;Shawn Blanc&amp;rsquo;s guide to his Ulysses setup&lt;/a&gt; had some really helpful ideas for how to use it.&lt;/li&gt;
&lt;li&gt;The developers behind &lt;a href="https://codea.io/"&gt;Codea&lt;/a&gt;, the awesome coding app for iPad, recently blogged about the little details behind their app&amp;rsquo;s dropdown menu interface. It&amp;rsquo;s a fantastic piece of UI, and so much thought went into it. &lt;a href="https://codea.io/blog/the-ios-menu/"&gt;Part 1&lt;/a&gt;, &lt;a href="https://codea.io/blog/detailing-the-ios-menu/"&gt;Part 2&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Sean McCabe posted this fun little video on Twitter as a reminder not to overthink things, and just get your story out there: &lt;a href="https://twitter.com/seanwes/status/1084532127662788610"&gt;Stop Overthinking. Start Doing&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;</description><content:encoded><![CDATA[<ul>
<li>I got a lot of value from Cal Newport&rsquo;s last book, <a href="https://www.amazon.co.uk/dp/B013UWFM52/ref=dp-kindle-redirect?_encoding=UTF8&amp;btkr=1">Deep Work</a>, so I&rsquo;m looking forward to his new one, out at the beginning of February: <a href="https://www.amazon.co.uk/Digital-Minimalism-Living-Better-Technology/dp/0241341132">Digital Minimalism</a>. Cal was recently on the podcast Hurry Slowly, discussing <a href="https://hurryslowly.co/cal-newport/">Using Technology with Intention</a>.</li>
<li><a href="https://medium.com/s/notes-on-changing-your-life/how-to-develop-better-habits-in-2019-143e1e21ecbc">How to Develop Better Habits in 2019</a>: Some good practical tips from Ryan Holiday for building habits this year.</li>
<li><a href="https://thefocuscourse.com/a-weekly-review-for-your-goals/">A Weekly Review For Your Goals</a>: Review your goals weekly to see your progress and push your plans forward.</li>
<li><a href="https://www.tombartel.me/blog/exhibit-leadership-as-individual-contributor/">How to Exhibit Leadership as an Individual Contributor</a>: &ldquo;Leadership is not tied to a position. Leadership is a mindset.&rdquo;</li>
<li>I just started using <a href="https://ulysses.app">Ulysses</a> this week to organise my writing and notes, and it&rsquo;s fantastic. A simple hierarchical folder structure (with custom icons!) is a game changer. I found <a href="https://thesweetsetup.com/shawn-blanc-ulysses-setup/">Shawn Blanc&rsquo;s guide to his Ulysses setup</a> had some really helpful ideas for how to use it.</li>
<li>The developers behind <a href="https://codea.io/">Codea</a>, the awesome coding app for iPad, recently blogged about the little details behind their app&rsquo;s dropdown menu interface. It&rsquo;s a fantastic piece of UI, and so much thought went into it. <a href="https://codea.io/blog/the-ios-menu/">Part 1</a>, <a href="https://codea.io/blog/detailing-the-ios-menu/">Part 2</a>.</li>
<li>Sean McCabe posted this fun little video on Twitter as a reminder not to overthink things, and just get your story out there: <a href="https://twitter.com/seanwes/status/1084532127662788610">Stop Overthinking. Start Doing</a>.</li>
</ul>
]]></content:encoded></item><item><title>Week Links – 2018/12/23</title><link>https://frosty.blog/2018/12/23/week-links-2018-12-23/</link><pubDate>Sun, 23 Dec 2018 22:28:33 +0000</pubDate><guid>https://frosty.blog/2018/12/23/week-links-2018-12-23/</guid><description>&lt;p&gt;It&amp;rsquo;s nearly Christmas and I&amp;rsquo;m spending time with family, so just a few links this week!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shawn Blanc&amp;rsquo;s &lt;a href="https://thefocuscourse.com/plan-your-year/"&gt;Plan Your Year&lt;/a&gt; workbook has been updated for 2019. I&amp;rsquo;m really excited to sit down with my wife and plan our upcoming year. We did it for the first time for 2018, and it really helped us put more thought into how we were going to spend our year instead of ambling from one thing to the next.&lt;/li&gt;
&lt;li&gt;Jocelyn K. Glei&amp;rsquo;s upcoming &lt;a href="https://reset-course.com/"&gt;RESET course&lt;/a&gt; sounds interesting!&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/s/story/six-years-with-a-distraction-free-iphone-8cf5eb4f97e3"&gt;Six Years With a Distraction-Free iPhone&lt;/a&gt; – After removing Twitter from my phone, I noticed I&amp;rsquo;d often replace that habit with checking email or Slack instead. After reading this post I&amp;rsquo;ve removed those apps from my phone too.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@uxmomo/how-a-password-changed-my-life-7af5d5f28038"&gt;How a Password Changed my Life&lt;/a&gt; – I remember reading this a couple of years ago but it came up again this week. Neat idea!&lt;/li&gt;
&lt;/ul&gt;</description><content:encoded><![CDATA[<p>It&rsquo;s nearly Christmas and I&rsquo;m spending time with family, so just a few links this week!</p>
<ul>
<li>Shawn Blanc&rsquo;s <a href="https://thefocuscourse.com/plan-your-year/">Plan Your Year</a> workbook has been updated for 2019. I&rsquo;m really excited to sit down with my wife and plan our upcoming year. We did it for the first time for 2018, and it really helped us put more thought into how we were going to spend our year instead of ambling from one thing to the next.</li>
<li>Jocelyn K. Glei&rsquo;s upcoming <a href="https://reset-course.com/">RESET course</a> sounds interesting!</li>
<li><a href="https://medium.com/s/story/six-years-with-a-distraction-free-iphone-8cf5eb4f97e3">Six Years With a Distraction-Free iPhone</a> – After removing Twitter from my phone, I noticed I&rsquo;d often replace that habit with checking email or Slack instead. After reading this post I&rsquo;ve removed those apps from my phone too.</li>
<li><a href="https://medium.com/@uxmomo/how-a-password-changed-my-life-7af5d5f28038">How a Password Changed my Life</a> – I remember reading this a couple of years ago but it came up again this week. Neat idea!</li>
</ul>
]]></content:encoded></item><item><title>Week Links – 2018/12/15</title><link>https://frosty.blog/2018/12/16/week-links-2018-12-15/</link><pubDate>Sun, 16 Dec 2018 18:43:11 +0000</pubDate><guid>https://frosty.blog/2018/12/16/week-links-2018-12-15/</guid><description>&lt;p&gt;I’ve decided to start collating a short post each Sunday of interesting things I’ve found online over the past week. It could be anything; this week there’s productivity posts, books, some podcasts, and even a recipe. It’s an experiment.&lt;/p&gt;
&lt;h2 id="podcasts"&gt;Podcasts&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://seanwes.com/podcast"&gt;Seanwes Podcast&lt;/a&gt;. Creativity and business topics, released weekly. I listened to a handful of episodes so far which I really enjoyed:
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://seanwes.com/podcast/381-why-and-how-to-start-an-exercise-habit/"&gt;381: Why and How to Start an Exercise Habit&lt;/a&gt;. I had a pretty great exercise habit going &lt;a href="https://frosty.blog/2017/08/04/losing-it/"&gt;last year&lt;/a&gt;, but I let it slide in 2018 while we were expecting our second child. I finally broke my 465 day move streak on my Apple Watch, and since then exercise just hasn’t been a focus for me. And I’ve noticed it! This episode has helped to give me a kick to start to work on this again. Ask yourself each day: what have I done to exercise my body today?&lt;/li&gt;
&lt;li&gt;&lt;a href="https://seanwes.com/podcast/375-3-month-guide-to-waking-up-at-6am-consistently/"&gt;375: 3-Month Guide to Waking up at 6am Consistently&lt;/a&gt;. My morning routine isn’t entirely under my own control, as I have both a 3 year old and a 3 month old kid. But I love the idea of a relaxed morning routine with time intentionally set aside to start the day right and think or stretch or exercise or write.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While I can’t completely control when I’ll need to be awake on a given morning right now, I &lt;em&gt;can&lt;/em&gt; control my evening routine. Listening to this episode made me realise I need to make sleep more of a priority, and I’ve already incorporated some of the ideas into ‘shutting down’ slowly in the evening and getting to sleep at a decent time.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I’ve decided to start collating a short post each Sunday of interesting things I’ve found online over the past week. It could be anything; this week there’s productivity posts, books, some podcasts, and even a recipe. It’s an experiment.</p>
<h2 id="podcasts">Podcasts</h2>
<ul>
<li>The <a href="https://seanwes.com/podcast">Seanwes Podcast</a>. Creativity and business topics, released weekly. I listened to a handful of episodes so far which I really enjoyed:
<ul>
<li><a href="https://seanwes.com/podcast/381-why-and-how-to-start-an-exercise-habit/">381: Why and How to Start an Exercise Habit</a>. I had a pretty great exercise habit going <a href="/2017/08/04/losing-it/">last year</a>, but I let it slide in 2018 while we were expecting our second child. I finally broke my 465 day move streak on my Apple Watch, and since then exercise just hasn’t been a focus for me. And I’ve noticed it! This episode has helped to give me a kick to start to work on this again. Ask yourself each day: what have I done to exercise my body today?</li>
<li><a href="https://seanwes.com/podcast/375-3-month-guide-to-waking-up-at-6am-consistently/">375: 3-Month Guide to Waking up at 6am Consistently</a>. My morning routine isn’t entirely under my own control, as I have both a 3 year old and a 3 month old kid. But I love the idea of a relaxed morning routine with time intentionally set aside to start the day right and think or stretch or exercise or write.</li>
</ul>
</li>
</ul>
<p>While I can’t completely control when I’ll need to be awake on a given morning right now, I <em>can</em> control my evening routine. Listening to this episode made me realise I need to make sleep more of a priority, and I’ve already incorporated some of the ideas into ‘shutting down’ slowly in the evening and getting to sleep at a decent time.</p>
<p>The other big takeaway for me was thinking about a proactive vs a reactive morning. If I’m woken up by my son yelling that he wants to get up, I’m starting the day in a reactive state. The same goes if you’re checking your email or Twitter as soon as you wake up – you beginning by reacting to what the world is throwing at you. Instead, think about being more proactive and setting your own agenda for the morning.</p>
<ul>
<li><a href="https://hurryslowly.co">Hurry Slowly</a>, “a podcast about being productive, creative, and resilient, through the simple act of slowing down”. I’ve only listened to <a href="https://hurryslowly.co/003-craig-mod/">003: Craig Mod - I Want My Attention Back!</a> so far, but it definitely made me think about what an attention suck my smartphone is.</li>
</ul>
<h2 id="productivity">Productivity</h2>
<ul>
<li><a href="https://thesweetsetup.com/start-days-right-consistent-shutdown-routine/">Start your days right with a consistent shutdown routine – The Sweet Setup</a>. Cal Newport discusses a similar idea in his book <a href="http://calnewport.com/books/deep-work/">Deep Work</a>.</li>
<li><a href="https://sabbatical.blog/about/">Seventh Week Sabbaticals</a>. More from Sean McCabe, this time the idea of taking a sabbatical week every 7 weeks to prevent burnout and create margin.</li>
<li><a href="https://zenhabits.net/depth/">Taking a Depth Year</a> by Leo Babauta at Zen Habits. I don’t think I’d go so far as doing this for a whole year, but I like the idea of finding more depth and value in the things you already own and the activities or hobbies you’ve already started. Improving existing skills, watching media you already have, reading that stack of books you haven’t got to yet or rereading your favourites.</li>
<li>Also from Zen Habits: <a href="https://zenhabits.net/tech-limits/">Simplify Technology with Limits</a>. I really liked the limit of “No phone use in the car, at the dining table, while in line, or while talking with other people”.</li>
<li>Finally, a tweet (or rather, a short thread): <a href="https://twitter.com/clairejlew/status/1072910212573495296">https://twitter.com/clairejlew/status/1072910212573495296</a>. In 1:1 meetings, ask specific questions and suggest ways you can help instead of just asking an open-ended “how can I help you?”.</li>
</ul>
<h2 id="books">Books</h2>
<ul>
<li>I just finished <a href="https://jamesclear.com/atomic-habits">Atomic Habits</a>, by James Clear. It’s a really concise, practical guide to creating good habits and breaking bad ones.</li>
<li>Also, inspired by the morning routine episode of the Seanwes Podcast mentioned above, I’m currently reading <a href="https://mymorningroutine.com/book/">My Morning Routine</a>.</li>
<li>I came across a great <a href="https://medium.com/@dolectures/100-must-read-books-of-2018-1a8a9f01c72d">top 100 list of books from 2018</a>. I downloaded a bunch of samples to my Kindle while going through this list.</li>
<li>An older post, but Shawn Blanc has an interesting idea of <a href="https://thefocuscourse.com/build-your-own-alternate-index-of-ideas-and-notes-from-books/">creating an alternative index for a nonfiction book</a> while you’re reading it. Normally I wouldn’t even consider defacing a book, but I can see this would be a really useful approach with nonfiction books. I current try to mostly read Kindle books, as I want to minimise the amount of physical ‘stuff’ that I own, but flicking through a physical book is definitely much easier and you get a better spacial awareness of your notes and highlights. I’m still not sure what the best balance for me is here. See also: Ryan Holiday’s <a href="https://ryanholiday.net/the-notecard-system-the-key-for-remembering-organizing-and-using-everything-you-read/">notecard system</a>.</li>
</ul>
<h2 id="misc">Misc</h2>
<ul>
<li>Matt Gemmell posted about <a href="http://mattgemmell.com/mechanical-keyboards/">mechanical keyboards</a>. I’m now lusting after a WASD keyboard, and started following them <a href="https://www.instagram.com/wasdkeyboards">on Instagram</a>.</li>
<li>We’ve been prepping Wholefully’s <a href="https://wholefully.com/8-classic-overnight-oats-recipes-you-should-try/">overnight oats</a> for a while now as quick grab-and-go breakfasts, but I just discovered their <a href="https://wholefully.com/8-healthy-instant-oatmeal-cups/">instant oatmeal recipes</a>. Easier to make than porridge, easier to clean up, and you can prep the pots days before. Just add water.</li>
</ul>
]]></content:encoded></item><item><title>iPad Pro (2018) First Impressions</title><link>https://frosty.blog/2018/11/09/ipad-pro-2018-first-impressions/</link><pubDate>Fri, 09 Nov 2018 14:53:53 +0000</pubDate><guid>https://frosty.blog/2018/11/09/ipad-pro-2018-first-impressions/</guid><description>&lt;figure&gt;
 &lt;a href="https://frosty.blog/images/2018/11/img_1726.jpg"&gt;&lt;img src="https://frosty.blog/images/2018/11/img_1726-1600.jpg" alt="" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;I picked up a new 11&amp;quot; iPad Pro this week, to replace my original 9.7&amp;quot; Pro. I’ve been using it for a couple of days now, so here are some of my initial thoughts in no particular order:&lt;/p&gt;
&lt;figure&gt;
 &lt;a href="https://frosty.blog/images/2018/11/img_1724.jpg"&gt;&lt;img src="https://frosty.blog/images/2018/11/img_1724-1600.jpg" alt="" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;ul&gt;
&lt;li&gt;The screen feels much bigger (and it is!). iOS and its apps have more room to breathe. Although it would’ve been nice if it were a tiny bit wider to keep closer to the original 4:3 aspect ratio.&lt;/li&gt;
&lt;li&gt;This thing is a fingerprint magnet! Seems to show up way more fingerprints than my original Pro.&lt;/li&gt;
&lt;li&gt;I’ve not had a device with ProMotion before, and wow – animations feel super slick. Scrolls like butter.&lt;/li&gt;
&lt;li&gt;I’m still getting used to how to hold the iPad now that it has thinner bezels. In one hand, you end up with your thumb resting on the edge between the front and side of the device, as the bezel isn’t wide enough to place your thumb there without touching the screen.&lt;/li&gt;
&lt;li&gt;The majority of the third party apps I’ve tried so far haven’t been updated for the new screen size, which means black bars at the top and bottom of the screen. In landscape, this makes the new aspect ratio (no longer 4:3 on the 11&amp;quot;) even more obvious, and I’m still getting used to it.&lt;/li&gt;
&lt;li&gt;Face ID works very well, but can be a little awkward in practice due to the camera being situated along just one edge of a device that can be (and is) used in any orientation. Now that the home button is gone, it’s not always immediately obvious where the front camera is when you pick up the iPad – particularly if you’re using it in a dimly lit room. For example, if I’m reading in bed I’ll often hold the iPad in portrait orientation and rest the bottom of it on the bed covers. But half the time it turns out that the iPad is ‘upside down’, so the Face ID cameras get blocked by the bedding. The iPhones X don’t have this issue because the notch helps you know which way is up.&lt;/li&gt;
&lt;li&gt;This is an incredible, futuristic, &lt;strong&gt;fast&lt;/strong&gt; device. It feels fantastic to hold, looks amazing, and is a joy to use. I’d love to use it for all my computing needs. Xcode for iPad, please!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And a few thoughts on the new &lt;a href="https://www.apple.com/uk/smart-keyboard/"&gt;Smart Keyboard Folio&lt;/a&gt;:&lt;/p&gt;</description><content:encoded><![CDATA[<figure>
  <a href="/images/2018/11/img_1726.jpg"><img src="/images/2018/11/img_1726-1600.jpg" alt="" loading="lazy"></a>
</figure>
<p>I picked up a new 11&quot; iPad Pro this week, to replace my original 9.7&quot; Pro. I’ve been using it for a couple of days now, so here are some of my initial thoughts in no particular order:</p>
<figure>
  <a href="/images/2018/11/img_1724.jpg"><img src="/images/2018/11/img_1724-1600.jpg" alt="" loading="lazy"></a>
</figure>
<ul>
<li>The screen feels much bigger (and it is!). iOS and its apps have more room to breathe. Although it would’ve been nice if it were a tiny bit wider to keep closer to the original 4:3 aspect ratio.</li>
<li>This thing is a fingerprint magnet! Seems to show up way more fingerprints than my original Pro.</li>
<li>I’ve not had a device with ProMotion before, and wow – animations feel super slick. Scrolls like butter.</li>
<li>I’m still getting used to how to hold the iPad now that it has thinner bezels. In one hand, you end up with your thumb resting on the edge between the front and side of the device, as the bezel isn’t wide enough to place your thumb there without touching the screen.</li>
<li>The majority of the third party apps I’ve tried so far haven’t been updated for the new screen size, which means black bars at the top and bottom of the screen. In landscape, this makes the new aspect ratio (no longer 4:3 on the 11&quot;) even more obvious, and I’m still getting used to it.</li>
<li>Face ID works very well, but can be a little awkward in practice due to the camera being situated along just one edge of a device that can be (and is) used in any orientation. Now that the home button is gone, it’s not always immediately obvious where the front camera is when you pick up the iPad – particularly if you’re using it in a dimly lit room. For example, if I’m reading in bed I’ll often hold the iPad in portrait orientation and rest the bottom of it on the bed covers. But half the time it turns out that the iPad is ‘upside down’, so the Face ID cameras get blocked by the bedding. The iPhones X don’t have this issue because the notch helps you know which way is up.</li>
<li>This is an incredible, futuristic, <strong>fast</strong> device. It feels fantastic to hold, looks amazing, and is a joy to use. I’d love to use it for all my computing needs. Xcode for iPad, please!</li>
</ul>
<p>And a few thoughts on the new <a href="https://www.apple.com/uk/smart-keyboard/">Smart Keyboard Folio</a>:</p>
<ul>
<li>The new Smart Keyboard Folio is much sturdier than the old Smart Keyboard Cover, and is certainly much more stable when typing on your lap. The iPad can also now be positioned in at a shallower viewing angle, which is much nicer than the very steep angle of the old cover.</li>
<li>I was worried that it’d be difficult to put the iPad into / take the iPad out of the folio, but it’s actually very simple thanks to the magical array of magnets present in the new Pro.</li>
<li>The magnets are so strong, it’s now more difficult to collapse the iPad when it’s propped up in the folio. I haven’t yet worked out the right places to grab it without either touching on the screen or mashing on the keyboard.</li>
<li>Because the new folio wraps around the front <em>and</em> back of the iPad it does increase the bulk, and it’s even heavier than the Smart Keyboard, which already added quite a lot of weight to the device. Laid flat, the new Pro in the folio is about the same thickness as the thickest part of the old keyboard cover:</li>
</ul>
<figure>
  <a href="/images/2018/11/img_1723.jpg"><img src="/images/2018/11/img_1723-1600.jpg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2018/11/img_1722.jpg"><img src="/images/2018/11/img_1722-1600.jpg" alt="" loading="lazy"></a>
</figure>
]]></content:encoded></item><item><title>Tweet Less, Do More</title><link>https://frosty.blog/2018/01/07/tweet-less-do-more/</link><pubDate>Sun, 07 Jan 2018 22:43:50 +0000</pubDate><guid>https://frosty.blog/2018/01/07/tweet-less-do-more/</guid><description>&lt;p&gt;My wife and I spent some time last week &lt;a href="https://thefocuscourse.com/plan-your-year/"&gt;planning&lt;/a&gt; some goals, events, and projects for 2018. Among other things, I’d like to read more, blog more, and be more intentional about how I spend my free time.&lt;/p&gt;
&lt;p&gt;A first step to achieving this: on the 1st of January, I deleted &lt;strong&gt;Tweetbot&lt;/strong&gt; from my phone. If I want to check Twitter, I can do so on my iPad, but I&amp;rsquo;ll only look once a day. The payoff has been great, even after only one week:&lt;/p&gt;</description><content:encoded><![CDATA[<p>My wife and I spent some time last week <a href="https://thefocuscourse.com/plan-your-year/">planning</a> some goals, events, and projects for 2018. Among other things, I’d like to read more, blog more, and be more intentional about how I spend my free time.</p>
<p>A first step to achieving this: on the 1st of January, I deleted <strong>Tweetbot</strong> from my phone. If I want to check Twitter, I can do so on my iPad, but I&rsquo;ll only look once a day. The payoff has been great, even after only one week:</p>
<ul>
<li>I used to be a timeline completionist (I had to read every tweet), but now I’m letting it go. It’s freeing.</li>
<li>I’ve found I’m no longer carrying my phone around the house, everywhere I go. Why did I do that before? What was so important?</li>
<li>It’s not just that I’m carrying it around less though. I’m <em>using</em> it less in general. I feel less attached to it. I don’t feel anxious if I don’t know where it is. The other day I left the house to go and work from a cafe, and accidentally left my phone at home because the need to have it didn’t really occur to me.</li>
<li>I’ve started charging my phone in a different room at night (not the bedroom), so it’s not the last thing I look at before bed. I also don’t rush to get it first thing in the morning – I’ll generally pick it up before work. Again, it’s one less thing to think about.</li>
<li>Instead of constantly checking my phone, I’ve started ensuring my Kindle is always to hand. Before bed, I’ll read some of a book. Any downtime I want to fill, I can read some of a book. As a result, I’ve already read <a href="mhttps://www.goodreads.com/book/show/34928122">two</a> <a href="https://www.goodreads.com/book/show/30518988">books</a> in the first week of the year, and that’s unheard of for me in recent times.</li>
</ul>
<p>Hey, and here I am writing a blog post.</p>
]]></content:encoded></item><item><title>Losing It</title><link>https://frosty.blog/2017/08/04/losing-it/</link><pubDate>Fri, 04 Aug 2017 06:40:36 +0000</pubDate><guid>https://frosty.blog/2017/08/04/losing-it/</guid><description>&lt;p&gt;Since the beginning of May I’ve lost over 10kg, many many inches, and I’m probably the fittest that I’ve ever been.&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2017/08/img_7947.jpg" alt="A graph showing my weight change since the beginning of May. Down from 76.9kg, to 66.1kg in 3 months." loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;I’ve always been quite skinny, and I could get away with eating pretty much anything I wanted without putting on weight. But a couple of years ago I stopped walking to work, and around the same time my wife and I had a newborn baby which meant I was constantly exhausted and paid less attention to what I was eating. Quick and easy was the order of the day. Before I knew it, without even noticing it was happening, I was heavier than I’d ever been, and I was very unfit. Clothing that I’d worn for years was starting to feel very snug, or not fit at all. I finally decided enough was enough.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Since the beginning of May I’ve lost over 10kg, many many inches, and I’m probably the fittest that I’ve ever been.</p>
<figure>
  <img src="/images/2017/08/img_7947.jpg" alt="A graph showing my weight change since the beginning of May. Down from 76.9kg, to 66.1kg in 3 months." loading="lazy">
</figure>
<p>I’ve always been quite skinny, and I could get away with eating pretty much anything I wanted without putting on weight. But a couple of years ago I stopped walking to work, and around the same time my wife and I had a newborn baby which meant I was constantly exhausted and paid less attention to what I was eating. Quick and easy was the order of the day. Before I knew it, without even noticing it was happening, I was heavier than I’d ever been, and I was very unfit. Clothing that I’d worn for years was starting to feel very snug, or not fit at all. I finally decided enough was enough.</p>
<p>At the beginning of May, my wife and I began to make a conscious effort to improve our health, lose weight, and get fit. It’s not actually been too arduous, and it’s been made much easier by the fact that we’ve been doing it together. If one of us doesn’t feel like working out on a given day, we offer encouragement. We can help each other track our eating, and share the job of preparing meals. We can push through the harder times and celebrate our progress together.</p>
<p>Anyway, enough of the preamble. You’re probably wondering what we’re doing to achieve our goals. It’s really a couple of fairly small lifestyle practices that add up to some great results.</p>
<h3 id="diet">Diet</h3>
<h4 id="eat-less">Eat Less</h4>
<p>It sounds obvious, but the big change here is that we started watching what we’re eating. Counting calories can be a bit of an effort (particularly as we cook most meals from scratch), but we did it for the first month to get a better understanding of our intake. It’s also a tried-and-tested way to lose weight. If you have the right calorie deficit every day, you should lose weight. Now it’s become second nature to have smaller portions and make better choices.</p>
<p><a href="https://myfitnesspal.com">MyFitnessPal</a> has been excellent for tracking calories, and I’d highly recommend it. I used it initially to calculate a daily calorie intake based on my weight, height, activity level, and the rate at which I wanted to lose weight. I aim for around 1500 calories a day. It’s got a huge database of foods, and it’s easy to add anything that’s not already in there. You can even scan barcodes for ease of entry.</p>
<h4 id="less-carbs">Less Carbs</h4>
<p>We eat very few refined carbohydrates, which really helps when trying to hit a daily calorie goal. No bread. We don’t really eat any rice, pasta, or potatoes. We make the other parts of our meals a little larger to compensate. For example, just make a bit more curry instead of having rice as well. Very occasionally, we’ll have a small spoon of one of the above with a meal, but often we’ll just replace it with some more veg like broccoli.</p>
<p>My wife and I have never really drunk alcohol much (I could count on one or two hands the number of times we have it in a year) and we never have sugary soft drinks, so that helps – just tea, coffee, and water. If you do drink either, cutting them out most of the time can be a great way to ditch a tonne of empty calories.</p>
<h4 id="think">Think</h4>
<p>Essentially, improving your diet boils down to making better choices. At each meal, particularly if you’re dining out, think about what small tweaks you could make to cut out some calories or make things healthier.</p>
<p>Swap those chips for a healthier side. Have an extra sausage and some more vegetables, but ditch the mash. Have a takeaway, but just don’t have rice with your curry (or share with someone else). I&rsquo;ll often weigh up the rough calorie cost in my head: &ldquo;do I <em>really</em> want to &lsquo;spend&rsquo; an extra 200 calories on this?&rdquo;</p>
<p>We still have treats, we just don’t go crazy. To borrow a phrase from <a href="https://mattgemmell.com">Matt Gemmell</a>, we just <em>don’t routinely overindulge</em>.</p>
<p>A lot of people say losing weight is 80% down to diet, and I think that’s pretty accurate. Watching my diet is the main way I’ve lost weight. Exercise is for toning, building a bit of muscle, and generally improving my fitness level.</p>
<h3 id="exercise">Exercise</h3>
<p>Three pieces of technology have been indispensable to my efforts to get fit: Apple Watch, a website, and a bike.</p>
<h4 id="apple-watch">Apple Watch</h4>
<p>The Apple Watch features three daily activity goals: “Stand”, which requires you to stand for 1 minute each hour for 12 hours of the day; “Exercise”, which requires you to do 30 minutes of activity a day; and “Move”, which requires you to hit a user-defined goal for calories burnt each day.</p>
<figure>
  <img src="/images/2017/08/img_7949.jpg" alt="The Activity watch face on the Apple Watch, showing the current time and 'scores' for each of the watch's three daily activity goals: Move, Exercise, and Stand." loading="lazy">
</figure> When I first got my Watch, I paid attention to these activity rings. I had a 78 day Move streak going (hitting the goal every day). But then I accidentally broke the streak, and I’ve rarely looked at the activity goals since. It seemed such an effort to get back to 78 days.
<p>From the 1st of May, I decided to make a conscious effort to hit every ring every single day. It’s a way for me to force myself to get active each day. Today marks the 100th day of my new streak, and I <em>really</em> don’t want to break it now. I set my calorie goal low to begin with to set myself up for success, and I’ve been increasing it every week.</p>
<h4><figure></h4>
  <img src="/images/2017/08/img_7951.jpg" alt="A notification on the Apple Watch, congratulating the user on reaching a 100 day Move streak." loading="lazy">
</figure>
<h4 id="nerd-fitness">Nerd Fitness</h4>
<p>I’m alternating between two things to hit my activity goals each day. The first is regular body weight strength workouts. We use an online workout plan from the <a href="https://www.nerdfitness.com/academy-overview-v12/">Nerd Fitness Academy</a>. Nerd Fitness provides a simple, structured workout plan which you can do at home with either no or minimal equipment. We’ve worked our way up from ‘bodyweight level 1’, and we’re now at level 3.</p>
<p>Each level offers two or three different workouts which you can alternate between. We aim for 3 workouts a week. Each workout consists of a warmup, 3 or 4 exercises which you normally do in sequence and repeat 3 times, and then a cool down. The whole thing usually takes us no more than 15 or 20 minutes, and we’re both much stronger than we were when we started. It’s been great to see just how much we’ve progressed over the last couple of months.</p>
<p>The exercises are generally very straightforward; things such as push ups, inchworms, one-arm rows, squats, and lunges. Each exercise also has a really short, simple, well made video showing how to do it correctly.</p>
<p>Some days it’s a struggle to start a workout, but one of us can usually motivate the other to get going. It really doesn’t take very long, and we always feel good about it once we’ve actually done it. Our 2 year old son also enjoys joining in and doing his exercises with us.</p>
<h4 id="exercise-bike">Exercise bike</h4>
<p>My secret weapon in my goal to hit my activity rings every day is my exercise bike. Back at the start of this adventure, with some fantastic advice from <a href="https://mattgemmell.com">Matt Gemmell</a> (you might see a pattern here), I picked up a relatively cheap <a href="https://www.amazon.co.uk/York-Fitness-Active-110-Exercise/dp/B008FK2P5K">stationary indoor bike</a>. I primarily use it on the days I’m not doing a strength workout.</p>
<figure>
  <a href="/images/2017/08/img_7181-1.jpg"><img src="/images/2017/08/img_7181-1-1600.jpg" alt="" loading="lazy"></a>
</figure> It’s so easy just to climb on and crank out some kilometers and burn calories. Even if it’s the end of the day and I haven’t hit my goal, it requires almost zero motivation or energy to just walk over to it, get on, and go. If I was relying on running as my daily exercise, I’d be very reliant on the weather and whether I even feel like getting dressed in the appropriate gear and leaving the house. The bike reduces the barrier to entry, and I can’t recommend it enough. I can even prop my iPad on the console and watch YouTube or Netflix while I ride.
<h3 id="get-fit-with-this-one-weird-trick">Get Fit With This One Weird Trick</h3>
<p>If you’re looking to lose weight or get fitter yourself, hopefully this post has given you some ideas and inspiration.</p>
<p>My inspiration for this post, as well as for me to finally try to get fitter, was Matt Gemmell’s excellent post from a couple of years ago, <a href="https://mattgemmell.com/workout">Workout</a>. Matt went through a similar journey, and the results he saw in six months are just incredible. I highly recommend checking it out.</p>
]]></content:encoded></item><item><title>Inspecting iOS State Restoration Data</title><link>https://frosty.blog/2017/05/10/inspecting-ios-state-restoration-data/</link><pubDate>Wed, 10 May 2017 20:49:34 +0000</pubDate><guid>https://frosty.blog/2017/05/10/inspecting-ios-state-restoration-data/</guid><description>&lt;p&gt;State preservation and restoration allows iOS apps to save state when they&amp;rsquo;re sent into the background, and restore that state if the app is killed and then relaunched. If you&amp;rsquo;ve ever implemented state restoration yourself, you may have run into a case where it&amp;rsquo;d be helpful to see exactly what state iOS was storing.&lt;/p&gt;
&lt;p&gt;It turns out that Apple actually provides a tool to help you do just this, but it&amp;rsquo;s kind of hidden away and documentation is relatively sparse. Fortunately, it&amp;rsquo;s pretty easy to use. When you run it, it&amp;rsquo;ll output a structured plist showing all of your encoded objects, their restoration identifiers, and restoration class information. Here&amp;rsquo;s a step by step guide.&lt;/p&gt;</description><content:encoded><![CDATA[<p>State preservation and restoration allows iOS apps to save state when they&rsquo;re sent into the background, and restore that state if the app is killed and then relaunched. If you&rsquo;ve ever implemented state restoration yourself, you may have run into a case where it&rsquo;d be helpful to see exactly what state iOS was storing.</p>
<p>It turns out that Apple actually provides a tool to help you do just this, but it&rsquo;s kind of hidden away and documentation is relatively sparse. Fortunately, it&rsquo;s pretty easy to use. When you run it, it&rsquo;ll output a structured plist showing all of your encoded objects, their restoration identifiers, and restoration class information. Here&rsquo;s a step by step guide.</p>
<h3 id="1-download-the-tool">1. Download the tool</h3>
<p>Head over to the Apple &ldquo;<a href="https://developer.apple.com/download/more/">Downloads for Apple Developers</a>&rdquo; site and expand the <strong>restorationArchiveTool for iOS</strong> download. You&rsquo;ll want the <code>restorationArchiveTool.dmg</code> file right at the bottom of the list on the right.</p>
<p>Open the dmg, and drag the <code>restorationArchiveTool</code> binary out to somewhere you can easily access it. I placed mine in my <code>~/bin</code> directory.</p>
<h3 id="2-find-your-apps-library-directory">2. Find your app&rsquo;s Library directory</h3>
<p>Next, you need to know the location of your app&rsquo;s <code>Library</code> directory in the simulator. This is where the restoration data gets saved, which you&rsquo;ll inspect with the archive tool. The easiest way to find this is to add a line to your app delegate&rsquo;s <code>application:didFinishLaunchingWithOptions:</code> (or via a breakpoint). Something like this should do the trick:</p>
<p><strong>Objective-C:</strong></p>





<pre tabindex="0"><code>NSLog(@&#34;Library: %@&#34;, [[[[NSFileManager defaultManager] URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] firstObject] path]);</code></pre><p><strong>Swift:</strong></p>





<pre tabindex="0"><code>print(&#34;Library: \(FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first!.path)&#34;)</code></pre><p>The path should get logged out to the console when your app launches. It&rsquo;ll be something like this:</p>





<pre tabindex="0"><code>/Users/bob/Library/Developer/CoreSimulator/Devices/1FF2D964-C615-499E-B1D0-8A7DF7343AE5/data/Containers/Data/Application/D6FE3A2C-9553-4270-8262-A94376EF4E5B/Library</code></pre><h3 id="3-get-some-data">3. Get some data</h3>
<p>This part&rsquo;s simple. Launch the app in the simulator, navigate to the part of the app you&rsquo;re interested in, send the app into the background, and stop the app in Xcode. If you open up the library folder you found in the last step, you&rsquo;ll see a folder named <strong>Saved Application State</strong>. Within that, you&rsquo;ll find a <code>data.data</code> file.</p>
<figure>
  <img src="/images/2017/05/Screen-Shot-2017-05-10-at-21.14.38.png" alt="Screen Shot 2017-05-10 at 21.14.38" loading="lazy">
</figure>
<h3 id="4-run-the-tool">4. Run the tool</h3>
<p>Now you need to run the archive tool and point it at the <code>data.data</code> file you just found. In Terminal, enter the following command, but switch out the location of your <code>restorationArchiveTool</code> binary and your app&rsquo;s <code>data.data</code> as required:</p>





<pre tabindex="0"><code>~/bin/restorationArchiveTool --plist --structured -o output.plist /path/to/your/data/file/data.data</code></pre><p>And you&rsquo;re done! You can then open up the generated plist in Xcode. Amongst other things, you&rsquo;ll see a list of top level objects, keyed by their restoration identifiers. You should notice that the restoration identifiers form a path based upon your view controller hierarchy. You can expand any object to see any extra data it&rsquo;s encoded.</p>
<figure>
  <a href="/images/2017/05/Screen-Shot-2017-05-10-at-20.44.26.png"><img src="/images/2017/05/Screen-Shot-2017-05-10-at-20.44.26-1600.png" alt="Screen Shot 2017-05-10 at 20.44.26" loading="lazy"></a>
</figure>
<p>At the bottom of the file, you&rsquo;ll find a list of restoration classes used by each of the encoded objects.</p>
<figure>
  <a href="/images/2017/05/Screen-Shot-2017-05-10-at-20.44.45.png"><img src="/images/2017/05/Screen-Shot-2017-05-10-at-20.44.45-1600.png" alt="Screen Shot 2017-05-10 at 20.44.45" loading="lazy"></a>
</figure>
<p>If you&rsquo;re having some problems with state restoration, then at the very least being able to see this information can give you some hints about whether your issue is with encoding or decoding. Good luck!</p>
]]></content:encoded></item><item><title>The Nintendo Switch and The Legend of Zelda: Breath of the Wild</title><link>https://frosty.blog/2017/03/25/nintendo-switch/</link><pubDate>Sat, 25 Mar 2017 22:06:27 +0000</pubDate><guid>https://frosty.blog/2017/03/25/nintendo-switch/</guid><description>&lt;p&gt;It&amp;rsquo;s hard to separate the Nintendo Switch and The Legend of Zelda: Breath of the Wild when considering their relative merits. The two were released on the same day, and for most people the Switch is &amp;lsquo;just&amp;rsquo; going to be a Zelda machine for some time due to its meagre launch lineup.&lt;/p&gt;
&lt;p&gt;And that&amp;rsquo;s fine.&lt;/p&gt;
&lt;figure&gt;
 &lt;a href="https://frosty.blog/images/2017/03/P3250705.jpg"&gt;&lt;img src="https://frosty.blog/images/2017/03/P3250705-1600.jpg" alt="A Nintendo Switch console, showing the game The Legend of Zelda: Breath of the Wild on the screen" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;I originally preordered the Switch as soon as preorders were available, but ended up cancelling it shortly before the Switch&amp;rsquo;s launch. I was bitten 5 years ago by the 3DS – there were almost no games worth playing at launch, and then the system received a price cut of about 1/3rd just 4 months after it was released. Fool me once&amp;hellip;&lt;/p&gt;</description><content:encoded><![CDATA[<p>It&rsquo;s hard to separate the Nintendo Switch and The Legend of Zelda: Breath of the Wild when considering their relative merits. The two were released on the same day, and for most people the Switch is &lsquo;just&rsquo; going to be a Zelda machine for some time due to its meagre launch lineup.</p>
<p>And that&rsquo;s fine.</p>
<figure>
  <a href="/images/2017/03/P3250705.jpg"><img src="/images/2017/03/P3250705-1600.jpg" alt="A Nintendo Switch console, showing the game The Legend of Zelda: Breath of the Wild on the screen" loading="lazy"></a>
</figure>
<p>I originally preordered the Switch as soon as preorders were available, but ended up cancelling it shortly before the Switch&rsquo;s launch. I was bitten 5 years ago by the 3DS – there were almost no games worth playing at launch, and then the system received a price cut of about 1/3rd just 4 months after it was released. Fool me once&hellip;</p>
<p>But then the <a href="http://www.metacritic.com/game/switch/the-legend-of-zelda-breath-of-the-wild">Zelda reviews</a> rolled in. Everyone who&rsquo;d got a Switch already seemed to love the console, and Zelda was getting almost universal praise. Despite the Switch being sold out everywhere I managed to catch them in stock for a very short period at Nintendo UK, put in my order, and it arrived the next day. So how is it?</p>
<h3 id="the-switch">The Switch</h3>
<p>In my opinion, <strong>the Switch is the best hardware Nintendo has produced in 10 years</strong>, since the original Wii and the DS Lite. For the most part, it&rsquo;s really well built and the design is minimal and unfussy. It&rsquo;s nice and compact, but the screen and controllers are just about big enough. The tablet is also reasonably light and reasonably thin (here&rsquo;s a <a href="/images/2017/03/P3250715.jpg">comparison to the iPad and iPhone</a>, if you&rsquo;re interested).</p>
<figure>
  <a href="/images/2017/03/P3250700-2708213723-1490476049767.jpg"><img src="/images/2017/03/P3250700-2708213723-1490476049767-1600.jpg" alt="The Nintendo Switch console" loading="lazy"></a>
</figure>
<p>The 720p screen is high quality, and in a first for Nintendo it uses capacitative touch instead of resistive touch. It feels much more modern than the 3DS and the Wii U, both of which had terribly low resolution screens with large gaps between the display and the &lsquo;glass&rsquo;. <strong>It&rsquo;s the first time I&rsquo;ve been really impressed with a Nintendo display in a long time</strong> (or perhaps ever?).</p>
<p>The system software also feels much more modern than anything Nintendo have put out before. It&rsquo;s got a very nice clean UI, without any of the &lsquo;chintz&rsquo; that I typically expect from them – pinstripes, bubbley 3D buttons and the like. It&rsquo;s also nice and fast, and feels like it&rsquo;s actually capable of handling several tasks at once. The 3DS and Wii&rsquo;s software always felt very modal to me; you had to stop one thing to do another. It certainly feels like a version 1.0 though, and I&rsquo;m excited what Nintendo add to it in the future.</p>
<p>I think <strong>my favourite part of the whole system is its flexibility</strong>, which is of course the main selling point of the whole system. You can dock it and play on your big TV, or pick it up, slide in the controllers and play it handheld. Or you can prop it up, slide out the controllers and play it in &rsquo;tabletop&rsquo; mode. Or stick the controllers into a grip and use them in a more traditional configuration. I&rsquo;ve found myself switching between all the different modes and it feels great in each. It&rsquo;s also really easy to switch between them.</p>
<div class="gallery">
<figure>
  <a href="/images/2017/03/P3250712.jpg"><img src="/images/2017/03/P3250712-1600.jpg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2017/03/P3250707.jpg"><img src="/images/2017/03/P3250707-1600.jpg" alt="" loading="lazy"></a>
</figure>
<figure>
  <a href="/images/2017/03/P3250711.jpg"><img src="/images/2017/03/P3250711-1600.jpg" alt="" loading="lazy"></a>
</figure>
</div>
<p>The Joy-Con controllers feel nice in the hand, but can be a little fiddly. The shoulder buttons in particular are quite small and close together, and if you&rsquo;re not using the controllers in a grip it can be hard to switch your fingers between them – there&rsquo;s not <em>quite</em> enough to hold on to. That said, I do really like them (the neon coloured versions are amazingly bright – photos don&rsquo;t do them justice), and the Switch&rsquo;s flexibility means you can use them however is most comfortable to you: in a grip, held individually, attached to the Switch itself&hellip; There is also a &lsquo;Pro&rsquo; controller available, which I haven&rsquo;t tested myself but I&rsquo;ve heard good things about.</p>
<p>I also think it&rsquo;s utter genius that each console effectively comes with <em>two</em> controllers. When Mario Kart launches, you&rsquo;ll be able to play two player local multiplayer right out of the box.</p>
<p>We only have one TV in our house, so I often find myself playing my PS4 via the PS4 Remote Play app on my laptop if my wife is watching TV. It works well enough, but of course a lot of visual fidelity is lost due to video compression when streaming. The Switch, then, is the perfect fit for me as it&rsquo;s designed around this exact use case. The visuals are excellent when playing handheld. In fact, Zelda actually seems to perform better in handheld mode, with fewer frame rate drops but no noticeable difference in quality.</p>
<p>The only piece of Switch hardware that feels lesser quality to me is the TV dock, which is a bit of a disappointment. It&rsquo;s a lightweight, slightly flimsy-feeling block of plastic, although I do like the glossy Switch logo on the side of it. The Joy-Con controllers are <strong>so</strong> satisfying to slide onto the Switch itself – they snap into place with a pronounced click, which is mirrored by a visual effect on the screen and a sound played by the system software.</p>
<p>The dock has no such satisfaction. There&rsquo;s nothing to really guide the Switch into the right place and it just spongily makes contact with the bottom of the dock with a bit of a bounce. It never really feels like it&rsquo;s in there properly. I wonder if Nintendo will improve this with future revisions.</p>
<figure>
  <a href="/images/2017/03/P3250697.jpg"><img src="/images/2017/03/P3250697-1600.jpg" alt="A Nintendo Switch console inserted into the TV dock accessory" loading="lazy"></a>
</figure>
<p>Whilst reading my first draft of this post, I realized I forgot to mention the battery life of the Switch. That&rsquo;s because so far it&rsquo;s never been an issue for me. It&rsquo;s far better than I was expecting, and I&rsquo;ve never found myself running out of battery when I want to keep playing.</p>
<h4 id="pros">Pros</h4>
<ul>
<li>Finally, modern hardware and software from Nintendo that feels competitive with smartphones / tablets and other consoles.</li>
<li>Great feeling hardware (tablet and controllers) with excellent build quality.</li>
<li>Flexibility of play styles, which is easy to do and very well executed.</li>
<li>Battery is better than I was expecting.</li>
</ul>
<h4 id="cons">Cons</h4>
<ul>
<li>Dock feels flimsy and is awkward to use.</li>
<li>Very few games so far. But Mario Kart, Splatoon, and Mario Odyssey are coming. Also, Zelda.</li>
</ul>
<h3 id="the-legend-of-zelda-breath-of-the-wild">The Legend of Zelda: Breath of the Wild</h3>
<p>Zelda is the Switch&rsquo;s flagship game, and by all accounts is a real system seller. And with good reason. It&rsquo;s excellent.</p>
<figure>
  <img src="/images/2017/03/2017031914452800-F1C11A22FAEE3B82F21B330E1B786A39.jpg" alt="A screenshot of Breath of the Wild, with Link looking out over a sunrise above a bridge over a lake." loading="lazy">
</figure>
<p>It feels like a Zelda game, but it&rsquo;s also completely different from any other Zelda game. Pretty much from the get-go, you can go anywhere, tackle anything in any order you want, and there&rsquo;s no hand-holding. The world is big. You won&rsquo;t believe just how vastly hugely mindbogglingly <a href="https://en.wikiquote.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy#Chapter_8">big</a> it is. There&rsquo;s always somewhere new to explore, or some side quest to get lost in. The world also has a really interesting physics engine behind it all, which opens up all sorts of possibilities for combining different items. Shoot an arrow through a campfire into a tree and the whole thing will go up in flames. The joy is in the emergent gameplay that crops up through these interactions.</p>
<p>The game&rsquo;s openness works really well with the Switch&rsquo;s flexibility and portability. The system sleeps and wakes instantly, so you can carry this vast world around with you and drop in and out whenever you like. And if you feel like it, you can play it on the big screen too. I can see myself dipping into this world for many months (or years) to come.</p>
<div class="gallery">
<figure>
  <img src="/images/2017/03/2017032021405800-F1C11A22FAEE3B82F21B330E1B786A39.jpg" alt="" loading="lazy">
</figure>
<figure>
  <img src="/images/2017/03/2017032219290800-F1C11A22FAEE3B82F21B330E1B786A39.jpg" alt="" loading="lazy">
</figure>
<figure>
  <img src="/images/2017/03/2017031920425100-F1C11A22FAEE3B82F21B330E1B786A39.jpg" alt="" loading="lazy">
</figure>
</div>
<p>I will say that whilst I am absolutely loving the game, I don&rsquo;t think I agree with all of the 10/10 scores it&rsquo;s been receiving. It&rsquo;s definitely a 9/10 and probably even a 9.5/10, but I think it&rsquo;s slightly let down by a couple of issues. It&rsquo;s technically impressive what Nintendo manage to pump out of this small portable device but after just finishing <em>Horizon: Zero Dawn</em> on the PS4, with its lush, richly detailed landscapes Zelda feels a little lacking in places. For example I&rsquo;ve come across mountain peaks with very low model and texture details: smooth domes with quite low resolution textures smeared across them and no extra set dressing. It&rsquo;s perhaps a little unfair to compare the two games, but it doesn&rsquo;t stand up to <em>Zero Dawn</em>&rsquo;s incredible world.</p>
<p>Objects also pop in and out of existence at a little closer distance than I&rsquo;d like. You&rsquo;re able to get a telescope-style zoomed view to look at the landscape around you, but it&rsquo;s hard to scope things out when any enemies that may be in the distance don&rsquo;t get rendered. You&rsquo;ll also occasionally see super low-polygon versions of structures that are a long way off. The world is certainly beautiful, and moments regularly crop up that make me just stop in my tracks to admire the scenery. It&rsquo;s just that these technical issues occasionally do crop up and break the spell:</p>
<figure>
  <img src="/images/2017/03/C7hR-GmVsAAMIX6.jpg-large.jpg" alt="A screenshot of Breath of the Wild, showing a long distance view of a building on a mountain top. The building is very badly rendered, with an extremely low level of detail." loading="lazy">
</figure>
<p>I&rsquo;m not going to say too much more, because I think the fun in <em>Breath of the Wild</em> is all in discovering things for yourself. If you like Zelda games you definitely need to play it. If you haven&rsquo;t played them before, you should definitely give it a go.</p>
<h4 id="pros-1">Pros</h4>
<ul>
<li>The perfect game for the Switch. Dive in and out whenever and wherever you like.</li>
<li>An incredible, vast world filled with things to see and do and play with.</li>
<li>An exciting new direction for the Zelda series.</li>
<li>Combat is fun and satisfying. There are also many, many ways to tackle different encounters with enemies thanks to the physics system.</li>
</ul>
<h4 id="cons-1">Cons</h4>
<ul>
<li>Fiddly controls.</li>
<li>Technical issues do let the game down in places. It&rsquo;s not too often, but sometimes breaks the immersion.</li>
<li>Voice acting is very hit and miss, and the dialogue is pretty poor.</li>
</ul>
<h3 id="final-thoughts">Final thoughts</h3>
<p>I&rsquo;m really pleased with the Switch. The hardware is pretty perfect for a first revision. It&rsquo;s very well built and well designed. Nintendo have finally produced hardware and software that stands up there with modern mobile devices, and it&rsquo;s exciting to see where they&rsquo;re going to take it. Having one device that works seamlessly from your living room to anywhere-else-you-want-to-use-it feels exciting and new, and it works exactly as it&rsquo;s supposed to.</p>
<p>Zelda, too, feels like something new and is the perfect accompaniment to the Switch.</p>
<p>I really hope the Switch is as successful as Nintendo need it to be, and that they (and third parties) continue to support it with great games.</p>
]]></content:encoded></item><item><title>PlayStation VR</title><link>https://frosty.blog/2016/10/22/playstation-vr/</link><pubDate>Sat, 22 Oct 2016 13:59:53 +0000</pubDate><guid>https://frosty.blog/2016/10/22/playstation-vr/</guid><description>&lt;p&gt;I was more excited leading up to the release of the PlayStation VR than I remember being for any other recent tech product launch. Mine arrived last week and a lot of people have asked me what it&amp;rsquo;s like, so I figured I&amp;rsquo;d write up my thoughts.&lt;/p&gt;
&lt;figure&gt;
 &lt;a href="https://frosty.blog/images/2016/10/img_4706.jpg"&gt;&lt;img src="https://frosty.blog/images/2016/10/img_4706-1600.jpg" alt="" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;h3 id="the-headset"&gt;The headset&lt;/h3&gt;
&lt;p&gt;The headset itself is really comfortable. The design, build quality, and materials that Sony have used are excellent. The inner padding of the headset is a really nice textured rubber, and it feels great and looks very premium.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I was more excited leading up to the release of the PlayStation VR than I remember being for any other recent tech product launch. Mine arrived last week and a lot of people have asked me what it&rsquo;s like, so I figured I&rsquo;d write up my thoughts.</p>
<figure>
  <a href="/images/2016/10/img_4706.jpg"><img src="/images/2016/10/img_4706-1600.jpg" alt="" loading="lazy"></a>
</figure>
<h3 id="the-headset">The headset</h3>
<p>The headset itself is really comfortable. The design, build quality, and materials that Sony have used are excellent. The inner padding of the headset is a really nice textured rubber, and it feels great and looks very premium.</p>
<p>The headset is also very easy to put on. No awkward velcro straps like the Vive or Rift. There&rsquo;s just a sturdy band that fits around your head, and a small dial to turn to tighten it once it&rsquo;s on. Once it&rsquo;s in the right place you can slide the actual visor (containing the screen) forward and backward, so you can move it closer to your face and find the &lsquo;sweet spot&rsquo; where it&rsquo;s in focus. Whereas the Vive and Rift screens are pulled tight against your face like a pair of ski goggles, the PSVR comfortably hangs in front of your eyes.</p>
<p>And it works really well with glasses! Sony paid particular consideration to users with glasses, and for me at least it&rsquo;s very comfortable. Whenever I&rsquo;ve used a Vive or a Rift in the past, I&rsquo;d have to put it on in an awkward way to fit around my glasses, and they&rsquo;d get stuck inside it when I took it off.</p>
<p>There&rsquo;s a small amount of &rsquo;light leak&rsquo; at the bottom of the headset, where you can see the real world if you look down. Apparently this was an intentional design on Sony&rsquo;s part, to allow people to &lsquo;ground&rsquo; themselves if necessary. I have to say that once I&rsquo;m playing a game, I don&rsquo;t notice it at all.</p>
<p>Setup was very easy, despite there being quite few cables involved. The cable from the headset to the processor unit<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> felt to me to be much thinner and less intrusive than either the Vive or the Rift&rsquo;s cables. It also contains a useful little inline remote into which you can connect a pair of wired headphones (which receive full 3D audio). The remote allows you to change the volume, turn the headset on and off, and mute or unmute the headset&rsquo;s microphone.</p>
<h3 id="the-screen">The screen</h3>
<p>I&rsquo;m impressed by the quality of the PSVR&rsquo;s display. The colours are great, it&rsquo;s bright, and there&rsquo;s little to no screen door effect<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. It&rsquo;s not the highest resolution (it&rsquo;s marginally lower than the Vive and the Rift), but I can live with that as it&rsquo;s just a reality of where VR tech currently is.</p>
<p>It also seems like it&rsquo;s the games that are mainly letting things down on the resolution front – in a game that&rsquo;s rendering at a resolution higher than that of the panel (&lsquo;supersampling&rsquo;), such as Job Simulator which runs at 1.4x resolution, things look quite sharp. Other games are clearly running at a lower resolution in order to get the required performance, and it shows. EVE: Valkyrie in particular gets very blurred at a distance, and whilst I haven&rsquo;t played it I&rsquo;ve heard that Drive Club has big resolution issues. I think the PS Pro should help in this regard, as it&rsquo;ll allow games to render at higher resolutions.</p>
<p>The only other issue I have with the screen would be that it has a fairly prominent &lsquo;mura effect&rsquo; in dark scenes. This is where you can see a random pattern of slightly lighter coloured pixels across the screen. It essentially means that dark / black scenes aren&rsquo;t truly black, and instead are like looking at a dark grey textured pattern which moves with your head. It&rsquo;s not awful, and it&rsquo;s easy to look past, but it&rsquo;s there.</p>
<h3 id="the-experience">The experience</h3>
<p>If you&rsquo;ve never experienced VR for yourself, it&rsquo;s difficult to convey what it&rsquo;s like. Not only does the game surround you everywhere you look, but the sense of depth and scale is incredible. It&rsquo;s like nothing else. The head tracking on the PSVR generally works <em>really</em> well; the framerate is excellent, and the gameplay very smoothly follows your head movement.</p>
<p>Head tracking in general works well, and rotational tracking (tilting your head to look in different directions) is certainly spot-on. I&rsquo;ve had a few small issues with positional tracking (your 3D positioning in the world, as you move forward / backward / left right) in some games and when sat further away from the camera. In particular, in the demo of Job Simulator, the environment around me continually moves forward and back slightly whilst I&rsquo;m stood still, which can result in you feeling a little weird / drunk.</p>
<p>Both headset and controller tracking<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> rely on the PlayStation Camera (required for PSVR, but not included with the headset) tracking the visible light from their bright LED strips. Occasionally the controllers also suffer from some &lsquo;jitter&rsquo;, and if their LEDs aren&rsquo;t visible to the camera they can disappear in games entirely. For the most part it works well enough, although one can certainly question Sony&rsquo;s decision to base fairly critical parts of PSVR on slightly flaky 6 year old technology (although presumably cost was a big factor). Having used both the Oculus Rift and HTC Vive, I can say that both of their tracking systems are rock solid in comparison.</p>
<p>The tracking is my only real complaint about the whole experience, and it&rsquo;s not enough to put me off PSVR or rely detract from gameplay at all. Most of the time it&rsquo;s <em>fine</em>, and I think as a more technical user I&rsquo;ve actively been analysing how well things perform and looking for problems. Most people probably won&rsquo;t even notice.</p>
<h3 id="final-thoughts">Final thoughts</h3>
<p>Ever since I first tried VR, I knew I had to own a headset. I finally do, and I&rsquo;m really pleased with it.</p>
<p>Sony have done a good job of delivering convincing, immersive VR at a much lower price than either the Vive or the Rift. And that&rsquo;s just the cost of the headset – I also don&rsquo;t need to buy or maintain an expensive PC, which is a huge plus for me. Whilst the visuals may take a bit of a downgrade, and the tracking isn&rsquo;t <em>as good</em>, it&rsquo;s plenty good enough to fool your brain<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup> and there are some fantastic games and &rsquo;experiences&rsquo; available.</p>
<p>In fact, I think one of PSVR&rsquo;s stand out features (besides cost and easy of use) is that it has a great lineup of launch titles. In the next post, I&rsquo;ll give a brief opinion on each of the games I&rsquo;ve tried so far.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>A small box that connects to your PS4, which handles splitting the HDMI signal to the TV, 3D audio, and the PSVR&rsquo;s &lsquo;cinematic mode&rsquo;.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Screen door effect is where you can see black lines between the pixels of a VR headset (hence it&rsquo;s like looking through a fine mesh / screen door). Apparently the PSVR largely avoids this due to having full RGB subpixels, although I don&rsquo;t really understand the technicalities of it.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>The standard Dual Shock 4 and the PlayStation Move controllers can be used in various games, and they often have a virtual representation in the game.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p> I&rsquo;ve not suffered from any motion sickness from PSVR (although many people do get it from certain VR experiences), but it&rsquo;s triggered my fear of heights many times. Whilst I know there&rsquo;s no danger – I&rsquo;m sat in my living room, after all – the experience is convincing enough for my brain to momentarily go AAAAAARRGGH. It&rsquo;s kind of fun though. My favourite is currently in RIGS, where you get launched 60 foot into the air out of your RIG whenever it explodes.&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>WWDC 2016 Developer Tidbits</title><link>https://frosty.blog/2016/06/14/wwdc-2016-developer-tidbits/</link><pubDate>Tue, 14 Jun 2016 14:06:55 +0000</pubDate><guid>https://frosty.blog/2016/06/14/wwdc-2016-developer-tidbits/</guid><description>&lt;p&gt;There were some nice announcements from Apple at WWDC yesterday, including a revamped lock screen and notifications for iOS, SiriKit, and a lot of iMessage integration. Whilst scouring the newly-released developer documentation I&amp;rsquo;ve come across a lot of interesting tidbits that aren&amp;rsquo;t headline features on their own, so I thought I&amp;rsquo;d collect them here in case they&amp;rsquo;re of use to anyone else. In no particular order:&lt;/p&gt;
&lt;h3 id="xcode"&gt;Xcode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Some nice improvements to Interface Builder. You can now edit your UI at any zoom level (FINALLY)! The UI for customizing layouts for different device traits has also been revamped, and looks really good.&lt;/li&gt;
&lt;li&gt;Image and colour literals are now supported in Swift code, including code completion for images that&amp;rsquo;re in your asset catalog. Simply start typing either &lt;code&gt;color&lt;/code&gt; or &lt;code&gt;UIImage&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;There&amp;rsquo;s a new monospaced code font in Xcode: &lt;code&gt;SF Mono&lt;/code&gt; that seems to match up with the WWDC promo material this year.&lt;/li&gt;
&lt;li&gt;The simulator features a special version of the Messages app which allows you to see both halves of a conversation between two users. Very useful for testing all the iMessage newness.&lt;/li&gt;
&lt;li&gt;Xcode 8 supports both Swift 2.3 and Swift 3. If you choose Swift 2.3 for a project, there&amp;rsquo;s a new build setting that gets set to Yes: &amp;ldquo;Use Legacy Swift Language Version&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;The new memory debugger looks incredible. You can visualize the current object graph, and it can help identify memory leaks / retain cycles.&lt;/li&gt;
&lt;li&gt;Xcode now highlights the active line when editing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="foundation"&gt;Foundation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;There&amp;rsquo;s now &lt;a href="https://developer.apple.com/reference/foundation/nsdateinterval"&gt;&lt;code&gt;NSDateInterval&lt;/code&gt;&lt;/a&gt; for counting the duration of a time interval, checking whether a date exists in a range, and comparing intervals.&lt;/li&gt;
&lt;li&gt;FINALLY an &lt;a href="https://developer.apple.com/reference/foundation/nsiso8601dateformatter"&gt;ISO 8601 date formatter&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NSPersonNameComponentsFormatter&lt;/code&gt; has a new &lt;a href="https://developer.apple.com/reference/foundation/nspersonnamecomponentsformatter/1642979-personnamecomponentsfromstring"&gt;&lt;code&gt;personNameComponentsFromString:&lt;/code&gt;&lt;/a&gt; method that can parse out the individual components of a person&amp;rsquo;s name.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="notifications"&gt;Notifications&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://developer.apple.com/reference/usernotificationsui"&gt;User Notifications UI&lt;/a&gt; framework lets you customize the appearance of local and remote notifications when they appear on the user’s device.&lt;/li&gt;
&lt;li&gt;You can also intercept push notifications (through &lt;a href="https://developer.apple.com/reference/usernotifications"&gt;&lt;code&gt;UserNotifications.framework&lt;/code&gt;&lt;/a&gt;) and handle them before they alert the user. For example, you could download a video and &lt;em&gt;then&lt;/em&gt; tell the user it&amp;rsquo;s ready.&lt;/li&gt;
&lt;li&gt;Rich notifications are currently only optimized for 3D Touch, and they&amp;rsquo;ll be providing access to functionality for users of other iPhone models / iPad at a later date.&lt;/li&gt;
&lt;li&gt;A lot of the existing remote and local notification methods on &lt;code&gt;UIApplication&lt;/code&gt; (as well as &lt;code&gt;UILocalNotification&lt;/code&gt; itself) are now deprecated in favour of the &lt;a href="https://developer.apple.com/reference/usernotifications"&gt;&lt;code&gt;UserNotifications&lt;/code&gt;&lt;/a&gt; framework.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="uikit"&gt;UIKit&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;There&amp;rsquo;s a load of &lt;a href="https://developer.apple.com/reference/uikit/uiviewanimating"&gt;new animation APIs&lt;/a&gt;: &amp;ldquo;New object-based, fully interactive and interruptible animation support that lets you retain control of your animations and link them with gesture-based interactions.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;The refresh control is now supported in all scroll views and scrollview subclasses thanks to &lt;a href="https://developer.apple.com/reference/uikit/uirefreshcontrolhosting"&gt;&lt;code&gt;UIRefreshControlHosting&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Collectionviews and tableviews support prefetching of cells to improve scrolling (&lt;a href="https://developer.apple.com/reference/uikit/uicollectionviewdatasourceprefetching"&gt;&lt;code&gt;UICollectionViewDataSourcePrefetching&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://developer.apple.com/reference/uikit/uitableview/1771763-prefetchdatasource"&gt;&lt;code&gt;UITableViewDataSourcePrefetching&lt;/code&gt;&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;It looks like you can now provide your own previewing UI for 3D Touch: &lt;a href="https://developer.apple.com/reference/uikit/uipreviewinteraction"&gt;&lt;code&gt;UIPreviewInteraction&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;There are new UIVisualEffectView &lt;a href="https://developer.apple.com/reference/uikit/uiblureffectstyle"&gt;blur types&lt;/a&gt;: prominent and regular.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="core-data"&gt;Core Data&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/reference/coredata/nspersistentcontainer"&gt;&lt;code&gt;NSPersistentContainer&lt;/code&gt;&lt;/a&gt; looks like it might replace the simple &lt;code&gt;CoreDataStack&lt;/code&gt; class I&amp;rsquo;d add to most new projects. It encapsulates the whole core data stack, and has convenience methods for creating new background contexts and performing background tasks.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/reference/coredata/nsmanagedobject"&gt;&lt;code&gt;NSManagedObject&lt;/code&gt;&lt;/a&gt; gets a few new methods – &lt;code&gt;init(context:)&lt;/code&gt;, &lt;code&gt;fetchRequest()&lt;/code&gt;, &lt;code&gt;entity()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Xcode should be able to automatically generate classes for Core Data entities, but I&amp;rsquo;ve been unable to get this to work so far.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;NSManagedObjectContext&lt;/code&gt; now has an &lt;a href="https://developer.apple.com/reference/coredata/nsmanagedobjectcontext/1845237-automaticallymergeschangesfrompa"&gt;&lt;code&gt;automaticallyMergesChangesFromParent&lt;/code&gt;&lt;/a&gt; property to do the &lt;code&gt;NSManagedObjectContextDidSaveNotification&lt;/code&gt; observation and merging automatically.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="swift-playgrounds"&gt;Swift Playgrounds&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;On iPad, &lt;code&gt;XCPlayground&lt;/code&gt; is replaced by &lt;code&gt;PlaygroundSupport&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You can record videos of coding sessions right inside the app (in the Share menu).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="watchos"&gt;watchOS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Glances have gone completely in watchOS 3. Your app should now display and update glanceable information when the user has it in their Dock.&lt;/li&gt;
&lt;li&gt;If the user has your complication on their watch face, your app will be kept in a ready-to-launch state.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.apple.com/reference/watchkit/wkcrownsequencer"&gt;&lt;code&gt;WKCrownSequencer&lt;/code&gt;&lt;/a&gt; lets you directly access information about the crown&amp;rsquo;s state – whether it&amp;rsquo;s rotating, how fast, and when it&amp;rsquo;s stopped.&lt;/li&gt;
&lt;li&gt;SpriteKit and SceneKit on the watch is cray-cray. The State of the Union contains a cool demo where a notification on the watch contains an animated 3D SceneKit scene.&lt;/li&gt;
&lt;li&gt;You can now access information about the watch&amp;rsquo;s orientation, crown position, wrist location, etc in &lt;a href="https://developer.apple.com/reference/watchkit/wkinterfacedevice"&gt;&lt;code&gt;WKInterfaceDevice&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;If you&amp;rsquo;re using a watch app, whenever you lower and raise your wrist, you&amp;rsquo;ll get taken right back into the app, for up to 8 minutes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="sirikit"&gt;SiriKit&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;SiriKit is limited to only certain domains:&lt;/li&gt;
&lt;li&gt;Audio or video calling&lt;/li&gt;
&lt;li&gt;Messaging&lt;/li&gt;
&lt;li&gt;Sending or receiving payments&lt;/li&gt;
&lt;li&gt;Searching photos&lt;/li&gt;
&lt;li&gt;Booking a ride&lt;/li&gt;
&lt;li&gt;Managing workouts&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="misc"&gt;Misc&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;If you&amp;rsquo;ve indexed content for your app with Core Spotlight, you can now search it programmatically in-app using &lt;a href="https://developer.apple.com/reference/corespotlight/cssearchquery"&gt;&lt;code&gt;CSSearchQuery&lt;/code&gt;&lt;/a&gt;. A user can also continue a Spotlight search &lt;a href="https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewIniOS/Articles/iOS10.html#//apple_ref/doc/uid/TP40017084-DontLinkElementID_6"&gt;inside your app&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Speech recognition is now possible, through the &lt;a href="https://developer.apple.com/reference/speech"&gt;Speech framework&lt;/a&gt; and &lt;code&gt;SFSpeechRecognizer&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You can set an &lt;a href="https://developer.apple.com/reference/uikit/uipasteboard"&gt;expiry or exclusions for pasteboard data&lt;/a&gt; for the new universal clipboard.&lt;/li&gt;
&lt;li&gt;iOS 10 drops support for the iPhone 4S, iPad Mini, iPads 2 and 3, and the 5th generation iPod touch.&lt;/li&gt;
&lt;/ul&gt;</description><content:encoded><![CDATA[<p>There were some nice announcements from Apple at WWDC yesterday, including a revamped lock screen and notifications for iOS, SiriKit, and a lot of iMessage integration. Whilst scouring the newly-released developer documentation I&rsquo;ve come across a lot of interesting tidbits that aren&rsquo;t headline features on their own, so I thought I&rsquo;d collect them here in case they&rsquo;re of use to anyone else. In no particular order:</p>
<h3 id="xcode">Xcode</h3>
<ul>
<li>Some nice improvements to Interface Builder. You can now edit your UI at any zoom level (FINALLY)! The UI for customizing layouts for different device traits has also been revamped, and looks really good.</li>
<li>Image and colour literals are now supported in Swift code, including code completion for images that&rsquo;re in your asset catalog. Simply start typing either <code>color</code> or <code>UIImage</code>.</li>
<li>There&rsquo;s a new monospaced code font in Xcode: <code>SF Mono</code> that seems to match up with the WWDC promo material this year.</li>
<li>The simulator features a special version of the Messages app which allows you to see both halves of a conversation between two users. Very useful for testing all the iMessage newness.</li>
<li>Xcode 8 supports both Swift 2.3 and Swift 3. If you choose Swift 2.3 for a project, there&rsquo;s a new build setting that gets set to Yes: &ldquo;Use Legacy Swift Language Version&rdquo;.</li>
<li>The new memory debugger looks incredible. You can visualize the current object graph, and it can help identify memory leaks / retain cycles.</li>
<li>Xcode now highlights the active line when editing.</li>
</ul>
<h3 id="foundation">Foundation</h3>
<ul>
<li>There&rsquo;s now <a href="https://developer.apple.com/reference/foundation/nsdateinterval"><code>NSDateInterval</code></a> for counting the duration of a time interval, checking whether a date exists in a range, and comparing intervals.</li>
<li>FINALLY an <a href="https://developer.apple.com/reference/foundation/nsiso8601dateformatter">ISO 8601 date formatter</a>.</li>
<li><code>NSPersonNameComponentsFormatter</code> has a new <a href="https://developer.apple.com/reference/foundation/nspersonnamecomponentsformatter/1642979-personnamecomponentsfromstring"><code>personNameComponentsFromString:</code></a> method that can parse out the individual components of a person&rsquo;s name.</li>
</ul>
<h3 id="notifications">Notifications</h3>
<ul>
<li>The <a href="https://developer.apple.com/reference/usernotificationsui">User Notifications UI</a> framework lets you customize the appearance of local and remote notifications when they appear on the user’s device.</li>
<li>You can also intercept push notifications (through <a href="https://developer.apple.com/reference/usernotifications"><code>UserNotifications.framework</code></a>) and handle them before they alert the user. For example, you could download a video and <em>then</em> tell the user it&rsquo;s ready.</li>
<li>Rich notifications are currently only optimized for 3D Touch, and they&rsquo;ll be providing access to functionality for users of other iPhone models / iPad at a later date.</li>
<li>A lot of the existing remote and local notification methods on <code>UIApplication</code> (as well as <code>UILocalNotification</code> itself) are now deprecated in favour of the <a href="https://developer.apple.com/reference/usernotifications"><code>UserNotifications</code></a> framework.</li>
</ul>
<h3 id="uikit">UIKit</h3>
<ul>
<li>There&rsquo;s a load of <a href="https://developer.apple.com/reference/uikit/uiviewanimating">new animation APIs</a>: &ldquo;New object-based, fully interactive and interruptible animation support that lets you retain control of your animations and link them with gesture-based interactions.&rdquo;</li>
<li>The refresh control is now supported in all scroll views and scrollview subclasses thanks to <a href="https://developer.apple.com/reference/uikit/uirefreshcontrolhosting"><code>UIRefreshControlHosting</code></a>.</li>
<li>Collectionviews and tableviews support prefetching of cells to improve scrolling (<a href="https://developer.apple.com/reference/uikit/uicollectionviewdatasourceprefetching"><code>UICollectionViewDataSourcePrefetching</code></a> and <a href="https://developer.apple.com/reference/uikit/uitableview/1771763-prefetchdatasource"><code>UITableViewDataSourcePrefetching</code></a>)</li>
<li>It looks like you can now provide your own previewing UI for 3D Touch: <a href="https://developer.apple.com/reference/uikit/uipreviewinteraction"><code>UIPreviewInteraction</code></a>.</li>
<li>There are new UIVisualEffectView <a href="https://developer.apple.com/reference/uikit/uiblureffectstyle">blur types</a>: prominent and regular.</li>
</ul>
<h3 id="core-data">Core Data</h3>
<ul>
<li><a href="https://developer.apple.com/reference/coredata/nspersistentcontainer"><code>NSPersistentContainer</code></a> looks like it might replace the simple <code>CoreDataStack</code> class I&rsquo;d add to most new projects. It encapsulates the whole core data stack, and has convenience methods for creating new background contexts and performing background tasks.</li>
<li><a href="https://developer.apple.com/reference/coredata/nsmanagedobject"><code>NSManagedObject</code></a> gets a few new methods – <code>init(context:)</code>, <code>fetchRequest()</code>, <code>entity()</code>.</li>
<li>Xcode should be able to automatically generate classes for Core Data entities, but I&rsquo;ve been unable to get this to work so far.</li>
<li><code>NSManagedObjectContext</code> now has an <a href="https://developer.apple.com/reference/coredata/nsmanagedobjectcontext/1845237-automaticallymergeschangesfrompa"><code>automaticallyMergesChangesFromParent</code></a> property to do the <code>NSManagedObjectContextDidSaveNotification</code> observation and merging automatically.</li>
</ul>
<h3 id="swift-playgrounds">Swift Playgrounds</h3>
<ul>
<li>On iPad, <code>XCPlayground</code> is replaced by <code>PlaygroundSupport</code>.</li>
<li>You can record videos of coding sessions right inside the app (in the Share menu).</li>
</ul>
<h3 id="watchos">watchOS</h3>
<ul>
<li>Glances have gone completely in watchOS 3. Your app should now display and update glanceable information when the user has it in their Dock.</li>
<li>If the user has your complication on their watch face, your app will be kept in a ready-to-launch state.</li>
<li><a href="https://developer.apple.com/reference/watchkit/wkcrownsequencer"><code>WKCrownSequencer</code></a> lets you directly access information about the crown&rsquo;s state – whether it&rsquo;s rotating, how fast, and when it&rsquo;s stopped.</li>
<li>SpriteKit and SceneKit on the watch is cray-cray. The State of the Union contains a cool demo where a notification on the watch contains an animated 3D SceneKit scene.</li>
<li>You can now access information about the watch&rsquo;s orientation, crown position, wrist location, etc in <a href="https://developer.apple.com/reference/watchkit/wkinterfacedevice"><code>WKInterfaceDevice</code></a></li>
<li>If you&rsquo;re using a watch app, whenever you lower and raise your wrist, you&rsquo;ll get taken right back into the app, for up to 8 minutes.</li>
</ul>
<h3 id="sirikit">SiriKit</h3>
<ul>
<li>SiriKit is limited to only certain domains:</li>
<li>Audio or video calling</li>
<li>Messaging</li>
<li>Sending or receiving payments</li>
<li>Searching photos</li>
<li>Booking a ride</li>
<li>Managing workouts</li>
</ul>
<h3 id="misc">Misc</h3>
<ul>
<li>If you&rsquo;ve indexed content for your app with Core Spotlight, you can now search it programmatically in-app using <a href="https://developer.apple.com/reference/corespotlight/cssearchquery"><code>CSSearchQuery</code></a>. A user can also continue a Spotlight search <a href="https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewIniOS/Articles/iOS10.html#//apple_ref/doc/uid/TP40017084-DontLinkElementID_6">inside your app</a>.</li>
<li>Speech recognition is now possible, through the <a href="https://developer.apple.com/reference/speech">Speech framework</a> and <code>SFSpeechRecognizer</code>.</li>
<li>You can set an <a href="https://developer.apple.com/reference/uikit/uipasteboard">expiry or exclusions for pasteboard data</a> for the new universal clipboard.</li>
<li>iOS 10 drops support for the iPhone 4S, iPad Mini, iPads 2 and 3, and the 5th generation iPod touch.</li>
</ul>
]]></content:encoded></item><item><title>Two Nifty Swift Loop Tricks</title><link>https://frosty.blog/2016/02/06/two-nifty-swift-loop-tricks/</link><pubDate>Sat, 06 Feb 2016 19:49:56 +0000</pubDate><guid>https://frosty.blog/2016/02/06/two-nifty-swift-loop-tricks/</guid><description>&lt;p&gt;This week, I learnt two things about Swift that I&amp;rsquo;d never come across before. Both involve loops.&lt;/p&gt;
&lt;p&gt;The first, via &lt;a href="http://ericasadun.com/2016/01/15/3-simple-for-in-iteration-tricks/"&gt;Erica Sadun&lt;/a&gt;: you can use &lt;code&gt;case let&lt;/code&gt; in a &lt;code&gt;for&lt;/code&gt; loop to conditionally bind optionals or cast items. Here&amp;rsquo;s the optional binding example from Erica&amp;rsquo;s post:&lt;/p&gt;





&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-swift" data-lang="swift"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;?]&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kc"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;nil&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;World&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;item&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;items&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="bp"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Check out the full post, &lt;a href="http://ericasadun.com/2016/01/15/3-simple-for-in-iteration-tricks/"&gt;3 simple for-in iteration tricks&lt;/a&gt; for some other neat tricks.&lt;/p&gt;
&lt;p&gt;Secondly, from &lt;a href="http://krakendev.io/blog/hipster-swift#loop-labels"&gt;this post&lt;/a&gt; at KrakenDev: you can &lt;strong&gt;label loops&lt;/strong&gt; in Swift! Here&amp;rsquo;s an example:&lt;/p&gt;</description><content:encoded><![CDATA[<p>This week, I learnt two things about Swift that I&rsquo;d never come across before. Both involve loops.</p>
<p>The first, via <a href="http://ericasadun.com/2016/01/15/3-simple-for-in-iteration-tricks/">Erica Sadun</a>: you can use <code>case let</code> in a <code>for</code> loop to conditionally bind optionals or cast items. Here&rsquo;s the optional binding example from Erica&rsquo;s post:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-swift" data-lang="swift"><span class="line"><span class="cl"><span class="kd">let</span> <span class="nv">items</span><span class="p">:</span> <span class="p">[</span><span class="nb">String</span><span class="p">?]</span> <span class="p">=</span> <span class="p">[</span><span class="kc">nil</span><span class="p">,</span> <span class="kc">nil</span><span class="p">,</span> <span class="s">&#34;Hello&#34;</span><span class="p">,</span> <span class="kc">nil</span><span class="p">,</span> <span class="s">&#34;World&#34;</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="k">case</span> <span class="kd">let</span> <span class="nv">item</span><span class="p">?</span> <span class="k">in</span> <span class="n">items</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="bp">print</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div><p>Check out the full post, <a href="http://ericasadun.com/2016/01/15/3-simple-for-in-iteration-tricks/">3 simple for-in iteration tricks</a> for some other neat tricks.</p>
<p>Secondly, from <a href="http://krakendev.io/blog/hipster-swift#loop-labels">this post</a> at KrakenDev: you can <strong>label loops</strong> in Swift! Here&rsquo;s an example:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-swift" data-lang="swift"><span class="line"><span class="cl"><span class="n">sectionLoop</span><span class="p">:</span> <span class="k">for</span> <span class="n">section</span> <span class="k">in</span> <span class="n">sections</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="n">rowLoop</span><span class="p">:</span> <span class="k">for</span> <span class="n">row</span> <span class="k">in</span> <span class="n">rows</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="n">row</span><span class="p">.</span><span class="n">isMagical</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">            <span class="k">break</span> <span class="n">sectionLoop</span>
</span></span><span class="line"><span class="cl">        <span class="p">}</span>
</span></span><span class="line"><span class="cl">    <span class="p">}</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span></span></span></code></pre></div><p>Who knew?! There are a bunch more useful tips in the full post, <a href="http://krakendev.io/blog/hipster-swift">Hipster Swift</a>, including descriptions of what <code>@noescape</code> and <code>@autoclosure</code> actually do.</p>
]]></content:encoded></item><item><title>New Year, New Job, New Blog</title><link>https://frosty.blog/2016/02/02/new-year-new-job-new-blog/</link><pubDate>Tue, 02 Feb 2016 11:55:19 +0000</pubDate><guid>https://frosty.blog/2016/02/02/new-year-new-job-new-blog/</guid><description>&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2016/01/wpcom-wmark.png" alt="wpcom-wmark" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;Okay, so we&amp;rsquo;re already a month into 2016, but I&amp;rsquo;ve been a bit busy. :)&lt;/p&gt;
&lt;p&gt;At the end of November, I left my job of 3+ years as a senior iOS developer at &lt;a href="http://mubaloo.com"&gt;Mubaloo&lt;/a&gt; to join &lt;a href="http://automattic.com"&gt;Automattic&lt;/a&gt; as a Mobile Wrangler.&lt;/p&gt;
&lt;p&gt;In case you haven&amp;rsquo;t heard of them, Automattic is most well known for &lt;a href="http://wordpress.com"&gt;WordPress.com&lt;/a&gt;. They&amp;rsquo;re also responsible for &lt;a href="http://simplenote.com"&gt;Simplenote&lt;/a&gt;, a simple note storage service which I&amp;rsquo;ve used since the early days of the iOS App Store.&lt;/p&gt;</description><content:encoded><![CDATA[<figure>
  <img src="/images/2016/01/wpcom-wmark.png" alt="wpcom-wmark" loading="lazy">
</figure>
<p>Okay, so we&rsquo;re already a month into 2016, but I&rsquo;ve been a bit busy. :)</p>
<p>At the end of November, I left my job of 3+ years as a senior iOS developer at <a href="http://mubaloo.com">Mubaloo</a> to join <a href="http://automattic.com">Automattic</a> as a Mobile Wrangler.</p>
<p>In case you haven&rsquo;t heard of them, Automattic is most well known for <a href="http://wordpress.com">WordPress.com</a>. They&rsquo;re also responsible for <a href="http://simplenote.com">Simplenote</a>, a simple note storage service which I&rsquo;ve used since the early days of the iOS App Store.</p>
<p>As a Mobile Wrangler<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, I&rsquo;ll be primarily working on the <a href="https://apps.wordpress.org">WordPress iOS app</a> (which, as with a lot of Automattic&rsquo;s products, is <a href="http://github.com/wordpress-mobile/wordpress-ios">open source</a>).</p>
<p>Automattic is an incredible company to be part of. Their mission is to democratise publishing, providing a platform for anybody to have a blog or website. The entire company is distributed across the world, with employees in 43 countries. Pretty much everybody works from their own homes (although if you want to work from a coffee shop or a coworking space, that&rsquo;s cool too) and sets their own schedules. With a 1 year old son at home, I&rsquo;m so grateful that I&rsquo;m now at home all day; I get to see him so much more than I used to, we can all have lunch together, and I can work a schedule that suits my family.</p>
<p>I&rsquo;ve also converted this site (which hasn&rsquo;t received much love recently) over to WordPress, and I hope to begin writing here again soon.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p> At Automattic, you actually choose your own job title. Mobile Wrangler is what most of the mobile developers go by, although there&rsquo;s definitely a Pokémon Trainer amongst the ranks too.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Fixing Xcode's Invisible Cursor</title><link>https://frosty.blog/2016/01/16/fixing-xcodes-invisible-cursor/</link><pubDate>Sat, 16 Jan 2016 09:01:37 +0000</pubDate><guid>https://frosty.blog/2016/01/16/fixing-xcodes-invisible-cursor/</guid><description>&lt;p&gt;When writing code, I generally like to use a dark theme in my IDE or text editor. For Xcode, I really like the &lt;a href="https://github.com/chriskempson/tomorrow-theme/tree/master/Xcode%204"&gt;Tomorrow Night&lt;/a&gt; and &lt;a href="https://github.com/alenofx/seti-xcode-theme"&gt;Seti&lt;/a&gt; themes in particular (both of which can be easily installed using the &lt;a href="http://alcatraz.io"&gt;Alcatraz package manager&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;In Xcode, however, there&amp;rsquo;s a slight problem for dark theme fans:&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2016/02/xcode_beam.png" alt="xcode_beam.png" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;By default the &amp;lsquo;i-beam&amp;rsquo; mouse cursor in the editor is &lt;em&gt;really&lt;/em&gt; hard to see, particularly on a high resolution monitor. I&amp;rsquo;d often find myself losing it and having to shake the mouse to activate El Capitan&amp;rsquo;s &lt;a href="http://www.imore.com/sites/imore.com/files/styles/larger/public/field/image/2015/09/cursor-gif-small-1.gif?itok=ucjubKwg"&gt;mouse zoom&lt;/a&gt; feature.&lt;/p&gt;</description><content:encoded><![CDATA[<p>When writing code, I generally like to use a dark theme in my IDE or text editor. For Xcode, I really like the <a href="https://github.com/chriskempson/tomorrow-theme/tree/master/Xcode%204">Tomorrow Night</a> and <a href="https://github.com/alenofx/seti-xcode-theme">Seti</a> themes in particular (both of which can be easily installed using the <a href="http://alcatraz.io">Alcatraz package manager</a>).</p>
<p>In Xcode, however, there&rsquo;s a slight problem for dark theme fans:</p>
<figure>
  <img src="/images/2016/02/xcode_beam.png" alt="xcode_beam.png" loading="lazy">
</figure>
<p>By default the &lsquo;i-beam&rsquo; mouse cursor in the editor is <em>really</em> hard to see, particularly on a high resolution monitor. I&rsquo;d often find myself losing it and having to shake the mouse to activate El Capitan&rsquo;s <a href="http://www.imore.com/sites/imore.com/files/styles/larger/public/field/image/2015/09/cursor-gif-small-1.gif?itok=ucjubKwg">mouse zoom</a> feature.</p>
<p>But there&rsquo;s a solution! I noticed that <strong>Terminal.app&rsquo;s</strong> i-beam cursor has a stronger shadow, which makes it easier to see on dark backgrounds. The cursors are just <code>.tiff</code> image files, so it&rsquo;s trivial to steal Terminal&rsquo;s cursor and stick it into Xcode.</p>
<p>If you want to do it manually, you&rsquo;ll need to copy <code>/Applications/Utilities/Terminal.app/Contents/Resources/ShadowedIBeam.tiff</code> over the top of <code>/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources/DVTIbeamCursor.tiff</code>. Or you can just run this snippet in Terminal, which will do it for you:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Versions/A/Resources<span class="p">;</span> sudo mv DVTIbeamCursor.tiff DVTIbeamCursor.old<span class="p">;</span> sudo cp /Applications/Utilities/Terminal.app/Contents/Resources/ShadowedIBeam.tiff DVTIbeamCursor.tiff</span></span></code></pre></div><p>The change in shadow is actually only slight, but I find it makes a big difference in helping me locate the cursor:</p>
<figure>
  <img src="/images/2016/02/terminal_beam.png" alt="terminal_beam.png" loading="lazy">
</figure>
<p>And here&rsquo;s a before and after:</p>
<figure>
  <img src="/images/2016/02/before_and_after_beams.png" alt="before_and_after_beams.png" loading="lazy">
</figure>
<p><strong>Update:</strong> On Twitter, <a href="http://twitter.com/TwoLivesLeft">@TwoLivesLeft</a> pointed out that iTerm&rsquo;s cursor has even better contrast:</p>
<p><a href="https://twitter.com/TwoLivesLeft/status/695573097408139265">https://twitter.com/TwoLivesLeft/status/695573097408139265</a></p>
<p>**Update 2:**Also on Twitter, <a href="http://twitter.com/GregHeo">GregHeo</a>, there&rsquo;s a super-mega visible cursor available on Github: <a href="https://github.com/egold/better-xcode-ibeam-cursor">https://github.com/egold/better-xcode-ibeam-cursor</a></p>
]]></content:encoded></item><item><title>The Just Checks Today Widget</title><link>https://frosty.blog/2014/11/15/the-just-checks-today-widget/</link><pubDate>Sat, 15 Nov 2014 17:43:50 +0000</pubDate><guid>https://frosty.blog/2014/11/15/the-just-checks-today-widget/</guid><description>&lt;p&gt;Inspired by Shawn Blanc&amp;rsquo;s &amp;ldquo;&lt;a href="http://weeklybriefly.net/the-just-checks/"&gt;The Just Checks&lt;/a&gt;&amp;rdquo; episode of The Weekly Briefly podcast.&lt;/p&gt;
&lt;p&gt;The &lt;em&gt;Just Checks&lt;/em&gt; are those times throughout the day when we &amp;lsquo;just check&amp;rsquo; our phones: skim over our Twitter feeds, browse RSS, check our emails, etc. In Shawn&amp;rsquo;s words:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip; as soon as I’m holding my phone, it’s instinct at this point to swipe-to-unlock the thing. And then, once the phone is unlocked and I’m staring blankly at my Home screen of icons, I’m going to want to launch an app. But because I unlocked the phone without any clear plan for what I needed to do, the next thing I know I’m checking Twitter. And all the while, I don’t even know what time it is. See? It’s a bad habit.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Inspired by Shawn Blanc&rsquo;s &ldquo;<a href="http://weeklybriefly.net/the-just-checks/">The Just Checks</a>&rdquo; episode of The Weekly Briefly podcast.</p>
<p>The <em>Just Checks</em> are those times throughout the day when we &lsquo;just check&rsquo; our phones: skim over our Twitter feeds, browse RSS, check our emails, etc. In Shawn&rsquo;s words:</p>
<blockquote>
<p>&hellip; as soon as I’m holding my phone, it’s instinct at this point to swipe-to-unlock the thing. And then, once the phone is unlocked and I’m staring blankly at my Home screen of icons, I’m going to want to launch an app. But because I unlocked the phone without any clear plan for what I needed to do, the next thing I know I’m checking Twitter. And all the while, I don’t even know what time it is. See? It’s a bad habit.</p>
</blockquote>
<p>I built this widget to help limit my own bad habits of &lsquo;just checking&rsquo; Twitter and RSS many many times throughout the day. Apple doesn&rsquo;t allow widgets on the App Store that launch other apps, so I&rsquo;m releasing the code on Github in case anybody else wants to try it out for themselves. The widget is currently set up to work with <a href="http://tapbots.com/software/tweetbot/">Tweetbot</a> and <a href="http://supertop.co/unread/">Unread</a>, and uses their URL schemes to launch the apps.</p>
<figure>
  <img src="/images/2015/10/2014-11-15-the-just-checks-widget.png" alt="The Just Checks Today Widget" loading="lazy">
</figure>
<p>The idea is this: the widget displays an icon for Tweetbot and an icon for Unread. When an icon is tapped, the associated app is launched. The widget then keeps track of the amount of time since you launched that app. There&rsquo;s a timeout set so you can&rsquo;t relaunch an app through the widget more often than once every hour (because really, why should you need to?). I&rsquo;ve also hidden my Tweetbot and Unread app icons away in a folder on the last home screen on my phone. This adds enough extra friction that I&rsquo;m more likely to use the widget to launch my apps.</p>
<p>In the short time I&rsquo;ve been using the widget, I&rsquo;ve found that seeing the timer when I go to launch an app has been really effective at getting me to just put my phone back in my pocket. I&rsquo;ve even caught myself going to check Twitter and realising that I&rsquo;d only checked it 5 minutes ago, when I could&rsquo;ve sworn it was much longer. I&rsquo;ll stop in my tracks, lock my phone, put it back in my pocket, and get on with my day.</p>
<p>Also worth checking out: Shawn Blanc&rsquo;s <a href="http://shawnblanc.net/2014/11/alternatives-to-the-just-checks/">Alternatives to The Just Checks</a>.</p>
<p>Code for the widget is available on <a href="https://github.com/frosty/JustChecks">Github</a>.</p>
]]></content:encoded></item><item><title>Calculating App Store Spend</title><link>https://frosty.blog/2014/09/28/calculating-app-store-spend/</link><pubDate>Sun, 28 Sep 2014 21:30:00 +0000</pubDate><guid>https://frosty.blog/2014/09/28/calculating-app-store-spend/</guid><description>&lt;p&gt;I like buying apps. Perhaps it comes from being an app developer myself, but I like to pay for apps that I enjoy and that I get value from. Designing and building an app takes a &lt;em&gt;huge&lt;/em&gt; amount of work, and I hope that paying for an app means that it&amp;rsquo;s more likely to receive updates in the future.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve recently had a couple of conversations with people who have &lt;em&gt;never&lt;/em&gt; paid for an app, which made me curious about just how much I&amp;rsquo;ve spent over the years. Unfortunately Apple provides no easy way to see this information. but they do send out regular receipt emails when you make a purchase. I&amp;rsquo;ve always archived these emails in my Gmail account, so I put together &lt;a href="https://gist.github.com/frosty/b6d1615dab5544fc22b0"&gt;a small script&lt;/a&gt; to parse them and produce some figures. I mentioned it on Twitter and a number of people showed interest in it, so I thought I&amp;rsquo;d reproduce it here.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I like buying apps. Perhaps it comes from being an app developer myself, but I like to pay for apps that I enjoy and that I get value from. Designing and building an app takes a <em>huge</em> amount of work, and I hope that paying for an app means that it&rsquo;s more likely to receive updates in the future.</p>
<p>I&rsquo;ve recently had a couple of conversations with people who have <em>never</em> paid for an app, which made me curious about just how much I&rsquo;ve spent over the years. Unfortunately Apple provides no easy way to see this information. but they do send out regular receipt emails when you make a purchase. I&rsquo;ve always archived these emails in my Gmail account, so I put together <a href="https://gist.github.com/frosty/b6d1615dab5544fc22b0">a small script</a> to parse them and produce some figures. I mentioned it on Twitter and a number of people showed interest in it, so I thought I&rsquo;d reproduce it here.</p>
<p>The steps below outline how <em>I</em> retrieved my own emails and ran the numbers; of course, everybody&rsquo;s setup is different but hopefully you&rsquo;ll be able to adapt them to your needs. I use Gmail as my email provider and OS X as my operating system, so all of the instructions are specific to that setup.</p>
<ol>
<li>First of all, you&rsquo;ll need to tag all of your iTunes receipts with a unique tag. I have a filter set up for the following search, which tags all matching emails with <strong>iTunesReceipts</strong>: <code>from:(itunes store) subject:(your receipt no.*)</code></li>
<li>Next, download all of your iTunes receipts as <code>.eml</code> files. I used <a href="http://gmvault.org">Gmvault</a> to download mine. Grab the tool and extract it. I used the following command to fetch the relevant emails: <code>gmvault sync --type custom --gmail-req &quot;in:iTunesReceipts&quot; your_email_address@gmail.com --no-compression</code> By default, Gmvault will download the emails into a directory named <code>gmvault-db/db</code> in your home directory.</li>
<li>Now<code>cd</code> into the Gmvault <code>db</code> directory. You can then either manually download my parser script from the [Github Gist][gist] and run it, or download and run automatically in a single command:</li>
</ol>
<p>[bash wraplines=&ldquo;true&rdquo;] ruby -e &ldquo;$(curl -fsSL <a href="https://gist.githubusercontent.com/frosty/b6d1615dab5544fc22b0/raw/e4e3b48b032079e188c8d3f246b2609b83995558/parser.rb)%22">https://gist.githubusercontent.com/frosty/b6d1615dab5544fc22b0/raw/e4e3b48b032079e188c8d3f246b2609b83995558/parser.rb)&quot;</a> [/bash]  The script will first ask for the currency symbol your emails will use; it defaults to &lsquo;£&rsquo; if you just press enter. It should then output a count and combined spend for iOS apps and in-app purchases. It&rsquo;ll also create a tab-separated file named <code>Apps.tsv</code>, which will contain a list of all of your purchases. You can open this in a text editor or a spreadsheet app like Numbers if you want to.  Notes  The script could probably be much neater, but I don&rsquo;t work with Ruby very often and I just threw it together in an evening! I make no guarantees that this script catches everything or that it doesn&rsquo;t pick up any false positives. The iTunes receipt format is quite awkward and inconsistent and has changed quite a lot throughout the years. Based on my own receipts, however, this seems to do a pretty good job. If you have a suggestion for ways to improve the script, feel free to fork it on Github!  So how much have I spent on apps? Turns out, it&rsquo;s rather a lot. But when I average my spend out over the life of the App Store, and consider the amount of value and enjoyment I get from the various apps and games I&rsquo;ve bought over the years&hellip; I think it&rsquo;s a pretty good deal.</p>
]]></content:encoded></item><item><title>Multitouch with Haxe NME</title><link>https://frosty.blog/2012/06/24/multitouch-with-haxe-nme/</link><pubDate>Sun, 24 Jun 2012 23:00:00 +0000</pubDate><guid>https://frosty.blog/2012/06/24/multitouch-with-haxe-nme/</guid><description>&lt;p&gt;I&amp;rsquo;ve been getting really interested in &lt;a href="http://www.haxenme.org"&gt;Haxe NME&lt;/a&gt; recently. Haxe is an open source cross-platform language, and NME adds a display framework on top of that which is modelled very closely on Adobe&amp;rsquo;s Flash API. The beauty of it is that you can write one codebase and then compile it to native code for Flash, HTML5, Windows, Mac, Linux, iOS, Android and more.&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2015/12/2012-06-25-nme-multitouch-example.png" alt="Haxe NME screenshot" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;I was trying to get to grips last night with handling multitouch input using NME, and I struggled to find a decent example. I managed to get something working and so I put together an example myself which I&amp;rsquo;m sharing here. It&amp;rsquo;s a simple example which tracks each distinct touch point and displays a randomly coloured circle beneath that touch. I&amp;rsquo;ve tested it on iOS and Android.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I&rsquo;ve been getting really interested in <a href="http://www.haxenme.org">Haxe NME</a> recently. Haxe is an open source cross-platform language, and NME adds a display framework on top of that which is modelled very closely on Adobe&rsquo;s Flash API. The beauty of it is that you can write one codebase and then compile it to native code for Flash, HTML5, Windows, Mac, Linux, iOS, Android and more.</p>
<figure>
  <img src="/images/2015/12/2012-06-25-nme-multitouch-example.png" alt="Haxe NME screenshot" loading="lazy">
</figure>
<p>I was trying to get to grips last night with handling multitouch input using NME, and I struggled to find a decent example. I managed to get something working and so I put together an example myself which I&rsquo;m sharing here. It&rsquo;s a simple example which tracks each distinct touch point and displays a randomly coloured circle beneath that touch. I&rsquo;ve tested it on iOS and Android.</p>
<p><a href="https://github.com/frosty/NME-Multitouch-Example">Grab the source from Github</a></p>
]]></content:encoded></item><item><title>Windows Phone 7: Twitter Apps</title><link>https://frosty.blog/2012/01/25/windows-phone-7-twitter-apps/</link><pubDate>Wed, 25 Jan 2012 00:00:00 +0000</pubDate><guid>https://frosty.blog/2012/01/25/windows-phone-7-twitter-apps/</guid><description>&lt;h2 id="the-lowdown"&gt;The Lowdown&lt;/h2&gt;
&lt;p&gt;I recently picked up a Nokia Lumia 800 phone, running Windows Phone 7. In short: I&amp;rsquo;m a geek, I like trying out new tech, I&amp;rsquo;ve had an iPhone since mid-2008, and I really liked the look of what Microsoft has done with Windows Phone 7. I&amp;rsquo;m working on a full review, but as I&amp;rsquo;m getting to grips with the phone and the OS I figured I&amp;rsquo;d write up some of the issues I run up against.&lt;/p&gt;</description><content:encoded><![CDATA[<h2 id="the-lowdown">The Lowdown</h2>
<p>I recently picked up a Nokia Lumia 800 phone, running Windows Phone 7. In short: I&rsquo;m a geek, I like trying out new tech, I&rsquo;ve had an iPhone since mid-2008, and I really liked the look of what Microsoft has done with Windows Phone 7. I&rsquo;m working on a full review, but as I&rsquo;m getting to grips with the phone and the OS I figured I&rsquo;d write up some of the issues I run up against.</p>
<p>Today: finding a Twitter app.</p>
<h3 id="a-note-on-terminology">A note on terminology</h3>
<p>Just in case you&rsquo;re unfamiliar with Windows Phone 7, it features a number of different notification methods. I&rsquo;ll mention these later on, so I figured I should briefly explain what each type is:</p>
<ul>
<li><strong>Live Tile updates</strong><br>
Windows Phone 7&rsquo;s Start screen features &lsquo;Live Tiles&rsquo; - essentially large icons that can be used to launch applications, access music, files, or other useful parts of applications that you might want to jump straight in to. They can also be dynamically updated with badge counts, text, or images.</li>
<li><strong>Toast notifications</strong><br>
Toast notifications are most similar to iOS notifications. They appear briefly at the top of the screen to notify you of events such as text messages or new tweets.</li>
<li><strong>Raw notifications</strong><br>
These just push some data into a running app.</li>
</ul>
<h3 id="twitter-apps">Twitter Apps</h3>
<p>Windows Phone 7&rsquo;s App Marketplace still feels pretty immature in comparison to iOS. There are a number of Twitter apps available (but nowhere near the number available on iOS), and thankfully you can try most of them out for free. Free trials are a huge plus for the WP7 Marketplace, and I&rsquo;d love to see a similar feature on the App Store. Unfortunately I haven&rsquo;t found a perfect app (sadly, no WP7 <a href="http://tapbots.com/software/tweetbot/">Tweetbot</a>), but here&rsquo;s a quick summary of everything I&rsquo;ve tried that was even worth mentioning.</p>
<h2 id="system-level-integration">System-level integration</h2>
<p>WP7 features great system-level Twitter integration. You can check your main timeline, send tweets and replies, and view mentions.</p>
<p><strong>Pros:</strong></p>
<ul>
<li>Fast.</li>
<li>Updates your &lsquo;Me&rsquo; Live Tile with any mentions you may have received.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li>No conversation views.</li>
<li>No toast notifications.</li>
</ul>
<h2 id="twitter-official-app-free"><a href="http://www.windowsphone.com/en-GB/apps/0b792c7c-14dc-df11-a844-00237de2db9e">Twitter</a> (official app, free)</h2>
<p><strong>Pros:</strong></p>
<ul>
<li>Looks really nice (I especially like the dark theme).</li>
<li>Performance seems very good (scrolling, etc).</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li>Doesn&rsquo;t remember your position in the timeline.</li>
<li>No toast notifications or live tile updates.</li>
</ul>
<h2 id="mehdoh-free"><a href="http://www.windowsphone.com/en-GB/apps/150f3fc4-dc0d-4299-a8ba-069b70436ad7">Mehdoh</a> (free)</h2>
<p><strong>Pros:</strong></p>
<ul>
<li>Has notifications.</li>
<li>Remembers your position in the timeline.</li>
<li>Gap detection.</li>
<li>Instapaper support.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li>Only seems to do toast notifications, and they&rsquo;re nowhere near real time. App seems to state that it does live tile updates, but I&rsquo;ve yet to see it work.</li>
<li>Not the prettiest app in the world.</li>
<li>By default, it doesn&rsquo;t grab many new tweets, but this seems to be configurable.</li>
<li>Ugly splash screen</li>
</ul>
<h2 id="birdsong-free-with-trial"><a href="http://www.windowsphone.com/en-GB/apps/ac61a1bc-9325-e011-854c-00237de2db9e">Birdsong</a> (free, with trial)</h2>
<p><strong>Pros:</strong></p>
<ul>
<li>Looks nice.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li>Says it does notifications, but they don&rsquo;t work.</li>
<li>Jerky scrolling (seemed to mainly be triggered after viewing a link and then returning to the timeline)</li>
<li>Doesn&rsquo;t remember your position</li>
<li>Ugly splash screen</li>
</ul>
<h2 id="rowi-229-with-trial"><a href="http://www.windowsphone.com/en-GB/apps/304c9bfd-9b65-e011-81d2-78e7d1fa76f8">Rowi</a> (£2.29, with trial)</h2>
<p><strong>Pros:</strong></p>
<ul>
<li>Looks nice.</li>
<li>Keeps timeline position.</li>
<li>Paid version does notifications (haven&rsquo;t tested these yet).</li>
<li>Instapaper support.</li>
<li>Really responsive devs, and a big update will be out very soon.</li>
</ul>
<p><strong>Cons:</strong></p>
<ul>
<li>Conversation view isn&rsquo;t great - have you manually click through each tweet.</li>
<li>Doesn&rsquo;t seem to multitask particularly well (this will be improved in the pending update).</li>
<li>Scrolling occasionally goes a bit &hellip; clunky (again, I think this should be improved in the next update).</li>
</ul>
<h2 id="which-is-best">Which is best?</h2>
<p>I&rsquo;m currently mainly flitting between the system-level integration and <strong>Rowi</strong>. Rowi has most of the features I need, the developers are very responsive, and I&rsquo;m looking forward to the upcoming update which is apparently going to bring full Mango support (Live Tiles, etc). It&rsquo;s not perfect, and I think style-wise I prefer the official Twitter app, but Rowi offers more of the features I need. I&rsquo;m currently only using the trial at the moment, but I&rsquo;ll likely buy the full thing soon as I really want notifications (and Mehdoh&rsquo;s just aren&rsquo;t up to scratch).</p>
<p>All of these apps have free trials, so there&rsquo;s no reason not to check them all out and see what suits you best.</p>
]]></content:encoded></item><item><title>Ascension: Chronicle of the Godslayer</title><link>https://frosty.blog/2012/01/24/ascension-chronicle-of-the-godslayer/</link><pubDate>Tue, 24 Jan 2012 00:00:00 +0000</pubDate><guid>https://frosty.blog/2012/01/24/ascension-chronicle-of-the-godslayer/</guid><description>&lt;p&gt;&lt;a href="http://www.ascensiongame.com/"&gt;&lt;em&gt;Ascension: Chronicle of the Godslayer&lt;/em&gt;&lt;/a&gt; is a card game that has some similarities to the popular &lt;a href="http://www.wizards.com/Magic/"&gt;&lt;em&gt;Magic: The Gathering&lt;/em&gt;&lt;/a&gt; collectable card game. My first introduction to &lt;em&gt;Ascension&lt;/em&gt; was through its well-received iOS version, which I liked so much that I went straight out and bought a copy of the physical game too&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;. This is primarily a review of the iOS version, but both versions play exactly the same and are equally enjoyable.&lt;/p&gt;</description><content:encoded><![CDATA[<p><a href="http://www.ascensiongame.com/"><em>Ascension: Chronicle of the Godslayer</em></a> is a card game that has some similarities to the popular <a href="http://www.wizards.com/Magic/"><em>Magic: The Gathering</em></a> collectable card game. My first introduction to <em>Ascension</em> was through its well-received iOS version, which I liked so much that I went straight out and bought a copy of the physical game too<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. This is primarily a review of the iOS version, but both versions play exactly the same and are equally enjoyable.</p>
<figure>
  <img src="/images/2015/12/2011-01-18-ascension-01.jpg" alt="" loading="lazy">
</figure>
<p><em>Ascension</em> is a deckbuilding game designed by a former <em>Magic</em> Pro Tour champion. I&rsquo;ve played a small amount of <em>Magic</em> in the past but was put off by the amount of pre-game preparation that is necessary and the sheer number of cards that are available (although I realise that it’s exactly these elements that draw many people to the game)<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>. I think <em>Ascension</em> struck a chord with me because it&rsquo;s reminiscent of <em>Magic</em> but (in my opinion) improves upon it in a number of ways.</p>
<h3 id="gameplay">Gameplay</h3>
<p>In <em>Ascension</em>, each player starts off with their own deck, containing the exact same 10 cards. Each round of the game sees you drawing a hand of 5 cards from your deck and using them to buy or ’defeat’ other cards from an ever changing selection in the middle of the play area. Defeating a monster gives you honour, buying a card means you get to add it to your deck, to use on a later turn. Each card in your hand gives you ’currency’ in one form or another, or allows you to perform an action such as drawing extra cards. As the game progresses you build up your deck from the same pool of cards as the other players, so nobody is at a disadvantage. Your only obstacles are luck and other players trying to prevent you getting the cards you need.</p>
<p>The game features three main forms of &lsquo;currency&rsquo;:</p>
<ul>
<li><strong>Honour</strong>: the overall goal of the game is to obtain more honour than your fellow players. You can get honour from buying cards and defeating monsters.</li>
<li><strong>Runes</strong>: the currency used to acquire other cards. You can spend runes in order buy cards from the center of the table.</li>
<li><strong>Power</strong>: used to defeat monsters. All monsters have a power value; if you play cards from your hand worth an equal amount of power, you can defeat that monster and earn honour.</li>
</ul>
<p>Those are the basics of the game: draw a hand from your deck, perform actions and spend runes or power to get more cards, earn honour and perhaps hinder other players. Keep going until all of the available honour has been expended, and then count up to see who got the most. There&rsquo;s lots of room for strategy: do you go power-heavy and work on attacking monsters to gain power? Do you just try and buy as many high value cards as you can? Do you go for actions that let you draw more cards and work through your deck faster? The game feels deep but is easy to pick up and play.</p>
<h3 id="the-ios-version">The iOS Version</h3>
<p>Ascension on iOS is universal, so it runs on both iPad and iPhone. I feel that it’s a much more enjoyable experience on the iPad, as the larger screen really gives you more room to play with (quite literally).</p>
<figure>
  <img src="/images/2015/12/2011-01-18-ascension-02.jpg" alt="" loading="lazy">
</figure>
<p>The app is really well made. It&rsquo;s extremely responsive, with smooth animations, fun sound effects, and all the card artwork from the original game. There&rsquo;s a great tutorial to get you up to speed and a complete rulebook if you want to check up on the rules.</p>
<p>Singleplayer works really well, with a couple of AI difficulty levels to choose from, but multiplayer is where Ascension really shines. You can play against up to 3 opponents, either randomly selected or chosen from your Game Center friends. The game very cleverly and seamlessly switches between asynchronous turn-based play (where you&rsquo;re notified when it&rsquo;s your go and you can take as long as you like), to real time updates if two players are both online. There&rsquo;s a small status indicator next to each player&rsquo;s name which tells you if they&rsquo;re offline, idle, or actively participating in your game. If they&rsquo;re online at the same time as you, you can see each card move around the screen as soon as they play it. If they&rsquo;re offline, the game will notify them when you&rsquo;re finished taking your turn. It&rsquo;s <em>very</em> well done. In fact, it&rsquo;s one of the best multiplayer experiences I&rsquo;ve seen on iOS.</p>
<p>All in all, Ascension is a really enjoyable card game. For £2.99, you get a universal app which contains all the cards from the main Ascension game. For an extra £1.99 in-app purchase you can also get the first expansion pack; Return of the Fallen. The iOS version is well worth the asking price, and if you have any interest in board games (or would just like a fun multiplayer game you can sink your teeth into) I&rsquo;d highly recommend you check it out.</p>
<ul>
<li><a href="http://www.ascensiongame.com/">Ascension website</a></li>
<li><a href="http://itunes.apple.com/gb/app/ascension-chronicle-godslayer/id441838733?mt=8">Ascension on iTunes</a></li>
</ul>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><em>Ascension</em> marks the 4th boardgame that I have bought based on the strength of an iOS game. Previously I&rsquo;ve purchased <em>Carcassonne</em>, <em>Forbidden Island</em>, and <em>Ticket to Ride</em>, all of which I&rsquo;ve greatly enjoyed playing.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>I feel that in <em>Magic</em>, an inexperienced player will always be at a big disadvantage when playing against someone who has spent a long time learning the game and crafting a good deck. At the time of writing, over 12,246 <strong>unique</strong> <em>Magic</em> cards have been produced (with 600 - 1000 extra produced each year); not only are players encouraged to spend a small fortune on the game but also to spend a lot of time following the game&rsquo;s updates. You can lose simply because someone else owns better cards than you, and it&rsquo;s a difficult game to break in to.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Codify</title><link>https://frosty.blog/2011/10/19/codify/</link><pubDate>Wed, 19 Oct 2011 23:00:00 +0000</pubDate><guid>https://frosty.blog/2011/10/19/codify/</guid><description>&lt;p&gt;I love the iPad. It&amp;rsquo;s casual, immediate, and more intimate than a laptop ever will be. There are wonderful apps available for most activities you could want to do on an iPad: reading, writing, drawing, listening, watching, playing; the list goes on. Much of the time when I want to perform some task (or just relax), I will now reach for my iPad instead of my laptop if possible. However, until now I have been unable to use the iPad for one of my favourite pasttimes: programming&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I love the iPad. It&rsquo;s casual, immediate, and more intimate than a laptop ever will be. There are wonderful apps available for most activities you could want to do on an iPad: reading, writing, drawing, listening, watching, playing; the list goes on. Much of the time when I want to perform some task (or just relax), I will now reach for my iPad instead of my laptop if possible. However, until now I have been unable to use the iPad for one of my favourite pasttimes: programming<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<p>Enter <strong>Codify</strong>. Codify is a new iPad app that lets you create simple games, prototypes and simulations directly on an iPad. You write code in the <a href="http://www.lua.org/">Lua</a> language using a fantastic code editor (more on that later), with an API that&rsquo;s very similar to <a href="http://www.processing.org">Processing</a>. You can then run that code straight away; play your game, experiment with your prototype, tweak your simulation. It&rsquo;s fast, easy, impressive, and <em>fun</em>.</p>
<figure>
  <a href="http://www.flickr.com/photos/jamesfrost/sets/72157627800191607/"><img src="/images/2015/12/2011-10-20-codify-01.jpg" alt="Codify project selection screen" loading="lazy"></a>
</figure>
<h3 id="running-and-debugging">Running and debugging</h3>
<p>When running your game, you can specify parameters (for example, a character&rsquo;s speed or size) which show up as sliders in a debugging pane on the left hand side of the screen. You can then tweak those parameters <em>as you play</em>, and observe in real time the effect they have on the game. It&rsquo;s very neat. You can also watch variables and print information out to a console. Games themselves run very smoothly (unless you write them badly, of course!) and look great. You can pause, resume, or reset your game state whenever you like. You can also flip back to your code with just one tap.</p>
<figure>
  <a href="http://www.flickr.com/photos/jamesfrost/sets/72157627800191607/"><img src="/images/2015/12/2011-10-20-codify-02.jpg" alt="Running a game in Codify" loading="lazy"></a>
</figure>
<h3 id="help-and-examples">Help and examples</h3>
<p>The app comes with a whole heap of examples, from the basics of using the provided graphics functions to clones of games like Doodle Jump, Snake, and Pong (the latter I wrote myself). The code editor also comes with a nicely presented documentation viewer which provides excellent help on graphics functions, the Lua language itself, parameters, multitouch, sounds, using the iPad&rsquo;s accelerometer, and more.</p>
<p>To see some of the Codify examples in action, check out the following YouTube videos:</p>
<ul>
<li><a href="http://www.youtube.com/watch?v=umpCNWKmlFM">Bit Invader</a></li>
<li><a href="http://www.youtube.com/watch?v=WSWhYxjE-ZY">Lua Jump</a> (Doodle Jump clone)</li>
<li><a href="http://www.youtube.com/watch?v=UaiqkuX5fy8">Dungeon Roller</a></li>
<li><a href="http://www.youtube.com/watch?v=EHqDgEyBF68">Ping</a> (Pong clone)</li>
</ul>
<h3 id="the-code-editor">The code editor</h3>
<p>The code editor has clearly had a <strong>lot</strong> of thought and polish put into it. It has a lot of things you&rsquo;d expect from an editor: syntax highlighting, line numbers, multiple files (with tabs to switch between them), and a function browser. But it also has a slew of features designed to ease the task of programming on a touchscreen device:</p>
<ul>
<li>For methods that take a colour as a parameter (RGBA values, for example <code>(255, 150, 99, 255)</code>), you can simply tap on the parameter and a colour wheel appears in a popover allowing you to choose a colour with touch alone.</li>
<li>You can tap and hold on any number and slide your finger from left to right (or vice versa) to increment / decrement the number without typing.</li>
<li>A row of custom keys above the onscreen keyboard provides shortcuts for common tasks: tabbing, access to documentation, inserting symbols / punctuation, and more.</li>
<li>Codify includes support for displaying sprites (images) and comes bundled with a number of high quality sprite packs from <a href="http://www.lostgarden.com/search/label/free%20game%20graphics">Lost Garden</a>. Similarly to selecting colour parameters, you can tap a sprite parameter and select your sprite from a nice popover without the need for any typing.</li>
</ul>
<figure>
  <a href="http://www.flickr.com/photos/jamesfrost/sets/72157627800191607/"><img src="/images/2015/12/2011-10-20-codify-03.jpg" alt="Selecting a colour in the Codify code editor" loading="lazy"></a>
</figure>
<p>Check out my <a href="http://www.flickr.com/photos/jamesfrost/sets/72157627800191607/">Flickr photo set</a> for a couple more photos showing the Codify interface. I&rsquo;ve also put together a quick <a href="http://www.youtube.com/watch?v=hJ537lFVv1M">YouTube video</a> showing some of its functionality in action (embedded at the bottom of this post).</p>
<p>The <a href="http://www.lua.org/">Lua</a> language was deliberately chosen for Codify because it has a rather &lsquo;wordy&rsquo; syntax, which fits nicely with the iPad&rsquo;s onscreen keyboard. It means less switching to the &lsquo;symbols&rsquo; keyboard, and less frustration for the user. The Lua runtime is also extremely light, which helps keep things snappy.</p>
<h3 id="an-introduction-to-programming---a-brief-aside">An introduction to programming? - a brief aside</h3>
<p>I think that Codify could shine as a tool for teaching programming. I&rsquo;ve long lamented the apparent increase in difficulty for kids (and adults alike, I guess) to get started with programming these days. I began coding on a BBC B in BASIC. Back then, you turned your computer on and you were presented with a flashing prompt, into which you could just start typing your code. Commercial games weren&rsquo;t too advanced, so it was entirely possible you could get at least close to making the sorts of things you played yourself.</p>
<p>These days, where do you start? If you have a Mac or Linux machine, chances are you have something like Ruby or Python built in, so that&rsquo;s fairly easy to get going with. If you&rsquo;re on Windows, you&rsquo;re left to install something yourself. You&rsquo;ll also likely have to install some kind of text editor and work out how to use a command prompt (not a bad thing to do at all, of course, but it&rsquo;s another barrier to entry). And then you&rsquo;ll have to find some kind of games or graphics libraries and learn how those work. And <em>then</em> you might be able to have a go at learning a language and making a simple game. It&rsquo;s a lot to get through and a lot of opportunities for a newcomer to lose their enthusiasm.</p>
<p>We&rsquo;re now finally starting to see some potential solutions emerging on the web. For example, <a href="http://processing.js">Processing.js</a> (a JavaScript port of Processing) and <a href="http://sketchpad.cc">Sketchpad.cc</a> (which lets you just start coding with Processing.js in your browser). Codify is very much like these solutions, but built specifically for iPad and a touch interface. From now on, somebody who wants to get started with simple programming and games may just be able to search the App Store for &lsquo;programming&rsquo;, install Codify, and have a go; perhaps starting off modifying some of the examples and observing the effects their changes have in real time. It may not be as easy to a newcomer as I&rsquo;m imagining, but it sure seems a lot simpler to me than what we&rsquo;ve had in recent years.</p>
<h3 id="wrap-up">Wrap up</h3>
<p>Codify was created by <a href="http://www.twitter.com/twolivesleft">Simeon Nasilowski</a> of <a href="http://twolivesleft.com/">Two Lives Left</a> and will be launching on the App Store on Wednesday 26th October for £5.49 ($7.99), which I think is great value for everything it offers. It&rsquo;s a high quality package that finally lets you code on the iPad, and it does so with style. I highly recommend checking it out if you enjoy programming or think you&rsquo;d like to give it a go. I&rsquo;d be really interested in seeing what you create with it!</p>
<p>I&rsquo;ve also posted a video to YouTube showing some of Codify&rsquo;s features in action:</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/hJ537lFVv1M?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>

<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Okay, so there <em>are</em> one or two existing iPad coding apps. However, these a) don&rsquo;t seem to be as well designed, and b) mainly only seem to let you produce text-based console output. Codify is intended for fast graphical prototyping, and seems to be streets ahead of the competition.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Superbrothers: Sword &amp; Sworcery EP</title><link>https://frosty.blog/2011/06/25/superbrothers-sword-sworcery-ep/</link><pubDate>Sat, 25 Jun 2011 23:00:00 +0000</pubDate><guid>https://frosty.blog/2011/06/25/superbrothers-sword-sworcery-ep/</guid><description>&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2015/12/2011-06-26-logojimwhite.png" alt="" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;Superbrothers: Sword &amp;amp; Sworcery EP is an &lt;em&gt;experience&lt;/em&gt;. It&amp;rsquo;s an audiovisual treat and, in my opinion, a wonderful example of games as art. I don&amp;rsquo;t think it would be too bold to describe S:S&amp;amp;S EP as iOS&amp;rsquo;s &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Shadow_of_the_Colossus"&gt;Shadow of the Colossus&lt;/a&gt;&lt;/em&gt;&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2015/12/2011-06-26-touch.png" alt="" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;S&amp;amp;S EP references elements of geek culture and video games of the past to create a unique experience that still manages to feel comfortably familiar at the same time. You play a lone warrior, out to destroy the Megatome (a book of unimaginable power) along with the ancient evil that haunts the legendary mountain of Mingi Taw. &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/The_Legend_of_Zelda"&gt;The Legend of Zelda&lt;/a&gt;&lt;/em&gt; series and &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Shadow_of_the_Colossus"&gt;Shadow of the Colossus&lt;/a&gt;&lt;/em&gt; stand out as two of the biggest influences, or at least two games against which it is easy to draw parallels. Like &lt;em&gt;Zelda&lt;/em&gt;, S&amp;amp;S: EP&amp;rsquo;s mute lead character&amp;rsquo;s ultimate goal involves collecting three sacred triangles that together form the &amp;lsquo;Trigon Trifecta&amp;rsquo;. Like &lt;em&gt;Colossus&lt;/em&gt;, there are references to mysterious in-game mythology, fights with ancient creatures (leaving the player feeling morally conflicted), and a main character who gets weaker as they continue their quest. The game features beautiful pixel art graphics, and an outstanding original score. It&amp;rsquo;s clear that a lot of love was poured into this game.&lt;/p&gt;</description><content:encoded><![CDATA[<figure>
  <img src="/images/2015/12/2011-06-26-logojimwhite.png" alt="" loading="lazy">
</figure>
<p>Superbrothers: Sword &amp; Sworcery EP is an <em>experience</em>. It&rsquo;s an audiovisual treat and, in my opinion, a wonderful example of games as art. I don&rsquo;t think it would be too bold to describe S:S&amp;S EP as iOS&rsquo;s <em><a href="http://en.wikipedia.org/wiki/Shadow_of_the_Colossus">Shadow of the Colossus</a></em><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
<figure>
  <img src="/images/2015/12/2011-06-26-touch.png" alt="" loading="lazy">
</figure>
<p>S&amp;S EP references elements of geek culture and video games of the past to create a unique experience that still manages to feel comfortably familiar at the same time. You play a lone warrior, out to destroy the Megatome (a book of unimaginable power) along with the ancient evil that haunts the legendary mountain of Mingi Taw. <em><a href="http://en.wikipedia.org/wiki/The_Legend_of_Zelda">The Legend of Zelda</a></em> series and <em><a href="http://en.wikipedia.org/wiki/Shadow_of_the_Colossus">Shadow of the Colossus</a></em> stand out as two of the biggest influences, or at least two games against which it is easy to draw parallels. Like <em>Zelda</em>, S&amp;S: EP&rsquo;s mute lead character&rsquo;s ultimate goal involves collecting three sacred triangles that together form the &lsquo;Trigon Trifecta&rsquo;. Like <em>Colossus</em>, there are references to mysterious in-game mythology, fights with ancient creatures (leaving the player feeling morally conflicted), and a main character who gets weaker as they continue their quest. The game features beautiful pixel art graphics, and an outstanding original score. It&rsquo;s clear that a lot of love was poured into this game.</p>
<p>Speaking of the score: the soundtrack is fantastic, and an integral part of the game. It&rsquo;s available to download from <a href="http://jimguthrie.bandcamp.com/">Bandcamp</a> or <a href="http://itunes.apple.com/gb/album/sword-sworcery-lp-the-ballad/id428028469">iTunes</a> and has even been released on vinyl. It&rsquo;s one of the best game soundtracks I&rsquo;ve ever heard; kind of a mix between folk and chiptunes and lots more besides. You can listen to most of it for free on Bandcamp, so give it a spin. However, I think it sounds all the better once you&rsquo;ve experienced it in-game. Some of the pieces are perfectly written and timed to coincide with sections of the game, and so I think you get something extra out of them once you&rsquo;ve experienced their corresponding visual accompaniments. The game&rsquo;s main antagonist, the Deathless Spectre, evokes an actual feeling of panic whenever it materializes onscreen which I think is in no small part due to the music that coincides its appearance. <em>Sword &amp; Sworcery EP</em> really deserves to be played wearing headphones.</p>
<figure>
  <img src="/images/2015/12/2011-06-26-hiking.png" alt="" loading="lazy">
</figure>
<p>In fact, the whole game deserves your full attention when you play, as you&rsquo;ll get far more out of it. The story unfolds in multiple chapters, like the acts of a play, even down to a triumphant musical cue and the literal closing of curtains when you finish an act. The story&rsquo;s narrator appears at the end of an act to sum up what you&rsquo;ve achieved and what is yet to come. The first act is rather short - something of an introduction to the rest of the game - and the narrator actually tells you to take a break once it&rsquo;s over. It&rsquo;s a nice way to spread the game out over multiple sittings and it frames the story really well. The presentation values are top notch, and whilst it may sound hyperbolic I do think S&amp;S EP really is more of an <em>experience</em> than a traditional game.</p>
<p>As a touchscreen-controlled game designed for iOS devices, S:S&amp;S EP succeeds brilliantly. It doesn&rsquo;t attempt to crowbar &rsquo;traditional&rsquo; controls into somewhere they don&rsquo;t fit (no onscreen d-pads) instead you simply either touch and hold or double-tap wherever you want your character to move. You can also pinch to zoom and pan around the screen. It works wonderfully and feels effortless. The majority of the game takes place in landscape orientation, but for sword fights you must rotate the device into portrait to take out your sword and shield. This reveals two thumb buttons at the bottom of the screen: one for your sword, and one for your shield. It couldn&rsquo;t get much simpler. It&rsquo;s nice to see a developer who understands the strengths and weaknesses of a touch-based control system.</p>
<figure>
  <img src="/images/2015/12/2011-06-26-mountain.png" alt="" loading="lazy">
</figure>
<p>Sword &amp; Sworcery is without a doubt one of the best games on iOS. But more than that, it is one of my favourite games of all time. Unlike a lot of iOS titles, it&rsquo;s not a throwaway arcade experience but an adventure that will stick with you long after you finish playing. It draws you in to its little world through beautiful pixel graphics, a stunning soundtrack, a believable world and characters, and slick presentation throughout. I highly recommend it. It&rsquo;s available now on the iOS App Store as either a <a href="http://itunes.apple.com/gb/app/superbrothers-sword-sworcery/id424912055?mt=8">universal version for iPad &amp; iPhone</a>, or as a slightly cheaper <a href="http://itunes.apple.com/gb/app/superbrothers-sword-sworcery/id431166885?mt=8">iPhone-only version</a>.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Widely regarded as a work of art, and incredible experience, a masterpiece, etc. See <a href="http://www.metacritic.com/game/playstation-2/shadow-of-the-colossus/critic-reviews">Metacritic</a> for reviews.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>The Nintendo 3DS</title><link>https://frosty.blog/2011/05/14/the-nintendo-3ds/</link><pubDate>Sat, 14 May 2011 23:00:00 +0000</pubDate><guid>https://frosty.blog/2011/05/14/the-nintendo-3ds/</guid><description>&lt;p&gt;At the end of March, I picked up a Nintendo 3DS. I wasn&amp;rsquo;t initially sure whether to get one up at launch, but in the end I went for it. This post is an attempt to come to some conclusion regarding how I feel about the device, and why I bought one.&lt;/p&gt;
&lt;h3 id="hardware"&gt;Hardware&lt;/h3&gt;
&lt;p&gt;The 3DS keeps the same form-factor as the original DS which shipped back in 2005, although it&amp;rsquo;s closer in shape and size to the DS Lite which followed in mid-2006. The DS Lite has been my favourite portable console since the day I got one, and I think it&amp;rsquo;s too early at this point to tell whether the 3DS will take its crown.&lt;/p&gt;</description><content:encoded><![CDATA[<p>At the end of March, I picked up a Nintendo 3DS. I wasn&rsquo;t initially sure whether to get one up at launch, but in the end I went for it. This post is an attempt to come to some conclusion regarding how I feel about the device, and why I bought one.</p>
<h3 id="hardware">Hardware</h3>
<p>The 3DS keeps the same form-factor as the original DS which shipped back in 2005, although it&rsquo;s closer in shape and size to the DS Lite which followed in mid-2006. The DS Lite has been my favourite portable console since the day I got one, and I think it&rsquo;s too early at this point to tell whether the 3DS will take its crown.</p>
<p>The console itself has a pretty solid feel and I like the finish on it. I picked up the &lsquo;Cosmos Black&rsquo; model, which is ever-so-slightly metallic and has a gradual black-to-grey gradient. The weight and size of it are just fine to me; I don&rsquo;t notice a difference between it and my DS Lite. However, I can&rsquo;t help but feel that in general the 3DS feels a little rough around the edges (not literally; that paint job is silky-smooth) and to me looks a bit like prototype hardware. It has three different coloured body sections, several different textures, numerous joins and seams, six small holes dotted across the device (four of which might be for microphones, but they look messy), a large black block for the IR port (infra-red? Really? In 2011?), three hardware sliders (although one is a switch that just looks like a slider), and four indicator lights (one of which just illuminates the word &lsquo;3D&rsquo; constantly, for no apparent reason, even when 3D is turned off). In short, it feels unrefined. I also think the dual cameras on the lid look ugly, but I have no suggestions for how they could&rsquo;ve better hidden them.</p>
<p>Add to this the seemingly arbitrary repositioning (from their previous locations on the DS Lite) of key controls: the power on / off button, volume slider, and stylus are all in entirely different places which is jarring when you first switch over from using a DS Lite. I&rsquo;m sure there are design constraints due to the layout of the internals which meant things had to be placed like this, but in particular the new stylus position is just plain bad. It sits at the back of the device next to the game cartridge, so it&rsquo;s very hard to locate and remove without looking. On the DS Lite, the stylus just slotted into the side and was really easy to get to.</p>
<p>The battery life is also not good. Most quotes seem to be between 2.5 and 5 hours, with a ~3 hour charge time. Nintendo provide a nice charging cradle, however, which makes it super easy to charge the 3DS. You just drop it in and off it goes. No doubt this is partially due to the 3D screen technology, the fact there are two screens to illuminate, and the wifi radio, but the battery life is rather disappointing when we have tiny devices like the iPhone 4 whose batteries last forever (even when playing games). It’s already affected me a few times, where I’ve taken out the DS to play on (having left it ‘asleep’ and with charge left) only to find it totally drained. I hope Nintendo can improve on this in the future.</p>
<p>I feel at this point like I&rsquo;m being overly harsh. The 3DS does have some nice hardware additions and improvements over the previous version, which it would be remiss of me not to mention.</p>
<ul>
<li>There&rsquo;s an SD card slot built in for storing images, music, and game data, and the console actually comes supplied with a 2GB card (not bad at all, when most consumer electronics devices that use SD cards come with totally useless ones).</li>
<li>The stylus is metal and <em>extendable</em>. It feels much nicer than the old plastic one.</li>
<li>The 3DS is the first of Nintendo&rsquo;s portable consoles to come with with an analogue control stick, and it&rsquo;s fantastic. It&rsquo;s actually more of a pad than a stick, and it slides around as you push it, rather than tilting. It&rsquo;s compact and feels great to use.</li>
<li>The screens have had a resolution boost, but in my opinion not enough. I think my main criticism of the old DS was simply how terribly low resolution the screens were - text and graphics just didn&rsquo;t look at all crisp and the whole thing felt very dated<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>. Perhaps I&rsquo;m just spoilt by the incredible screen of the iPhone 4, but the 3DS still feels blocky and behind the curve. It’s likely that the somewhat low resolution is a tradeoff on account of the 3D display (which is in actual fact 800 pixels wide, but only 400 are visible to each eye). I think it’s probably acceptable that Nintendo sacrificed resolution for their new-fangled no-glasses 3D tech (if that’s indeed the tradeoff they had to make).</li>
<li>Last but not least, the actual graphics hardware inside has gotten a significant boost. This manifests itself mainly through software, so I&rsquo;ll discuss it more in that section of the review. Needless to say, though, 3D graphics (as in computer-generated 3D, not stereoscopic 3D) are streets ahead of the old DS.</li>
</ul>
<p>The 3DS feels more like an entirely new device that just happens to share a form-factor with its predecessor than a simple hardware revision. Despite its shortcomings, I think the 3DS hardware feels much less like a toy than previous versions. However, the DS Lite felt <em>much</em> more refined. Perhaps this is simply a symptom of this being the first generation of 3DS. Knowing Nintendo, there&rsquo;ll be numerous revisions of the hardware in the future.</p>
<h3 id="that-3d-thing">That 3D thing</h3>
<p>So, the 3D, then. I mean, that’s what this whole thing’s about right? It is called the <strong>3DS</strong> after all.</p>
<p>I’d like to preface this section by laying out my opinion on some similar technologies, so you know where I’m coming from as I discuss the 3D aspect of the 3DS.</p>
<ul>
<li>I don’t like 3D films. In a minority of places I think it adds something - Pixar do it pretty well as it’s used subtley to give the film extra depth, and Avatar actually felt a bit more immersive in 3D. However, I really dislike having to wear what are essentially sunglasses over the top of my normal glasses, I really dislike 3D being used as a thinly veiled ploy to get cinema-goers to fork over even more money (don’t even get me started on cinema food!), and I can’t stand it when 3D is needlessly shoehorned into films where it has no place whatsoever. So, I’m not a big fan and I find it largely a gimmick intended to get people to go to the cinema more, pay more and pirate less. I also have absolutely no intention to buy a 3D TV.</li>
<li>I’m not big on the whole motion-gaming thing. The Wii was fun and a novelty when it first came out. Wii Sports is still pretty fun, and The Legend of Zelda: Twilight Princess actually used it quite effectively for controlling ranged weapons. Other than those, I can’t really think of a single Wii game I own where the motion controls really add something. Many are downright terrible (Red Steel and Goldeneye being just two examples), and my favourite Wii games tend to be those that use little to no motion control at all. What’s wrong with buttons?</li>
</ul>
<p>Because I really dislike cinema-3D, you’d perhaps expect me to dislike the 3DS’s 3D, and write off as a gimmick too. Only, I don’t. I like it.</p>
<p>First up, it’s just plain impressive. The adverts are right when they say you’ve got to see it to believe it, and you’ve never seen anything like it. Everyone I’ve shown the 3DS to (and people I’ve spoken to who have otherwise seen one themselves) have that ‘wow’ moment. It’s a bizarre feeling when you look at this little screen with your naked eye and see a scene that appears to stretch away into the distance. It’s just&hellip; cool. In some ways the screen looks like a little diorama that you’re peering into, and displays an impressive amount of depth.</p>
<p>I don’t like 3D films because it’s is often used where it doesn’t belong. Pixar films use it well and appropriately, and perhaps in some ways it feels like a better fit because the films are already sort-of-3D anyway. I think this may be one reason I like it on the 3DS though: the majority of games are <em>already</em> 3D. They’re already computer generated and artificial and 3D is just an extra visual filter to try and add an extra level of realism.</p>
<p>The tech is obviously still very early on, but I think it shows a lot of promise. The effect is achieved by the screen having a doubled horizontal resolution in conjunction with a ‘parallax barrier’, which blocks out particular pixels. In short, you can see a slightly different image from each eye which, when combined, form a 3D image. There’s no need for special glasses and you don’t need to go cross-eyed. It just works. This <a href="http://www.neogaf.com/forum/showpost.php?p=22444981&amp;postcount=5714">diagram roughly shows how the 3D screen works</a> if you can’t quite visualise it.</p>
<p>The main downside seems to be that there’s a pretty limited viewing angle. If you’re just a few degrees outside of the optimum area where your eyes see the right images, you start to get a double image or a dimmed screen. In reality though, it doesn’t seem too difficult to keep yourself in that sweet spot - although I definitely see some occasional ghosting.</p>
<p>The other downside, of course, is that some people can’t see it (for example if they only have vision in one eye, or have a bad astigmatism). Fortunately, the 3DS features a ‘3D slider’ which lets you increase or lessen the 3D depth, or turn it off altogether. This is a big help if you want to play socially (for instance, Hannah and I have played through the Professor Layton games together in the past, and that just wouldn’t be possible with 3D on). I’ve read a number of reports of people leaving it turned off all the time, but for me it’s a big draw of the console and I enjoy how it looks.</p>
<p>The 3D is really going to prove itself as more games come out. At present, there’s a very limited range of launch titles, and I only own one of them: Ridge Racer 3D. I think it was a good first choice, however, as the tracks and cars feel solid, the 3D really draws you in to the first-person viewpoint, and there’s a good mix of distances to show off the effect. I can only imagine how awesome some of the upcoming titles are going to be. In particular, I really hope Super Mario 3DS introduces some new and interesting gameplay elements based on depth (although there are rumours that it won’t, so that people who can’t see the effect aren’t left out). Even if it doesn’t, it should make jumping between platforms a lot easier.</p>
<p>In summary, I really like the 3D effect. I think it’s clever, it’s something new, it’s innovative, and to me it doesn’t feel like it’s a gimmick (although I’ll be the first to own up if I’m proved wrong at a later date). You can certainly get by without it, and certainly the 3DS has enough of a hardware / graphical boost (and great titles coming in the future) it to warrant the upgrade without it, but I don’t see why you’d want to.</p>
<h3 id="system-software">System software</h3>
<p>The 3DS’s menu system feels much improved over the DS Lite. In some ways it’s similar to the Wii’s channel system, but overall is bit more modern and refined. There are, however, a few places where it does still feel somewhat outdated. For example:</p>
<ul>
<li>You can only store settings for 3 network connections, when other modern mobile devices let you store as many as you want.</li>
<li>You can now &lsquo;suspend&rsquo; a game and access the main system menu. The only problem with this is that if you want to access anything via the menu, such as system settings, you lose the suspended state of the game. What, then, is the point of &lsquo;suspending&rsquo; it in the first place?</li>
<li>The system software is still very modal. You can do one thing at a time, and one thing only. Want to check for a software update? You have to sit there watching a progress bar, and you can&rsquo;t do anything else until it completes.</li>
</ul>
<p>I don&rsquo;t really want to spend too much longer on the software, as this review is already gargantuan and I&rsquo;m not sure how much of value I can add. The system software does its job, but I wouldn&rsquo;t say it&rsquo;s anything special. There are a number of features missing (a web browser and downloadable software / games are the main ones), but these are due to launch in the next few months. It&rsquo;s yet another example of the system feeling rushed to market, though.</p>
<h3 id="games">Games</h3>
<p>There’s not yet much to discuss regarding games. The 3DS’s launch titles were largely not worth bothering with and were one of the big reasons I wasn’t sure whether to buy the system on launch. Since owning it, I’ve played Ridge Racer 3D (which I got with the console) and Rayman 3D (which I rented). Ridge Racer is pretty good fun and shows off the 3D well, but is just a fairly generic racer. Rayman 3D is a lazy port of a 12 year old game which was fun when first released but feels tired today.</p>
<p>I really bought the 3DS based on the promise of what’s to come. There are a number of exciting titles due out this year: The Legend of Zelda: Ocarina of Time, Star Fox 3D, a new Mario title, a new Mariokart title and a new Metal Gear Solid title among others. I really hope they can live up to my expectations. <em>Ocarina of Time</em> and <em>Star Fox</em> are both remakes (hey, this is Nintendo after all), but the originals were great, so I can’t wait. Mariokart DS still remains the best in the series, so there’s a lot of potential in a new DS title. And any new 3D Mario game instantly has my attention.</p>
<h3 id="future-promise">Future promise</h3>
<p>The 3D brings something new to the table. I feel it’s currently let down by rushed first generation hardware, rushed and incomplete system software, and a poor lineup of games. However, I bought into it because of the promise of how it may evolve over the coming months. In June we’ll have Ocarina of Time which may well justify the purchase all by itself. The original DS was host to some great games, and some truly original concepts and as a Nintendo fan, I hope that upcoming titles deliver on their promise. The 3DS has a lot of potential, but if I’m completely honest I currently feel some amount of buyer’s remorse as the 3DS sits on a shelf gathering dust.</p>
<p>Your move, Nintendo.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>The pixel density on DS Lite was around 106 pixels per inch, and the 3DS raises that slightly to around 132 ppi; the same as the iPad (but of course on a much smaller display). For comparison, older iPhone models were around 163 ppi, the iPod Nano has been over 204 ppi since the 3rd generation, and the current iPhone and iPod Touch are 326 ppi.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Bleep Beep Beep Bloop: A List of Great Videogame Music</title><link>https://frosty.blog/2011/05/13/bleep-beep-beep-bloop-a-list-of-great-videogame-music/</link><pubDate>Fri, 13 May 2011 23:00:00 +0000</pubDate><guid>https://frosty.blog/2011/05/13/bleep-beep-beep-bloop-a-list-of-great-videogame-music/</guid><description>&lt;p&gt;I love videogame music. Rarely a day goes by where I don&amp;rsquo;t have some game tune stuck in my head (Mario and Mariokart being the worst offenders). I find a lot of game music is great to work / code to, as it&amp;rsquo;s generally upbeat and devoid of lyrics. I thought it&amp;rsquo;d be fun to put together a short list of my favourite albums and share it here. I’ve put in download / purchase links where possible. For those without a link, you should be able to find them easily enough with a quick google.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I love videogame music. Rarely a day goes by where I don&rsquo;t have some game tune stuck in my head (Mario and Mariokart being the worst offenders). I find a lot of game music is great to work / code to, as it&rsquo;s generally upbeat and devoid of lyrics. I thought it&rsquo;d be fun to put together a short list of my favourite albums and share it here. I’ve put in download / purchase links where possible. For those without a link, you should be able to find them easily enough with a quick google.</p>
<p>If you think I&rsquo;ve missed anything, please let me know!</p>
<ul>
<li><strong>Scott Pilgrim vs the World</strong> Megadrive-esque chiptunes with guitars. <a href="http://www.amazon.co.uk/Scott-Pilgrim-Vs-World-Soundtrack/dp/B0041BQUXK/">Amazon</a> <a href="http://itunes.apple.com/gb/album/scott-pilgrim-vs-world-the/id389362172?uo=4">iTunes</a></li>
<li><strong>Super Meatboy</strong> Kind of chiptuney but with real instruments. Fat bass. <a href="http://dbsoundworks.bandcamp.com/album/super-meat-boy-soundtrack">Bandcamp</a></li>
<li><strong>Superbrothers: Sword &amp; Sworcery EP</strong> Lovely folky chiptunes.. I’m currently working on a full review of SB:S&amp;S EP, but needless to say it’s an utterly fantastic game. I love love love this album. It’s just perfect. <a href="http://jimguthrie.bandcamp.com/album/sword-sworcery-lp-the-ballad-of-the-space-babies">Bandcamp</a> <a href="http://itunes.apple.com/gb/album/sword-sworcery-lp-the-ballad/id428028469?uo=4">iTunes</a></li>
<li><strong>Super Mario Galaxy</strong> Can’t beat a good Mario tune.</li>
<li><strong>Braid</strong> Classical soundscapes. <a href="http://magnatune.com/artists/albums/braid-soundtrack/">Magnatune</a></li>
<li><strong>Rez</strong> Dancey trancey dance dance.</li>
<li><strong>Jet Set Radio</strong> Quite a fun mix: J-pop, hip-hop, funk, dance, electronic, rock, acid jazz, trip hop&hellip;</li>
</ul>
]]></content:encoded></item><item><title>Frosty's 2010 Awards: Books, Games and Movies</title><link>https://frosty.blog/2011/01/05/frostys-2010-awards-books-games-and-movies/</link><pubDate>Wed, 05 Jan 2011 00:00:00 +0000</pubDate><guid>https://frosty.blog/2011/01/05/frostys-2010-awards-books-games-and-movies/</guid><description>&lt;p&gt;I thought I&amp;rsquo;d write a quick roundup of the movies I&amp;rsquo;ve seen, games I&amp;rsquo;ve played, and books I&amp;rsquo;ve read this year. Note that not everything on this list may have been &lt;em&gt;released&lt;/em&gt; this year, but I experienced them for the first time this year. Feel free to just skim the headlines if you can&amp;rsquo;t be arsed to read the whole thing. Without further ado&amp;hellip;&lt;/p&gt;
&lt;h3 id="movies"&gt;Movies&lt;/h3&gt;
&lt;h4 id="the-frostys-movie-of-the-year-award-goes-to-scott-pilgrim"&gt;The &amp;lsquo;Frosty&amp;rsquo;s Movie of the Year&amp;rsquo; award goes to&amp;hellip; Scott Pilgrim&lt;/h4&gt;
&lt;p&gt;This year, I fell in love with the Scott Pilgrim books, and the film version brings it to life with style. A fantastic ensemble cast, stunning special effects, and stays pretty faithful to the source material. The ending differs somewhat, but I think the whole thing works pretty well as a more concise version of the books. Good plain fun.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I thought I&rsquo;d write a quick roundup of the movies I&rsquo;ve seen, games I&rsquo;ve played, and books I&rsquo;ve read this year. Note that not everything on this list may have been <em>released</em> this year, but I experienced them for the first time this year. Feel free to just skim the headlines if you can&rsquo;t be arsed to read the whole thing. Without further ado&hellip;</p>
<h3 id="movies">Movies</h3>
<h4 id="the-frostys-movie-of-the-year-award-goes-to-scott-pilgrim">The &lsquo;Frosty&rsquo;s Movie of the Year&rsquo; award goes to&hellip; Scott Pilgrim</h4>
<p>This year, I fell in love with the Scott Pilgrim books, and the film version brings it to life with style. A fantastic ensemble cast, stunning special effects, and stays pretty faithful to the source material. The ending differs somewhat, but I think the whole thing works pretty well as a more concise version of the books. Good plain fun.</p>
<h4 id="the-runner-up-movie-of-the-year-award-goes-to-inception">The &lsquo;Runner Up Movie of the Year&rsquo; award goes to&hellip; Inception</h4>
<p>WHUUUUUUUUUUUM<br>
Inception is about a dream within a dream within a dream. But is it really a dream? The film piles rules upon rules upon rules on you about the way the dream world works and just as you&rsquo;re starting to get a handle on things, you&rsquo;re told that <em>actually</em>, it doesn&rsquo;t work in the way you&rsquo;ve just been told unless it&rsquo;s a Tuesday and the wind is blowing in a North-Westerly direction. Brilliant ideas and a brilliant film, but your brain will be frazzled by the end of it. Some nice ambiguities in the film mean that there&rsquo;s loads to discuss afterwards.</p>
<h4 id="honourable-mentions">Honourable Mentions</h4>
<ul>
<li><strong>Sherlock Holmes</strong><br>
Came out in 2009, but I didn&rsquo;t see it until early January, so it counts for me!</li>
<li><strong>The Brothers Bloom</strong><br>
Nice little quirky heist movie. The ending confused me a bit, but I think it was supposed to.</li>
<li><strong>Whip It</strong><br>
Hooray for Ellen Page! Fun movie about roller derby.</li>
</ul>
<h3 id="games">Games</h3>
<h4 id="the-most-engrossing-game-of-the-year-award-goes-to-mass-effect-2-xbox-360">The &lsquo;Most Engrossing Game of the Year&rsquo; award goes to&hellip; Mass Effect 2 (XBox 360)</h4>
<p>Wow, wow, WOW. I&rsquo;m not sure I&rsquo;ve ever felt so connected to a game as I do / did to Mass Effect 2. The first game was great, but the second one built on it in spades. Tightened combat that borrowed a lot from Gears of War, gorgeous graphics, a deep and completely believable universe filled with diverse planets, locations, and alien races, a crew whose respect you have to earn and who you come to really care for, and of course an immersive story where everything is at stake and you know that if you make the wrong choices then you and your crew might not make it to the end. Utterly fantastic, and I can&rsquo;t wait for part 3.</p>
<h4 id="the-game-that-keeps-me-coming-back-for-more-because-its-awesomely-fun-award-goes-to-just-cause-2-xbox-360">The &lsquo;Game That Keeps Me Coming Back For More Because It&rsquo;s Awesomely Fun&rsquo; award goes to&hellip; Just Cause 2 (XBox 360)</h4>
<p>Just Cause 2 is just plain fun. A <strong>huge</strong> game world is your playground to do what the hell you want with. Fancy storming an enemy base, stealing a plane, attaching a jeep full of enemy soldiers to it with an elasticated grappling hook, flying for miles across a beautiful island, standing on the roof of the plane and admiring the view before leaping off and freefalling towards the ocean, opening your parachute and gliding to safety as your abandoned plane crashes into an oil rig and explodes in a ball of flames? Sure, you can do that.</p>
<h4 id="the-best-xbla-game-i-played-this-year-goes-to-shadow-complex">The &lsquo;Best XBLA Game I Played This Year&rsquo; goes to&hellip; Shadow Complex</h4>
<p>Shadow Complex is an Arcade game only in name: the quality of the game is on-par with fully-fledged boxed retail games. It has great graphics, gameplay, and story, and sees you infiltrating a mysterious underground bunker filled with enemies. The length of the game is in a sweet spot where it&rsquo;s not too long and not too short, and there&rsquo;s also a lot to go back and explore once you&rsquo;ve finished the main game. Highly recommended, and it&rsquo;s still one of the best XBLA games available.</p>
<h4 id="the-best-gamey-game-award-goes-to-super-mario-galaxy-2">The &lsquo;Best Gamey-Game&rsquo; award goes to&hellip; Super Mario Galaxy 2</h4>
<p>Mario is gaming at its purest. It doesn&rsquo;t try to emulate the real world, or offer you an immersive &rsquo;experience&rsquo;. It&rsquo;s just good, clean, awesomely designed, ludicrous fun. And Mario Galaxy 2 improves on the original Galaxy (who&rsquo;d have thought it was even possible) with a great range of new galaxies, improved game structure, and everyone&rsquo;s favourite fictional rideable dinosaur, Yoshi. If you&rsquo;re any kind of fan of video games, you must play Galaxy 2. It&rsquo;s gaming at its absolute finest.</p>
<h4 id="the-mobile-game-of-the-year-award-goes-to-world-of-goo-ipad">The &lsquo;Mobile Game of the Year&rsquo; award goes to&hellip; World of Goo (iPad)</h4>
<p>I only got this in the final week of the year, so it very nearly didn&rsquo;t make it into the list. Believe it or not, I hadn&rsquo;t until now played the full World of Goo before, only the demo. I loved the controls on the iPad - multitouch lets you drag about multiple goo balls whilst panning around the level all at the same time. The basic mechanics are great, and much like Popcap and Mario games new variations and types of goo ball are regularly introduced to mix things up a bit. To cap it all, the game has a brilliantly quirky setting and a nice little story that leads you through the game. I was engrossed from start to finish.</p>
<h4 id="the-sweet-zombie-jesus-i-cant-believe-those-graphics-are-on-a-phone-award-goes-to-infinity-blade">The &lsquo;Sweet Zombie Jesus I Can&rsquo;t Believe Those Graphics Are On A Phone!&rsquo; award goes to&hellip; Infinity Blade</h4>
<p>On an iPhone 4&rsquo;s Retina Display, Infinity Blade looks god-damned unbelievable. Stunning. Wow. It runs on the Unreal engine, and was made by Chair, the guys responsible for Shadow Complex. I can&rsquo;t say the actual gameplay wows me in the same way, but it sure is pretty.</p>
<h3 id="honourable-mentions-1">Honourable Mentions</h3>
<ul>
<li><strong>Limbo</strong><br>
Dark, moody, and mysterious, Limbo starts quietly and offers you no explanation as to how to proceed. One &lsquo;boss&rsquo; fight in particular was delightfully creepy. I felt the game was a little let down by its rather sudden ending, and that the mystery of the first half of the game (for example, glimpses of other people in the forest you&rsquo;re in) didn&rsquo;t follow through to the second half. But nonetheless, I&rsquo;d recommend it.</li>
<li><strong>Red Dead Redemption</strong><br>
I still haven&rsquo;t finished Red Dead Redemption, so I don&rsquo;t think I can really give it an award. The setting is great, and there have been some truly stand-out moments and exciting missions, however for some reason I haven&rsquo;t found it particularly immersive. I&rsquo;m not sure what it is about it, but some of the missions felt a bit &lsquo;grind-y&rsquo;, and I felt always reminded that I was playing a game.</li>
<li><strong>Helsing&rsquo;s Fire</strong><br>
Nice puzzler with a unique gameplay mechanic and high production values. I loved this game.</li>
<li><strong>Cut the Rope</strong><br>
Great, charming, physics-based puzzler, with a Lite version.</li>
<li><strong>Words With Friends</strong><br>
The best online Scrabble clone for iOS, and one of the games I still keep playing. There&rsquo;s a free ad-supported version.</li>
<li><strong>Trainyard</strong><br>
Fun, mindbending puzzle game. The free version, Trainyard Express, has a tonne of levels and&hellip; is free.</li>
<li><strong>Carcassonne</strong><br>
An extremely well done board game to iOS conversion, which just received an update with an iPad-native interface.</li>
</ul>
<h3 id="books">Books</h3>
<h4 id="the-awesomely-awesome-award-goes-to-the-scott-pilgrim-series-by-bryan-lee-omalley">The &lsquo;Awesomely Awesome&rsquo; award goes to&hellip; the Scott Pilgrim series by Bryan Lee O&rsquo;Malley</h4>
<p>I hadn&rsquo;t heard of Scott Pilgrim until earlier this year, when the hype around the movie started to ramp up. I bought all 6 books in the series and loved every one of them. Really, if you&rsquo;re reading this you probably already know all you need to know about Scott Pilgrim: he falls in love with a girl named Ramona, and must defeat her 7 evil exes. Infused with great characters, dialog, and some brilliant nods to geek and videogame culture, I can&rsquo;t get enough of everything Pilgrim.</p>
<h4 id="the-ongoing-series-of-books-that-im-reading-and-really-enjoying-award-goes-to-the-sherlock-holmes-books">The &lsquo;Ongoing Series of Books That I&rsquo;m Reading and Really Enjoying&rsquo; award goes to&hellip; the Sherlock Holmes Books</h4>
<p>I&rsquo;ve currently read 23 of the 54 short stories, and 3 of the 4 novels in the Sherlock Holmes canon, and I&rsquo;m really really enjoying them. My favourite collection so far is probably The Adventures of Sherlock Holmes, and my favourite novel is either The Sign of the Four or Hound of the Baskervilles. The first novel in the series, A Study in Scarlet, was the weakest in my opinion - so don&rsquo;t be put off if you choose to read that first. Highly recommended. I&rsquo;ll finish off the series in 2011.</p>
<h4 id="the-most-enjoyable-novel-of-the-year-award-goes-jointly-to-the-magicians-by-lev-grossman-and-mystery-man-by-colin-bateman">The &lsquo;Most Enjoyable Novel of the Year&rsquo; award goes jointly to&hellip; The Magicians by Lev Grossman, and Mystery Man by Colin Bateman</h4>
<p><strong>The Magicians</strong><br>
I&rsquo;ve actually just started re-reading The Magicians, such is the extent that it stuck in my head. It&rsquo;s an amalgam of a lot of existing real world / fantasy fiction: many ideas are taken from the Chronicles of Narnia, and the main character attends a school for &lsquo;real&rsquo; magicians which is hidden from non-magicians (which sounds a little Harry Potter when you put it like that). However, it brilliantly combines these elements and twists them into something new. The school, and indeed the magic performed feels much more based in reality than something like <em>Potter</em>, and it&rsquo;s all a bit more grown-up, too. I don&rsquo;t want to go into too much detail and give too much away, but something about the book just struck a chord with me. I got chills when you first meet the book&rsquo;s main villain, and I love the idea of other worlds hidden away within our own. And of course, who doesn&rsquo;t like to think that real magic could exist in the world. Really enjoyed this one.</p>
<p><strong>Mystery Man</strong><br>
I got this for Christmas, and just finished it before the year was up. It&rsquo;s a darkly comic detective novel set in Ireland, and literally had me laughing out loud. The main character runs a mystery / crime bookshop situated next to a detective agency. When the detective agency closes down, its customers start coming into the bookshop looking for help, and&hellip; well, you can guess how it goes. Things are made more amusing by the fact that the main character suffers from pretty much every mental illness and physical ailment you can think of: he&rsquo;s paranoid, asthmatic, allergic, has brittle bones, seems to suffer from OCD, you name it. My unexpected hit of the year, bookwise.</p>
<h4 id="the-it-took-me-ages-but-im-very-glad-i-finished-it-because-it-was-awesome-award-goes-to-jonathan-strange--mr-norrell-by-susanna-clarke">The &lsquo;It Took Me Ages, But I&rsquo;m Very Glad I Finished It Because It Was Awesome&rsquo; award goes to&hellip; Jonathan Strange &amp; Mr Norrell by Susanna Clarke</h4>
<p>Epic is the first word that comes to mind when I think of Jonathan Strange &amp; Mr Norrell. It&rsquo;s a massive book. It details the revival of true English Magic to England in the 19th century, and is so richly detailed. I ended up listening to the audiobook (which was really well done), and thoroughly enjoyed it. Whilst it&rsquo;s extremely long, I didn&rsquo;t want it to end - so interesting was the alternate history it sets out. A must-read.</p>
<h4 id="the-what-a-pile-of-shite-why-did-i-bloody-bother-award-goes-to-wuthering-heights">The &lsquo;What A Pile of Shite, Why Did I Bloody Bother?&rsquo; award goes to&hellip; Wuthering Heights</h4>
<p>Everybody&rsquo;s miserable, the plot&rsquo;s rubbish and I didn&rsquo;t like any of the characters in the slightest. Sorry, Miss Bronte, but it was just terrible.</p>
<h4 id="honourable-mentions-2">Honourable Mentions</h4>
<ul>
<li><strong>Treasure Island</strong> by Robert Louis Stephenson<br>
A true classic that I hadn&rsquo;t read until this year. A good, fun, piratey romp with real danger, wooden legs, parrots, and buried treasure.</li>
<li><strong>The Inverted World</strong> by Christopher Priest<br>
A rather different sci-fi book, recommended to me by <a href="http://www.twitter.com/gimboland">@gimboland</a>. Written by the same author who wrote The Prestige (on which the Christopher Nolan movie was based), The Inverted World tells the tale of a city which moves. Its citizens move it every single day along giant railway tracks which must be taken up from behind it and placed down in front of it. The book pulls you into this bizarre world, and keeps you guessing the whole way along as to what drives the city&rsquo;s inhabitants ever onward.</li>
<li><strong>Moab is my Washpot</strong> by Stephen Fry<br>
I&rsquo;ve never really read a biography before, but I very much enjoyed Stephen Fry&rsquo;s. Well written and engrossing, it was an interesting look into his childhood. Rather rude in places, so reader beware.</li>
</ul>
<p>So there you have it! My top movies, games, and books of 2010. Did I miss anything out? Likely it was because I didn&rsquo;t see / play / read it, but let me know in the comments. What were your picks of the year?</p>
]]></content:encoded></item><item><title>Minecraft</title><link>https://frosty.blog/2010/10/02/minecraft/</link><pubDate>Sat, 02 Oct 2010 23:00:00 +0000</pubDate><guid>https://frosty.blog/2010/10/02/minecraft/</guid><description>&lt;p&gt;I&amp;rsquo;ve recently become somewhat addicted to &lt;a href="http://www.minecraft.net"&gt;Minecraft&lt;/a&gt; - the hit indie game that&amp;rsquo;s currently earning its creator over £100,000 a day. I find it quite hard to summarise what I find so brilliant about Minecraft, so I&amp;rsquo;ve collected together a few links to articles or videos that give a good idea of why Minecraft is awesome, and why you should be playing it right now.&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2015/12/2010-10-03-minecraft.jpg" alt="A lush new world in Minecraft. That grey pixelly bit at the front is a block of stone that I'm holding. But don't look at that - look at the incredible view and that awesome waterfall!" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;As a brief introduction, the single player game of Minecraft is all about adventuring and carving out an existence for yourself in a randomly generated, nearly-infinitely large world. It might be mountainous, islandy, foresty, snowy; you must harvest resources and built yourself tools and shelter; there&amp;rsquo;ll likely be huge underground cave systems for you to explore, containing precious minerals for you to mine, and monsters lurking in the darkness. It&amp;rsquo;s all about survival and exploring, in a world that you can literally shape as you please - pretty much every single block in the world can be destroyed, moved, or placed by you.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I&rsquo;ve recently become somewhat addicted to <a href="http://www.minecraft.net">Minecraft</a> - the hit indie game that&rsquo;s currently earning its creator over £100,000 a day. I find it quite hard to summarise what I find so brilliant about Minecraft, so I&rsquo;ve collected together a few links to articles or videos that give a good idea of why Minecraft is awesome, and why you should be playing it right now.</p>
<figure>
  <img src="/images/2015/12/2010-10-03-minecraft.jpg" alt="A lush new world in Minecraft. That grey pixelly bit at the front is a block of stone that I'm holding. But don't look at that - look at the incredible view and that awesome waterfall!" loading="lazy">
</figure>
<p>As a brief introduction, the single player game of Minecraft is all about adventuring and carving out an existence for yourself in a randomly generated, nearly-infinitely large world. It might be mountainous, islandy, foresty, snowy; you must harvest resources and built yourself tools and shelter; there&rsquo;ll likely be huge underground cave systems for you to explore, containing precious minerals for you to mine, and monsters lurking in the darkness. It&rsquo;s all about survival and exploring, in a world that you can literally shape as you please - pretty much every single block in the world can be destroyed, moved, or placed by you.</p>
<h3 id="mine-the-gap">Mine the Gap</h3>
<p>First up, there&rsquo;s a brilliant series of five articles over at <a href="http://www.rockpapershotgun">Rock, Paper, Shotgun</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> called <a href="http://www.rockpapershotgun.com/tag/mine-the-gap/">Mine the Gap</a>. The author had never played Minecraft before, and charts his progress through the game for the first few days. He very quickly falls in love with it, and does a good job of conveying what it&rsquo;s like to play Minecraft. I could quote pretty much all of the articles, but I&rsquo;ve tried to pick out some of my favourite bits:</p>
<blockquote>
<p>At this point I need to state just how unspeakably fun all this is. Shredding and re-assembling the game world is quick, tactile and satisfying. The entireity of MineCraft taps directly into that part of your mind that made it so fun to build forts out of sofa cushions as a kid. Even digging a hole in MineCraft brings on an inexplicable thrill of freedom and panic. It’s embarrassing.</p>
</blockquote>
<blockquote>
<p>Spelunking, it turns out, is kind of breathtaking. Everything- the risk of encountering monsters, the natural cave formations, the chance of discovering something unusual- comes together to form a thrilling whole.</p>
</blockquote>
<blockquote>
<p>MineCraft’s randomised caves are some of the most spellbinding locales I’ve ever encountered in a videogame, and a large part of that, I think, is because you’re always at risk of getting lost. It’s an omnipresent enemy you’re forever dueling with, and sometimes that means he gets the better of you. And that’s fun too.</p>
</blockquote>
<blockquote>
<p>Why aren’t there more games about exploring? I’m not talking learning the corners and shortcuts of some dull “open” world here. I’m talking about games which let you pick your way through a world that’s every bit as secretive, hostile and surprising as our own. I’m talking about letting the player get lost. I’m talking about making a world so tactile, so absorbing and so believable that an exciting discovery can be as simple as a big-ass tree.</p>
</blockquote>
<blockquote>
<p>We need more of this. Because this? This is brilliance. MineCraft is brilliance in such a simple, raw form that developers the world over should be smashing their heads on desks with a force usually reserved for heading footballs, simply because they didn’t do this first.</p>
</blockquote>
<blockquote>
<p>It took going on today’s expedition for me to realise it, but after a dozen hours I’ve already gotten more out of MineCraft than I get from most commercial games, so I’m just going to tell you straight up: You want to buy this game. It’s already fantastic, it’s still a long way from finished, it’s only €10 and once you’ve bought it, all future versions of MineCraft will be yours for free.</p>
</blockquote>
<p>I encourage you to go over and read through these, starting with number one, of course:</p>
<p>Here&rsquo;s all the articles: <a href="http://www.rockpapershotgun.com/tag/mine-the-gap/">Mine the Gap on Rock, Paper, Shotgun</a></p>
<p>Or here they are individually:<br>
<a href="http://www.rockpapershotgun.com/2010/09/14/minecraft-mine-the-gap-day-1/">Mine the Gap, Day 1</a> | <a href="http://www.rockpapershotgun.com/2010/09/15/minecraft-mine-the-gap-day-2/">Mine the Gap, Day 2</a> | <a href="http://www.rockpapershotgun.com/2010/09/16/minecraft-mine-the-gap-day-3/">Mine the Gap, Day 3</a> | <a href="http://www.rockpapershotgun.com/2010/09/17/minecraft-mine-the-gap-day-4/">Mine the Gap, Day 4</a> | <a href="http://www.rockpapershotgun.com/2010/09/20/minecraft-mine-the-gap-day-5/">Mine the Gap, Day 5</a></p>
<h3 id="expedition-minecraft">Expedition Minecraft!</h3>
<p>Next, a brilliantly made set of videos on YouTube called <a href="http://coc.io/expmct">Expedition Minecraft!</a>, from <a href="http://www.twitter.com/cocoia">Sebastiaan de With</a>, a designer from the Netherlands. He&rsquo;s made 7 videos so far which show him adventuring in Minecraft, starting out from scratch in a new world. I watched these before I bought Minecraft myself, and at least the first video or two almost act as a nice little tutorial of how you play the game - before watching these, I didn&rsquo;t really &lsquo;get&rsquo; what it was all about. It&rsquo;s also odd how strangely compelling and addictive it can be just watching someone <em>else</em> play. Each video&rsquo;s about 15 minutes long.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
			<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Bgq-Jujjhik?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
		</div>

<h3 id="and-finally">And finally&hellip;</h3>
<p>Finally, here&rsquo;s an utterly hilarious video of someone attempting to do a nice little tutorial, but not quite getting the results they were after&hellip;</p>
<p>Seriously - if you love games, I can&rsquo;t see how you can&rsquo;t enjoy Minecraft. I&rsquo;ve already got far more out of the game than the €9.95 I paid for it. You can play it in your browser or download the client, and it works on Mac OS X, Windows, and Linux. It currently costs €9.95 while it&rsquo;s in alpha, and will be double that whenever it&rsquo;s finally released.</p>
<p><a href="http://www.minecraft.net">Minecraft.net</a></p>
<p>P.S. If you do get it, I think you&rsquo;ll likely find the <a href="http://minecraftwiki.net/wiki/Main_Page">Minecraft Wiki</a> very useful. In particular, it has &lsquo;recipes&rsquo; for all the tools and items you can build.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>Thanks to <a href="http://www.twitter.com/">@davea</a> for the link.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Helsing's Fire: Quick iPhone Game Review</title><link>https://frosty.blog/2010/09/05/helsings-fire-quick-iphone-game-review/</link><pubDate>Sun, 05 Sep 2010 23:00:00 +0000</pubDate><guid>https://frosty.blog/2010/09/05/helsings-fire-quick-iphone-game-review/</guid><description>&lt;p&gt;&lt;strong&gt;Helsing&amp;rsquo;s Fire&lt;/strong&gt; is a fun, brilliantly presented, innovative puzzle / arcade game for iOS.&lt;/p&gt;
&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2015/12/2010-09-06-helsings-fire.png" alt="Helsing's Fire screenshots" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;You play as Van Helsing, on a mission to destroy the foul Count Dracula. To do this, you progress through 90 levels across 3 worlds, all filled with a hordes of monsters. The monsters in each level stand stationary, and are coloured red, blue, or green. To defeat them, you must move your flaming torch, casting rays of light around and between objects scattered across the level. Once your light falls upon the monsters you want to vanquish, you tap one of a selection of coloured potions to match the colour of the monster. This gets tricker as you progress through the game, as you must avoid monsters of a different colour to the potion you&amp;rsquo;re using. Different types of monster also present other challenges: bats fly around the level once you&amp;rsquo;ve attacked them, werewolves turn into innocent maidens who you must avoid with your potions, and ghosts turn invisible in your torch&amp;rsquo;s glare, so you have to remember their locations. The mechanic of casting light and shadows works really well and looks great.&lt;/p&gt;</description><content:encoded><![CDATA[<p><strong>Helsing&rsquo;s Fire</strong> is a fun, brilliantly presented, innovative puzzle / arcade game for iOS.</p>
<figure>
  <img src="/images/2015/12/2010-09-06-helsings-fire.png" alt="Helsing's Fire screenshots" loading="lazy">
</figure>
<p>You play as Van Helsing, on a mission to destroy the foul Count Dracula. To do this, you progress through 90 levels across 3 worlds, all filled with a hordes of monsters. The monsters in each level stand stationary, and are coloured red, blue, or green. To defeat them, you must move your flaming torch, casting rays of light around and between objects scattered across the level. Once your light falls upon the monsters you want to vanquish, you tap one of a selection of coloured potions to match the colour of the monster. This gets tricker as you progress through the game, as you must avoid monsters of a different colour to the potion you&rsquo;re using. Different types of monster also present other challenges: bats fly around the level once you&rsquo;ve attacked them, werewolves turn into innocent maidens who you must avoid with your potions, and ghosts turn invisible in your torch&rsquo;s glare, so you have to remember their locations. The mechanic of casting light and shadows works really well and looks great.</p>
<p>The game is nicely presented, with a good little story, fun characters with humorous dialogue, and catchy gothic tunes to accompany your adventure (I really recommend you play this one with the sound on - or at least the introduction). I especially like the little touches such as the way Van Helsing and his assistant bump fists or high five one another when you finish a level.</p>
<p>The game starts off pretty easy, but there&rsquo;s a Mario-style difficulty curve where new gameplay elements are regularly introduced, spicing things up a bit.</p>
<p>There are 90 levels in the main campaign mode, including some more arcade-style bosses that fly around the screen and require you to keep your torch on the move to avoid their attacks. Each &lsquo;world&rsquo; also has an unlimited, randomly generated survival mode. A recent updated added a new campaign with 30 more levels, some new enemies, and another survival mode arena. I found it to be quite an addictive &lsquo;just one more go&rsquo; pick-up-and-play game.</p>
<p><em>Very</em> good value for 59p - they really should be charging more for this. Highly recommended.</p>
<p><a href="http://itunes.apple.com/gb/app/helsings-fire/id380290526?mt=8">App Store</a> <a href="http://www.ratloop.com/?games/helsings_fire">Developer&rsquo;s website</a></p>
]]></content:encoded></item><item><title>iPhone Games</title><link>https://frosty.blog/2010/06/29/iphone-games/</link><pubDate>Tue, 29 Jun 2010 23:00:00 +0000</pubDate><guid>https://frosty.blog/2010/06/29/iphone-games/</guid><description>&lt;p&gt;I play quite a lot of games on my iPhone. I thought I&amp;rsquo;d write a quick post to highlight some of the games that I&amp;rsquo;ve really enjoyed and I keep coming back to. There&amp;rsquo;s a lot of good stuff out there, but there&amp;rsquo;s also a lot of rubbish to wade through (either games that are just plain bad, or fun for five minutes and then you&amp;rsquo;ll never play it again); so here are the ones that have stood the test of time with me. In alphabetical order:&lt;/p&gt;</description><content:encoded><![CDATA[<p>I play quite a lot of games on my iPhone. I thought I&rsquo;d write a quick post to highlight some of the games that I&rsquo;ve really enjoyed and I keep coming back to. There&rsquo;s a lot of good stuff out there, but there&rsquo;s also a lot of rubbish to wade through (either games that are just plain bad, or fun for five minutes and then you&rsquo;ll never play it again); so here are the ones that have stood the test of time with me.  In alphabetical order:</p>
<h4 id="broken-sword">Broken Sword</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-01.png" alt="Broken Sword" loading="lazy">
</figure>
<p>A classic point-and-click adventure, updated for the iPhone and touch controls. The original came out in 1996, and it&rsquo;s <strong>still</strong> awesome. If you&rsquo;ve never played Broken Sword, I highly recommend it. Fantastic historical-thrillery-mystery storyline, great visuals, good humour, and memorable characters.<br />
<a href="http://itunes.apple.com/us/app/broken-sword-directors-cut/id350353259?mt=8">[iTunes]</a></p>
<h4 id="canabalt">Canabalt</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-02.png" alt="Canabalt" loading="lazy">
</figure>
<p>Canabalt&rsquo;s probably the simplest game on this list. It has one control: tap the screen to jump. Your character runs and jumps along rooftops in some dystopian future that&rsquo;s going all to hell. Nice pixel art, and an awesome soundtrack (headphones recommended). Seems like it&rsquo;ll be a one minute wonder, but it&rsquo;s very much &ldquo;hmm, just <em>one</em> more go&hellip;&rdquo;. There&rsquo;s a flash version on the Canabalt website, so you can try it out there.<br />
<a href="http://itunes.apple.com/app/canabalt/id333180061?mt=8">[iTunes]</a> <a href="http://www.canabalt.com/">[App website]</a></p>
<h4 id="carcassonne">Carcassonne</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-03.png" alt="Carcassonne" loading="lazy">
</figure>
<p>Carcassonne&rsquo;s my newest acquisition and it&rsquo;s so so <strong>SO</strong> well made. Carcassonne is an iOS version a of <a href="http://en.wikipedia.org/wiki/Carcassonne_(board_game)">a board game</a>, and it really feels like an authentic board game. You place tiles to build up countryside (consisting of towns, roads, and fields), and place your &lsquo;meeple&rsquo; on the structures you create to capture them and score points. The Carcassonne website has a nice introductory video explaining how the game works. Lovely graphics, music, and sound effects, and a great tutorial with voiceover introduces you to the game. Also, lots of nice casual multiplayer<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> and replayability. I&rsquo;m jwfrosty, so if you grab the game, come play against me online!</p>
<p>Carcasonne is £2.99, but I can&rsquo;t recommend it highly enough. The price will be going up when the app gains iPad support, too (to $9.99 in US money), so if you&rsquo;re interested buy now!<br />
<a href="http://itunes.apple.com/app/carcassonne/id375295479?mt=8">[iTunes]</a> <a href="http://carcassonneapp.com/">[App website]</a></p>
<h4 id="flight-control">Flight Control</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-04.png" alt="Flight Control" loading="lazy">
</figure>
<p>The quintessential iPhone game. One of the first, and still one of the best examples of touch screen gaming. I think there&rsquo;s some sort of law that states that every iPhone owner must have a copy of Flight Control. Chances are you&rsquo;ve probably seen or played this already but if you haven&rsquo;t, you should.<br />
<a href="http://itunes.apple.com/app/flight-control/id306220440?mt=8">[iTunes]</a> <a href="http://firemint.com/?page_id=565">[App website]</a></p>
<h4 id="fruit-ninja">Fruit Ninja</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-05.png" alt="Fruit Ninja" loading="lazy">
</figure>
<p>A recent acquisition, but pretty addictive. Fruit get thrown in the air, you swipe them with your finger to cut them in half. Avoid the the bombs. Bombs are bad. That&rsquo;s all you need to know. Nice graphics, although not updated to high res versions for the retina display yet. Another &ldquo;just one more go&hellip;&rdquo; game.<br />
<a href="http://itunes.apple.com/gb/app/fruit-ninja/id362949845?mt=8">[iTunes]</a> <a href="http://www.fruitninja.com/">[App website]</a></p>
<h4 id="geodefense">geoDefense</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-06.png" alt="Geodefense" loading="lazy">
</figure>
<p>I&rsquo;m not the biggest fan of tower defence games, but geoDefense is well done, and adds some nice restrictions to the format which make it much easier to pick up and play. The enemies move &lsquo;on rails&rsquo;, so it&rsquo;s not such a free-for-all as other games; you know where they&rsquo;re going to be headed and can plan your defenses appropriately.<br />
<a href="http://itunes.apple.com/app/geodefense/id305608325?mt=8">[iTunes]</a> <a href="http://criticalthoughtgames.com/geodefense">[App website]</a></p>
<h4 id="orbital">Orbital</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-07.png" alt="Orbital" loading="lazy">
</figure>
<p>An iPhone remake/clone of a flash game, <a href="http://gimmefrictionbaby.com/">Gimme Friction Baby</a>, but better. Gorgeous visuals, easy to learn, good game mechanics, good for pick up and playability.<br />
<a href="http://www.orbital-game.com/">[iTunes]</a> <a href="http://itunes.apple.com/app/orbital/id324012853?mt=8">[App website]</a></p>
<h4 id="plants-vs-zombies">Plants vs Zombies</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-08.png" alt="Plants vs Zombies" loading="lazy">
</figure>
<p>Popcap, the kings of the casual game market. Plants vs Zombies is their take on tower defense games, and it&rsquo;s pretty addictive. Plant plants in a garden, all of which have different zombie-resistant abilities - some shoot seeds, some stop baddies dead in their tracks (dead! Zombies! See what I did there?), and others just explode. Good fun, and the difficultly level ramps up perfectly - each level introduces you to some new item, ability, or bad guy, so you&rsquo;re always making progress. There&rsquo;s a free online flash demo if you want to try it out there.<br />
<a href="http://itunes.apple.com/us/app/id350642635?mt=8">[iTunes]</a> <a href="http://www.popcap.com/games/iphone/pvz">[App website]</a></p>
<h4 id="strategery">Strategery</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-09.png" alt="Strategery" loading="lazy">
</figure>
<p>Apparently Strategery is quite like Risk, although I&rsquo;ve never played Risk so I can&rsquo;t really vouch for that. You take over enemy territories on a map. Some element of luck involved. The game scales pretty well from really easy on tiny maps all the way up to &lsquo;give me full control over everything&rsquo; with brutally hard CPU opponents on epically-sized maps. I prefer the smaller easier ones, because I can win at those. There&rsquo;s a free, lite version of this (which is slightly dated now - hasn&rsquo;t been updated for a while - but it&rsquo;s still good), so give it a whirl.<br />
<a href="http://itunes.apple.com/gb/app/strategery-lite/id303188552?mt=8">[Lite version - iTunes]</a> <a href="http://itunes.apple.com/app/strategery/id298908505?mt=8">[Paid version - iTunes]</a> <a href="http://strategerygame.com/">[App website]</a></p>
<h4 id="words-with-friends">Words with Friends</h4>
<figure>
  <img src="/images/2015/12/2010-06-30-iphone-games-10.png" alt="Words with Friends" loading="lazy">
</figure>
<p>Words with Friends is a Scrabble-like game which allows you to play with friends over the internet. It&rsquo;s very well done, and the multiplayer works seamlessly. More people need to come and play this with me! I&rsquo;m jwfrosty. There&rsquo;s a free ad-supported version, so there&rsquo;s no reason for you not have a go!<br />
<a href="http://itunes.apple.com/gb/app/words-with-friends-free/id321916506?mt=8">[Free version - iTunes]</a> <a href="http://itunes.apple.com/gb/app/words-with-friends/id322852954?mt=8">[Paid version - iTunes]</a></p>
<p>If there&rsquo;s anything I&rsquo;ve missed out that you&rsquo;d like to recommend, please let me know about it in the comments! And please come and play against me at Words with Friends and Carcassonne!</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>You don&rsquo;t have to play all in one sitting, just take turns as and when - the game will let you know when it&rsquo;s your turn.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>iPad Initial Impressions</title><link>https://frosty.blog/2010/05/28/ipad-initial-impressions/</link><pubDate>Fri, 28 May 2010 23:00:00 +0000</pubDate><guid>https://frosty.blog/2010/05/28/ipad-initial-impressions/</guid><description>&lt;p&gt;So, last night I got to play with an iPad for a couple of hours (thanks &lt;a href="http://www.twitter.com/davea"&gt;@davea&lt;/a&gt;!) and thought I&amp;rsquo;d post some of my initial impressions. Obviously these are my thoughts, your mileage may vary.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It&amp;rsquo;s smaller than you probably think it is&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s exactly as big as you thought it was if you were sad enough to make an actual-size cardboard model of it months ago&lt;/li&gt;
&lt;li&gt;The screen is &lt;strong&gt;gorgeous&lt;/strong&gt;. Really bright, the colours just jump out at you, and the viewing angles are unreal. Photos look brilliant on it, but you see a slight lack of resolution in text when you&amp;rsquo;re zoomed some way out of a web page.&lt;/li&gt;
&lt;li&gt;That said, because the screen is a piece of glass, it seemed as though glare could definitely be an issue depending on where you&amp;rsquo;re sat. I was trying to read Winnie-the-Pooh, and I could just see my face reflected in the screen because I was in the wrong position.&lt;/li&gt;
&lt;li&gt;It feels really nice in your hand. It&amp;rsquo;s a good weight (although lighter would be nicer) and it feels reassuringly solid.&lt;/li&gt;
&lt;li&gt;It&amp;rsquo;s &lt;strong&gt;fast&lt;/strong&gt;. I&amp;rsquo;d read all the reviews saying how quick it was, but I didn&amp;rsquo;t expect it to be quite that quick. Everything just feels so slick and fluid, and I think this is a very big part of why I found it so nice to use.&lt;/li&gt;
&lt;li&gt;Web browsing and Google maps are just brilliant. Again, there was a lot of hyperbole about how browsing the web on this thing is a totally new experience and you have to try it to understand it - and whilst that&amp;rsquo;s a &lt;em&gt;little&lt;/em&gt; OTT, I kind of get where they&amp;rsquo;re coming from. It feels very different (in a good way) from anything I&amp;rsquo;ve used before. For casual web surfing, lay back on the sofa or in a comfy chair, and for actually reading web pages, I think it&amp;rsquo;ll be brilliant.&lt;/li&gt;
&lt;li&gt;The Instapaper app was probably the nicest reading experience I came across while trying out the iPad. With the default font settings, it&amp;rsquo;s totally gorgeous. I could spend hours and hours working my way through my Instapaper reading list on this thing.&lt;/li&gt;
&lt;li&gt;Reading PDFs is also a pretty great experience. It&amp;rsquo;s so nice to be able to flick through a PDF, and hold it like a book. A vastly better experience than reading them on a laptop or on my Sony Reader (which is far too slow for PDFs, and they don&amp;rsquo;t work well with that screen size).&lt;/li&gt;
&lt;li&gt;Photos look great, and the slideshows work really well. The iPad would make a brilliant digital photo frame whilst not in use.&lt;/li&gt;
&lt;li&gt;The keyboard surprised me by being much more usable than I was expecting. Portrait mode&amp;rsquo;s a little cramped, but landscape seems nearly full size. Straight away, I was typing very quickly with very few mistakes. I could see myself inputting a lot of text without the need for an external keyboard. &lt;a href="http://www.nanowrimo.org"&gt;NaNoWriMo&lt;/a&gt; 2010, perhaps?&lt;/li&gt;
&lt;li&gt;It seems a very social device. Sure, we were all interested in trying it out and so it got passed around a lot - but it&amp;rsquo;s just so easy to spin it round or hold it up to show other people something cool. Or to load up an app and hand it over to someone to play with. It&amp;rsquo;s very unlike a laptop in that respect.&lt;/li&gt;
&lt;li&gt;The &amp;lsquo;just a big iPod Touch&amp;rsquo; comment that people have made is total crap. iPhone OS on a device this size is a very different experience. The extra screen space adds a lot. Web browsing in particular feels completely different to browsing on an iPhone.&lt;/li&gt;
&lt;li&gt;My iPhone now seems very small, cramped, and slow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I liked it, and can&amp;rsquo;t wait to get one. I think my primary use would be reading - Instapaper, websites, feeds, and PDFs. And I think I would use it a &lt;em&gt;lot&lt;/em&gt; for all of those things. In fact, other than coding and managing my photos, I could see it replacing my laptop for a lot of things I do with my computer - namely, using the web, email, etc. And for me, that&amp;rsquo;d be a good thing - I hate being stuck behind a laptop when all I want to do is read. It&amp;rsquo;d be a nice distinction, because laptop would be for getting something done (coding, etc), and iPad would be for leisure. The iPad would also come in very hand &lt;em&gt;whilst&lt;/em&gt; coding, for reference books, etc.&lt;/p&gt;</description><content:encoded><![CDATA[<p>So, last night I got to play with an iPad for a couple of hours (thanks <a href="http://www.twitter.com/davea">@davea</a>!) and thought I&rsquo;d post some of my initial impressions. Obviously these are my thoughts, your mileage may vary.</p>
<ul>
<li>It&rsquo;s smaller than you probably think it is</li>
<li>It&rsquo;s exactly as big as you thought it was if you were sad enough to make an actual-size cardboard model of it months ago</li>
<li>The screen is <strong>gorgeous</strong>. Really bright, the colours just jump out at you, and the viewing angles are unreal. Photos look brilliant on it, but you see a slight lack of resolution in text when you&rsquo;re zoomed some way out of a web page.</li>
<li>That said, because the screen is a piece of glass, it seemed as though glare could definitely be an issue depending on where you&rsquo;re sat. I was trying to read Winnie-the-Pooh, and I could just see my face reflected in the screen because I was in the wrong position.</li>
<li>It feels really nice in your hand. It&rsquo;s a good weight (although lighter would be nicer) and it feels reassuringly solid.</li>
<li>It&rsquo;s <strong>fast</strong>. I&rsquo;d read all the reviews saying how quick it was, but I didn&rsquo;t expect it to be quite that quick. Everything just feels so slick and fluid, and I think this is a very big part of why I found it so nice to use.</li>
<li>Web browsing and Google maps are just brilliant. Again, there was a lot of hyperbole about how browsing the web on this thing is a totally new experience and you have to try it to understand it - and whilst that&rsquo;s a <em>little</em> OTT, I kind of get where they&rsquo;re coming from. It feels very different (in a good way) from anything I&rsquo;ve used before. For casual web surfing, lay back on the sofa or in a comfy chair, and for actually reading web pages, I think it&rsquo;ll be brilliant.</li>
<li>The Instapaper app was probably the nicest reading experience I came across while trying out the iPad. With the default font settings, it&rsquo;s totally gorgeous. I could spend hours and hours working my way through my Instapaper reading list on this thing.</li>
<li>Reading PDFs is also a pretty great experience. It&rsquo;s so nice to be able to flick through a PDF, and hold it like a book. A vastly better experience than reading them on a laptop or on my Sony Reader (which is far too slow for PDFs, and they don&rsquo;t work well with that screen size).</li>
<li>Photos look great, and the slideshows work really well. The iPad would make a brilliant digital photo frame whilst not in use.</li>
<li>The keyboard surprised me by being much more usable than I was expecting. Portrait mode&rsquo;s a little cramped, but landscape seems nearly full size. Straight away, I was typing very quickly with very few mistakes. I could see myself inputting a lot of text without the need for an external keyboard. <a href="http://www.nanowrimo.org">NaNoWriMo</a> 2010, perhaps?</li>
<li>It seems a very social device. Sure, we were all interested in trying it out and so it got passed around a lot - but it&rsquo;s just so easy to spin it round or hold it up to show other people something cool. Or to load up an app and hand it over to someone to play with. It&rsquo;s very unlike a laptop in that respect.</li>
<li>The &lsquo;just a big iPod Touch&rsquo; comment that people have made is total crap. iPhone OS on a device this size is a very different experience. The extra screen space adds a lot. Web browsing in particular feels completely different to browsing on an iPhone.</li>
<li>My iPhone now seems very small, cramped, and slow.</li>
</ul>
<p>I liked it, and can&rsquo;t wait to get one. I think my primary use would be reading - Instapaper, websites, feeds, and PDFs. And I think I would use it a <em>lot</em> for all of those things. In fact, other than coding and managing my photos, I could see it replacing my laptop for a lot of things I do with my computer - namely, using the web, email, etc. And for me, that&rsquo;d be a good thing - I hate being stuck behind a laptop when all I want to do is read. It&rsquo;d be a nice distinction, because laptop would be for getting something done (coding, etc), and iPad would be for leisure. The iPad would also come in very hand <em>whilst</em> coding, for reference books, etc.</p>
]]></content:encoded></item><item><title>Momento</title><link>https://frosty.blog/2010/01/06/momento/</link><pubDate>Wed, 06 Jan 2010 00:00:00 +0000</pubDate><guid>https://frosty.blog/2010/01/06/momento/</guid><description>&lt;figure&gt;
 &lt;a href="http://momentoapp.com"&gt;&lt;img src="https://frosty.blog/images/2015/12/2010-01-06-momento.png" alt="" loading="lazy"&gt;&lt;/a&gt;
&lt;/figure&gt;
&lt;p&gt;I just wanted to share an iPhone app I came across the other day which I&amp;rsquo;ve totally fallen in love with. It&amp;rsquo;s called &lt;a href="http://momentoapp.com"&gt;Momento&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Momento is a diary/journaling app, which I guess is fairly self explanatory - you can add text to days in the form of &amp;lsquo;moments&amp;rsquo;. You can also attach photos to days, as well as tags for people, events, and geolocation information if you wish. Momento also has the ability to passcode your journal, to hide it from prying eyes (the main reason I want an electronic journal rather than a paper one). It&amp;rsquo;s super-simple to use, which is part of its charm; it gets out of your way and makes journaling easy (low barrier to entry: check!).&lt;/p&gt;</description><content:encoded><![CDATA[<figure>
  <a href="http://momentoapp.com"><img src="/images/2015/12/2010-01-06-momento.png" alt="" loading="lazy"></a>
</figure>
<p>I just wanted to share an iPhone app I came across the other day which I&rsquo;ve totally fallen in love with. It&rsquo;s called <a href="http://momentoapp.com">Momento</a>.</p>
<p>Momento is a diary/journaling app, which I guess is fairly self explanatory - you can add text to days in the form of &lsquo;moments&rsquo;. You can also attach photos to days, as well as tags for people, events, and geolocation information if you wish. Momento also has the ability to passcode your journal, to hide it from prying eyes (the main reason I want an electronic journal rather than a paper one). It&rsquo;s super-simple to use, which is part of its charm; it gets out of your way and makes journaling easy (low barrier to entry: check!).</p>
<p>You can browse through your entries in a sweet calendar view or flick through individual days. Take a look at the screenshots on the <a href="http://momentoapp.com">Momento website</a> - this thing is <em>gorgeous</em>. It&rsquo;s a joy to use, both for writing and reading, and feels pretty damn close to using a paper journal. It brings to mind Tweetie 2 in terms of its visual polish - in fact, it even has that cute little arrow that slides along the tab bar at the bottom of the screen when you change modes, just like Tweetie.</p>
<p>In addition to its kickass-as-it-is journaling functionality, Momento can pull in &lsquo;social moments&rsquo; from Twitter, Facebook, Last.fm, and Flickr. Fill in your account details for any of these services, and it&rsquo;ll show your Flickr uploads, Twitter updates, etc, alongside your handwritten journal entries. In fact, it even grabs this data from the past, so you instantly have a very rough historical journal without having to write anything yourself.</p>
<p>My only real criticism of the app as it is is that there&rsquo;s no easy / automatic way to export / import data. As it stands, you can email yourself an XML file of your journal entries from within the app, but there&rsquo;s no way to re-import that data and the export is a manual process. Some kind of sync might be nice. It&rsquo;s mainly for security purposes, just so I don&rsquo;t lose my entries - I&rsquo;m not interested in sharing them with anybody (I have a blog for that!). That said, paper journals don&rsquo;t have a backup system!</p>
<p>I&rsquo;ve been using Momento every day for the past week, and it&rsquo;s brilliant. I&rsquo;ve been wanting to keep a journal for a long time now, but I&rsquo;ve never really given it a proper go. I&rsquo;m intending to carry on with this now I&rsquo;ve found a great way to do it - I&rsquo;m going to try and write every day for a month, and then hopefully just keep on writing.</p>
]]></content:encoded></item><item><title>Singletasking</title><link>https://frosty.blog/2009/09/09/singletasking/</link><pubDate>Wed, 09 Sep 2009 23:00:00 +0000</pubDate><guid>https://frosty.blog/2009/09/09/singletasking/</guid><description>&lt;p&gt;In recent years, I&amp;rsquo;ve become increasingly concerned about my scatterbrained-ness. I find it hard to focus on a single task for a prolonged period of time: for example, I find it takes me far longer to get through a book, or even read a short passage of text, than it ever used to. I don&amp;rsquo;t listen to the other person when I&amp;rsquo;m having a conversation &amp;ndash; or rather, I &lt;em&gt;try&lt;/em&gt; to listen, but the information somehow always seems to pass through my brain without being stored anywhere. I&amp;rsquo;m not really present in the moment. My brain gets distracted very easily, and I&amp;rsquo;ll swear I hadn&amp;rsquo;t had that conversation with you. My comprehension of texts is perhaps worse than it&amp;rsquo;s ever been, too. Not all the time, but often, I have to concentrate quite hard in order to actually take in the details of what I&amp;rsquo;m reading if I want anything more than a cursory understanding. When using the computer at home, I never seem to do anything productive &amp;ndash; just follow an endless cycle of checking my feed reader, my e-mail, Twitter, and flicking through my open tabs. Sure, I get things done, but slowly, and piecemeal. My concentration usually feels scattered, my focus divided, my brain like it&amp;rsquo;s trying to juggle too many balls/clubs/knives/porcupines at once.&lt;/p&gt;</description><content:encoded><![CDATA[<p>In recent years, I&rsquo;ve become increasingly concerned about my scatterbrained-ness. I find it hard to focus on a single task for a prolonged period of time: for example, I find it takes me far longer to get through a book, or even read a short passage of text, than it ever used to. I don&rsquo;t listen to the other person when I&rsquo;m having a conversation &ndash; or rather, I <em>try</em> to listen, but the information somehow always seems to pass through my brain without being stored anywhere. I&rsquo;m not really present in the moment. My brain gets distracted very easily, and I&rsquo;ll swear I hadn&rsquo;t had that conversation with you. My comprehension of texts is perhaps worse than it&rsquo;s ever been, too. Not all the time, but often, I have to concentrate quite hard in order to actually take in the details of what I&rsquo;m reading if I want anything more than a cursory understanding. When using the computer at home, I never seem to do anything productive &ndash; just follow an endless cycle of checking my feed reader, my e-mail, Twitter, and flicking through my open tabs. Sure, I get things done, but slowly, and piecemeal. My concentration usually feels scattered, my focus divided, my brain like it&rsquo;s trying to juggle too many balls/clubs/knives/porcupines at once.</p>
<p>The first time I noticed this really happening was after starting university. My arrival at uni coincided (I think) with my first really portable, useful laptop (an iBook G4) with real internet-wherever-I-was; with the rise of update services like Twitter; with the rise of tabbed browsing. More and more things calling for my attention at any given time, and an increasing number of easy distractions. I think taking a laptop into lectures was a big mistake. What with web browsing, instant messaging, and the computer society chat room, I&rsquo;d often leave lectures not having a clue what we&rsquo;d just been told about. Closer to exams, I&rsquo;d be going over course notes and sample exam papers and come across topics that I was sure I&rsquo;d never been taught. Of course, I had &ndash; I just hadn&rsquo;t been paying much attention.</p>
<p>It&rsquo;s a problem that feeds itself. Checking your e-mail or Twitter account and finding a new message or some new updates from your friends is very&hellip; moreish. Each new &rsquo;thing&rsquo; you discover is like a reward for your brain &ndash; <em>well done!</em>, it says, <em>you checked for a thing, and you found one!</em>. And so you check again. And again, and again.</p>
<p>Modern technology makes it easier than ever to be distracted; for your focus to be divided. Everything is at your fingertips. The problem is that if you&rsquo;re trying to write a report on the computer and your brain keeps diving off to skim through some websites, or check your e-mail, or see what your friends are up to, it leaves very little time to actually devote to what you were trying to accomplish in the first place. And every time you check on one of these things, and your brain gets that little reward, it spends more and more time looking at more and more things. Ergo, you don&rsquo;t finish that report &ndash; <em>never mind, I&rsquo;ll finish it tomorrow</em>. But tomorrow, you&rsquo;re just as distracted. You feel bad for not finishing, but your brain can&rsquo;t help seeking its little rewards. It becomes a habit. An addiction. So the downward spiral goes.</p>
<p>I think multitasking&rsquo;s partly to blame for this detrimental effect. As much as we like to think we can work on lots of things at once, the fact is we&rsquo;re simply not that good at it - and I don&rsquo;t think it&rsquo;s particularly good for us, either. It&rsquo;s stressful, and it trains our brain that it&rsquo;s okay to only focus on tasks for a short period of time before switching to something else - but that&rsquo;s no way to get things done. Even when relaxing, my brain still thinks it should be doing other things. For years, I&rsquo;ve been overloading myself with information and trying to do too many things at once. Without even noticing it, I&rsquo;ve been training my brain to always look for opportunities to perform this kind of rapid context-switching, which has left me less and less able to focus on any one thing for any length of time.</p>
<p>And lately, it&rsquo;s been getting to me. I want to read more (I used to love reading books and would devour them ever-so quickly); I want to write more; I want to <em>create</em> more. Every time I attempt to settle down to do one of these things, that crack-seeking part of my brain gets excited by the slightest thing, pulling my attention away from what I want to do. <em>What was that noise? Have I done this? I should remember to do that. I wonder if I have any e-mails? Are there any updates to my iPhone apps? Has anyone posted on Twitter recently?</em></p>
<p>I&rsquo;m genuinely concerned about the effect it&rsquo;s going to have on my long-term ability to focus on tasks and on my memory. The change I&rsquo;ve described thus-far has arisen over a fairly short 4 year period. Current research seems to be backing up this idea that multitasking may well be problematic. A <a href="http://edition.cnn.com/2009/HEALTH/08/25/multitasking.harmful/index.html">recent CNN article</a> covers a study in which multitaskers did worse on attention tests than non-multitaskers. The multitaskers were more easily distracted by irrelevant information, and retained useless information in their short-term memory. Researchers aren&rsquo;t sure whether these effects are reversible or not &ndash; I&rsquo;m inclined to think they are, given enough time spent trying to correct them. So, I&rsquo;m planning to do something about it and start trying to reverse the effects. It&rsquo;s like realizing that for years I&rsquo;ve been eating junk food on an alarmingly regular basis, and training my body to crave the taste of it. It&rsquo;s time to throw away the Big Zinger Whopper, go on a diet, and start an exercise regime.</p>
<p>For starters, I&rsquo;m going to be attempting to take up meditation on a daily basis. After all, applying single focus for a prolonged period of time is part of what mindfulness mediation is all about. Training my brain regularly in this way should help increase my mindfulness and focus when going about my day-to-day activities.</p>
<blockquote>
<p>The goal of this kind of meditation is to bring an inner peace and a lasting happiness. Along the path to that goal, you get a lot of other benefits such as being more connected to your body, more aware of your feelings and emotions, and less caught by your thoughts and what’s called the “monkey mind” – a mind that won’t rest and that, over time, contributes to the kinds of anxiety and stress many of us feel each day.</p>
<p>An Introduction to Mindfulness Meditation - Hivelogic</p>
</blockquote>
<p>I&rsquo;m also going to be trying to cut down on multitasking. If I&rsquo;m doing something creative, or talking to somebody, or reading something, I want to give that my full attention. No aimless web browsing, or e-mail/Twitter/feed checking, whilst I&rsquo;m trying to half-participate in a conversation with you. That doesn&rsquo;t mean I can&rsquo;t browse the web or read my feeds - but there&rsquo;s a time and a place, and keeping these things distinct means that I should be more effective at whatever it is I&rsquo;m doing. As with meditation, singletasking should help my ability to focus on a given task. It won&rsquo;t be easy and it won&rsquo;t be fast, but I guess it&rsquo;s a bit like learning to run a marathon - take small, incremental steps, practice as often as you can, and you&rsquo;ll get there.</p>
<p>After I began drafting this post I bought a book I&rsquo;d read about online: <a href="http://www.thepowerofless.com/book">The Power of Less</a>. It may sound like a load more self-help nonsense, but it puts forward some useful ideas about applying meditation techniques to singletasking in your daily life. Simply focus on the task at hand &ndash; if you find your attention drawn away, be aware of what&rsquo;s happening, breathe, and return your focus to the task. I&rsquo;ve written the first draft of this blog post with no distractions whatsoever - just me and a text editor. I&rsquo;ve written nearly 1000 words in about half an hour, because my attention has been on writing, and only on writing. Singletasking might just be the way forward</p>
]]></content:encoded></item><item><title>Pea &amp; Mint Soup</title><link>https://frosty.blog/2009/08/13/pea-mint-soup/</link><pubDate>Thu, 13 Aug 2009 23:00:00 +0000</pubDate><guid>https://frosty.blog/2009/08/13/pea-mint-soup/</guid><description>&lt;figure&gt;
 &lt;img src="https://frosty.blog/images/2015/12/2009-08-14-pea-soup-1.jpg" alt="image1" loading="lazy"&gt;
&lt;/figure&gt;
&lt;p&gt;Tonight I cooked up a &lt;a href="https://frosty.blog/wp-content/uploads/2015/12/2009-08-14-pea-soup-1.jpg"&gt;really tasty&lt;/a&gt; &lt;a href="https://frosty.blog/wp-content/uploads/2015/12/2009-08-14-pea-soup-2.jpg"&gt;pea&lt;/a&gt; &lt;a href="https://frosty.blog/wp-content/uploads/2015/12/2009-08-14-pea-soup-3.jpg"&gt;soup&lt;/a&gt;. I made it up as I went along – fortunately it turned out really tasty! Here&amp;rsquo;s my recipe (this made enough for about 2 large bowls):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1 clove garlic, crushed/chopped&lt;/li&gt;
&lt;li&gt;1/2 onion, chopped&lt;/li&gt;
&lt;li&gt;1 small potato, quite finely chopped&lt;/li&gt;
&lt;li&gt;250 - 300g frozen peas (I used 275g)&lt;/li&gt;
&lt;li&gt;fresh mint, torn; I used one really really good sized handful. Don&amp;rsquo;t be stingy, it can take a lot!&lt;/li&gt;
&lt;li&gt;A good squeeze of lemon juice&lt;/li&gt;
&lt;li&gt;500ml vegetable stock&lt;/li&gt;
&lt;li&gt;Some oil for cooking&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;Heat the oil in a pan at a medium temperature. Add the garlic and onion, and cook until the onion starts to soften. Add the potato and cook a little longer, just to start it off.&lt;/li&gt;
&lt;li&gt;Add the stock, cover, and simmer until the potato&amp;rsquo;s fairly soft (10 minutesish?)&lt;/li&gt;
&lt;li&gt;Add the peas and the mint, stir, cover again, and cook until the peas are just soft.&lt;/li&gt;
&lt;li&gt;Scoop out a small amount of the peas with a slotted spoon / spatula (you can stick them back in at the end when you serve it).&lt;/li&gt;
&lt;li&gt;Blend until smooth. You may need to add a little extra water to get it to a consistency you like.&lt;/li&gt;
&lt;li&gt;Season, and add a good squeeze of lemon juice – adjust to taste.&lt;/li&gt;
&lt;li&gt;Spoon into bowls, and garnish with the peas you took out earlier (it&amp;rsquo;s best to lower them in on a spoon, or else they just seem to sink) and a little more chopped mint.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;</description><content:encoded><![CDATA[<figure>
  <img src="/images/2015/12/2009-08-14-pea-soup-1.jpg" alt="image1" loading="lazy">
</figure>
<p>Tonight I cooked up a <a href="/wp-content/uploads/2015/12/2009-08-14-pea-soup-1.jpg">really tasty</a> <a href="/wp-content/uploads/2015/12/2009-08-14-pea-soup-2.jpg">pea</a> <a href="/wp-content/uploads/2015/12/2009-08-14-pea-soup-3.jpg">soup</a>. I made it up as I went along – fortunately it turned out really tasty! Here&rsquo;s my recipe (this made enough for about 2 large bowls):</p>
<ul>
<li>1 clove garlic, crushed/chopped</li>
<li>1/2 onion, chopped</li>
<li>1 small potato, quite finely chopped</li>
<li>250 - 300g frozen peas (I used 275g)</li>
<li>fresh mint, torn; I used one really really good sized handful. Don&rsquo;t be stingy, it can take a lot!</li>
<li>A good squeeze of lemon juice</li>
<li>500ml vegetable stock</li>
<li>Some oil for cooking</li>
</ul>
<ol>
<li>Heat the oil in a pan at a medium temperature. Add the garlic and onion, and cook until the onion starts to soften. Add the potato and cook a little longer, just to start it off.</li>
<li>Add the stock, cover, and simmer until the potato&rsquo;s fairly soft (10 minutesish?)</li>
<li>Add the peas and the mint, stir, cover again, and cook until the peas are just soft.</li>
<li>Scoop out a small amount of the peas with a slotted spoon / spatula (you can stick them back in at the end when you serve it).</li>
<li>Blend until smooth. You may need to add a little extra water to get it to a consistency you like.</li>
<li>Season, and add a good squeeze of lemon juice – adjust to taste.</li>
<li>Spoon into bowls, and garnish with the peas you took out earlier (it&rsquo;s best to lower them in on a spoon, or else they just seem to sink) and a little more chopped mint.</li>
</ol>
<p>Enjoy!</p>
]]></content:encoded></item><item><title>Simple Python HTTP Server</title><link>https://frosty.blog/2009/06/07/simple-python-http-server/</link><pubDate>Sun, 07 Jun 2009 23:00:00 +0000</pubDate><guid>https://frosty.blog/2009/06/07/simple-python-http-server/</guid><description>&lt;p&gt;&lt;code&gt;python -m SimpleHTTPServer&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This starts a service on port 8000, and shares all files in the current directory (and subdirectories). Rather handy.&lt;/p&gt;
&lt;p&gt;/via &lt;a href="http://www.finerrecliner.com/2009/03/01/quick-file-sharing-web-server-in-python/"&gt;Quick File Sharing Web Server In Python&lt;/a&gt;&lt;/p&gt;</description><content:encoded><![CDATA[<p><code>python -m SimpleHTTPServer</code></p>
<p>This starts a service on port 8000, and shares all files in the current directory (and subdirectories). Rather handy.</p>
<p>/via <a href="http://www.finerrecliner.com/2009/03/01/quick-file-sharing-web-server-in-python/">Quick File Sharing Web Server In Python</a></p>
]]></content:encoded></item><item><title>OS X on a Dell Mini 9</title><link>https://frosty.blog/2009/04/12/os-x-on-a-dell-mini-9/</link><pubDate>Sun, 12 Apr 2009 23:00:00 +0000</pubDate><guid>https://frosty.blog/2009/04/12/os-x-on-a-dell-mini-9/</guid><description>&lt;p&gt;These days, my primary computer is a 15&amp;quot; MacBook Pro. It&amp;rsquo;s an amazing machine, but sometimes those 15&amp;quot; can be a little unwieldy (yes, that&amp;rsquo;s what she said).&lt;/p&gt;
&lt;p&gt;Apple used to make a small, very portable laptop: the 12&amp;quot; PowerBook, which was unfortunately retired during Apple&amp;rsquo;s switch to the Intel platform. However, the transition did introduce the potential ability to run Mac OS X natively on non-Apple hardware. Whilst Apple don&amp;rsquo;t (currently) make their own netbook&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;, a big community has sprung up around running OS X on non-Apple netbooks. &lt;em&gt;I should note from the outset that installing OS X on non-Apple hardware potentially violates the OS X EULA. If you&amp;rsquo;re going to do this, in the very least ensure you own a legal copy of Mac OS X Leopard.&lt;/em&gt;&lt;/p&gt;</description><content:encoded><![CDATA[<p>These days, my primary computer is a 15&quot; MacBook Pro. It&rsquo;s an amazing machine, but sometimes those 15&quot; can be a little unwieldy (yes, that&rsquo;s what she said).</p>
<p>Apple used to make a small, very portable laptop: the 12&quot; PowerBook, which was unfortunately retired during Apple&rsquo;s switch to the Intel platform. However, the transition did introduce the potential ability to run Mac OS X natively on non-Apple hardware. Whilst Apple don&rsquo;t (currently) make their own netbook<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>, a big community has sprung up around running OS X on non-Apple netbooks. <em>I should note from the outset that installing OS X on non-Apple hardware potentially violates the OS X EULA. If you&rsquo;re going to do this, in the very least ensure you own a legal copy of Mac OS X Leopard.</em></p>
<p>The current <em>netbook au jour</em> is the Dell Mini 9. BoingBoing&rsquo;s <a href="http://gadgets.boingboing.net/2008/12/17/osx-netbook-compatib.html">compatibility list</a> shows it as the only device that currently supports every piece of hardware<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> under OS X. And it does.</p>
<figure>
  <img src="/images/2015/12/2009-04-16-dell-mini-9.jpg" alt="OS X on a Dell Mini 9" loading="lazy">
</figure>
<p>I bit the bullet and bought a Mini 9, which finally turned up a couple of weeks ago. It has a 1.6Ghz Intel Atom processor, 1GB RAM (user upgradable to 2GB), and a 16GB SSD drive. I ordered it with Ubuntu pre-installed - and let me tell you, this thing is <em>fast</em>. Ubuntu boot time was a respectable 30 seconds, and the user interface felt extremely responsive. In fact, I&rsquo;m not sure I&rsquo;ve ever seen OpenOffice load so quickly. I&rsquo;ll go as far as to say that out-of-the-box, this was the best experience I&rsquo;ve ever had with Ubuntu - things <em>just worked</em>, which has rarely been the case for me with desktop Linux before. I put an SD card in the Mini 9&rsquo;s SD reader, and it instantly mounted on the desktop; I plugged an external monitor into the Mini 9&rsquo;s VGA port, opened the display settings, and was able to rearrange the monitors / change resolutions / etc; Flash in the browser worked without needing to install or fiddle with anything; heck, even wifi <em>just worked</em>. If you&rsquo;re not comfortable with sticking OS X on there, the Dell Mini 9 running Ubuntu is a lovely machine.</p>
<p>So, back to OS X. Aside from a few minor niggles due to my hardware setup<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>, installation was a breeze. This is one of the things that makes the Mini 9 such an attractive proposition as a Mac netbook - all of the wrinkles have been ironed out of the process by the clever group of people over at <a href="http://mydellmini.com">http://mydellmini.com</a>. I won&rsquo;t re-iterate the process in full here (I followed <a href="http://mydellmini.com/forum/how-to-install-mac-os-x-dellefi-method-t3925.html">this guide</a>), but in short it&rsquo;s a case of:</p>
<ol>
<li>Create a DellMiniBoot boot disc (either CD or USB) and boot from it.</li>
<li>Swap the disc with the Leopard installation DVD and tell DellMiniBoot to boot it.</li>
<li>Install Leopard.</li>
<li>When prompted to reboot, do so using the DellMiniBoot disc, and tell it to boot from your hard drive.</li>
<li>Once you&rsquo;re in OS X, run the DellEFI application to install the fixes that&rsquo;ll make sure everything works ok.</li>
<li>If you want two-finger trackpad scrolling, you&rsquo;ll want to install these <a href="http://mydellmini.com/forum/touchpad-drivers-t5577.html">trackpad drivers</a>.</li>
</ol>
<p>It&rsquo;s fairly straightforward, as long as you follow the guide. I had the odd problem crop up now and again, but a quick Googling saw me through - in particular, when rebooting after the installation, I had to boot into safe mode (using the -f flag) so I could get all the way through the post-install setup process. Other than that, it was pretty smooth.</p>
<p>The Mini 9 runs OS X beautifully. I&rsquo;ve been using the Mini 9 a lot over the last 2 weeks and haven&rsquo;t run into anything that hasn&rsquo;t worked.</p>
<p><strong>Things I like</strong></p>
<ul>
<li><strong>Tiny and light.</strong> This is überportable. I&rsquo;ve been chucking it into my work bag and taking it to the office with me every day. By comparison, I&rsquo;ve taken my MBP in twice in the last 6 months because it&rsquo;s just a hassle.</li>
<li><strong>Silent.</strong></li>
<li><strong>Fast. Very fast.</strong><br>
Fullscreen HD flash video gets a bit stuttery, but hey, this is a netbook. Streaming 480p H.264 movie trailers works brilliantly, however.</li>
<li><strong>Convenient.</strong> For small tasks around the house, taking to work, to a friend&rsquo;s house, going home for the weekend, surfing in bed, and assorted other scenarios, this is a brilliant solution.</li>
<li><strong>A built-in SD card reader.</strong><br>
Works flawlessly, and is extremely useful.</li>
<li><strong>Cute.</strong><br>
C&rsquo;mon, look at it! It&rsquo;s tiny!</li>
</ul>
<p><strong>Issues</strong></p>
<ul>
<li>Somewhat <strong>cramped keyboard</strong> on the right side.<br>
For some reason, our <a href="http://www.mydellmini.com/images/t_uk-keyboard.jpg">UK keyboard</a> seems to have had an extra key squeezed into each row, meaning that the keyboard is a little more cramped than the <a href="http://images.anandtech.com/reviews/mobile/Dell/Mini/keyboard3.jpg">US one</a>. It took a little adjusting to - the tiny right-hand shift key, which is the one I usually use, was quite easy to miss at first.</li>
<li><strong>Screen size</strong> is a limitation in some situations, although for what I&rsquo;m using it for it&rsquo;s generally fine.</li>
<li>I&rsquo;ve had one occasion where the mouse didn&rsquo;t work properly after waking, and one or two other assorted issues where it hasn&rsquo;t-quite-woken-up-properly.</li>
<li>Very very occasionally, it doesn&rsquo;t boot (the spinner doesn&rsquo;t appear on the boot screen). If that&rsquo;s the case, just turn it off and on again.</li>
</ul>
<p>One final point it may be worth making is that this is <em>not</em> a replacement for a full-size Mac. This is a netbook, and a compliment to an existing machine - don&rsquo;t go thinking you&rsquo;ll get the same experience you will from a full-sized MacBook, because you won&rsquo;t. Rumours are that Apple may be creating their own netbook-like device to be introduced later this year. Time will tell whether this is true or not - I&rsquo;d be very much interested to see Apple&rsquo;s take on the whole netbook thing.</p>
<p>I was going to finish off by filming a walkthrough showing how well things run on the Mini 9, but <a href="http://ihnatko.com/">Mr Andy Ihnatko</a> does a sterling job of it himself:</p>

			<div
					style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
				<iframe
					src="https://player.vimeo.com/video/3630135?dnt=0"
						style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allow="fullscreen">
				</iframe>
			</div>

<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>There&rsquo;s the MacBook Air, of course, but that&rsquo;s <em>thin</em> - whereas the most important factor for portability in my opinion is width and depth. A Macbook Air, whilst lighter, takes up essentially the same amount of space as a normal MacBook - you&rsquo;d still need a &gt; 13&quot; bag.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Note that their caveat beneath the compatibility table is incorrect - you <strong>don&rsquo;t</strong> need a replacement SSD for sleep to work. Just make sure you get a 16GB or bigger SSD in it. 8GB just doesn&rsquo;t cut the mustard.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>You need an external DVD drive to load the Leopard installation DVD, and I was using an internal IDE DVD drive with an IDE -&gt; USB convertor. The Mini 9 didn&rsquo;t want to boot from this, though - so I had to copy the Leopard DVD image to an external hard drive, and boot from <em>that</em>.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Building Ruby 1.9 on Mac OS X 10.5 (Leopard)</title><link>https://frosty.blog/2008/06/02/building-ruby-1-9-on-mac-os-x-10-5-leopard/</link><pubDate>Mon, 02 Jun 2008 23:00:00 +0000</pubDate><guid>https://frosty.blog/2008/06/02/building-ruby-1-9-on-mac-os-x-10-5-leopard/</guid><description>&lt;p&gt;I&amp;rsquo;ve recently been learning Ruby, and I wanted to install Ruby 1.9 on OS X to try out some of the new features (the current &amp;lsquo;stable&amp;rsquo; version of Ruby is 1.8.6). Unfortunately, I couldn&amp;rsquo;t find one cohesive guide to doing this, and instead had to mash together various instructions from across the interwebs. I&amp;rsquo;ve pieced everything together here in the hope that it&amp;rsquo;ll help out someone else. :-)&lt;/p&gt;
&lt;h3 id="step-1"&gt;Step 1&lt;/h3&gt;
&lt;p&gt;Firstly, readline needs updating, so grab readline 5.2 from &lt;a href="http://ftp.gnu.org/gnu/readline/"&gt;http://ftp.gnu.org/gnu/readline/&lt;/a&gt;. After extracting it (&lt;code&gt;tar xvzf readline-5.2.tar.gz&lt;/code&gt;) you&amp;rsquo;ll need to make one or two changes so that it will build correctly on Leopard. Simply apply this &lt;a href="http://www.ruby-forum.com/topic/136498#607592"&gt;readline patch&lt;/a&gt; to support/shobj-conf in the readline directory you&amp;rsquo;ve created. The patch is necessary because readline currently doesn&amp;rsquo;t check for Leopard, only for earlier versions of OS X. In fact, the patch is simple enough that you could change the two lines by hand if necessary.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I&rsquo;ve recently been learning Ruby, and I wanted to install Ruby 1.9 on OS X to try out some of the new features (the current &lsquo;stable&rsquo; version of Ruby is 1.8.6). Unfortunately, I couldn&rsquo;t find one cohesive guide to doing this, and instead had to mash together various instructions from across the interwebs. I&rsquo;ve pieced everything together here in the hope that it&rsquo;ll help out someone else. :-)</p>
<h3 id="step-1">Step 1</h3>
<p>Firstly, readline needs updating, so grab readline 5.2 from <a href="http://ftp.gnu.org/gnu/readline/">http://ftp.gnu.org/gnu/readline/</a>. After extracting it (<code>tar xvzf readline-5.2.tar.gz</code>) you&rsquo;ll need to make one or two changes so that it will build correctly on Leopard. Simply apply this <a href="http://www.ruby-forum.com/topic/136498#607592">readline patch</a> to support/shobj-conf in the readline directory you&rsquo;ve created. The patch is necessary because readline currently doesn&rsquo;t check for Leopard, only for earlier versions of OS X. In fact, the patch is simple enough that you could change the two lines by hand if necessary.</p>
<p>Then, configure readline, specifying a location so you don&rsquo;t interfere with what&rsquo;s already on your system, then build and install it:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">./configure --prefix<span class="o">=</span>/usr/local/
</span></span><span class="line"><span class="cl">make
</span></span><span class="line"><span class="cl">sudo make install</span></span></code></pre></div><h3 id="step-2">Step 2</h3>
<p>Next, you&rsquo;ll want to download Ruby 1.9: <a href="http://ftp.ruby-lang.org/pub/ruby/1.9/">http://ftp.ruby-lang.org/pub/ruby/1.9/</a>. Again, we want to specify our own install location, and we also need to tell it where our newly installed readline is. We&rsquo;re also specifying a program-suffix here (-trunk) so we can differentiate Ruby 1.9 from our pre-installed Ruby (so we&rsquo;ll access 1.9 with ruby-trunk, irb-trunk, etc, and 1.8.6 with ruby, irb, etc).</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">tar xvzf ruby-1.9.0-1.tar.gz
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> ruby-1.9.0-1
</span></span><span class="line"><span class="cl">./configure --prefix<span class="o">=</span>/usr/local/ruby1.9 --program-suffix<span class="o">=</span>-trunk --with-readline-dir<span class="o">=</span>/usr/local --
</span></span><span class="line"><span class="cl">make
</span></span><span class="line"><span class="cl">sudo make install</span></span></code></pre></div><h3 id="step-3">Step 3:</h3>
<p>Finally, because we&rsquo;ve installed Ruby in a specific location, you&rsquo;ll most likely need to add its location to your path. I have a bin/ directory in my home directory, so I simply have the following line in my .bash_profile:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Add Ruby 1.9</span>
</span></span><span class="line"><span class="cl"><span class="nv">PATH</span><span class="o">=</span><span class="nv">$PATH</span>:/usr/local/ruby1.9/bin</span></span></code></pre></div><p>And you&rsquo;re done. You can test by running <code>ruby-trunk --version</code>. Any problems, sound off in the comments. I may have missed something, as it&rsquo;s rather late - and I could&rsquo;ve almost certainly written this better. Hopefully I&rsquo;ll revisit it in the future. If you get stuck, the articles I used to put this together might be of use:</p>
<ul>
<li><a href="http://lindsaar.net/2008/1/18/installing-ruby-1-9-on-mac-osx">Installing Ruby 1.9 on Mac OSX</a></li>
<li><a href="http://www.ruby-forum.com/topic/136498">Trouble with readline and building Ruby 1.9</a></li>
<li>Also, thank you to Han Kessels for helping me via e-mail.</li>
<li>And I&rsquo;m sure there were some other sites, that I can&rsquo;t recall at the moment.</li>
</ul>
]]></content:encoded></item><item><title>Swapping Variables</title><link>https://frosty.blog/2008/06/01/swapping-variables/</link><pubDate>Sun, 01 Jun 2008 23:00:00 +0000</pubDate><guid>https://frosty.blog/2008/06/01/swapping-variables/</guid><description>&lt;p&gt;I thought I&amp;rsquo;d share a little trick I learnt the other day regarding swapping variables.&lt;/p&gt;
&lt;p&gt;A common coding/computer science task is to swap the values of two variables. In some languages, such as Java, one may start by creating a new temporary variable. For example (assuming we already have two ints, x and y):&lt;/p&gt;





&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This creation of a new variable uses more memory, and whilst in most circumstances would be fine, it could become an issue if we&amp;rsquo;re swapping many times, for example in a sorting algorithm.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I thought I&rsquo;d share a little trick I learnt the other day regarding swapping variables.</p>
<p>A common coding/computer science task is to swap the values of two variables. In some languages, such as Java, one may start by creating a new temporary variable. For example (assuming we already have two ints, x and y):</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-java" data-lang="java"><span class="line"><span class="cl"><span class="kt">int</span><span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">y</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">temp</span><span class="p">;</span></span></span></code></pre></div><p>This creation of a new variable uses more memory, and whilst in most circumstances would be fine, it could become an issue if we&rsquo;re swapping many times, for example in a sorting algorithm.</p>
<p>Some languages allow us to do a nice swap without extra variables, using multiple assignment and tuple packing and unpacking:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="o">=</span> <span class="n">y</span><span class="p">,</span> <span class="n">x</span></span></span></code></pre></div><p>This is pretty neat, although is apparently slower than using a temporary variable.</p>
<p>Anyway, yesterday I discovered a third method: XOR swapping. Again, this doesn&rsquo;t require the use of an extra variable, and I thought it was pretty clever (here ^ represents XOR, as in Python):</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">x</span> <span class="o">=</span> <span class="n">x</span> <span class="o">^</span> <span class="n">y</span>
</span></span><span class="line"><span class="cl"><span class="n">y</span> <span class="o">=</span> <span class="n">x</span> <span class="o">^</span> <span class="n">y</span>
</span></span><span class="line"><span class="cl"><span class="n">x</span> <span class="o">=</span> <span class="n">x</span> <span class="o">^</span> <span class="n">y</span></span></span></code></pre></div><p>Neat, huh? It&rsquo;s fairly simple to see how it works if you simply walk through the steps. Let&rsquo;s swap x = 7, y = 9:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">x</span> <span class="o">=</span> <span class="mi">0111</span>
</span></span><span class="line"><span class="cl"><span class="n">y</span> <span class="o">=</span> <span class="mi">1001</span>
</span></span><span class="line"><span class="cl"><span class="n">x</span> <span class="o">=</span> <span class="n">x</span> <span class="o">^</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">1110</span>
</span></span><span class="line"><span class="cl"><span class="n">y</span> <span class="o">=</span> <span class="n">x</span> <span class="o">^</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">0111</span>
</span></span><span class="line"><span class="cl"><span class="n">x</span> <span class="o">=</span> <span class="n">x</span> <span class="o">^</span> <span class="n">y</span> <span class="o">=</span> <span class="mi">1001</span></span></span></code></pre></div><p>Apparently this method is quite commonly used in embedded assembly code, however you won&rsquo;t find it appearing much in code on a desktop computer. It usually is slower to compute than using temporary variables, as most processors attempt to execute commands in parallel - and of course, each of these instructions depends upon the previous result, so they must be executed sequentially. Still, it&rsquo;s a nice thing to know.</p>
<p>The short version: it seems that if you&rsquo;re trying to save memory then XOR swap or use multiple assignment, otherwise if efficiency is an issue, use a temporary variable.</p>
]]></content:encoded></item><item><title>FizzBuzz Follow-up</title><link>https://frosty.blog/2008/05/29/fizzbuzz-follow-up/</link><pubDate>Thu, 29 May 2008 23:00:00 +0000</pubDate><guid>https://frosty.blog/2008/05/29/fizzbuzz-follow-up/</guid><description>&lt;p&gt;I thought I&amp;rsquo;d post a follow-up to yesterday&amp;rsquo;s &lt;a href="http://blog.jameswfrost.co.uk/2008/05/29/fizzbuzz-and-other-problems/"&gt;FizzBuzz&lt;/a&gt; post with some sample solutions, as a bunch of you seemed to find it fun to solve. Feel free to add your own solutions in the comments of this post!&lt;/p&gt;
&lt;p&gt;My own first solution was Python-based, and a fairly simple one:&lt;/p&gt;





&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;FizzBuzz&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Fizz&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Buzz&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Obviously it&amp;rsquo;s not in a function or anything, but I just wanted to do it as fast as possible. Shortly afterwards, I realised that line 2 could be simplified by changing it to:&lt;/p&gt;</description><content:encoded><![CDATA[<p>I thought I&rsquo;d post a follow-up to yesterday&rsquo;s <a href="http://blog.jameswfrost.co.uk/2008/05/29/fizzbuzz-and-other-problems/">FizzBuzz</a> post with some sample solutions, as a bunch of you seemed to find it fun to solve. Feel free to add your own solutions in the comments of this post!</p>
<p>My own first solution was Python-based, and a fairly simple one:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">101</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">3</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">5</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="nb">print</span> <span class="s2">&#34;FizzBuzz&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="k">elif</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">3</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="nb">print</span> <span class="s2">&#34;Fizz&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="k">elif</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">5</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="nb">print</span> <span class="s2">&#34;Buzz&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="k">else</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="nb">print</span> <span class="n">i</span></span></span></code></pre></div><p>Obviously it&rsquo;s not in a function or anything, but I just wanted to do it as fast as possible. Shortly afterwards, I realised that line 2 could be simplified by changing it to:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">if</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">15</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span></span></span></code></pre></div><p>Because of course, if a number is a multiple of 3 and 5, then it must be a multiple of 15.</p>
<p>Here are a couple of nice alternatives (ideas courtesy of <a href="http://minus-zero.org/">Dave</a>, although re-written by me because we didn&rsquo;t save them). First, writing FizzBuzz as a iterator:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">fizzbuzz_generator</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">n</span><span class="o">+</span><span class="mi">1</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">        <span class="k">if</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">15</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">            <span class="k">yield</span> <span class="s2">&#34;FizzBuzz&#34;</span>
</span></span><span class="line"><span class="cl">        <span class="k">elif</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">3</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">            <span class="k">yield</span> <span class="s2">&#34;Fizz&#34;</span>
</span></span><span class="line"><span class="cl">        <span class="k">elif</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">5</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">            <span class="k">yield</span> <span class="s2">&#34;Buzz&#34;</span>
</span></span><span class="line"><span class="cl">        <span class="k">else</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">            <span class="k">yield</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">for</span> <span class="n">result</span> <span class="ow">in</span> <span class="n">fizzbuzz_generator</span><span class="p">(</span><span class="mi">100</span><span class="p">):</span> <span class="nb">print</span> <span class="n">result</span></span></span></code></pre></div><p>Then, a simple function to calculate the correct fizz/buzz, combined with a list comprehension to create the result (man, I love list comprehensions):</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">fizzbuzz</span><span class="p">(</span><span class="n">i</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="k">if</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">15</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="s2">&#34;FizzBuzz&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="k">elif</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">3</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="s2">&#34;Fizz&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="k">elif</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">5</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="s2">&#34;Buzz&#34;</span>
</span></span><span class="line"><span class="cl">    <span class="k">else</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="nb">print</span> <span class="s2">&#34;</span><span class="se">\n</span><span class="s2">&#34;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">fizzbuzz</span><span class="p">(</span><span class="n">i</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">101</span><span class="p">)])</span></span></span></code></pre></div><p>Finally, here are two neat little Ruby one-liners, taken from the comments of the <a href="http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/">original FizzBuzz article</a>. I hope the authors (<a href="http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/#comment-2866">Brendan</a>, and <a href="http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/#comment-2858">Brian</a> respectively) don&rsquo;t mind me reproducing them here:</p>





<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-ruby" data-lang="ruby"><span class="line"><span class="cl"><span class="nb">puts</span> <span class="p">(</span><span class="mi">1</span><span class="o">..</span><span class="mi">100</span><span class="p">)</span><span class="o">.</span><span class="n">map</span><span class="p">{</span><span class="o">|</span><span class="n">i</span><span class="o">|</span><span class="p">(</span><span class="n">s</span><span class="o">=</span><span class="p">(</span><span class="n">i</span><span class="o">%</span><span class="mi">3</span><span class="o">==</span><span class="mi">0</span><span class="o">?</span><span class="s1">&#39;Fizz&#39;</span><span class="ss">:&#39;&#39;</span><span class="p">)</span><span class="o">+</span><span class="p">(</span><span class="n">i</span><span class="o">%</span><span class="mi">5</span><span class="o">==</span><span class="mi">0</span><span class="o">?</span><span class="s1">&#39;Buzz&#39;</span><span class="ss">:&#39;&#39;</span><span class="p">))</span><span class="o">==</span><span class="s1">&#39;&#39;</span><span class="sc">?i</span><span class="ss">:s</span><span class="p">}</span></span></span></code></pre></div>




<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-ruby" data-lang="ruby"><span class="line"><span class="cl"><span class="nb">puts</span> <span class="p">(</span><span class="mi">1</span><span class="o">..</span><span class="mi">100</span><span class="p">)</span><span class="o">.</span><span class="n">map</span><span class="p">{</span><span class="o">|</span><span class="n">i</span><span class="o">|</span><span class="n">i</span><span class="o">%</span><span class="mi">15</span><span class="o">==</span><span class="mi">0</span><span class="o">?</span><span class="s1">&#39;FizzBuzz&#39;</span><span class="ss">:i</span><span class="o">%</span><span class="mi">5</span><span class="o">==</span><span class="mi">0</span><span class="o">?</span><span class="s1">&#39;Buzz&#39;</span><span class="ss">:i</span><span class="o">%</span><span class="mi">3</span><span class="o">==</span><span class="mi">0</span><span class="o">?</span><span class="s1">&#39;Fizz&#39;</span><span class="ss">:i</span><span class="p">}</span></span></span></code></pre></div><p>How neat is that? Anyway, as I said, feel free to leave your own solutions below.</p>
]]></content:encoded></item><item><title>FizzBuzz and Other Problems</title><link>https://frosty.blog/2008/05/28/fizzbuzz-and-other-problems-2/</link><pubDate>Wed, 28 May 2008 23:00:00 +0000</pubDate><guid>https://frosty.blog/2008/05/28/fizzbuzz-and-other-problems-2/</guid><description>&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Check out the &lt;a href="http://www.jameswfrost.co.uk/2008/05/30/fizzbuzz-follow-up"&gt;follow-up&lt;/a&gt; post for some sample solutions!&lt;/p&gt;
&lt;p&gt;I love to code. Since a young age (I think I was about 7 when we first got our BBC B, and I would patiently tap BASIC code into the blinking prompt from childrens&amp;rsquo; books about programming), I&amp;rsquo;ve loved to write programs. I read somewhere recently (unfortunately, I forget where) that it&amp;rsquo;s not the act of coding itself we love, but rather it&amp;rsquo;s solving problems that we love. I think that&amp;rsquo;s one reason I like learning new programming languages, as it allows me to solve problems in different ways.&lt;/p&gt;</description><content:encoded><![CDATA[<p><strong>Update:</strong> Check out the <a href="http://www.jameswfrost.co.uk/2008/05/30/fizzbuzz-follow-up">follow-up</a> post for some sample solutions!</p>
<p>I love to code. Since a young age (I think I was about 7 when we first got our BBC B, and I would patiently tap BASIC code into the blinking prompt from childrens&rsquo; books about programming), I&rsquo;ve loved to write programs. I read somewhere recently (unfortunately, I forget where) that it&rsquo;s not the act of coding itself we love, but rather it&rsquo;s solving problems that we love. I think that&rsquo;s one reason I like learning new programming languages, as it allows me to solve problems in different ways.</p>
<p>A while back, I came upon the <a href="http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/">FizzBuzz</a> idea. In short, it&rsquo;s a simple exercise for employers to give to potential employees at interviews; a very simple exercise, yet one that someone will only be able to answer quickly if they &lsquo;get&rsquo; programming. A suggested FizzBuzz problem is the following:</p>
<blockquote>
<p>Write a program that prints the numbers from 1 to 100. But for multiples of three print &lsquo;Fizz&rsquo; instead of the number and for the multiples of five print &lsquo;Buzz&rsquo;. For numbers which are multiples of both three and five print &lsquo;FizzBuzz&rsquo;.</p>
</blockquote>
<p>I invite everyone reading this to have a go now - time yourself, and see how quickly you can do it. Unfortunately, I only timed myself by looking at the clock, but I was glad to have completed it in under a minute. Apparently this shows I can code:</p>
<blockquote>
<p>Most good programmers should be able to write out on paper a program which does this in a under a couple of minutes.</p>
<p>Want to know something scary? - the majority of comp-sci graduates can&rsquo;t. I&rsquo;ve also seen self-proclaimed senior programmers take more than 10-15 minutes to write a solution.</p>
</blockquote>
<p>That is a scary thought, but I expect it&rsquo;s almost certainly true.</p>
<p>So, this sort of simple problem excites me - I can work out a solution, and then try and improve that, perhaps. Myself and <a href="http://minus-zero.org/">Dave</a> spent a fair while earlier today trying to come up with more and more sophisticated solutions. And y&rsquo;know what? It was fun!</p>
<p>On a similar note, I thought I&rsquo;d mention a website that I found a while back (thanks to Matt Gwynne) that might be of interest to anybody else who enjoys these kind of problems. <a href="http://projecteuler.net/">Project Euler</a> is &ldquo;a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve&rdquo;. It contains a list of (at the time of writing) 195 mathematical problems, and the aim is to write code to solve them. You can then put in your answers, the website will tell you if you&rsquo;re correct, and check them off the list. Great fun, and it&rsquo;s neat to see some of the interesting solutions that people come up with (and the range of languages they use!). Hooray for being a geek! \o/</p>
]]></content:encoded></item></channel></rss>