Between studying hard for my masters degree — and applying for jobs for when it ends — I have managed to find some time to set up a new website called CSBlogs.com
People who have been reading this blog for a few years will have seen HullCompSciBlogs.com mentioned a few times, for those that haven’t it was a service which aggregated all of the blog feeds of computer science students at the University of Hull.
John Van Rij did a great job of keeping that service online, but unfortunately doesn’t have time to maintain it anymore. Since the service went down I have grown to miss it — I guess I didn’t realise how much enjoyment I get from seeing how well everyone is doing from back in Hull — current students, alumni and even lecturers.
In order to resolve this problem I set up CSBlogs.com with the aim of getting all of the Hull Computer Science bloggers and others from around the country onboard.
The website itself is hosted on Microsoft Azure and utilises CloudFlare to provide security, analytics and a global content delivery network. Node.js is used as the backend programming language and the MongoDB NoSQL database is used for persistent data storage. Nodes packages are used extensively, including Express.js for routing, Handlebars for data-binding to the front end and LESS-Middleware to improve CSS development.
Complicated acronyms aside I have worked hard to make setting up a local development environment and contributing source as easy as possible for beginners via the instructions I have written on the homepage of the Github repository. I would really recommend any 1st or 2nd year students give it a go — open source development looks great on your CV! And if you need any help contact me as per the instructions.
We are currently in the process of setting up all of the required frameworks and technologies and writing guides for how to get involved (this has actually been one of the more challenging and interesting parts of the project so far) and hope to have a working minimum viable product in the next week.
At this point I would like to thank Charlotte Godley, Alex Pringle & Rob Crocombe for their extensive help in getting the project to where it is now. Charlotte has taken on a role of project management, Alex has developed a rudimentary database controller and Rob has been working on implementing less.js support and developing a theme for the site.
I will keep the blog updated with progress on the project.
I started us off by managing to throw together a few slides, and talk for a few minutes, about entering the world of open source for the first time. If you found yourself inspired by that you should check out my blog post on the same subject here.
Once I’d finished my bit and introduced the prizes, generously provided by Microsoft, fellow MSP Merrick Sapsford, took the floor to talk about why developing for charities can be a worthwhile endeavour. Merrick develops applications to support a charity which maintains and flies the last XH558 Vulcan Bomber.
Through this work he has managed to make connections with other aviation companies that are giving him paid work, has managed to get into a list of some of the top grossing apps on the iPhone Store and has even managed to get a few free iPhones in the process. You can check out his app here.
Dr. David Grey — who you may remember from such introductory lectures as… — had the unenviable task of following Rob. Dr. Grey spoke about FoodCloud — a multi-platform augmented reality application the university is developing as part of its research into teaching people about how their food is grown and produced. The app seemed like a really cool idea and the implementation was obviously really smooth! It’s a shame we don’t hear more about research within the department (until recently I was under the impression the department did very little)
To finish things up Simon Grey, without the use of even the 4 slides he was allowed, invited everyone to sign up for Global Game Jam 2014. GGJ is a games development competition over 48 hours, like a double length Three Thing Game, which takes place all across the world, starting at 5pm in each time zone. This year Hull will be hosting the biggest individual event in the UK, in a collaboration between The University of Hull, Hull College and the Grimsby Institute. Simons put a lot of work in so if you’re interested you should sign up here.
Overall the event was a success, a lot of people heard and learnt about a lot of cool stuff. Hopefully people were inspired to do something new, and if not at least there was pizza afterwards… 😉 I hope anyone who nabbed a prize enjoyed what they got. The Microsoft-branded lip balm seemed to be a crowd pleaser at any rate. Hopefully we will take what we learnt from this event and try something similar again next semester!
As some of you may have read on Rob Miles’ blog, I will be running one of the events at the Computer Science departmental bash this year. The event is called Microtalks and gives any student who wants to be involved 5 minutes in front of an audience of their peers. The time limit, along with a limit of 4 power-point slides mean that each students presentation will be short, snappy and interesting.
The idea of Microtalks is to get both students and lecturers here at the University of Hull sharing knowledge and success with one another, as an extension of the Hull Comp Sci Blogs initiative. Examples of things people could talk about include:
Talking about an open source project they’ve contributed to
Talking about a game or piece of software they have produced
A cool bit of technology they have discovered, like a new programming language or methodology
All participants will be getting prizes provided to me by Microsoft through the Microsoft Student Partner Program, a big thanks to Rebecca Moore and Phil Cross for their contributions. There may be some even better swag for the most interesting talks 😉
If you want to talk about something cool in front of your fellow Computer Scientists sign up by clicking here, more information about the event including the time and location can be found on Rob’s blog here.
I hope to see you all there, if not to present yourself, then to listen to your friends and peers!
A few weeks ago, when I was at Campus Party: Europe, I attended a fascinating lecture by Michael Meeks about LibreOffice. Whilst his talk was mainly about getting people interested in using LibreOffice, he also suggested that people get involved in the development of open source projects. As I was interested in this particular aspect of his talk the most I put my hand up, and asked the question
How easy is it to get involved in Open Source, particularly LibreOffice?
Michael, who works at Collabora – a company which supports LibreOffice, gave a great response and asked me to speak with him after the talk. I did so, and it was at this point he mentioned the “easy hacks” list that LibreOffice developers maintain, the purpose of which is to take the fear out of getting involved in an open source project. Items on the easy hacks list should only take a few hours to complete, be simple in their nature and allow to learn about the coding standards and systems used by the project.
For those who aren’t quite as interested in productivity software as myself, LibreOffice is a Desktop Office suite which has similar functionality to that of the famous Microsoft Office package, it consists of the following programs:
Writer (similar to Microsoft Word)
Calc (similar to Microsoft Excel)
Impress (similar to Microsoft PowerPoint)
Base (similar to Microsoft Access)
Fast forward a few weeks to the 12th of September and I stumble across an item on the easy hacks list that interests me, this item is called “Bug #67158 – FORMATTING: Add shortcut Ctrl+K (or cmd + K on OS X) for inserting hyperlinks”. It interested me because it seemed like it would be relatively simple to add, it’s just an event handler after all, and it was marked as “Medium importance, enhancement”, this meant it was both considered more ‘important’ than some of the other easy hacks, and it was more likely to impact on users as it was an enhancement people could actively see as opposed to code formatting changes (which, of course, are equally important, just less visible to users). Another interesting aspect of this bug was that it affected Writer, Calc and Impress, and my changes would be useful to everyone who used these programs, whether they used Windows, GNU/Linux or Mac OSX as the event would work on all 3 major operating systems.
I clicked through, from the list, to the Bugzilla entry for the task and assigned the task to myself and left a comment showing my interest in taking it on.
The next thing I had to do was boot into my Fedora GNU/Linux operating system and set to work on making the development environment in which I would make my changes, This is an area in which GNU/Linux, particularly its package system, really comes into its own. To install every single resource I needed to work on the project, from libraries to images, I just had to to type
$ yum-builddep libreoffice
Following this I just had to download the latest version of LibreOffice from their Git repository and run a shell script which dealt with everything else. It was really easy to do following this guide.
Now all I had to do was add in the event handler, and ‘fix the bug’ so to speak. Simple right? Well, sort of. LibreOffice has 7,075,071 lines of code (according to ohloh.net) so finding exactly where my fixes should go, and what exactly I should be writing to invoke the Hyperlink Editing and Insertion Dialog was a daunting task. Fortunately because my bug was assigned to the easy hack list some regular contributors to the project had left some pointers on what to do. Petr Mladek from Suse pointed me in the direction of the file which I needed to edit in order to add an event handler.
I played around with the file, finding out what the various variables did and meant and decided to swap around what Ctrl + C and the delete keydown events did, in order to see how easy it was to edit a pre-existing event handler — It was at this point I ran into my first issue.
When I attempted to build my changes it worked, however, when I ran LibreOffice Ctrl+C still copied things, and delete still deleted things. I was flummoxed. Thankfully when I reached out to Petr for help he was happy to provide it, it turned out I was providing the compiler with flags that meant it would ignore the changes I had made, with this knowledge I managed to get delete to copy things and ctrl + c to delete things, useless and in fact harmful changes, but a great test.
Having reverted the aforementioned events to do what was expected, I added in an event for Ctrl+K, using the same code style and formatting as the other event methods. To check the event was firing I made Ctrl+K Select all text in a document. Brilliantly, it worked first time.
I then set out the find what I would need to call in order to invoke the hyperlink editing dialog. This was made a lot easier by a really awesome utility LibreOffice has implemented called OpenGROK. OpenGROK allows you to search through all of LibreOffice’s code, instantly, using a web interface. I quickly found the method I needed to invoke to call the HyperLink Editing Dialog and added it to my code and compiled it. It worked! Awesome. My first patch to LibreOffice was ready to be submitted for review.
A review, in the context of open source, is when one of the project maintainers — kind of a manager of the project — looks over your code, ensures it does what it says it does and that it doesn’t break anything else, and then implements it into the main branch of code. At this point your code is part of the project and will then be made part of the next update which will be made available to the 150 million people who use LibreOffice! (thats over 100,000 downloads every day).
Today my code was accepted into the main branch. It’s really exciting to think that soon over 150 million people, and possibly many more in the future, will be using some of my code. I can’t wait to contribute some more, not only to this project but to others too!
You’ll be able to download my fix as part of LibreOffice 4.2, the release dates for which you can see here.
Last week I was fortunate enough to be with some of my fellow Microsoft Student Partners, some Windows Ambassadors, some Microsoft Interns and some Microsoft Employees at Campus Party Europe, an event which was described by the BBC as ‘Glastonbury for geeks’.
I would say this was fairly accurate, except there was less mud! Like Glastonbury there were several stages, a whole host of interesting people to meet, and tents!
Working on the Microsoft Stand
Tuesday through to Friday I worked for 6 hours a day on the Microsoft Stand. It was really good fun! Our job was to talk to people about Windows 8.1, Windows Phone 8, Microsoft Surface and the Xbox One and endeavour to answer any questions they had about either the software or hardware. As well as that we tried to get as many people as possible to take our surveys, in return each participant got a surprisingly stylish pair of Windows 8 Branded Sunglasses and a glow stick!
I was also fortunate enough to have Academic Audience Lead Phil Cross, point a few developers who had questions about Visual Studio and developing for Windows platforms my way.
Throughout Wednesday and Thursday I spent much of my shifts writing a Windows 8 app for the project management website TeamworkPM. It was especially interesting to do this because my display was being projected on two 42inch monitors above my head, this meant everyone could see what I was doing and I attracted quite a few developers to come and talk about developing for the platform.
In the evenings when the stand got a bit quiet we would try to entice people to come and see our wares in a variety of ways, one of which was through the medium of dance :P. My highlight was the Macarana, or the Microsoft Macarena as I called it. Below you can see us all dancing and waving our glowsticks to the ever-entertaining Harlem Shake.
The main thing that first attracted me to the offer of working for Microsoft at Campus Party Europe was the fact that we could spend our down time watching some of the many speakers that came to talk about their respective fields.
I was fortunate enough to catch 2 or 3 lectures a day, from people as well respected and diverse as Jon “Maddog” Hall — chairman of Linux International — and Ian Livingstone — President of Eidos and founder of Games Workshop.
The O2 arena hosted 8 stages, of all of which had talks from 10am – 10pm each night, so there was certainly a lot to take in — too much to write about here.
My favourite talks were actually that about free and open source software (sorry, Microsoft), and the relatively new phenomenon of open data.
At the end of the week my fellow MSP’s and I were super happy with being able to have witnessed one of the coolest, and largest tech conferences in the world, but even on top of that Microsoft were generous enough to allow us to keep the devices we had been using throughout the week to showcase both Windows 8.1 and Windows Phone 8 to customers, this meant a Nokia Lumia 920 and a Microsoft Surface RT each!
I was over the moon with the Surface RT because I had been looking to get an RT device for a while to test the performance of a few of my apps on the lower powered ARM CPU’s — but I was especially happy with the Nokia Lumia 920. My phone contract ends in a few days, and because now I have an awesome new phone I’m gonna go on a SIM only plan and save myself some money 🙂
I would like to say a massive thank-you to everyone involved at the O2, the people behind Campus Party, and of course Microsoft for making everything work like clock work and giving me a fantastic opportunity to learn from some of the best minds in our industry, a lot of laughs, some great knowledge and some cool electronics! I hope to see you all again soon!
Today was another enjoyable, yet incredibly long day — I left my flat at 8:40am and didn’t get back to it until 7pm this evening! As with any other day it all started with me dragging myself out of bed and attempting to get ready for a full day of computer science before the bus left without me, fortunately as I woke up a bit earlier than usual today and my bag was already packed from the previous evening i managed it.
From 9:15 – 10:05 in Lecture Theatre A of the Robert Blackburn Building I had a Quantitive Methods for Computing Lecture with Dr. Gordon — thankfully I think I am finally starting to get some of the more advanced parts of the module and I am hopeful of not only passing but hopefully doing well! From 10:15 – 11:05 we had an induction follow up lecture ran by Dr. Gordon, Amanda the Administrator and the head of computer science (who’s name totally escapes me) — this essentially was a question and answer session to work out any issues we had and was full of sarcastic banter from some of the students in the row in front of me — very funny indeed.
After an hours bacon bap break we return to AS3-LLT — where the induction follow up had been held — for a fascinating Computer Systems lecture on “The Nature of Computers Today & the Launch of the Home Computer” which detailed how computers scaled down from being massive room sized machines which several users connected to with “dumb terminals” and automated much of the computing process to the personal computing at home. The irony of course being that the move to the cloud is a move back to mainframe style systems, its weird how such concepts come round again.
After this Rob and I has 2 hours to fill before our QMfC tutorial so we decided to venture into the MASSIVE Brynmor Jones Library — which was formerly the library of Philip Larkin, one of the most famous poet laureates of all time and the namesake of one of the buildings at the university — its pictured above. Its 7 floors tall and thanks to Murphy’s law all of the Computer Science and Maths books are on the top floor — however we were pleasantly surprised by the views presented to us once we’d got to the top. Some of the pictures I took are below:
After the brief visit to the library we waited in the Sanctuary bar in the Student union for our 3rd Lecture of the day with Dr. Gordon — a tutorial to support the earlier lecture for QMfC. This was excellent and helped me finally get my head round equations with fractions of x in — which I’m sure will be vital in my day to day life 😉
After that we had a one hour Programming Lecture which consisted of learning about Programming languages and our jobs as programmers. We learnt a few very important things, 1) If you don’t keep the specification of a contract your customer wont pay you. 2) 66% of IT projects fail — mainly due to miscommunication of what the end result should be and perhaps most interestingly
English would make a terrible programming language as a lot of its words are ambiguous and could mean any number of things given the situation its used in. Computers are too thick to understand this and require a precise language where one word or phrase can only have one meaning.
That’s the sole reason we have languages such as C#, Java and BASIC.
After this I went to Freeside‘s first meeting of the year in which they installed Linux onto the attendees computers for them — in this case it was the brand new 10.10 distro of Ubuntu. It was lovely to speak to all the people there, especially “TastyWithPasta” — the executive of the ComSoc at hull as well as to have some free fairy cakes and Pepsi Max, I can’t wait to see what’s going on n the future with the Department of Computer Scientists FOSS group.
Well, it seems I’ve written far too much for anyone to bother reading again so i’ll leave it there!
If you’ve gotten this far well done!
BTW: If you like reading stories that make no sense whats-so-ever you may be interested in Jess’ blog about her really weird dreams which no-one (including herself) understand — you can find it at http://luciddreamerjess.wordpress.com/