Hull Blogs

Aggregated posts from University of Hull students

Progress Update 27th November 2020

In the first of what I hope to become many progress reports, I'm going to list achievements I've made, what I'm working on and what I'm hoping to do in the future. I feel this is a great method of keeping myself…
Read more

Looking back on my time at Sauce

After interning at EKM in using C#, I was interested in exploring other tech stacks in addition to the .NET I’d worked in previously. Throughout my first couple of years at University, I’d seen some presentations from some of the team at Sauce about the different tech they’d been working with and ended up talking to them more at a careers event in University, wanting to find out a bit more about what they did. I was especially interested to learn more about the projects they were building with a serverless stack and was invited in for a chat with John and Matt where I was offered an internship with them. Over summer I got to know the tech stack, product and team and was made to feel really at home, with a snazzy office and FUFF (food fridays) each month to go and have lunch out with the company which was a great time to get to know people better. After completing my summer 2019 internship, I was invited to stay on and work alongside my studies which was great, with 1.5 days in the office each week fitting in alongside my degree, giving me a bit of escape from University work and really useful work experience. I kept working part-time for Sauce up until I finished my degree and have been working with them full-time since. I’ve worked across projects, the main one being helping to bring Ideal Heating’s new smart heating app vision to market, building and testing out features like schedule management, geolocation and smart home integration to build the best experience for users. It’s been great to see the product as it’s grown from mockups to a fully-functioning platform. Working in lockdown Sauce locked down just before the UK went into national lockdown back in Spring 2020, while I was still working on my final-year modules and dissertation. Some projects hit pause while the nation moved to work from home, but in Sauce all the projects adapted really quickly to working fully remotely, with demos, client meetings and stand-ups moving to video calls. Fortunately, even though I moved back across the Pennines, I was able to keep working from home. I think the big fear many have with moving to fully remote working is losing the casual conversations that happen during the day where you get to know your team better. In my team, in addition to the normal sprint meetings and daily stand-ups, we had a call with everyone that we could drop in and out of throughout the day, from quick questions about how some logic works to chatting while we worked. This filled the gap left from having chats at desks and on the way to the AeroPress well. In addition having a weekly quiz for the whole company has been a really good way to connect with people who I don’t work with everyday, with just about everything quizzed by this point - whether it’s remembering your GCSE Geography on how drainage basins work, or demonstrating your terrible knowledge of early 90s TV shows (big thanks to Mel for making them all!) The Tech I got to play with and learn lots of cool tech during my time at Sauce, from building applications using the Serverless Framework to using CircleCI to continuously test and deploy, which also ended up forming a core part of my dissertation. From learning my way around the AWS console and using different services for the first time like DynamoDB for large scale data storage and GCP BigQuery for data warehousing, to configuring devices in IoT Core and alarms in CloudWatch to see when services might be experiencing issues. It was also my first experience working with infrastructure as code, a better way of provisioning and managing services which is especially useful if working in different development and test environments, and making changes in environmental configuration easier to track and deploy. Overall I’ve learned a lot of new technology and had fun while doing it. TL;DR I’ve really enjoyed the last year and a half working at Sauce and have had nothing but great experiences. I’ve worked with awesome people on really interesting projects. As I move on to the next chapter of my working life, I’m excited for Sauce and the team as they continue to grow and expand even more. …
Read more

Corporate Thought Police

Just recently, I had a run in with the University of Hull 'student misconduct' team after a complaint was made by 'a member of the public' about words I'd used online. Allegedly, I had called someone a retard and they had been, wait for…
Read more

Reflecting on End of Semester 2 - Final Year

