Blog

aaeaaqaaaaaaaajpaaaajdm0nwe0ntvkltnjnjctngzkzc1imzizltmzzda1zjzlzmvjzq

When I was asked to write Beginning Xcode I initially said no. Mostly this was because of a fear of exposing myself to international criticism – I had enough trouble coping with the local kind, dealing with anxiety issues like imposter syndrome and the like without opening myself up to harsh reviews and the inevitable burning rage that meant my reply would probably be far form professional.

I thought about my decision for a couple of days and then changed my mind – decisive as always. I have a tendency to self-deprecate (after all it’s harder to be mocked for something if you’ve said it first), but I’ve still felt that for someone who wasn’t particularly academic I’ve done really well – mostly because I love what I do and that makes learning easier.

I don’t really remember where my interest in computers started, but I have early memories of my uncle having a ColecoVision back when I was 5 or 6 and that was my first introduction to computer gaming. From there I ended up getting a Spectrum and Commodore 64 (about 10 years after they came out – we were poor) and while the tapes were fun and all, I wanted to make these machines do the things I wanted them to do and for this I turned to books.

aaeaaqaaaaaaaakcaaaajgqwn2fmyjgyltgxnjetngywms04nta0ltbky2uxnzg3yzc0mw

One book in particular sticks out in my mind; Sixty Programs for the ZX Spectrum. There were such variety in the applications, and there was no lengthy explanation for why you were doing something it just gave you pages of code and left you to it. My sister and I would sit for what seemed like hours typing in the code on the unforgiving rubber keyboard of the Spectrum 48k, typing feverishly to get to the point where we could press run and hope that each of the 200 or so lines were perfect; they never were.

Yes, the book is as memorable for its infuriating bugs as its brilliant code but that was all part of the charm. Back then there was no popping online to the publishers website for the errata updates, you had to figure things out for yourself – learning by necessity.

I’m writing this post because as I sit outside in the garden (making the most of the sun but struggling to read what I’m writing on the screen) I’m uploading zip files of images for the Swift 3 version of Beginning Xcode and got to reminiscing about how I got here and why. Even today – the era of digital everything, programming and development books have a huge part to play in helping the next generation of coders find their way. I hope the crippling neck pain writing these books has caused me goes on to help another person somewhere make their dreams come true.

20160514161003_1

DayZ 0.60 – A day in Chernarus

I finally caught a break and managed to get onto the swamped DayZ experimental servers to try out the new build. The new renderer is incredible, the detail on everything is amazing.

20160514154023_1

20160514155446_1

20160514155454_1

20160514155724_1

 

Kwik fit operate everywhere, usually less well armed
Kwik fit operate everywhere, usually less well armed
20160514160441
Off to camp

20160514161003_1

20160514162915_1

20160514164804_1

20160514165040_1

You can now enter the building by the masts

20160514165729_1

 

Montage of heck

Montage of Heck – (over)reaction

Despite being a massive Nirvana fan I’ve always tended to stay away from the various documentaries and such that have emerged in the 21 years since Kurt’s death. Recently however, I’d noticed the ‘documentary’ “Montage of Heck”; a look through Kurt’s life told in the words of the man himself and some notable friends and family and former flames.

Watching montage of heck isn’t like any other Documentary or Biopic I’ve ever seen before. Think of it as a series of interviews connected by highly stylised animated segues that illustrate one of Kurt’s home recordings. I enjoyed Montage of Heck, and even watched it again, and then that was that.

Then I read some of the reviews on IMDB. So many people came out with 1 or 2 star reviews because this was an “insult to Mr. Cobain” as one reviewer wrote. The more you read through the comments the more polarizing reviews you will see, and so many of them come with that distasteful radical fanboy vitriol where writers claim if you like this you’re not a true fan, and that with Courtney’s involvement you should know all you need to know about this piece of dumbed-down crap. Except that’s really not a valid argument with Montage of Heck.

