Disruptive Development with Rob Hogg from Black Marble

Rob Hogg  from Black Marble came to see us today. He was talking about "Disruptive Development". Rather sadly (writes Rob Miles) I was unable to see all the talk, having another commitment for the first part. However, the fact that when I entered the lecture room everyone was dead quiet and paying close attention means that there must have been some good stuff going on. 

The basis of Rob's talk was tuServe, a system developed for a UK police force. He was talking about the way in which a brave developer can achieve a step change in the quality of an application, as long as they can convince the customer (who probably wants to stay with the stuff that they know and love) that what they are talking about is possible. 

I stole the pictures on the right from a case study that Intel have produced about this very successful project. Well worth a read. 

Thanks to Rob for a great session. 

Charlotte Talks Industrial Placements

As soon as I found out that Charlotte Godley, one of our students, had landed a placement at Airbus Industries I made a mental note to ask her to do a Rather Useful Seminar on her experience when returned to the department. Today she came along and gave that seminar.

It was excellent.

Charlotte started with reasons why you should take a placement for a year. (it just makes you all round more awesome) and reasons why not (it is hard work, and you might get out of step with chums in your cohort who will graduate just as you come back). Then she spoke about the best way to get a placement. I think her approach really boils down to three words.

Have a plan.

Having a plan means things like finding out about a company and tailoring your CV and accompanying letter to chime with what they do. It means thinking about the kind of questions you might get asked at interview and coming up with some really good questions of your own for the company. It means preparing for careers events and making hit lists of companies to target. But most important, it means giving some thought to what you really want to do in your future.

A placement is a great way to find out if you really want to work in a large company, or write Python programs, or travel the world in a van solving mysteries (my favourite). It is also a great way to learn the ways of work, where suddenly everyone around you is not the same generation as you and everything stops at 5:30 leaving you exhausted but looking for things to occupy yourself with.  

Charlotte gave a very good description of these issues and the fact that there were so many detailed questions at the end of the session was a testament to how well the material had been delivered. She has put her slides up on her blog, and I've asked if she wouldn't mind doing a screencast of the deck, as I'm sure it would be useful to all our students.

Muyiwa talks Python

Muyiwa enters the "Rather Useful Hall of Fame"

Muyiwa Olu  gave a really good (and Rather Useful) seminar this week about the Python language. It is great to see someone being enthusiastic about a platform they obviously enjoy working with. I reckon that every programmer should have a bit of Python in their lives, because it is just such a fun language, and it was lovely to see some of the features brought to life. A great presentation from one of our second year students. 

You can find the slide deck for the session here

Next week we have Charlotte talking about Computer Science internships and her type at Airbus Industries writing software, including some Python code, which is a nice link...

Semester 2 Rather Useful Schedule

February 4th
Robert Blackburn Building LTA

Getting Started with Python

·         Muyiwa Olu-Ogunleye gives an introduction to the Python programming language


February 11th
Robert Blackburn Building LTA

Industrial Placements

·         Charlotte Godley explains why you should do an industrial placement and how to go about getting one


February 18th
Robert Blackburn Building LTD

Stories from the Sharp End of Development

·         Rob Hogg from software developer Black Marble with an insight into professional development practice


February 25th
Robert Blackburn Building LTA

Careers and Internships Networking Event

·         Meet up with companies looking for software developers as employees and interns


March 4th
Robert Blackburn Building LTA

The GNU/Linux operating system

·         Connor Blakey explains what Linux is, what makes it tick, does some myth-busting and describes its current uses. t


March 11th
Robert Blackburn Building LTD

All about Research

·         Find out what you actually do when you are doing research, and how to get involved. Hantao Liu explains all.


March 18th
Robert Blackburn Building LTA

Platform Agnostic Development with C#

·         Joe Stead explains how to take your programs across platform without even noticing.


April 15th
Robert Blackburn Building LTA

PEGI and Game Certification

·         If you have any inclination to publish video games you should now about PEGI certification and how to effectively design your game for its audience.