It’s been a few months since graduating from the University of Hull, moving to working full time at Sauce during the pandemic and making the most of getting outside when it was allowed between the lockdowns. I still thought it was worth giving my take on the final semester modules from 2019-20, and hope they might be useful to anyone looking to choose their modules now, or who has questions about their final year project. Computer Vision Computer Vision was a challenging module, exploring both the theory behind it, looking at edge detection, feature descriptors, convolutional neural nets and also applying it all to create practical implementations in MATLAB. Using MATLAB was new for me, with the challenges of working out how to process images by designing a pipeline to detect and count starfish in a photoset. There were a variety of variants of the same image, with grain, noise and colour shifts applied and also starfish in different scenarios too. To solve this challenge, different pipelines had to be built which would run based on the colour detected in the image, so all extreme colours were shifted to be more neutral before searching for regions in an image. In cases where grain was high on images, additional steps were needed, like using a median filter and eroding away unknown regions before drawing on bounding boxes to mark out the final image. The module was really interesting and provided some cool theoretical understanding. In a world of self-driving cars, understanding how Tesla (and other manufacturers) do object detection is really cool. Fair warning if you’re looking at taking the module; after completing my pipeline I had a distinct memory of never wanting to see a starfish ever again. Distributed Systems Distributed Systems was an interesting module and looked at the challenges of building distributed applications covering everything including FaaS/PaaS/IaaS (all the as-a-services) and looking at their advantages and shortcomings. For the practical part of this module, we had to implement a specification to build out a distributed system in .NET Core 3, implementing both a client and server spec and ensuring it complied with the specification. Postman’s Automated Test Suite came in really useful for building out this application, allowing me to persist authentication tokens generated in a test run and use them in later tests and checking the compliance of my endpoints with the marking criteria. Final Year Project (Dissertation) 📚 I developed a system to crowdsource enhanced merchant data using the serverless framework and AWS for my final year project. Enhanced Merchant data is where a merchant name like POST OFFICE COUNTER LEEDS GBR is converted to Post Office with a map and icon in your bank’s app. Currently banks like Monzo, Starling and Up allow users to contribute back their own suggestions and improvements just for themselves and don’t share this data with other banks. This means this data is often broken, wrong or completely missing, especially if overseas. My solution looked to centralise this, by creating a platform that banks can connect to for accurate merchant data. You can read more about my final year project on the project page here. Concluding Coronavirus made the final semester a bit interesting, with the whole department having to move online in a matter of days. Assessments mostly moved over really well, and lecturers were available to message whenever we needed them. It wasn’t quite the end of University I pictured (especially with no graduation ceremony either!), but it worked the best it could given the circumstances. I was incredibly proud to graduate from the University with a first-class degree and a grade average of 87.57%. You can view my previous semester recaps here: Year 3 - Semester 1 Year 2 - Semester 2 Year 2 - Semester 1 Year 1 - Semester 2 …
Read more

3D Printed Maze

Today I presented a session in our new students induction called “Building Your Brand” which was broadly about how to develop your profile in a way that supplements everything that you are explicitly learning on your degree programme. In preparing for it I came across something that led me to an interesting diversion.…
Read more

Winning at DigiFest Hackathon 2020

