Skip to main content


Showing posts from November, 2012

iTunes Error 3014 when attempting iPad restore

Following an unfortunate click of an iPad icon while mounting in iTunes, the software refused to recognise the iPad, no matter what I tried, so offered to place it in recovery mode. (Note: It was, however, still recognised in Xcode.) After many failed attempts to restore to iOS 5.1.1, I had to accept that this iPad was going iOS 6. But there was a snag, each time I tried to restore it I received an unknown error 3014. Another post identified this as a connection problem with Apple's servers and directed me to the hosts file which can be found in Finder using Shift + cmd + G then searching /etc/ inside which you'll find the file. However, before you can edit the file you'll need to add administrator read and write privileges to the hosts file, the etc folder and the private folder it is contained within. By selecting them in Finder and pressing Cmd + I then using the options at the bottom of the dialog box. Once you are in a position to do so, open the file. Mine loo

My top five sketching superheroes for iPad

1. Procreate Procreate has a super clean and modern interface. It also exports to Dropbox in PSD format (as well as Procreate's own format). Recent updates to include Ultra High Definition 4K cinema format (1714 x 4096 px), and canvas sizes all the way up to 4096 x 4096 px make this an amazing app. For more details on working with Procreate  see this blogpost . 2. SketchBook Pro The fluidity, brushes, symbols and saving options (iCloud, email, Dropbox and social media sharing) along with export to Photoshop (PSD) format make this an excellent app. (It has a maximum image size of 2500 x 2500 px but at this size you will be limited to three layers, at 768 x 1024 px eighteen layers are available and between these two sizes there is a varying ratio of size to layers.)  3. ArtRage This app is great for its realism and often a good place to start for inspiration. There is no option to export to PSD, only ArtRage format and a script format that can be used to increase the

Beta testers wanted for book app (iPad)

Update: The app is now live on the App Store, and you can download  The Waking Prince here  - you can still sign up as a beta tester for new apps and updates.  If you'd like to join The Story Elves to beta test one of the most exciting book apps for the iPad this year then follow this TestFlight link  and feel free to share it with others too. We'd love to have you try out this app and if you have any queries ask below in the comments section.

Anatomy of a Story Elves Book for iPad: An Introduction

A couple of years ago, The Story Elves approached me for advice on eBooks and for information about how to create an iBook. This consultancy, which took place in email and over Skype, led to the first book The Story Elves team were to publish called The Waking Prince . A publication was originally available in the iBookstore as a fixed-layout highly-illustrated book . Fast-forward to November 2012 and we are soon to witness the launch of  The Waking Prince  as a fully-featured app. The question is how do these two things differ? I'm glad you asked, over the coming weeks, leading up to the launch, and those following it I'll be discussing the challenges involved in making this highly illustrated and original book app a reality. Update: the app is now live on the App Store, you can download The Waking Prince here . Introduction | Part 1   |  Part 2  | Part 3  | Part 4

First steps in GREP: Finding a word (Part 3)

We can find letters in the same way as we find numbers using ranges, so if we want to find any letter of the alphabet, we use the range a-z, but GREP is case-sensitive and so we need to also search for A-Z so as not to miss proper nouns and words that begin sentences. Like so:     [A-Za-z] We enclose in brackets as usual so that we can reuse the search result in our replace dialog box. The plus sign means that we find an infinite number of letters up to the point where we hit something different to whatever is contained within the square brackets, e.g. a comma, space, semi-colon, etc.     ([A-Za-z]+) As in previous posts, we could have used {1,} but the plus sign requires less typing and the curly brace method is more useful when you want the first result to return more (or less) than one of the thing you are searching or you want to search up to a set number of them. Now all that is left is to use the result in the replace box:    This is a word with any number o

Using regular expressions in Textastic (iPad)

In order to use regular expressions in Textastic : (1) with the document you want to search open tap on the magnifying glass (2) next tap on the settings cog until you are faced with a series of switches in a popover (3) switch on "Regular Expressions" (4) now you can go back and use regular expressions (5) start by finding a number   ([0-9]) and replacing with   Number $1 (6) you'll of course need numerals in your document for this to work (7) once you've performed the search you'll see a list of found items which you can replace individually or all at the same time, and the found items will also be highlighted in your document

First steps in GREP: Finding a bigger number (Part 2)

Last time  we used GREP to search for a number, but if the number was any larger than 9 it would be ignored, or rather found a single digit at a time, so this time we're going to extend this to find all numbers above zero This is achieved by simply adding {1,} after the closing square bracket of our search query from last time, so that we have:   ([0-9]{1,}) It tells the app (or program) that we want it to search for one or more of the thing asked for in the square brackets. If we wrote {2,} this would be asking for two or more, but remember this doesn't mean necessarily 10 and above, because a numeral might be written 01. To search for 10 and above in the scenario where numerals might or might not be written with preceding zeros you'd need to write:   ([0]{0,}[1-9][0-9]{1,}) which means zero or more zeroes followed by a number between 1 and 9, followed by any number of digits of the value 0 to 9. Part 1 | Part 2

First steps in GREP: Finding a number (Part 1)

I'm going to start by using TextWrangler as my example program but most of what I'll discuss is transferable to other programs that use GREP (and Regex or Regular Expression) find and replace systems, such as those found in OpenOffice and InDesign. In this brief example we'll look at finding a number between 0 and 9 then adding some text before it. (1) open TextWrangler (if you don't already have it installed, download and install for free from MacAppStore) (2) type some text containing numbers in a new document (3) press Cmd + F (4) tick the little box at the bottom of the dialog box that reads Grep (5) in the top box type ([0-9]) (6) in the Replace box type Number \1 The [0-9] means find a number between 0-9 and if you'd written [a-z] it would have meant find a letter between a and z. Enclosing it in brackets means we can use the text in the Replace box by referring to it as \1 and if we'd had two expressions - e.g.  ([0-9])([a-z]) - then \1 would

