Archiwum

Mac

If you read my blog from time to time you probably noticed a trend that I attend a technical conference, get excited about it and afterwards describe how awesome it was, encouraging you to join next year. Well, this post will be no different ;)

While usually (at least in Poland) mobile conferences tend to cover whole bunch of platforms (or at least the two most popular ones), iOSDevUK was centered purely around iOS development. Which makes it especially interesting, since it creates a great opportunity to meet lots of people who deal with the same stuff you do professionally and exchange experiences.

The venue

Aberystwyth

Aberystwyth

It took place in a picturesque small west coast welsh town of Aberystwyth (prepare for a daily seagull-induced wakeup). Apart from fantastic landscape, the location provided local pubs around every second corner, which inevitably led to socializing over a pint every evening :)

Both the lecture rooms and the default accommodation were on the university campus, which resulted in a really affordable conference fee. Some voices on twitter complained about a claustrophobic dorm rooms (or unfriendly electronic shower user interface), but I don’t think you need any more luxuries for a 3-day stay (wifi worked in the dorm rooms, what else could we possibly need? ;)

Protip: if you travel overseas (like I did), it helps to actually read the travel hints on a conference website. That would have saved me a few hours journey (Birmingham International is the preferred airport of choice, not any of the London ones).

The lectures

As usual, quality of the lectures varied. Some that I expected to be excellent, turned out to be so-so, other ones which I didn’t even want to attend, turned out to be really enjoyable.

Overall – I didn’t experience any epiphany listening to the talks, but I never felt like attending to any of them was a poor use of time.

The only thing I didn’t like about the lectures was that they haven’t been video-recorded. Which means if you were interested in two sessions happening simultaneously, there was no way to benefit from both (we had two tracks of talks most of the time).

ArduinoHack

Playing with Arduino bluetooth board and pulsating hedgehog app with @miguelquinon

Not all the lectures were full-length. The conference incorporated the idea I’ve heard about, but have never seen ‚implemented’: 5-minutes lightning talks. That turned out very well, I’d love to see more conferences allowing this short speech format.

Apart from the lectures, there have also been a bunch of workshops (including Core Data one conducted by Marcus Zarra) and an Arduino hack (which became way more fun after pizza, beer, nerf gun and hedgehog images came into play).

The people

The attendees are usually the highlight of all conferences, this time it was no different. Momentarily it was just a tiny bit surreal for me to see and/or chat with the iOS tutors known from the internet that I didn’t ever expect to meet in person. And judging by the other people’s reactions and standing ovations after Dave Verwer’s talk (the guy behind iOS Dev Weekly), I presume that at least some other people shared that feeling.

For me as an introvert and non-native English speaker (far from the best one) it was definitely a stretch to have so many conversations with people over such a short period of time, but I absolutely enjoyed it.

Summary

Overall I really enjoyed the conference and had a blast! It’s always a little bit inconvenient to attend an event happening in the middle of the week, but this time it was absolutely worth it, no doubt about it.

Big thanks to Chris Price and all the other organizers for their huge effort put into organizing the event and see you all next year!

Btw. if you missed the opportunity to join iOSDevUK this year, there’s another iOS conference happening shortly (17-19 of September), check out NSSpain website!

Today I’ve decided to upgrade my iPad from iOS 4.3.2 to iOS5. I Thought the process would be dead easy, but some complications occured. I connected the device, clicked the „Update” iTunes button, upgrade downloaded, iTunes performed iPad backup. And then iTunes presented an error message „The iPad could not be restored. This device isn’t eligible for the requested build.” That was confusing. And totally unexpected.

The iPad could not be restored

Quick google research revealed that quite a few people were struggling with the same issue. Most often it happened when they tried to update the jailbroken device. People had various suggestions, here’s what worked for me. But first, a little background.

Sometimes you may want to downgrade your device iOS version. You may want to do that if you’re into iOS software development or jailbreaking. Or simply you may find some of the new firmware version’s changes unacceptable (i.e. lack of multitasking gestures for iPad 1 in iOS5). After all it’s always good to have a choice.

To do that, you need a couple of things. One of those are your device SHSH blobs (digital signatures based on some device hardware keys and the firmware version). You need to preserve them before upgrading to newer iOS version (or jailbreaking the device). Without them it’s impossible to downgrade, Apple doesn’t allow to install firmware they haven’t sign (and they sign only newest iOS version, so if iOS5 is out, you cannot sign e.g. 4.3.2 firmware any more). More information on this topic can be found here: http://bit.ly/aNI5hA.

tinyumbrella
Since I’m a software developer and also I find jailbreaking useful (I don’t encourage installing pirated software, but jailbreak actually makes some really cool stuff possible via custom Cydia packages) some time ago I wanted to store my device SHSHs for 4.3.2. I used sofware called „Tiny Umbrella” to do that. It certainly did the job, but it also caused some harm in the process. When you try to install earlier firmware version SHSH is not taken from one of the Apple servers, it’s pushed from your localhost instead (from TinyUmbrella’s integrated local TSS server) or from Cydia server. To achieve this, iTunes request to Apple servers are being redirected to localhost/Cydia. That makes perfect sense. The bad part is that TinyUmbrella doesn’t always (or ever) clean up after it’s job is done. So after you saved your SHSHs and tried to restore earlier firmware version, the clutter on your Mac remains untouched.

Imagine that you used TinyUmbrella and now want to update to the newest iOS version, which you have never installed before. What happens is… well – basically it doesn’t work at all. iTunes thinks it sends a sign request to Apple server, but in fact it sends it to localhost (your computer; or Cydia server). If TinyUmbrella’s TSS server is not running (default behavior), iTunes doesn’t get any response at all. So it thinks sth. is wrong with your device and presents the „device could not be restored” error.

Ok, but why does it happen?

Remember that you had to provide your admin credentials to make TinyUmbrella run? That’s because it needs to modify /etc/hosts file (to redirect iTunes requests). That’s where unhandled clutter remains. Let me show you how to fix it.

 
1. Run Terminal App

You can find it in Application -> Utilities.

Alternatively you can use Spotlight to find it. Press Cmd+Space and type „Terminal”. Click on the first result.

Spotlight-terminal

Terminal window pops out.

terminal

 
2. Change user to administrator

If your account has administrator privileges you can safely omit this step.

Type su admin_account_name where admin_account_name is Administrator login on your system. You will be asked to type administrator’s password.

admin-account-name

On my Mac user with administrator privileges is named tomekwyszomirski, so I typed „su tomekwyszomirski” and entered that user’s password:

su-tomekwyszomirski

Great! Now you are able to edit system files.

 
3. Type sudo nano /etc/hosts

Type sudo nano /etc/hosts

nano-hosts

You land in a console texteditor (nano) with hosts file opened.

etc-hosts

 
4. Find line with gs.apple.com not preceded by #

Move your cursor (using keyboard arrows) to beginning of the line which contains gs.apple.com but doesn’t start with hash #.

gs-apple-com

Insert hash # at the beginning of that line to comment it out.

gs-apple-com-hash

 
5. Save file and quit

Save file by pressing Ctrl+O (^+O in Mac notation). Nano asks to confirm filename, hit Enter.

nano-exit

Quit nano by pressing Ctrl+X (^+X). You can now close terminal window.

 
6. update your iOS device!

That’s it! You’re done! You can now proceed to iPhone/iPad firmware update using iTunes! It won’t fail now.

iPad iOS5