The Blog

Newcastle – Creative City

There’s an insightful article about Newcastle and its host of attractions, creative talent, venues and events by the lovely Creative Boom team. If you ever wanted to know “Why Newcastle?” then here’s your answer(s)

http://creativeboom.co.uk/features/creative-cities-newcastle-upon-tyne/

Student Placement Week

Screen Shot 2013-07-19 at 16.17.08

We’ve had a great week in the Sun here at Fluid Pixel. Especially as we’ve had the talented William Price on a Work Experience week from Cardinal Hume School. We introduced Will to the development environment and all areas from design to coding through testing. Here’s what he had to say:

“My work experience was an experience I won’t forget. I’ve met some awesome people who have skills far beyond my level. Over the course of the week, I have created a game with Actionscript in Flash. The game doesn’t meet a good standard however I made a game with no knowledge of Flash and Actionscript. I couldn’t have learned these skills without the help of staff in Fluid Pixel and the other companies in the workplace. I had an enjoyable week but it felt quite short, time flies when you’re having fun I guess.”

-William Price

University vs Apprenticeship

Apprenticeship or University

We’ve done quite a few sessions at both Uni’s, colleges and Schools and one question that is coming up again and again is what is the right route into the games, web, mobile or software industry? Although there isn’t a right or wrong answer, mostly it depends on the individual what they feel we thought it would be appropriate to put down some thoughts. We’ve got two different viewpoints as James is a Uni chap and Phil is currently on an apprenticeship so we have nicely balanced viewpoints.

James’ View

Recently we had a little Q&A regarding which route is better, apprenticeship, or industry, when it comes to entering software development.

It begs the question, how important is University? We all agreed that industry provides people with much more knowledge and ability than University, however it is the University’s ability to teach programmers the ‘right’ way of doing things that is its main advantage. It is very easy to form bad habits, especially when someone is developing their skills. Not through their own negligence, but through an inability to ask the right questions. Universities (in general) aim to teach the correct methods of whatever subject matter necessary. In programming this is not just the programming languages themselves, but research methods and theory upon which each language is based and the industry is founded upon.

How important is having a Degree? I’d say it isn’t too important, in terms of your ability, but it does show the employer that have followed a well established route into the industry. Most jobs in software development have a very particular interview process, which may involve one or more exams. This means that if someone isn’t able for the level of programming required, they won’t be hired, degree or no degree. The important thing to show is your ability to learn and your passion for the area, and if a degree helps to show that, then so be it.

The one thing I noticed from going through the University route was that it is very important to get yourself noticed. Be the first one in class in the morning, and be the last one out, if thats what it takes. Enquire about jobs, even if they say they are not hiring. When assignments come in, don’t just give back what’s required, but do something new. Get to know people in the industry! Some of the most skilled people in my class were unable to find work because they were unable to extend themselves. Gone are the days of the geeky programmers sitting alone in their basement. Most importantly, keep learning, theres always another language out there and, especially in an undergraduate degree, you will have plenty of time to yourself.

We were also asked about what a programmer should learn if they want to teach themselves new areas. There is no simple answer for that. I learnt C++ for my first language, and I found it helped me because it was much easier to switch to high-level languages later on, such as Java and Python. However, I agree with many that it is probably better to learn high level languages first, as they are much easier to learn, and then progress to the lower level languages gradually.

I didnt go down the apprenticeship route, but its very easy to see why it benefits those who do. I dont care how hard a University course is, it will never challenge you like industry does. It;s good that industry is so challenging, it keeps everything interesting, and, as most programmers will attest to, nothing is more rewarding than succeeding at something that took forever to create! Apprenticeships offer tastes of both areas, and provide a much better basis than simply going it alone. Simply put, you need an education, but you also need a career. There’s no better way about ensuring this than an apprenticeship.

Phil’s View

School leavers are faced with a few tough choices when leaving school or college these days. For the majority, they will wish to continue their education in Universities across the country but with the rising cost of fees and the sheer difficulty faced in even finding a job, this option is just not viable for some. This is a problem that I was facing when I was finishing college. With the majority of my friends and peers already receiving offers from Universities, I decided to opt for the apprenticeship route to both further my education and also gain some industry experience with it.

The primary benefit of choosing this path was the experience within a real company in the industry. I think that most employers nowadays value experience more than education and to gain this while studying at the same time is incredibly useful. I feel that I have learned far more from my time at work than I have in the collective hours I’ve spent at college over 4 years as being in the work environment means surrounding yourself with people more experienced at what you are learning. In my case a part of my apprenticeship involved being at college for one day a week. I expected that I would be using what I’d learned at college to reinforce what I was doing at work but it was very much the opposite. Having the time at work made the college much easier to understand and complete. Having a team of professionals with you to offer help and advice is a tremendous bonus.

I was mainly put off University because of the rising financial costs of gaining a place at even smaller campuses. I was constantly hearing stories of people coming out of University tens of thousands of pounds in debt and still unable to find work which was certainly not something I wanted to deal with. Fortunately, being on an apprenticeship also entitles me to a salary. I’m not sure how this compares to student loans for example but it is very helpful regardless. At the end of my 2 year apprenticeship, I have the option to continue on a year top-up course to take my foundation degree up to a full level 6 degree making the time it takes to be fully qualified the same which either route I would have chosen.