Last week I headed down with Dan, Alex and Harry and went to the JISC DigiFest Hackathon at the ICC in Birmingham. After attending DigiFest and CAN last year and having a great time, we thought we’d go along again. This year the teams were great too, with one group creating a game where you increase in XP for the better you do academically, two looked at chatbots (one for medical diagnosis and lecture feedback). Another looked at how holograms could work in the classroom. What we set out to do This hackathon we set out to address how to give students formative feedback earlier. The idea turned out even more appropriate during the current COVID-19 pandemic, as it means that students could get feedback at a distance from their lecturer automatically, and if built on, give automatic code-improvement suggestions to save lecturers further time. Our primary motivation was to save lecturers time when marking assessments as if a tutor has to score and run 300 pieces of code individually; it takes significant time away from their daily teaching, researching or time spent producing lecture content. If all the outputs of a solution or API are tested, marking time can be spent instead on providing individual feedback on the overall solution produced. Day 1: Travel and Meet Alex and I caught the train down to Birmingham on Monday afternoon, and met Dan and Harry in Birmingham in the evening, checking into the hotel to talk about what we were going to build over the next two days, and how we’d realise our idea. After a quick brainstorm, we headed over to The Indian Brewery to meet all the other teams taking part in the hackathon, and the JISC team and apprentices we knew from the previous event. We got to have a chat with the other teams and a catch-up, while we enjoyed some excellent food at the brewery. Day 2: Code Up at 7 am and raring to go, we headed down for a quick breakfast, before heading over to the ICC for 8.30 to get ready to start the hackathon properly. The team split, with me working with Harry who wanted to get some more experience working in React. Dan and Alex (our DevOps engineer) took the lead on building out the CI pipeline using .NET Core and Docker, building containers for the right type of assessment uploaded and building and exposing the correct ports for the assessment submitted. The pressure ramped up as we got towards 4 pm when we were to head down to the main event hall at DigiFest to network with the other attendees at the event. We met some interesting people, saw some cool new products on the Microsoft stand, get some stickers from Amazon and network with some industry professionals. In the evening JISC took us out for wood-fired pizza at OTTO Pizza, the meal was great and we pretty much filled the small restaurant with the team. We chatted some more with the hackathon attendees about how their projects were coming along, then headed back for an early night and ready for a busy final day. Day 3: Code more then present Up bright and early again, grabbing breakfast and heading over to the ICC, we knew we didn’t have much time to complete the product and make a presentation. I got on with finishing the front-end while Harry helped Dan and Alex with a weird bug with containers failing, which turned out to be OneDrive overwriting Docker build files. As the clock ticked down, I got a final version of the presentation together, ready for Harry to present on stage and checked with the projection team that HDCP wouldn’t cause issues with the projector. The presentation went great, and it was great to see what the other teams had been working on too. The end product We won the award for the most market-ready end-product and were pleased with the project that we created, and thought it was an exciting proof-of-concept that could be taken further, and expanded on to help the education field. JISC very kindly covered our costs for the event - and a big thank you to Sue, Paul, Keith and the team for making it all possible. Thanks also to all the other teams in the competition, all the projects pitched were cool. Harry has also done a write up of this event, that you can read here. Video Here's a quick summary video of our time at the hackathon: You can read more about how the solution worked on the project page here. …
Read more

Hull is on it's way to be a Smart City

Just before Christmas, I went along to the first HullStack, a rebirth of CodePen (which I’ve written about on this blog previously), but now with a new name that’s wider than code, and covers the full industry from concept through to implementation. This time, it was Adam from Hull City Council who was talking about Hull’s journey to become a smart city. It’s a bit of a late blog post write up, but it was a really interesting talk. It’s cool to see how a city approaches implementing a system on such a large scale. Smart Cities are often a buzzword that gets thrown around, much like blockchain, and they’re an area of vast growth. London, Manchester and Liverpool are exploring the path to being smart cities; however, in most areas, development is being led by developers and companies without a lot of buy-in from the local authorities. Hull is attempting a very different approach and has created a vision to open up their 300 internal services by 2023, and leading smart development from inside the council, and taking the view that if something can be FOI’d, it should be available openly in the first place. They’re attempting to open up all of Hull, and give developers and entrepreneurs the ability to solve, and create products from technical challenges around their own city. A big problem that Hull has are bridges, there are 13 of them across the City, and it’s a pretty unique situation to have so many of them close together. At the moment there’s a >24-hour notice period between informing the bridge when they need to open and when they open, the email currently just sits in the bridge operators inbox. These should be available in an API, so it can be consumed by mapping operators to smartly redirect traffic, or inform drivers if bridges are closed, or will be closed when they arrive there and so that blue-light services don’t get stuck at bridges too. Buses are another big one, and I was reading about it a couple of days ago on GOV.UK here. Bus operators are required by December 2020 to provide live timetable data, and by January 2021 to provide live vehicle location and fare data to the Department for Transport. Hull is working with local bus providers to implement these SIRI (Service Interface for Real-Time Information) feeds early to bring live stop times to Hull’s interchange and increase the accuracy of the signage at all the stops across the area. Around Hull there are 317 scoot loops, these provide data of how many cars drive through a junction in 5 minutes, their average speed, and the direction they’re travelling from and to. You can see how TGFM have a similar API here. Opening this data showing where cars are going, and how many of them at certain times will help reduce that congestion as this data can highlight alternate quieter routes. Mobile operators provide anonymised data that shows groups of mobile phones moving through the City, and it can give historical patterns for groups moving through. The data will allow the council to see where cycle paths don’t get used for instance, and to put in more infrastructure where people will use it the most. With this data open, it will mean that businesses can open in higher footfall areas, or areas can be improved to attract people back. Next up CCTV, there are around 360 council-controlled CCTV cameras around the area, including traffic cameras, by using computer vision on these images to produce new statistics that weren’t previously available, like the most common routes for HGV travel. It could also show where buses get held for the longest in bus lane merges, and where road layouts don’t work. Parking has already opened up with live spaces data available here, but they’re looking to create an enhanced mapping of the streets for self-driving cars. Through combining all of these in their ‘CityOS’ platform in partnership with Connexin, they’re hoping to create a vast network of open data to allow developers to connect to their entire City with APIs. Their approach to technical development is exciting, as the Hull tax-payer is at the end of the day, the one who will pay for this development. The council want local people to work with them to develop innovative solutions, which Hull can then help the creators tender to other areas like the 342 other UK councils, but securing Hull’s place as the pioneer of fully-connected cities. LoRaWAN is significant for Hull too, as they have the largest network in the UK with the City installing base stations, including on the Humber Bridge. The signal has a range of 16km and allows sensors to connect to the internet and into the CityOS platform. The sensors are currently used for air quality detection, and smart bins are being trialled to provide real-time data on bin use, and save the council money meaning they only need to be emptied when they fill up. It’s an amazing time of technical revolution to be about for, and I’m intrigued to see what comes next from the City. I’m also really interested for the open-data hackathon that they’re hoping to hold later in the Spring. Thanks to Adam Jennison for presenting, and to Mark, HullStack and C4DI for running the event! …
Read more

