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

<channel>
	<title>programming Archives - Richard Warrender</title>
	<atom:link href="https://richardwarrender.com/tag/programming-2/feed/" rel="self" type="application/rss+xml" />
	<link>https://richardwarrender.com/tag/programming-2/</link>
	<description>Creative Thinking, Clear Engineering</description>
	<lastBuildDate>Fri, 05 Jul 2024 17:27:47 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.9</generator>
<site xmlns="com-wordpress:feed-additions:1">219281189</site>	<item>
		<title>Seven Years later: What I Learned from Building an AI Chatbot &#8211; Part 1</title>
		<link>https://richardwarrender.com/2024/07/building-ai-chatbot-learnings-part-1/</link>
					<comments>https://richardwarrender.com/2024/07/building-ai-chatbot-learnings-part-1/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Thu, 04 Jul 2024 17:24:38 +0000</pubDate>
				<category><![CDATA[Artificial Intelligence]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[machine learning]]></category>
		<category><![CDATA[Natural Language Processing]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=21335</guid>

					<description><![CDATA[Seven&#160;years ago, I embarked on an ambitious attempt to build a rudimentary rule-based AI chatbot. Frustrated by the limitations of Apple’s Siri and motivated by exciting updates to Apple’s Natural Language Processing APIs, I dreamed of building something that could understand complex queries, construct mental models of objects, and seamlessly interact with users using just [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2024/07/building-ai-chatbot-learnings-part-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">21335</post-id>	</item>
		<item>
		<title>Encrypt data using AES and 256-bit keys</title>
		<link>https://richardwarrender.com/2016/04/encrypt-data-using-aes-and-256-bit-keys/</link>
					<comments>https://richardwarrender.com/2016/04/encrypt-data-using-aes-and-256-bit-keys/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Wed, 27 Apr 2016 19:06:29 +0000</pubDate>
				<category><![CDATA[Encryption]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[AES]]></category>
		<category><![CDATA[AES-256]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[CommonCrypto]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=936</guid>

					<description><![CDATA[AES stands for Advanced Encryption Standard and is an industry-standard algorithm for encrypting data symmetrically which even the US government has approved for SECRET documents. If you don&#8217;t know what symmetrical encryption is, it means that you use the same key or password to encrypt the data as you do to unencrypt it. So you [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2016/04/encrypt-data-using-aes-and-256-bit-keys/feed/</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">936</post-id>	</item>
		<item>
		<title>Quick way of cleaning HTML for iOS apps</title>
		<link>https://richardwarrender.com/2016/04/quick-way-of-cleaning-html-ios/</link>
					<comments>https://richardwarrender.com/2016/04/quick-way-of-cleaning-html-ios/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Tue, 05 Apr 2016 19:59:15 +0000</pubDate>
				<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=918</guid>

					<description><![CDATA[For some reason HTML is always dirty, it&#8217;s usually full of Analytics tags, JavaScript or contains nested HTML tags. This is usually fine for displaying in browsers but at some point an iOS app will need to display HTML content and usually when it does, you need it to display clean HTML or only a [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2016/04/quick-way-of-cleaning-html-ios/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">918</post-id>	</item>
		<item>
		<title>How to build a Ghostbuster Proton Pack</title>
		<link>https://richardwarrender.com/2016/02/how-to-build-a-ghostbuster-proton-pack/</link>
					<comments>https://richardwarrender.com/2016/02/how-to-build-a-ghostbuster-proton-pack/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Wed, 10 Feb 2016 18:51:06 +0000</pubDate>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[led]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=863</guid>

					<description><![CDATA[I built a Ghostbuster proton pack for a fancy dress party recently. It took about 3 or 4 evenings to build and involved Arduinos, lots of hot glue and over 92 LEDs! This is the build log.]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2016/02/how-to-build-a-ghostbuster-proton-pack/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">863</post-id>	</item>
		<item>
		<title>Beautifully-formatted Times and Numbers</title>
		<link>https://richardwarrender.com/2015/06/beautifully-formatted-times-and-numbers/</link>
					<comments>https://richardwarrender.com/2015/06/beautifully-formatted-times-and-numbers/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Tue, 16 Jun 2015 19:22:21 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[CoreText]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[uikit]]></category>
		<guid isPermaLink="false">https://richardwarrender.com/?p=838</guid>

					<description><![CDATA[Not all font instances are created equally! In iOS text is mostly displayed using proportional fonts, meaning each character width is trimmed and varies depending on each character. This makes the text easier to read and feel more natural and you&#8217;ll notice this on characters such as &#8216;i&#8217; which will often be the thinnest character [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2015/06/beautifully-formatted-times-and-numbers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">838</post-id>	</item>
		<item>
		<title>5 Time-saving Objective-C tips every developer should know</title>
		<link>https://richardwarrender.com/2013/03/5-time-saving-objective-c-tips/</link>
					<comments>https://richardwarrender.com/2013/03/5-time-saving-objective-c-tips/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Tue, 19 Mar 2013 18:18:03 +0000</pubDate>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[consts]]></category>
		<category><![CDATA[enums]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[tips]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=623</guid>

					<description><![CDATA[Here&#8217;s a quick fire list of 5 time-saving Objective-C tips that every developer should know. Perfect for making time for that extra coffee! 1. Enum shorthand Enums at their simplest are labelled sets of integers. Where an inexperienced programmer might use a number to represent the download state of an image lets say, e.g. 0 [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2013/03/5-time-saving-objective-c-tips/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">623</post-id>	</item>
		<item>
		<title>Apple WWDC 2012 Session Videos Live</title>
		<link>https://richardwarrender.com/2012/06/apple-wwdc-2012/</link>
					<comments>https://richardwarrender.com/2012/06/apple-wwdc-2012/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Wed, 20 Jun 2012 12:11:49 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iOS 6]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[wwdc]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=518</guid>

					<description><![CDATA[This is a heads up for anyone who does iPad or iPhone development; Apple have made available their awesome WWDC 2012 sessions videos to developers! iOS 6 features such as Passkit, maps and Facebook looks interesting as does the new Game Center functionality such as &#8220;Challenges&#8221; along with a whole host of new APIs and [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2012/06/apple-wwdc-2012/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">518</post-id>	</item>
		<item>
		<title>Core Animation stops animation on app relaunch</title>
		<link>https://richardwarrender.com/2011/09/core-animation-stops-ani-on-app-relaunch/</link>
					<comments>https://richardwarrender.com/2011/09/core-animation-stops-ani-on-app-relaunch/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Mon, 19 Sep 2011 12:31:44 +0000</pubDate>
				<category><![CDATA[Core Animation]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[UIKit]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[Core Animaton]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[multitasking]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=385</guid>

					<description><![CDATA[On one of my projects I discovered a bug in a never-ending animation I had set up. Whenever the app was suspended (such as when you multitask and open another app), on relaunching the app the animation was frozen. After some investigating, I discovered that with Core Animation you need to set a flag on [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2011/09/core-animation-stops-ani-on-app-relaunch/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">385</post-id>	</item>
		<item>
		<title>WWDC Update: 5 key points for iPhone apps</title>
		<link>https://richardwarrender.com/2011/07/wwdc-update-5-key-points-for-iphone-apps/</link>
					<comments>https://richardwarrender.com/2011/07/wwdc-update-5-key-points-for-iphone-apps/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Tue, 05 Jul 2011 17:22:21 +0000</pubDate>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[gamecenter]]></category>
		<category><![CDATA[icloud]]></category>
		<category><![CDATA[ios5]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[lion]]></category>
		<category><![CDATA[notifications]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[twitter]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=364</guid>

					<description><![CDATA[It’s now been just over 3 weeks since the torrent of information unleashed at Apple’s World Wide Developer Conference refreshingly drenched the brains of designers, developers and engineers. I’ve resisted blogging about the public announcements to fully let the impact soak in and gage everyone’s reactions but now feels like a good time to talk [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2011/07/wwdc-update-5-key-points-for-iphone-apps/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">364</post-id>	</item>
		<item>
		<title>Core Data Objects in Wrong Sections</title>
		<link>https://richardwarrender.com/2010/10/core-data-objects-in-wrong-sections/</link>
					<comments>https://richardwarrender.com/2010/10/core-data-objects-in-wrong-sections/#comments</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Mon, 18 Oct 2010 17:55:49 +0000</pubDate>
				<category><![CDATA[Apps]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Swift]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[iOS 4]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[key-paths]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sorting]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=213</guid>

					<description><![CDATA[NSFetchedResultsController is a really handy class. Use one of the default Core Data templates in Xcode and you&#8217;ll very quickly have a nice list of managed objects in a table view.&#160;With a few more lines of code you can get the NSFetchedResultsController to group your objects by sections. You do this by specifying a key-path [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2010/10/core-data-objects-in-wrong-sections/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">213</post-id>	</item>
		<item>
		<title>Re-ordering Core Data Objects on iOS4</title>
		<link>https://richardwarrender.com/2010/08/re-ordering-core-data-objects-on-ios4/</link>
					<comments>https://richardwarrender.com/2010/08/re-ordering-core-data-objects-on-ios4/#respond</comments>
		
		<dc:creator><![CDATA[Richard Warrender]]></dc:creator>
		<pubDate>Tue, 17 Aug 2010 06:59:00 +0000</pubDate>
				<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Cocoa Touch]]></category>
		<category><![CDATA[iOS 4]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[UI]]></category>
		<guid isPermaLink="false">http://richardwarrender.com/?p=139</guid>

					<description><![CDATA[The Core Data framework on the iPhone is incredibly powerful. It&#8217;s also incredibly efficient and part of that is because a collection of objects only have the order that you implicitly give them. For example you typically might give an Event object a timestamp and when you pull out all the events you might sort [&#8230;]]]></description>
		
					<wfw:commentRss>https://richardwarrender.com/2010/08/re-ordering-core-data-objects-on-ios4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">139</post-id>	</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Minified using Disk
Database Caching 39/66 queries in 0.024 seconds using Memcached

Served from: richardwarrender.com @ 2026-05-02 04:28:41 by W3 Total Cache
-->