There aren’t really too many drawbacks to mention. Compared to other people who have been through University, I’d say that they have more knowledge than me when it comes to programming but with that being said, I haven’t completed my apprenticeship yet. With working a 40 hour week as well as doing a 2 year college course, the workload can get very overwhelming if you don’t properly manage your time. The working week can also be long and tiring but if you’re not prepared to put in the effort that is required, you really aren’t going to receive the benefits.

My favourite thing of the apprenticeship route however is working and learning from colleagues on projects together. With University or college you get a project to work on for 8-12 weeks and then you’re done with it whereas in industry you get to revisit old projects and improve upon them and then release them into the world. After all that you can look at it on the Android Market or the App Store and say “I helped make that”.
Either path has it’s benefits and drawbacks and it just comes down to what feels right for you. The important thing is to seem keen in what you’re doing and really push yourself to do the best you can.

Custom fonts in XCode and iOS

If you are having problems adding custom fonts to XCode for use in iOS projects, ensuring that you’ve added them to the projects resources, have correctly referenced their filename in the project’s .plist file and setup your custom font with:

UIFont *customfont = [UIFont fontWithName:@"font name" size:16]

If it’s still not working then check the string you’re using for the font. It has to match what font name XCode has for the font, not the font’s name or even what Font Book says the name is for the font. Here’s an easy way to log all of the fonts included in your project and therefore use the correct reference:

for ( NSString *familyName in [UIFont familyNames] ) { NSLog(@"Family %@", familyName); NSLog(@"Names = %@", [UIFont fontNamesForFamilyName:familyName]); }

Easy.

Here’s some more discussions on Stack Overflow with various other problems and solutions.

Looping background colours of UIView

An app we’re working on required the background of a UIView to animate through a number of colours in a loop and we wanted to share the solution with you.

Create an array of as many colours as you want and set-up your array index in your view (we did it in viewDidLoad but it could be anywhere)

self.backgroundColours = [NSArray arrayWithObjects:
[UIColor colorWithRed:64/255.0 green:70/255.0 blue:69/255.0 alpha:1],
[UIColor colorWithRed:221/255.0 green:71/255.0 blue:77/255.0 alpha:1],
[UIColor colorWithRed:221/255.0 green:77/255.0 blue:117/255.0 alpha:1],
[UIColor colorWithRed:227/255.0 green:124/255.0 blue:168/255.0 alpha:1],
[UIColor colorWithRed:228/255.0 green:136/255.0 blue:115/255.0 alpha:1], nil];

self.backgroundLoop = 0;

Then create an animateWithDuration function that calls itself:

- (void) animateBackgroundColour
{

	if (self.backgroundLoop < self.backgroundColours.count - 1)
	{
		self.backgroundLoop ++;
	}
	else
	{
		self.backgroundLoop = 0;
	}

	[UIView animateWithDuration:4 delay:0.5 options:UIViewAnimationOptionAllowUserInteraction
					 animations:^(void)
					{
						self.backgroundView.backgroundColor = [self.backgroundColours objectAtIndex:self.backgroundLoop];
					}
					 completion:^(BOOL finished) {
						 if(finished)
						 {
							[self animateBackgroundColour];
						 }
	}];
}

And that’s it. The UIViewAnimationOptionAllowUserInteraction is important so that input can be used for the rest of the interface as by default when an animation is playing interaction is disabled. You can include as many colours as you require. If you need to stop the animation then either call:

[myView.layer removeAllAnimations];

Which will remove all of the animations currently playing, which is fine if this is the only one. Alternatively you can start a new , very short, animation on the background colour that returns it to its original (or new) state. This will override the looping animation nicely. Here’s a few tricks people have used to do this very thing, you may find one or more works for your situation.

Newcastle hits critical Mass

Screen Shot 2013-02-07 at 11.12.23

Nice report on the BBC today about startups in Newcastle and the community that’s really building nicely.

Happy to be part of it.

Happy Christmas Everyone!

Merry Christmas 2012

Here’s a special Christmas card for you, courtesy of BubblePix.

TimeMaps on BBC Click

A project we’ve been working on for a while has made its way onto BBC Click. They feature the website to the accompany the Apps for iOS and Android that are to be released soon.

This is the second time one of our projects has featured on the prestigious show, after the BubbleScope, the 360 panoramic smartphone attachment was given a full segment that became one of the most popular videos to watch online.

BubblePix At the Gadget Show

If you’ve been keeping updated about what we are up to then you’ll know about the BubblePix project. Well, the good news is that we’ll be exhibiting at the Gadget Show Live event. If you’re coming along to the show then check out our stand in the Future Tech Zone.

If you’re not lucky enough to be going, then look out for exclusive news and information coming from the show and keep an eye on http://bubblepix.com as the only place to share 360 images and video created on mobile devices in an instant.

Closed Captioning

We recently had a mobile project with lots of video content, all of which needed to be subtitled and work on the iPhone and iPad.

Many hours of research, hair pulling and frustration later it became clear that the Closed Captioning world is a broken, horrible place to be. We had the videos, we had the transcript but there seemed no way of putting them together in a timely and cost effective fashion. The business model in the closed captioning world (like many others) is make it really complicated so that you either have to pay someone to do it (at a cost of around £10 per minute of video) or buy software with a price tag on multiple thousands that although sounds like the saviour, is actually just makes things even more complex.

The problem? Multiple incompatible formats of subtitles, multiple broadcast formats, all requiring their own solution and no-one place to find out reliable, up-to-date information from. Eventually we got it figured out, a nice in-expense (but not free) way to get your own closed caption service up and running.

Continue Reading →