End of Semester One - Final Year

This is my typically late review of the past semester, it’s hit home now that this is the penultimate one of these that I’ll be writing, and the end of University is starting to feel real now - but the future is exciting. The past semester has been incredibly busy and hasn’t stopped, but I’ve been up to some cool stuff along the way. Data Mining and Decision Systems 📖 Data Mining was my favourite module of the semester and looked at what data mining is, how it works, and why it’s incredibly useful. As well as learning the fundamentals of how it works mathematically and how the tech has progressed to use deep neural networks from the simple neurons used historically, we applied the techniques to a real-world context in the coursework. Through Jupyter notebooks and using pandas to clean the data and spot patterns, building different types of models using scikit-learn. We applied this to a medical context in the coursework using anonymised health data showing various cardiac events and whether they lead to a heart attack. The coursework had an interesting problem domain, as the justification of prediction methods wasn’t just focussed on what provided the highest accuracy metrics, you had to consider the potential of misdiagnoses and how this would affect people. Overall, it was a lot of fun, and I’d recommend having an experiment with data mining notebooks. After exams, I’m planning to explore my student data record from the myEngagement project and see what new information I can find and visualise after cleaning up the dataset. Virtual Environments 📺 Virtual Environments was an interesting module as it looked at how 3D works behind the scenes. As someone not studying games modules, it gives an overview of how artificial worlds are created and made to be believable. It was also fascinating from a psychological perspective to understand how the brain fills-in gaps from what it sees that allow the creation of these experiences. For the coursework in the module we were tasked with conducting a scientific experiment to investigate how either VR and AR affect peoples understanding of their surrounding, in my group we used Microsoft HoloLens gaming, combined with CS:GO and used stroop tests and found a correlation in reduced reaction time with users physically immersed in a game as opposed to playing it on a PC. Final Year Project 📚 The dissertation is coming along well, and I’ve just had my mid-project progress review to assess how far along with it I am. Currently, I’ve built my API with the serverless framework, and have it deployed in production on AWS, using CircleCI to run my build scripts. SwiftUI turned out to be a cool challenge, with some strange and undocumented bugs along the way, but I’m fighting through them! Overall, as a way to develop apps, I’m liking SwiftUIs style. Just got the rest of this next semester to complete everything and write it up now though. I’m looking forward to sharing more about how my project has developed, and what I’ve learned along the way after submission is all complete in April. You can view my previous semester reviews here: Year 2 - Semester 2, Year 2 - Semester 1, Year 1 - Semester 2 …
Read more

UK and Ireland Programming Competition 2019

This is a bit of a while coming, mostly down to the need to generate Mobile Devices content each week. Better late than never. Back in mid October we once again took part in the UK and Ireland Programming Competition. We fielded teams for the first time last year and this year doubled our entries with 4 teams. Each team can have up to 3 members and are given 1 computer and 0 internets to solve up to 12 secret programming puzzles in just 5 hours. http://ukiepc.info/2019/…
Read more

