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

<channel>
	<title>cyandesign.co.uk</title>
	<atom:link href="http://cyandesign.co.uk/media/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://cyandesign.co.uk/media</link>
	<description></description>
	<lastBuildDate>Fri, 08 Jan 2010 10:22:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>WCA and VCA Broken due to apple API returning wrong year! **Now fixed**</title>
		<link>http://cyandesign.co.uk/media/?p=343</link>
		<comments>http://cyandesign.co.uk/media/?p=343#comments</comments>
		<pubDate>Wed, 30 Dec 2009 09:47:15 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[1 - News]]></category>
		<category><![CDATA[2 - Developer Rants]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cyandesign.co.uk/media/?p=343</guid>
		<description><![CDATA[Since Dec 26th 2009 &#8211; the following code gets the date wrong &#8211; it returns the year as 2008! This means the alarm is in the past, and therefore goes off immediately&#8230;

1
 NSDateComponents *todayComponents = &#91;&#91;NSCalendar currentCalendar&#93; components:0xFFFF fromDate:&#91;NSDate date&#93;&#93;;

we have a workaround working, and will try to get apple to rush through the fix [...]]]></description>
			<content:encoded><![CDATA[<p>Since Dec 26th 2009 &#8211; the following code gets the date wrong &#8211; it returns the year as 2008! This means the alarm is in the past, and therefore goes off immediately&#8230;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="objc" style="font-family:monospace;"> <span style="color: #400080;">NSDateComponents</span> <span style="color: #002200;">*</span>todayComponents <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSCalendar</span> currentCalendar<span style="color: #002200;">&#93;</span> components<span style="color: #002200;">:</span>0xFFFF fromDate<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSDate</span> date<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span>;</pre></td></tr></table></div>

<p>we have a workaround working, and will try to get apple to rush through the fix ASAP. Sorry for the inconvenience&#8230; </p>
]]></content:encoded>
			<wfw:commentRss>http://cyandesign.co.uk/media/?feed=rss2&amp;p=343</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UIImage crop, rotate and re-size with thread safety?</title>
		<link>http://cyandesign.co.uk/media/?p=315</link>
		<comments>http://cyandesign.co.uk/media/?p=315#comments</comments>
		<pubDate>Wed, 11 Nov 2009 11:36:15 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[2 - Developer Rants]]></category>

		<guid isPermaLink="false">http://cyandesign.co.uk/media/?p=315</guid>
		<description><![CDATA[There is no easy provided way to crop, re-size or rotate an image with the UIImage class.  UIKit itself is not thread safe either, so the functions that are provided by UIImage that could make cropping and re-size easy (and conform to the EXIF orientations that the camera generates) are not safe if using [...]]]></description>
			<content:encoded><![CDATA[<p>There is no easy provided way to crop, re-size or rotate an image with the UIImage class.  UIKit itself is not thread safe either, so the functions that are provided by UIImage that could make cropping and re-size easy (and conform to the EXIF orientations that the camera generates) are not safe if using in a background thread &#8211; as would be usual for an image taken with the camera.  I have seen a number of different implementations on the internet for crop, re-size and rotate but I have not found a simple complete solution that follows EXIF, is thread safe (most use UIGraphicsBeginImageContext) and well commented.</p>
<p>So in the interest of keeping people concentrating on innovation, rather than battling with getting to grips with Core Graphics, UIImage  and the relationship between the two &#8211; I publish the library I have written:</p>
<p>If you use this code excerpt in any way, please link to our site or share with one of the social network sites bellow. Enjoy!</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
</pre></td><td class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #11740a; font-style: italic;">//</span>
<span style="color: #11740a; font-style: italic;">//  UIImageCropScaleRotate.m</span>
<span style="color: #11740a; font-style: italic;">//  UIImageExtensions</span>
<span style="color: #11740a; font-style: italic;">//</span>
<span style="color: #11740a; font-style: italic;">//  Created by nick on 09/11/2009.</span>
<span style="color: #11740a; font-style: italic;">//  CyanMedia - Psynaptics ltd</span>
<span style="color: #11740a; font-style: italic;">//  www.cyandesign.co.uk/media </span>
&nbsp;
<span style="color: #6e371a;">#import &quot;UIImageCropScaleRotate.h&quot;</span>
&nbsp;
<span style="color: #6e371a;">#define DEBUG YES</span>
&nbsp;
<span style="color: #a61390;">@implementation</span> UIImage <span style="color: #002200;">&#40;</span>UIImageCropScaleRotate<span style="color: #002200;">&#41;</span>
&nbsp;
<span style="color: #11740a; font-style: italic;">// returns autorelease UIImage cropped (and always UIImageOrientationUp) to the given CGRect</span>
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>UIImage<span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> cropWithRect<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>CGRect<span style="color: #002200;">&#41;</span> cropRect <span style="color: #002200;">&#123;</span>
&nbsp;
	UIImageOrientation orient <span style="color: #002200;">=</span> self.imageOrientation;
	UIImageRotation rotation <span style="color: #002200;">=</span> UIImageRotateNone;
	<span style="color: #a61390;">switch</span><span style="color: #002200;">&#40;</span>orient<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationUp<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 1</span>
			<span style="color: #11740a; font-style: italic;">// do nothing - right way up</span>
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationDown<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 3</span>
		<span style="color: #002200;">&#123;</span>
			<span style="color: #11740a; font-style: italic;">// we are gonna rotate 180 degs - as output will be UIImageOrientationUp</span>
			<span style="color: #11740a; font-style: italic;">// so set origin to be oposite corner</span>
			cropRect.origin.x <span style="color: #002200;">=</span> self.size.width <span style="color: #002200;">-</span> cropRect.origin.x <span style="color: #002200;">-</span> cropRect.size.width;
			cropRect.origin.y <span style="color: #002200;">=</span> self.size.height <span style="color: #002200;">-</span> cropRect.origin.y <span style="color: #002200;">-</span> cropRect.size.height; 
&nbsp;
			rotation <span style="color: #002200;">=</span> UIImageRotate180;
			<span style="color: #a61390;">break</span>;
		<span style="color: #002200;">&#125;</span>
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationLeft<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 6</span>
		<span style="color: #002200;">&#123;</span>
			<span style="color: #11740a; font-style: italic;">// rotating though 90 degs right</span>
			<span style="color: #11740a; font-style: italic;">// need origin bottom left corner of unrotated image</span>
			CGFloat tmp;
			tmp <span style="color: #002200;">=</span> self.size.height <span style="color: #002200;">-</span> cropRect.origin.y <span style="color: #002200;">-</span> cropRect.size.height; 
			cropRect.origin.y <span style="color: #002200;">=</span> cropRect.origin.x;
			cropRect.origin.x <span style="color: #002200;">=</span> tmp;
&nbsp;
			<span style="color: #11740a; font-style: italic;">// swap width &amp; height</span>
			tmp <span style="color: #002200;">=</span> cropRect.size.width;
			cropRect.size.width <span style="color: #002200;">=</span> cropRect.size.height;
			cropRect.size.height <span style="color: #002200;">=</span> tmp;
&nbsp;
			rotation <span style="color: #002200;">=</span> UIImageRotate90ClockWise;
			<span style="color: #a61390;">break</span>;
		<span style="color: #002200;">&#125;</span>
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationRight<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 8</span>
		<span style="color: #002200;">&#123;</span>
			<span style="color: #11740a; font-style: italic;">// rotating though 90 degs left</span>
			<span style="color: #11740a; font-style: italic;">// need origin as top right corner of unrotated rect</span>
			CGFloat tmp;
			tmp <span style="color: #002200;">=</span> cropRect.origin.y;
			cropRect.origin.y <span style="color: #002200;">=</span> self.size.width <span style="color: #002200;">-</span> cropRect.origin.x <span style="color: #002200;">-</span> cropRect.size.width;
			cropRect.origin.x <span style="color: #002200;">=</span> tmp;
&nbsp;
			<span style="color: #11740a; font-style: italic;">// swap width &amp; height</span>
			tmp <span style="color: #002200;">=</span> cropRect.size.width;
			cropRect.size.width <span style="color: #002200;">=</span> cropRect.size.height;
			cropRect.size.height <span style="color: #002200;">=</span> tmp;
&nbsp;
			rotation <span style="color: #002200;">=</span> UIImageRotate90AntiClockWise;
			<span style="color: #a61390;">break</span>;
		<span style="color: #002200;">&#125;</span>
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationUpMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 2</span>
		<span style="color: #a61390;">case</span> UIImageOrientationDownMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 4			</span>
		<span style="color: #a61390;">case</span> UIImageOrientationLeftMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 5</span>
		<span style="color: #a61390;">case</span> UIImageOrientationRightMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 7	</span>
			<span style="color: #11740a; font-style: italic;">// not supported by camera or </span>
			<span style="color: #11740a; font-style: italic;">// cant be bothered to implement!</span>
			<span style="color: #11740a; font-style: italic;">// if you are getting images external to iTunes transfer or the camera</span>
			<span style="color: #11740a; font-style: italic;">// these may well need to be completed - assert if we are in DEBUG mode</span>
			<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>DEBUG<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
				<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSException</span> exceptionWithName<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;UIImage cropWithRect&quot;</span> reason<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;mirror orientation found, do you need to implement?&quot;</span> userInfo<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <span style="color: #a61390;">raise</span><span style="color: #002200;">&#93;</span>;
			<span style="color: #002200;">&#125;</span>
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">default</span><span style="color: #002200;">:</span>
			<span style="color: #11740a; font-style: italic;">// should never get here - image data probably corrupt.</span>
			<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSException</span> exceptionWithName<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;UIImage cropWithRect&quot;</span> reason<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;image data corrupt?&quot;</span> userInfo<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <span style="color: #a61390;">raise</span><span style="color: #002200;">&#93;</span>;
&nbsp;
	<span style="color: #002200;">&#125;</span>
&nbsp;
	<span style="color: #11740a; font-style: italic;">// create the cropped image </span>
	CGImageRef imgRef <span style="color: #002200;">=</span> CGImageCreateWithImageInRect<span style="color: #002200;">&#40;</span>self.CGImage, cropRect<span style="color: #002200;">&#41;</span>;
&nbsp;
	UIImage<span style="color: #002200;">*</span> returnImg <span style="color: #002200;">=</span> <span style="color: #a61390;">nil</span>;
	<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>rotation <span style="color: #002200;">!=</span> UIImageRotateNone<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
		<span style="color: #11740a; font-style: italic;">// rotate to the correct orientation (as cropped image orientation will always be UIImageOrientationUp)</span>
		<span style="color: #11740a; font-style: italic;">// WARNING: this uses 2 copies of cropped image...could be improved</span>
		returnImg <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span>UIImage imageWithCGImage<span style="color: #002200;">:</span>imgRef<span style="color: #002200;">&#93;</span> rotate<span style="color: #002200;">:</span>rotation<span style="color: #002200;">&#93;</span>;
	<span style="color: #002200;">&#125;</span>
	<span style="color: #a61390;">else</span> <span style="color: #002200;">&#123;</span>
		returnImg <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>UIImage imageWithCGImage<span style="color: #002200;">:</span>imgRef<span style="color: #002200;">&#93;</span>;
	<span style="color: #002200;">&#125;</span>
&nbsp;
	CGImageRelease<span style="color: #002200;">&#40;</span>imgRef<span style="color: #002200;">&#41;</span>;
&nbsp;
	<span style="color: #a61390;">return</span> returnImg;
<span style="color: #002200;">&#125;</span>
&nbsp;
<span style="color: #11740a; font-style: italic;">// returns autorelease UIImage scaled to given size and rotated to UIImageOrientationUp</span>
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>UIImage<span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> scaleWithSize<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>CGSize<span style="color: #002200;">&#41;</span> sz <span style="color: #002200;">&#123;</span>
	UIImageOrientation orient <span style="color: #002200;">=</span> self.imageOrientation;
	CGSize newSize <span style="color: #002200;">=</span> sz;
	CGSize translateBeforeRotate <span style="color: #002200;">=</span> <span style="color: #002200;">&#123;</span><span style="color: #2400d9;">0</span>,<span style="color: #2400d9;">0</span><span style="color: #002200;">&#125;</span>;
	CGFloat tmp;
	CGFloat radians <span style="color: #002200;">=</span> <span style="color: #2400d9;">0</span>;
	<span style="color: #a61390;">switch</span><span style="color: #002200;">&#40;</span>orient<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationUp<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 1</span>
			<span style="color: #11740a; font-style: italic;">// do nothing</span>
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationDown<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 3</span>
			<span style="color: #11740a; font-style: italic;">// rotate 180 degs</span>
			radians <span style="color: #002200;">=</span> M_PI;
			translateBeforeRotate <span style="color: #002200;">=</span> newSize;
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationLeft<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 6</span>
			<span style="color: #11740a; font-style: italic;">// rotate 90 degs right (clockwise)</span>
			radians <span style="color: #002200;">=</span> M_PI<span style="color: #002200;">/</span><span style="color: #2400d9;">2</span>;
			tmp <span style="color: #002200;">=</span> newSize.width;
			newSize.width <span style="color: #002200;">=</span> newSize.height;
			newSize.height <span style="color: #002200;">=</span> tmp;
&nbsp;
			translateBeforeRotate.width <span style="color: #002200;">=</span> newSize.height;
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationRight<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 8</span>
			<span style="color: #11740a; font-style: italic;">// rotate 90 degrees left (anti clockwise)</span>
			radians <span style="color: #002200;">=</span> <span style="color: #002200;">-</span>M_PI<span style="color: #002200;">/</span><span style="color: #2400d9;">2</span>;
			tmp <span style="color: #002200;">=</span> newSize.width;
			newSize.width <span style="color: #002200;">=</span> newSize.height;
			newSize.height <span style="color: #002200;">=</span> tmp;
&nbsp;
			translateBeforeRotate.height <span style="color: #002200;">=</span> newSize.width;
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationUpMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 2</span>
		<span style="color: #a61390;">case</span> UIImageOrientationDownMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 4</span>
		<span style="color: #a61390;">case</span> UIImageOrientationLeftMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 5</span>
		<span style="color: #a61390;">case</span> UIImageOrientationRightMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 7</span>
&nbsp;
			<span style="color: #11740a; font-style: italic;">// not supported by camera or photo app</span>
			<span style="color: #11740a; font-style: italic;">// so cant be bothered to implement!</span>
			<span style="color: #11740a; font-style: italic;">// if you are getting images external to iTunes transfer or the camera</span>
			<span style="color: #11740a; font-style: italic;">// these may well need to be completed - assert if we are in DEBUG mode</span>
			<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>DEBUG<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
				<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSException</span> exceptionWithName<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;UIImage rotate&quot;</span> reason<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;mirror orientation found, do you need to implement?&quot;</span> userInfo<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <span style="color: #a61390;">raise</span><span style="color: #002200;">&#93;</span>;
			<span style="color: #002200;">&#125;</span>
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">default</span><span style="color: #002200;">:</span>
			<span style="color: #11740a; font-style: italic;">// should never get here - image data probably corrupt.</span>
			<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSException</span> exceptionWithName<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;UIImage rotate&quot;</span> reason<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;image data corrupt?&quot;</span> userInfo<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <span style="color: #a61390;">raise</span><span style="color: #002200;">&#93;</span>;			
	<span style="color: #002200;">&#125;</span>
	CGContextRef gc <span style="color: #002200;">=</span> CGBitmapContextCreate<span style="color: #002200;">&#40;</span><span style="color: #a61390;">NULL</span>,
											sz.width,
											sz.height,
											CGImageGetBitsPerComponent<span style="color: #002200;">&#40;</span>self.CGImage<span style="color: #002200;">&#41;</span>,
											<span style="color: #2400d9;">4</span> <span style="color: #002200;">*</span> sz.width,	<span style="color: #11740a; font-style: italic;">// rowbytes</span>
											CGImageGetColorSpace<span style="color: #002200;">&#40;</span>self.CGImage<span style="color: #002200;">&#41;</span>,
											CGImageGetAlphaInfo<span style="color: #002200;">&#40;</span>self.CGImage<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
&nbsp;
&nbsp;
	CGContextTranslateCTM<span style="color: #002200;">&#40;</span>gc,translateBeforeRotate.width,translateBeforeRotate.height<span style="color: #002200;">&#41;</span>;
	CGContextRotateCTM<span style="color: #002200;">&#40;</span>gc, radians<span style="color: #002200;">&#41;</span>;
&nbsp;
	CGContextDrawImage<span style="color: #002200;">&#40;</span>gc, CGRectMake<span style="color: #002200;">&#40;</span><span style="color: #2400d9;">0</span>, <span style="color: #2400d9;">0</span>, newSize.width, newSize.height<span style="color: #002200;">&#41;</span>, self.CGImage<span style="color: #002200;">&#41;</span>;
	CGImageRef newImage <span style="color: #002200;">=</span> CGBitmapContextCreateImage<span style="color: #002200;">&#40;</span>gc<span style="color: #002200;">&#41;</span>;
	UIImage <span style="color: #002200;">*</span>imageCopy <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>UIImage imageWithCGImage<span style="color: #002200;">:</span>newImage<span style="color: #002200;">&#93;</span>;
&nbsp;
	CGImageRelease<span style="color: #002200;">&#40;</span>newImage<span style="color: #002200;">&#41;</span>;
	CGContextRelease<span style="color: #002200;">&#40;</span>gc<span style="color: #002200;">&#41;</span>;
&nbsp;
	<span style="color: #a61390;">return</span> imageCopy;
<span style="color: #002200;">&#125;</span>
&nbsp;
<span style="color: #11740a; font-style: italic;">// returns autorelease UIImage rotated to UIImageOrientationUp and the given rotation amount</span>
<span style="color: #002200;">-</span> <span style="color: #002200;">&#40;</span>UIImage<span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span> rotate<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>UIImageRotation<span style="color: #002200;">&#41;</span> direction <span style="color: #002200;">&#123;</span>
&nbsp;
	UIImageOrientation orient <span style="color: #002200;">=</span> self.imageOrientation;
&nbsp;
	CGSize newSize <span style="color: #002200;">=</span> self.size;
	CGSize translateBeforeRotate <span style="color: #002200;">=</span> <span style="color: #002200;">&#123;</span><span style="color: #2400d9;">0</span>,<span style="color: #2400d9;">0</span><span style="color: #002200;">&#125;</span>;
	CGFloat tmp;
	CGFloat radians <span style="color: #002200;">=</span> <span style="color: #2400d9;">0</span>;
	<span style="color: #a61390;">switch</span><span style="color: #002200;">&#40;</span>orient<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationUp<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 1</span>
			<span style="color: #11740a; font-style: italic;">// do nothing</span>
&nbsp;
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationDown<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 3</span>
			<span style="color: #11740a; font-style: italic;">// rotate 180 degs</span>
			radians <span style="color: #002200;">+=</span> M_PI;
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationLeft<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 6</span>
			<span style="color: #11740a; font-style: italic;">// rotate 90 degs right (clockwise)</span>
			radians <span style="color: #002200;">+=</span> M_PI<span style="color: #002200;">/</span><span style="color: #2400d9;">2</span>;
			tmp <span style="color: #002200;">=</span> newSize.width;
			newSize.width <span style="color: #002200;">=</span> newSize.height;
			newSize.height <span style="color: #002200;">=</span> tmp;
&nbsp;
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationRight<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 8</span>
			<span style="color: #11740a; font-style: italic;">// rotate 90 degrees left (anti clockwise)</span>
			radians <span style="color: #002200;">-=</span> M_PI<span style="color: #002200;">/</span><span style="color: #2400d9;">2</span>;
			tmp <span style="color: #002200;">=</span> newSize.width;
			newSize.width <span style="color: #002200;">=</span> newSize.height;
			newSize.height <span style="color: #002200;">=</span> tmp;
&nbsp;
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageOrientationUpMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 2</span>
		<span style="color: #a61390;">case</span> UIImageOrientationDownMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 4</span>
		<span style="color: #a61390;">case</span> UIImageOrientationLeftMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 5</span>
		<span style="color: #a61390;">case</span> UIImageOrientationRightMirrored<span style="color: #002200;">:</span> <span style="color: #11740a; font-style: italic;">//EXIF = 7</span>
&nbsp;
			<span style="color: #11740a; font-style: italic;">// not supported by camera</span>
			<span style="color: #11740a; font-style: italic;">// cant be bothered to implement!</span>
			<span style="color: #11740a; font-style: italic;">// if you are getting images external to iTunes transfer or the camera</span>
			<span style="color: #11740a; font-style: italic;">// these may well need to be completed - assert if we are in DEBUG mode</span>
			<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>DEBUG<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
				<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSException</span> exceptionWithName<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;UIImage rotate&quot;</span> reason<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;mirror orientation found, do you need to implement?&quot;</span> userInfo<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <span style="color: #a61390;">raise</span><span style="color: #002200;">&#93;</span>;
			<span style="color: #002200;">&#125;</span>
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">default</span><span style="color: #002200;">:</span>
			<span style="color: #11740a; font-style: italic;">// should never get here - image data probably corrupt.</span>
			<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSException</span> exceptionWithName<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;UIImage rotate&quot;</span> reason<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;image data corrupt?&quot;</span> userInfo<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <span style="color: #a61390;">raise</span><span style="color: #002200;">&#93;</span>;			
	<span style="color: #002200;">&#125;</span>
&nbsp;
	<span style="color: #a61390;">switch</span><span style="color: #002200;">&#40;</span>direction<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
		<span style="color: #a61390;">case</span> UIImageRotateNone<span style="color: #002200;">:</span>
			<span style="color: #11740a; font-style: italic;">// do nothing</span>
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageRotate90AntiClockWise<span style="color: #002200;">:</span>
			radians <span style="color: #002200;">-=</span> M_PI<span style="color: #002200;">/</span><span style="color: #2400d9;">2</span>;
			tmp <span style="color: #002200;">=</span> newSize.width;
			newSize.width <span style="color: #002200;">=</span> newSize.height;
			newSize.height <span style="color: #002200;">=</span> tmp;
			<span style="color: #a61390;">break</span>;
&nbsp;
		<span style="color: #a61390;">case</span> UIImageRotate90ClockWise<span style="color: #002200;">:</span>
			radians <span style="color: #002200;">+=</span> M_PI<span style="color: #002200;">/</span><span style="color: #2400d9;">2</span>;
			tmp <span style="color: #002200;">=</span> newSize.width;
			newSize.width <span style="color: #002200;">=</span> newSize.height;
			newSize.height <span style="color: #002200;">=</span> tmp;
			<span style="color: #a61390;">break</span>;
		<span style="color: #a61390;">case</span> UIImageRotate180<span style="color: #002200;">:</span>
			radians <span style="color: #002200;">+=</span> M_PI;
			<span style="color: #a61390;">break</span>;
		<span style="color: #a61390;">default</span><span style="color: #002200;">:</span>
			<span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSException</span> exceptionWithName<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;UIImage rotate&quot;</span> reason<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;incorrect rotation parameter&quot;</span> userInfo<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span><span style="color: #002200;">&#93;</span> <span style="color: #a61390;">raise</span><span style="color: #002200;">&#93;</span>;
			<span style="color: #a61390;">break</span>;
	<span style="color: #002200;">&#125;</span>
&nbsp;
&nbsp;
	<span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>radians &gt;<span style="color: #002200;">=</span> <span style="color: #2400d9;">2</span><span style="color: #002200;">*</span>M_PI<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
		<span style="color: #11740a; font-style: italic;">// 360 degs</span>
		radians <span style="color: #002200;">=</span> <span style="color: #2400d9;">0</span>;
		translateBeforeRotate.width <span style="color: #002200;">=</span> <span style="color: #2400d9;">0</span>;
		translateBeforeRotate.height <span style="color: #002200;">=</span> <span style="color: #2400d9;">0</span>;
	<span style="color: #002200;">&#125;</span>
	<span style="color: #a61390;">else</span> <span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>radians &gt;<span style="color: #002200;">=</span> M_PI<span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
		<span style="color: #11740a; font-style: italic;">// 180degs</span>
		translateBeforeRotate <span style="color: #002200;">=</span> self.size;
	<span style="color: #002200;">&#125;</span>
	<span style="color: #a61390;">else</span> <span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>radians &lt; <span style="color: #2400d9;">0</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
		<span style="color: #11740a; font-style: italic;">//90 degs anti clockwise</span>
		translateBeforeRotate.height <span style="color: #002200;">=</span> self.size.width;
	<span style="color: #002200;">&#125;</span>
	<span style="color: #a61390;">else</span> <span style="color: #a61390;">if</span> <span style="color: #002200;">&#40;</span>radians &gt; <span style="color: #2400d9;">0</span><span style="color: #002200;">&#41;</span> <span style="color: #002200;">&#123;</span>
		<span style="color: #11740a; font-style: italic;">//90 degs clockwise</span>
		translateBeforeRotate.width <span style="color: #002200;">=</span> self.size.height;
	<span style="color: #002200;">&#125;</span>
&nbsp;
	CGContextRef gc <span style="color: #002200;">=</span> CGBitmapContextCreate<span style="color: #002200;">&#40;</span><span style="color: #a61390;">NULL</span>,
											newSize.width,
											newSize.height,
											CGImageGetBitsPerComponent<span style="color: #002200;">&#40;</span>self.CGImage<span style="color: #002200;">&#41;</span>,
											<span style="color: #2400d9;">4</span> <span style="color: #002200;">*</span> newSize.width,	<span style="color: #11740a; font-style: italic;">// rowbytes</span>
											CGImageGetColorSpace<span style="color: #002200;">&#40;</span>self.CGImage<span style="color: #002200;">&#41;</span>,
											CGImageGetAlphaInfo<span style="color: #002200;">&#40;</span>self.CGImage<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
&nbsp;
	CGContextTranslateCTM<span style="color: #002200;">&#40;</span>gc,translateBeforeRotate.width,translateBeforeRotate.height<span style="color: #002200;">&#41;</span>;
	CGContextRotateCTM<span style="color: #002200;">&#40;</span>gc, radians<span style="color: #002200;">&#41;</span>;
&nbsp;
	CGContextDrawImage<span style="color: #002200;">&#40;</span>gc, CGRectMake<span style="color: #002200;">&#40;</span><span style="color: #2400d9;">0</span>, <span style="color: #2400d9;">0</span>, self.size.width, self.size.height<span style="color: #002200;">&#41;</span>, self.CGImage<span style="color: #002200;">&#41;</span>;
	CGImageRef newImage <span style="color: #002200;">=</span> CGBitmapContextCreateImage<span style="color: #002200;">&#40;</span>gc<span style="color: #002200;">&#41;</span>;
	UIImage <span style="color: #002200;">*</span>imageCopy <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>UIImage imageWithCGImage<span style="color: #002200;">:</span>newImage<span style="color: #002200;">&#93;</span>;
&nbsp;
	CGImageRelease<span style="color: #002200;">&#40;</span>newImage<span style="color: #002200;">&#41;</span>;
	CGContextRelease<span style="color: #002200;">&#40;</span>gc<span style="color: #002200;">&#41;</span>;
&nbsp;
	<span style="color: #a61390;">return</span> imageCopy;
<span style="color: #002200;">&#125;</span>
&nbsp;
<span style="color: #a61390;">@end</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://cyandesign.co.uk/media/?feed=rss2&amp;p=315</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clap Light</title>
		<link>http://cyandesign.co.uk/media/?p=308</link>
		<comments>http://cyandesign.co.uk/media/?p=308#comments</comments>
		<pubDate>Mon, 09 Nov 2009 09:37:30 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[1 - News]]></category>

		<guid isPermaLink="false">http://cyandesign.co.uk/media/?p=308</guid>
		<description><![CDATA[
ClapLight now updated &#8211; if you have any other paid for Cyan Media application installed, adverts are now disabled!
]]></description>
			<content:encoded><![CDATA[<p><img src="http://cyandesign.co.uk/media/wp-content/uploads/2009/11/claplight_512x512-75-150x150.jpg" alt="claplight_512x512-75" title="claplight_512x512-75" width="150" height="150" class="alignnone size-thumbnail wp-image-309" /></p>
<p>ClapLight now updated &#8211; if you have any other paid for Cyan Media application installed, adverts are now disabled!</p>
]]></content:encoded>
			<wfw:commentRss>http://cyandesign.co.uk/media/?feed=rss2&amp;p=308</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wakeup Call Alarm Released on Android</title>
		<link>http://cyandesign.co.uk/media/?p=303</link>
		<comments>http://cyandesign.co.uk/media/?p=303#comments</comments>
		<pubDate>Tue, 20 Oct 2009 18:17:57 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[1 - News]]></category>

		<guid isPermaLink="false">http://cyandesign.co.uk/media/?p=303</guid>
		<description><![CDATA[
Wakeup call alarm now on the Android Market.  Download from here 
]]></description>
			<content:encoded><![CDATA[<p><img src="http://cyandesign.co.uk/media/wp-content/uploads/2009/10/WCA_icon.png" alt="WCA_icon" title="WCA_icon" width="57" height="57" class="alignnone size-full wp-image-304" /></p>
<p>Wakeup call alarm now on the Android Market.  Download from <a href="market://search?q=pname:com.cyandroid.wakeupcallalarm">here</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://cyandesign.co.uk/media/?feed=rss2&amp;p=303</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iBaby released on Android</title>
		<link>http://cyandesign.co.uk/media/?p=297</link>
		<comments>http://cyandesign.co.uk/media/?p=297#comments</comments>
		<pubDate>Mon, 19 Oct 2009 18:02:23 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[1 - News]]></category>

		<guid isPermaLink="false">http://cyandesign.co.uk/media/?p=297</guid>
		<description><![CDATA[
iBaby is now released on the Android Market.
get it on your phone here
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-59" title="ibaby" src="http://cyandesign.co.uk/media/wp-content/uploads/2009/10/ibaby.jpg" alt="ibaby" width="194" height="209" /></p>
<p>iBaby is now released on the Android Market.</p>
<p>get it on your phone <a href="market://search?q=pname:com.psynaptics.ibabymonitor">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://cyandesign.co.uk/media/?feed=rss2&amp;p=297</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Latest Way of Being Rejected from the Appstore!</title>
		<link>http://cyandesign.co.uk/media/?p=278</link>
		<comments>http://cyandesign.co.uk/media/?p=278#comments</comments>
		<pubDate>Mon, 12 Oct 2009 16:36:30 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[2 - Developer Rants]]></category>

		<guid isPermaLink="false">http://cyandesign.co.uk/media/?p=278</guid>
		<description><![CDATA[
I think we have been rejected from the appstore for most reasons&#8230;using undocumented API&#8217;s,  using UITableView in the wrong way, having a fart noise in the app, feature limited app version, having the word &#8216;covert&#8217; in the blurb, mentioning OS3.0 in release notes before OS3.0 was released, no indication of recording and therefore violating privacy [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://cyandesign.co.uk/media/wp-content/uploads/2009/10/app-store-icon.jpg" alt="app-store-icon" title="app-store-icon" width="150" height="151" class="alignnone size-full wp-image-280" /></p>
<p>I think we have been rejected from the appstore for most reasons&#8230;using undocumented API&#8217;s,  using UITableView in the wrong way, having a fart noise in the app, feature limited app version, having the word &#8216;covert&#8217; in the blurb, mentioning OS3.0 in release notes before OS3.0 was released, no indication of recording and therefore violating privacy laws&#8230;.</p>
<p>Well, we now have a new reason &#8211; &#8216; Inappropriate Keywords&#8217;:</p>
<blockquote><p>We&#8217;ve reviewed iSnitch and determined that we cannot post this version of your iPhone application to the App Store at this time because of inappropriate &#8216;Keywords&#8217; used to identify your application.  We will not post applications that reference other applications in their search criteria. It would be appropriate to remove &#8220;Dictaphone&#8221;.</p></blockquote>
<p>I guess dictaphone is copyright trademark then?</p>
<p>It took apple 2 weeks to tell us about this, then another 2 weeks for them to accept the app&#8230;So, if you are a developer, be warned, check your keywords.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyandesign.co.uk/media/?feed=rss2&amp;p=278</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VCA Now on Android</title>
		<link>http://cyandesign.co.uk/media/?p=266</link>
		<comments>http://cyandesign.co.uk/media/?p=266#comments</comments>
		<pubDate>Mon, 12 Oct 2009 15:08:50 +0000</pubDate>
		<dc:creator>nick</dc:creator>
				<category><![CDATA[1 - News]]></category>

		<guid isPermaLink="false">http://cyandesign.co.uk/media/?p=266</guid>
		<description><![CDATA[
With more handsets coming out soon, the Android Market is sure to be the next big thing&#8230;.  So we are porting our applications to Android, VCA being the first to be completed.  iBaby Monitor to soon to follow&#8230;
Link to VCA on the Android market here.
To see a list of handsets soon to be released, there [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-273" title="android_vector-thumb" src="http://cyandesign.co.uk/media/wp-content/uploads/2009/10/android_vector-thumb.png" alt="android_vector-thumb" width="245" height="80" /></p>
<p>With more handsets coming out soon, the Android Market is sure to be the next big thing&#8230;.  So we are porting our applications to Android, VCA being the first to be completed.  iBaby Monitor to soon to follow&#8230;</p>
<p>Link to VCA on the Android market <a href="market://search?q=pname:com.cyandroid.voicealarm">here</a>.</p>
<p>To see a list of handsets soon to be released, there is a great article <a href="http://vividlymobile.com/dress-smart-for-the-android-party/">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://cyandesign.co.uk/media/?feed=rss2&amp;p=266</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WebShot Coming Soon</title>
		<link>http://cyandesign.co.uk/media/?p=207</link>
		<comments>http://cyandesign.co.uk/media/?p=207#comments</comments>
		<pubDate>Thu, 08 Oct 2009 12:59:25 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://cyandesign.co.uk/media/?p=207</guid>
		<description><![CDATA[
WebShot is our new application that can &#8220;See what your iphone sees in your browser&#8221; on a Local Area Network.
Keep an eye on your loved ones, pets or just generally snoop on your other half!
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-208" title="webshot_advert" src="http://cyandesign.co.uk/media/wp-content/uploads/2009/10/webshot_advert.png" alt="webshot_advert" width="154" height="154" /></p>
<p>WebShot is our new application that can &#8220;See what your iphone sees in your browser&#8221; on a Local Area Network.</p>
<p>Keep an eye on your loved ones, pets or just generally snoop on your other half!</p>
]]></content:encoded>
			<wfw:commentRss>http://cyandesign.co.uk/media/?feed=rss2&amp;p=207</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VCA Now Updated</title>
		<link>http://cyandesign.co.uk/media/?p=204</link>
		<comments>http://cyandesign.co.uk/media/?p=204#comments</comments>
		<pubDate>Thu, 08 Oct 2009 12:56:55 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://cyandesign.co.uk/media/?p=204</guid>
		<description><![CDATA[
Voice Controlled Alarm has now been updated and works on iphone OS 3.1.
We have also released an Android version.
Use it to call you when the alarm goes, turn off the alarm by shouting at it!
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-205" title="vca_advert" src="http://cyandesign.co.uk/media/wp-content/uploads/2009/10/vca_advert.png" alt="vca_advert" width="154" height="154" /></p>
<p>Voice Controlled Alarm has now been updated and works on iphone OS 3.1.</p>
<p>We have also released an Android version.</p>
<p>Use it to call you when the alarm goes, turn off the alarm by shouting at it!</p>
]]></content:encoded>
			<wfw:commentRss>http://cyandesign.co.uk/media/?feed=rss2&amp;p=204</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iBaby Monitor Back on Sale</title>
		<link>http://cyandesign.co.uk/media/?p=58</link>
		<comments>http://cyandesign.co.uk/media/?p=58#comments</comments>
		<pubDate>Thu, 01 Oct 2009 20:19:55 +0000</pubDate>
		<dc:creator></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://cyandesign.co.uk/media/?p=58</guid>
		<description><![CDATA[
iBaby now works with OS3.1.  Update on the way so application can make more than one call without a reset.
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-63" title="ibaby_advert" src="http://cyandesign.co.uk/media/wp-content/uploads/2009/10/ibaby_advert.png" alt="ibaby_advert" width="154" height="154" /></p>
<p>iBaby now works with OS3.1.  Update on the way so application can make more than one call without a reset.</p>
]]></content:encoded>
			<wfw:commentRss>http://cyandesign.co.uk/media/?feed=rss2&amp;p=58</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