April 22nd
Robert Blackburn Building LTA

What Really Happens in Hive

·         Jon Purdy from the Hull Immersive Visualisation Environment gives a demonstration of the technology we have and explains how you can get to use some of it.


April 29th
Robert Blackburn Building LTA

Getting More Marks without doing More Work

·         Tom Fosdick from Seed software shows how to apply yourself to your studies for maximum effect


Rather Useful Seminars are on topics which are not part of the curriculum but are fun and might even be useful. Anyone is welcome to come along. All the seminars will take place at 1:15pm on the given Wednesday, in the locations given. 

James Croft talks Imagine Cup

James Croft came to see us today. He now works for Black Marble and they were kind enough to let him slip across from Leeds to give a Rather Useful Seminar all about the Microsoft Imagine Cup competition. I've been involved with the Imagine Cup as a mentor, judge and competition captain and I think it completely rocks. But I'm very old. I thought it would be more meaningful if someone who has actually taken part came along and said how good it is. Which is just what James did in a well put together presentation. 

Microsoft have done some neat things with your pathway into the competition so that you can build up your development, from pitch video to working software, over the weeks leading up to the finals and get credit, feedback and prizes at every stage. There are the usual three challenge areas, Game Development, App Development and World Citizenship. The World Final is in Seattle and involves trips to Microsoft Campus among other places. And the prizes are awesome. 

The bottom line is that if you're a student you really should engage with the competition. I say this not because I'm convinced you will win (although students from Hull have an enviable record) but because taking part adds hugely to your personal value as a developer and communicator and also sets you up with valuable industrial contacts who will give you feedback, advice, a reference and maybe even a job. It has happened. 

Anyone from Hull who is thinking about forming a team should come and see me so that we can start making plans. 

Thanks for coming and doing such a good job James. I took a video of the session but something strange has happened with the dimmed lighting in the room which has caused awful banding effects on the picture, making it hard to see. Never mind though, James will be doing a webcast of the presentation later on his YouTube channel. Follow him on Twitter and find out when it becomes available. 

Creating and Printing 3D Objects from Software

If you are wondering how programs can create 3D objects this seminar will give you some ideas. We are going to look at a couple of things. First off we are going to find out how we can use a C# program to go from a depth map produced by a Kinect sensor to a solid object that can be printed.

Then we are going to dive inside a CAD program and write some Python code which will allows us to print the weather forecast as a solid object.

Finally we are going to find out how a Fused Deposition Modelling (FDM) printer can be made to print out the designs that we have created.

Should be fun.

Usual place: Robert Blackburn LTA. Usual time: 1:15 pm. Usual day: Wednesday 22nd of October.

Rather Useful Seminars Autumn 2014

October 8th: Fun in the Embedded World with the Arduino

  • Find out how easy and cheap it is to make your own embedded devices
  • Includes a demonstration of remote controlled wedding lights

October 15th: Sensing the world with Kinect 2

  • How the Kinect 2 sensor works
  • How to create programs that are genuinely aware of their surroundings

October 22nd: Creating and Printing 3D Objects from Software

  • How 3D printing works
  • Creating 3D objects from Python and C#

October 29th: Three Thing Game and Monogame + Aardvark Swift “Get in the Game”

  • Getting started writing XNA games using MonoGame
  • Aardvark Swift developer recruitment event

November 5th: Particle Systems

  • Creating impressive effects in your games with particles
  • You can make smoke, fireworks, ants and lots of lovely effects

November 12th: Getting started with the Raspberry Pi

  • Everyone should have “a little bit of Pi in their life”
  • Find out what you need to get started and what you can do with the device

November 19th: App Development in Hull

  • How Hull is setting up its stall to become a leader in app development
  • Discover how you can get local support to turn ideas into products

November 26th: Imagine Cup: Why you should enter

  • Hull has an enviable record in the Microsoft Imagine Cup Competition
  • Find out what makes us great, and how you can become great too