Designing Smarter Train Tickets at HackTrain VI

Trains, train delays, scary SOAP APIs, coffee and zero hours of sleep were just a few of the things that I experienced last weekend when I took part in my first ever HackTrain hackathon; it was three days of excitement, adventure, chaos and code. So what is HackTrain? It’s a hackathon spent, unsurprisingly, on trains, with a focus on looking at how the rail network can be improved; with a cohort of 80, using teams of different backgrounds from across the globe to brainstorm and rapidly prototype new ideas and concepts. Now in its sixth iteration, our hackathon had a focus on ‘putting passengers first’, with all of the challenges having some emphasis on improving customer experience across the network. Day 1: Hello London Up bright and early, I jumped on the train down to London for the hackathon’s grand opening at St Pancreas Hotel and met up with Harry, a #hullCSS alumni and now Microsoft Engineer. The opening event was led by River, the hackathon founder and leader and Andrew, the Chief Executive of Network Rail. We had a host of speakers from the rail industry, each pitching us their challenge areas for the hackathon, with ideas including everything from reducing network delays to modelling digital twins and developing intelligent chatbots. We chose the latter solution and pitched it to the audience, trying to gain support for the idea and find our third member! Everyone got an opportunity to pitch their implementation of an idea, and around 45 people did. After pitching finished, teams had to convince audience members to give you one of their three stickers, and collect the most stickers not to be eliminated! After surviving the brutal team elimination and with 26 surviving teams; we found Ava, our third member and back-end developer to complete our group. After team formation, we grabbed our travel wallet with the tickets we needed the weekend and followed Thanos (see image for context) across London to Waterloo, where we’d wait for our delayed train down to Plymouth. On the train we discussed our hackathon plan for the weekend, and when we eventually arrived, set up for the night in the Village Hotel, ordered some drinks and got to work planning our core infrastructure. After planning how our services were going to work, we headed to bed as we knew it was the only sleep we’d be getting over the weekend. Our project was decided to be a chatbot that will allow you to cancel and exchange tickets using natural language, as well as suggest alternate routes if your train is cancelled for you, or find you an alternative method of travel. Day 2: Home of Computing and Rail Up bright and early, we stacked up on our breakfast before the busy day ahead of us and headed to get our train over to Network Rail’s Basingstoke Campus, an operations and training centre. After going through a lengthy security process to get into the building, we saw their test-track and got to work in one of their meeting rooms. We had a great lunch from the Taco Van at to power us through the afternoon. After a question and answer session and test-track demo from our Network Rail mentors, we headed on a coach over to Bletchley Park, determinedly programming through the motion sickness. We grabbed our table at the National Museum of Computing and set up for the evening of code ahead, once again fed well by the fresh burgers served for tea, and with the wraps at midnight to keep us powering through the night. As the night progressed, Harry continued working on his project, implementing Microsoft’s Bot Framework to understand and learn from interacting with users. Ava continued to wrangle the unusually configured SOAP API provided by SilverRail, as I continued to develop our rerouting tool and get it to find alternate walking, train and underground routes to get people to their destinations. We headed to Dragons Den at 11pm to pitch our idea and progress to a panel of mentors to get their feedback so far, we got really positive impressions from them, spurring us on to keep working through the night. We hit a roadblock with API security implementation around midnight, and all worked together to find a solution and unblock development. As the hackathon numbers dwindled, as more and more people headed to bed, we decided to plan our next steps. I became the scrum master, and we held our first standup at midnight and then every hour through the night. We found a room that nobody was sleeping in and discussed our progress so far, any blockers on our tasks and estimated how long their completion would take before we moved to implementation. As the most significant part of the project, we divided up the work on our API conversion layer (from SOAP to JSON REST), and both Ava and I kept building the APIs as Harry consumed them and trained his bot on potential cases they may be used. Throughout the night Harry would ask people to find the most awkward phrasing of a question they could, as we worked to train his bot on every edge case and get the highest answer confidence scores we could. Day 3: Code Faster and Pitch As the sun started to come up, there was a pile of empty Red Bull cans on the table and a lot of commits. We’d successfully implemented ticket cancellation and were working on exchange. We had to head over to get the train to London, so we paused work and packed up. Train delays weren’t going to stop us from finishing the app in time! When we heard that our train from Bletchley into London wasn’t running on time, we nabbed the first bench we could find at a station, jumped on to Harry’s hotspot and kept committing. As we headed over to Fujitsu’s Headquarters, I worked on the presentation for later in the day, as Harry polished off bot implementation and Ava worked on API changes. As soon as we got to Fujitsu’s headquarters, we were pulled to one side for our code review, the part of the hackathon where the sponsors check your code calls the APIs you say it does and that your implementation ticks all the boxes. We passed and impressed the judges, then heading to grab a quick lunch while Harry prepared his speech for the presentation. Then came the big moment; we had to pitch in front of the audience. Harry had only four minutes to convince the judges on our project, and be selected to go through to the next round of the judging. We made it into the final six teams and had to be ready to present again, grabbing another Red Bull and biscuits between, we prepared for the final showdown. After presenting again, and giving the audience a live demo of our platform in action, we got some great feedback from the judges and some really positive encouragement on it. Both the developers and the challenge setters from SilverRail were also impressed with the product that we created. Overall it was an exciting weekend, and it was really cool to see what the other teams had been up to throughout the hackathon too, from modelling point clouds to helping passengers request assistance with web apps. I had a great time working with Harry and Ava and was really pleased with the end products we managed to produce in such a short amount of time. Harry also has a blog, it’s available here. You can read more about how the solution worked on the project page here. …
Read more