The are so many fans out there who still vehemently deny Kurt killed himself, that he wouldn’t do that to his fans it was all Courtney’s doing etc. etc. If JFK taught us anything is that a good conspiracy theory stands the test of time. For years this was my belief too, but what changed is that I realised that whatever you decide, unless you personally have the evidence that says Courtney was involved, you’re basing your beliefs on what someone else has told you is a fact, without any way of knowing one way or the other. It’s very unlike me but I actually found some closure here and decided to move on; accept that this thing you loved is done, new things will come out from time to time, demos, live performances and bootlegs but the book is closed.

What you will get out of Montage of Heck if you don’t preoccupy yourself looking for the smoking gun is a look into what propelled Kurt to write, play and sing the way he did, and as a true fan isn’t that better?

photo-1428604467652-115d9d71a7f1

Moving on. Ish

It’s with the cliche but nonetheless present mix of sadness and excitement that I can announce that I will be leaving the Education Department after 7 years.

On June 15th I will start a new role as Software Solutions Architect in corporate services, allowing me to work across all of the directorates. It’s not a million miles away from what I do now, but it comes with a larger team and some exciting challenges as the team is set to grow massively over the next 12 months.

I always try to look forward for the next challenge and this is it; I’ve been doing a pretty cross-cutting role for the last 12 months, and the thing I’m sure of is that software is going to play a huge part in protecting jobs and services, and I want to be in a position where I can do something about that every day.

My time in Education has shaped me in all sorts of ways, from setting up the Swansea Edunet learning platform as a developer to eventually running the show and branching out on a number of other projects. It’s been a great time for the most part, the education department really came alive with a new Chief Education Officer a couple of years ago and that transformation will go from strength to strength as the latest incumbent galvanises the team with quality leadership. I’ve been so lucky with managers through my time in education from start to finish I’ve been supported, nurtured, even defended on occasion.

The team I leave behind are in the shape of their lives, and we’ve never been in a stronger position to develop future digital services for schools in Swansea. They will continue to make a hugely positive impact for all those associated with schools in the future and I know they are going to go from strength to strength.

 

Big_and_Small_Wallpaper_k1y85

So you started your iOS 8 project with a specific size class

When you move from Xcode 5 to version 6 for iOS development, one of the concepts that can be difficult to wrap your head around is Size Classes. Size Classes are great, they allow you to use a single storyboard for multiple form factors and screen orientations, but they can become very complicated as you add more and more class-specific settings and constraints.