December 3rd: Making a Fortune with your Blog

  • Why you should be writing regularly
  • How you can get your name out there

December 10th: Getting More Marks without doing More Work

  • How to apply yourself to your studies for maximum effect
  • Note that this session is in A3-ELTS

Rather Useful Seminars are on topics which are not part of the curriculum but are fun and might even be useful. Anyone is welcome to come along.

All the seminars will take place at 1:15pm on the given Wednesday, in Lecture Theatre A in the Robert Blackburn Building (except for the very last one, which will be in A3-ELT).

Careers and Internships Conference

Department of Computer Science

University of Hull

Careers and Internships Conference

2nd April 2014 1:00 pm - 4:30 pm

The conference is for students at Hull University who want to find out just what local software development is going on and meet up with the folks doing it. If you are a Second Year you should be looking for internships and summer placements. If you are a Third or Fourth year you should be talking to people with a view to employment. 

There is a lot going on in Hull and this is how you can become part of it. 

Everyone who attends as a conference delegate will get a set of business cards and some other conference goodies. To sign up fill in the details and press submit. We'll be in touch with more information later. The Business Card Text is for your name, exactly as you want it to appear on the card, e.g. "Rob Miles" - which is what I want on mine...

Rather Useful Seminar Program Spring 2014

We are back with a sequence of presentations that are tailored at the professional world. All the presentations are at the same time as usual, 1:15 on Wednesday, but the venue has shifted to Lecture Theatre A on the ground floor of the Robert Blackburn Building.

March 19th

Open Data in Hull – The City Engine – John Connelly C4DI

Turns out that Hull is a really exciting place to be just at the moment. With the interest in the area generated by the successful City of Culture bid, high performance fibre optic networking, new startup incubators and lots of other things coming together the future is very interesting. One fascinating local development is the ongoing availability of lots of local information from Hull City Council. This has the potential to drive lots of new and innovative application ideas. 

John Connelly has been intimately involved with this huge project and will be talking about how the data is becoming available and how you can get involved. We are planning to run a "Three Thing Thing" competition at the very end of this semester where we will be turning everyone loose on data feeds to see what they can come up with.

Personal Presentation – Rob Miles and David Grey

This seminar is a lead in to our Careers and Internships Conference on April 2nd. The event is aimed at any students who are interested in internship and employment opportunities. We've got a lot of employers who are really keen to meet up with students to discuss ways forward.

For the conference  we expect everyone to be suited up and looking their best. In this session Rob and David will run through tips and tricks to look good in these situations and how to present yourself to the max.

You can sign up for the conference (free business cards, info-pack and mug) at this seminar too. 

March 26th

BBC iPlayer and the Video Factory - Phil Cluff BBC

We love it when our ex students come back and tell us what they have been up to. Phil Cluff graduated a few years ago and is now Principal Software Engineer & Team Lead, FM Media Services at the BBC. If you want to find out how iPlayer works, how it was built and where it is going then you should come along and see. 

April 2nd 

Careers and Internships Conference

This is not a Rather Useful Seminar. But we hope it will be more than just Rather Useful. Especially if you are looking for an internship or a job at some point in your future. You might not know this, but Hull turns out to be quite a hotbed of digital based companies who have a healthy appetite for bright young minds. The aim of the conference is to put these two together and get some sparks flying.

If you are looking at the upcoming summer and thinking it might be good to get something lucrative going in the form of a paid internship, or you are looking at your upcoming future and wondering just what goes on in these parts, then you must, must come along. We've got loads of local employers coming along, we'll have talks on local industry and where it is going and you'll get a free bunch of business cards to pass out while you are there. And a nice ceramic mug to serve as a memento of the occasion when your life changed direction. 

This event will start at 1:00 pm on Wednesday 2nd April and run through until around 4:00 pm. We start in LTA with a keynote and presentations before moving upstairs to 312 for a mini-expo. 

Selling Your Game with Simon Grey

image