Northern Lights at York Minster

I visited York Minster with my sister to see the Northern Lights exhibition, run by Ross Ashton. The experience of Northern Lights can't really be explained, so here are some pictures from the event.…
Read more

Uni 2.0

A little late to the party with this post because we're about 5 weeks into the semster now, but I am officially starting my second year of university as a Computer Science student.I'm taking Electronics and Interfacing, Software Engineering and Systems Analysis, Design and Process…
Read more

Festival of Daring and Excitement 2019

Another academic year has whizzed by and it always seems to accelerate to a final sprint in the summer. Subsequently, the new year is upon us and we have just finished Induction (Welcome/Fresher’s) Week for the 2019/2020 intake. The grand finale to the week is the student’s introduction to the Bored? Games! events: The Festival of Daring and Excitement. Here is a little account of what went on.…
Read more

Staying Cool

A little while ago I was designing and printing an update to my printer to allow it to use one less motor for controlling the z-axis. The basic printer design uses two lead screws to raise and lower the x-axis. It still does, but now it only uses one motor to control both screws instead of the original two. But that is not what this post is about. Instead it is about staying cool under circumstances to drive one mad.…
Read more

Let's make smart receipts

Over the weekend I wanted to get the fundamentals of Go, so thought that I’d make a new project to get hands-on with it. Through getting email receipts and scraping items from them, I can convert all my Wetherspoons and Trainline receipts into transaction data. Building it The application works by scraping emails over IMAP (the most popular email receiving protocol) and looking through their contents to find receipt items, quantities and costs and then converting it to Monzo’s formats and sending it to them over their receipt API. It’s pretty nice to be able to get a better sense of where my money is going, and if Flux can expand to more merchants it’ll really change banking for the good. In the meantime, my solution makes it easy to look back through transactions at the two merchants and work out what I bought and when! The API isn’t perfect though, and there are a few things that I’d change about it. A Receipt API wishlist You should be able to fetch all receipts for a Monzo transaction, possibly through passing as a parameter like getting extra merchant information, as this would be useful to be able to show in client apps. You should be able to create receipts for the old Monzo Prepaid Card transactions, at the moment if you do it, it just gives you 403 Forbidden. Developers should be able to add custom fields (i.e. Transaction ID/Reference, booking collection ID) and mandate what gets shown on the receipt, as the Spoons app makes sense being an online merchant, but you should still be able to say the address at the pub it was used in. Also, as an aside, Starling Bank should get a receipts API - I previously used them as my main current account, and it would be pretty useful to get that data matched up nicely too. I’ve written some more about how I implemented the application, you can read it here: receiptify on Projects Page …
Read more