The Monarch Butterfly: An Interactive Picture Book (Elizabeth Castro)

As I've already written ( see here ), the importance of Elizabeth Castro's work to the world of eBook publishing, and in particular iBooks on Apple's iBookstore, cannot be underestimated. Not only has Liz Castro published "how-to" books on the subject of eBooks but she has also published a book on Barcelona and a work of children's fiction through the iBookstore as well ( see here ). The current book is an important book, because it is her first foray into adding interactivity through JavaScript to an ePub book (that is also incidentally fixed layout). The images are bold and I like the way the little images zoom to cover the page, this is very graceful. I also find quite intriguing the way the text comes second. First, one looks at the images in detail unobstructed by text, perhaps then watches a video before clicking that little yellow arrow with a question mark. The little yellow arrow with a question mark is unassuming but is one of the most imp

Instantiate a view controller using a storyboard identifier in Xcode (update Swift 3: Xcode 8, beta 6)

** Jump to Swift 3 code ** In order to instantiate a view controller using a storyboard identifier in Xcode, you first need to assign a Storyboard ID to your view controller. In order to do this: (1) select the storyboard file in your project (2) select the view controller that you would like to instantiate (3) with the view controller highlighted select the identity inspector in the utilities on the right-hand side of the window (4) give your view controller a Storyboard ID (5) now wherever you need to instantiate the view controller you simply write the following code (making sure that the strings you pass to storyboardWithName: and instantiateViewControllerWithIdentifier: match the name of the Storyboard and the Storyboard ID exactly, because Xcode won't catch any errors in these, it will instead crash at runtime) UIViewController *viewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifie

Adding a filter to an image in Xcode: CIImage and CIFilter in iOS

This is a quick and simple post to help you in the first steps of using image filters. (1) create an image view (imageView) and hook it up to the .h file of your view controller using the storyboard for your project (2) import the Core Image framework into your header file with #import <CoreImage/CoreImage.h> and add the framework to the "Linked Frameworks and Libraries" of your project target (2) synthesize the image view in your .m file (3) drag an image (image.jpg) into your project (4) replace the viewDidLoad code of your view controller with this (reading the green comments as you do so) - (void)viewDidLoad {     [super viewDidLoad];  // Do any additional setup after loading the view, typically from a nib.       // Create a path to the image we want to manipulate     NSString *filePath =     [[NSBundle mainBundle] pathForResource:@"image" ofType:@"jpg"];     NSURL *fileNameAndPath = [NSURL fileURLWithPath:filePath];  

Installing a new hard drive in your Mac and restoring OS X Mountain Lion from a Time Machine backup

If you are planning to upgrade the size of your hard drive in a Mac running Mountain Lion, then first you'll need to make sure: (1) Time Machine has backed up your latest files (the whole system, don't exclude the system files or applications) (2) you've downloaded the OS X Recovery Disk Assistant  and installed it onto a thumb drive. To do this: (i) download the  OS X Recovery Disk Assistant , (ii) with the thumb drive plugged into your USB port open the .dmg and run the program (don't copy the .dmg or the application to your thumb drive, OS X does all it needs to when you select it as the target). Note: if the drive isn't OS X Extended (journaled) format then you'll need to use Disk Utility to erase the contents and format it before installing the recovery software (3) when that's all done shut down your Mac, unplug it and put the new drive in (4) plug the thumb drive in and power it up (5) plug your Time Machine drive in and select "Restore fro