I think Simon learned a lesson today.He learned not to email me and say “I’ve got some great ideas for the Rather Useful Seminar this afternoon about getting your game to market”. I told him I had an even better idea.

He could do the seminar.

So he did. And it was excellent. We kind of did it between us (in other words Simon said things and I shouted out stuff from the side). We also had John and Josh come by to talk about their experience getting games to market.  They started by publishing games from Three Thing Game and are now planning proper releases, with game companies based down at Platform Studios. Points to ponder:

  • Get something out there. Just do it. Don’t wait for it to be “finished”. Nothing is ever really finished. If you get stuff out there you will get feedback and make your next game even better. The experience of actually getting something approved and in a marketplace is an incredibly valuable one.
  • Set yourself deadlines. Don’t just plan to “Get round to it”. You never will. Tell yourself you are going to ship at the end of November and then do that.
  • Put yourself out there. Like everything else, it is all about networking and who you know. Get yourself business cards. Go to events. Shake hands with folks. Start a blog, get yourself a following and practise your writing styles.
  • There is no such thing as an “Overnight Success”. Minecraft took four years of solid work. Lots of other independent games that came from nowhere actually had a long gestation period and lots of planning behind them. And they were frequently the most recent in a long line of releases that had previously gone nowhere.
  • If something doesn’t work the way you thought it would, see if that makes the gameplay better, and use it if it does. Some games are built on “happy accidents”.
  • Keep doing stuff.

Thanks so much to Simon for putting together such a good presentation at such short notice. You can find the slides here

A Rather Useful Slice of Raspberry Pi

DSC03421_2_3.jpg

This is a slightly processed picture of the audience. It seems that quite a few people have a taste for Pi.

We did another Rather Useful Seminar today. It was all about the Raspberry Pi. I covered what is, how you use it, a bit about hardware interfacing from Python and then we had a bit of time to look at my Pi Arcade table, which I’m keeping in the department for now.

DSC03425.jpg

This is the table, showing off its Pi credentials. Normally I run Mame on it. You can find out more about how I built it here.

Thanks to a great audience. You can find the slides here.

Printing the Weather Forecast in 3D

DSC02977.jpg

We had a good audience for the first Rather Useful Seminar. Some of them were fresh from a first year lecture and must have been feeling a mite peckish. But they stayed to the end and I hope they enjoyed it. The talk was very similar to the one I did last year, but there was a twist at the end, when I printed the weather forecast as a plastic object. Again, I brought along Una the Ultimaker, and again she behaved herself very well.

I’ve become quite intrigued with the idea of generating objects from software, and it occurred to me that with the FreeCad tool having a Python interpreter in it, we should be able to do something interesting. I’d no idea how to use Python to read a weather forecast but fortunately Catalin George Festila has done it here. So I took his methods which use the Yahoo weather feed and prints it out and made a few changes.

def weather_for_zip(zip_code):
    url = wurl % zip_code +'&u=c'
    dom = minidom.parse(urllib.urlopen(url))
    forecasts = []
    for node in dom.getElementsByTagNameNS(wser, 'forecast'):
        forecasts.append({
            'date': node.getAttribute('date'),
            'low': node.getAttribute('low'),
            'high': node.getAttribute('high'),
            'condition': node.getAttribute('text')
        })
    ycondition = dom.getElementsByTagNameNS(wser, 'condition')[0]
    return {
        'current_condition': ycondition.getAttribute('text'),
        'current_temp': ycondition.getAttribute('temp'),
        'forecasts': forecasts ,
        'title': dom.getElementsByTagName('title')[0].firstChild.data
    }

This is the code that he wrote that fetches the weather information from the Yahoo weather service and creates a list of objects that contain a forecast item for five days. The forecast information contains the highest temperature for each day, and that’s what I’m going to use to control the height of each of the columns that I print.