[av_image src=’http://www.mattknott.com/wp-content/uploads/2015/03/Screen-Shot-2015-03-02-at-18.43.10-495×400.png’ attachment=’2097′ attachment_size=’portfolio’ align=’right’ animation=’pop-up’ link=’lightbox’ target=” styling=” caption=’yes’ font_size=” appearance=”]
A basic project started in the wCompact hAny size class
[/av_image]

One pitfall that’s easy for developers to make is to start laying out their app using a specific size class, for example an iPhone app may be started using wCompact hAny because the design area in the storyboard takes on a familiar landscape shape, which is less disorienting that the default wAny hAny layout you are presented with for all apps.

The challenge with this approach comes when you’ve set all of your constraints and have your layout working perfectly on a 4-inch iPhone, but when you rotate it or try it on a larger device, it all goes wrong and elements become unaligned, too large or small, and sometimes disappear altogether. The reason for this is that the constraints you set under wCompact hAny will often only be valid when those conditions are met. thankfully there is a straight forward way to get your constraints to be applied in different size classes.

Select a constraint from the Document Outline and then open up the Attributes Inspector. As you will see in the image below, you will have a tick against wC hAny, meaning this constraint is only valid in that layout, but the blank item above it (which should really be labelled wAny hAny) is not ticked. Click this to make the constraint apply across any layout.

Screen Shot 2015-03-01 at 10.02.27

photo-1414604582943-2fd913b3cb17

A Fresh Start For 2015

The past two years have been work, work, work. I changed my role in work back in the summer of 2013, at the same time I started writing Beginning Xcode, my first book. Since then my roles changed several times, and I’ve published another book. In a lot of ways it’s been great, meeting new people and getting some really positive feedback on the books, but in other ways, I still can’t help but feel I’m failing at everything. This isn’t a new feeling, but it’s something I’ve come to accept and move on.

I really missed using the blog, and have wanted to update it for a while but time is a precious commodity. Mainly, I wanted to make it easier to capture a thought on the go and share it, and it’s because of that I’ve decided to switch over to WordPress and ditch the old blog, which is still available here.

Why would anyone care? Well they shouldn’t but for me, I think it’s quite a good metaphor for the changes in my life. I’ve transitioned from a software development role into an ICT management role in a very short space of time, and as anyone who’s done the same will probably tell you, it’s really hard to let go of the development part, and you think you can do everything, but in reality you can’t and there comes a time when you need to choose what it is you’re going to do in order to concentrate on it and be good at it.

Three years ago, I would’ve said not to use off the shelf software, such as WordPress, believing it better to create a solution more tailored to the business needs, but now, I’m all over it, because I know it’s ready made and whilst it might not be perfect it does the job and it’s free.

Maybe it sounds ironic then that my only new year’s resolution is to be myself more. It’s tempting, and actually feels hard-coded, to want to fit in and to say and do the right things in front of the people you’re with but you will learn the hard way that you are always going to encounter indifference at the same time you encounter support, so just say what you feel is the true answer.

I’m hoping to produce a good number of tutorials and guides this year for all sorts of things, mostly around Xcode and iOS development. I also want to build on my Spritekit game experiments and create something complete and fun.

cover

Star Wars Rebellion – a Game Screaming for a Remake

You could accuse me of being hopelessly nostalgic and you would be spot on. I check the progress on the Grim Fandango remake almost daily, the memories of being completely and hopelessly stuck but as the same time entranced by the magic of the games visuals and writing have created a little sentimental clot of neurones that, when poke, release some sweet sweet endorphins.

Thinking back over the years, there were many great games, many addictive games, but never has a game so inexplicable cemented me to my seat and forbid be to turn off the computer that Lucasarts’ anti-classic Star Wars Rebellion, or Supremacy over here in the UK.

By all accounts the game wasn’t particularly successful, and was critically panned, however there is a massive, loyal fan following for this game, many of those individuals echoing the same memories I have of the game, like when then unlikeliest of scenarios would happen, Chewie turns out to be force sensitive, and together he and Luke set off to capture the Emperor.

For those unfamiliar with the game, it was a turn based strategy game that allowed you to play across a dozen or so star systems as either the Empire or the Rebels. You would build bases and vast ship yards, train soldiers, spies and saboteurs, conduct hit and fade operations, testing the enemies strength or distracting from your true objective. The game mechanics, once established, were very simple, but even on the easiest difficulty it was an incredibly challenging game to play.

46132_full

I’ve thought time and again of porting it to an iPad app (which would be the perfect platform to relaunch the game) for my own use, or even ripping the idea off and trying to create a non-star wars game based on the same game mechanics.

Hear me Disney, there’s money waiting for you, just churn out a HD remastered copy and I’ll leave you alone again.

blog2

HOW TO: Start a New Xcode Project From a Git Repo

I’m currently putting the finishing touches on the Swift edition of Beginning Xcode, when I thought it would be nice to take a break and do some blog writing instead. Specifically, I realised that Xcode doesn’t make it really clear how you go about turning a url for a Git repository, say https://github.com/MattKnott/Bokeh.git into a new project without downloading it.

It’s actually super easy to do this, and save yourself the hassle of managing the download, extracting files etc.

1. Start by choosing a Git repo that you want to work with, I’m going to use the one from my SpriteKit particle effects tutorial, https://github.com/MattKnott/Bokeh.git

2. Next, Open Xcode, and go to  Source Control > Check out

tutorial_xcode_git_1

 

 

 

3. Enter the url of your Git repo and click Next

tutorial_xcode_git_2

 

 

 

 

 

 

4. Finally, choose a location to create the project and click Check Out.

After a short while depending on the size of the project, Xcode will have your project set up, ready to go.

1 2