def main():
    a=weather_for_zip("UKXX0476")
    noOfReadings=5
    # find range of temperatures
    highest = float(a['forecasts'][0]['high'])
    lowest = highest
    for i in range(noOfReadings):
        v = float(a['forecasts'][i]['high'])
        if highest < v:
            highest = v
        if lowest > v:
            lowest = v
    # make some blocks 
    plinthThickness = 3.0  
    blockWidth=5.0
    blockDepth=5.0
    blockStartHeight = 5.0
    heightRange = 20.0
    rangeScale = heightRange / (highest - lowest)
    x=0.0
    y=0.0
    plinth = Part.makeBox(blockWidth*noOfReadings,blockDepth, \
        plinthThickness, Base.Vector(0,0,-plinthThickness))
    for i in range(noOfReadings):
        v = float(a['forecasts'][i]['high'])
        blockHeight = blockStartHeight + rangeScale * (v - lowest)
        block = Part.makeBox(blockWidth,blockDepth, \
            blockHeight, Base.Vector(x,y,0))
        plinth = plinth.fuse(block)
        x = x + blockWidth

    Part.show(plinth)
    Gui.SendMsgToActiveView("ViewFit")
    Gui.activeDocument().activeView().viewAxometric()

main()

The Yahoo zip code for Hull in the UK is UKXX0476. This code fetches the weather forecast data and then finds the largest and smallest temperature values (something which should be familiar to first year students). It then makes a row of five blocks, each of which has a height set by the temperature for that day. I’ve re-written it from the demonstrated code so that the coordinates make a bit more sense. The width and depth values map onto the x and y directions, with height being the z value. The code creates a little plinth and fuses a series of blocks onto the plinth. The length of each block is the temperature for that day.

forecast

 

This is the object that was produced by FreeCad. It represents the temperatures 12, 16,14, 17 and 16 degrees, which is the rather chilly forecast for the next few days. I sliced the design using Cura and then, after a bit of kerfuffle I managed to print out the temperature plot.

DSC02989.jpg

The weather forecast. And a tiny owl.
I printed it out really tiny (all of the dimension values above are in mm) but I reckon it came out quite well. I’ve since found a flaw though, in that you can’t tell which way round it is supposed to be read. Of course I could add an arrow or emboss some text to make it easier to use.

I must admit that I can’t see a huge demand for physical manifestations of the weather forecast, but I hope it brought home to folks how easy it is to grab information and turn it into something tangible. There is a lot of scope for random patterns and generating objects from mathematical formulae. And, as you can see above, it is very easy to do. I made an offer that if anyone uses Python to make an interesting object I’d be quite happy to print it out for them.

You can find the slide deck here. At the end Peter was kind enough to show some videos of his printer in action. You can find out all about the “Richmond” 3D printer at his blog here.

Rather Useful Programme Autumn 2013

We are back with a slightly changed logo (it is now orange) and a packed programme of events for this semester.

October 16th

Making Things in 3D

- See a 3D printer in action and find out how you can use Python to make 3D designs from your software

October 23rd

A Byte or Two of Raspberry Pi

- Getting started with Python and your Raspberry Pi

- Making a Raspberry Pi Arcade Coffee Table

October 30th

Creating Gameplay using XNA

- How to get started with the XNA Game Development SDK

- Free sample code and starter kits for anyone taking part in Three Thing Game

November 6th

Getting a Game to Market

- Sensible things to do when you start publishing and selling your games and applications

November 13th

Views from an Angel

- David Clark of Cuba Entertainment talks video game investment and angel investors

November 20th

Correctly Commenting your Code

- Putting the right kind of comments in your code is very important. It gets you good marks and it also improves your code. Find out how from Simon Grey

November 27th

Hacking 101: Information security

- Tom Forbes will be setting up a website and then showing how easy it can be to run penetration attacks against it

December 4th

Blogging for fun and profit

- How to start up a blog, and keep writing it. From keen blogger Rob Miles

All the seminars will take place at 1:15pm on the given Wednesday, in Lecture Theatre D in the Robert Blackburn Building.  Anyone is free to come along.

If you have a burning desire to present on a computing topic Rob Miles would love to hear from you.