• Final Year Project

    Oct 21, 2011

    At the University of Reading the final year of Computer Science contains a module known as the Individual Project. This is worth around 22% of the entire degree. A student may choose a project from a list of suitable projects drawn up by project supervisors. Should a student feel strongly that they possess a good idea it is up to them to formulate this idea and link with a project supervisor at the University to aid them with the project and the report.

    My project this year comes under the title Mobile Computing. The area of mobile computing itself is rather broad and open to interpretation. There were a number of suggested areas in which to create a project in. Something I feel is important for all is education. This featured rather heavily within the options. Upon discussion with my then Project Supervisor I discovered there was an opportunity to work with the World Association of Girl Guides and Girls scouts to help them to deliver some of their educational materials in a non-conventional way, Mobile. mLearning is an area of interesting research, and I hope that this project will provide a gateway into further research on the subject. Some of the ideas I'll write here aren't actually within the scope of my FYP, though they are ideas I don't want to lose track of.


    Upon meeting with WAGGGS I quickly discovered that many of the potential issues with creating a mobile application for such a global reach was very similar to the issues we had discovered whilst working on our Imagine Cup project. Chiefly signal and availability.


    The idea is not to just provide the educational content itself, but to create a means of engagement with the user. The plan is to achieve this through quizzes on the device. The idea of these is that they'll serve as a top up to the courses as a whole.

    WAGGGS have a non-conventional educational style, I hope to be able to add to that through the implementation of my final year project through the power of Mobile Computing. With smartphones being increasingly common and application usage being popular amongst the majority of users it makes sense for education to reach into this market.

    Currently I plan on creating a mobile application on the Android platform which consumes a service provided by a Ruby on Rails server. Initially I had planned that a user would log in through this to track their progress and potentially have an achievement system much like that of the Khan Academy and other platforms like the Xbox 360. This was intended to increase the frequency of application uses and encourage the engagement. But since then it was deemed that the users would already be sufficiently motivated to learn through the choice of adopting the subject.

    I intend for the server to be open sourced at the end of the project. So that a community, and hopefully myself, can maintain it and begin to create content for a variety of subjects. So through adopting MVC hopefully the web client will be as functional as the mobile client, whilst also maintaining the ability to consume it on a mobile device for a large variety of subject areas. This will hopefully result in a branch of a pedagogy within mLearning.

    WAGGGS have specific needs for their mobile application, so this is what will take a high priority to begin with. Provided I manage to stay on track I imagine that some segments may be useful to release to jump start development in the future. Specifically, I would like to allow the application to download certain materials for later consumption and store it locally on the device. In large areas of their target demographic.


    I'm planning on implementing a RESTful HTTP service on the server. I have deadlines with regard to a mobile application to reach first. Theoretically, it is possible for there to be no need for a web service, and time constraints may lead to full adoption of a mobile platform. But this is not something I desire as I see mobile computing being just as much about web services as it is applications running on the hardware itself.

    I hope to keep the blog up to date with any major headway I make. Currently my web server has implemented user authentication and password resets, but there is no way for a user to change this whilst logged in - I intend to add this at a later date as functionality is there.

    The server itself is also the web client. As such, I'm implementing it all together. Thankfully with Ruby on Rails this has proven to be simple so far. I'm beginning with utilising Twitter's Bootstrap for my CSS styling. Though I may later change this or customise it specifically for WAGGGS. Though currently I don't see too much of an issue with it as it stands.

    The Android application is currently full of hard coded values (with dynamic functionality), but I'm gradually learning about the basics of the platform. Once that is underway the back end should be fairly simple to make changes to to ensure that it is dynamic and queries a local SQLite Database. I also have no Android device. So all of this is being developed on an emulator at this current point in time. I would greatly appreciate donation of a device for development - it would hope that it would speed up the use of the application I'm developing. As great as a mouse is, it's no touch screen!

    I've already put a lot of planning into it and design of the system. Though, admittedly, not the visual design of the applications. I'm excited at the prospect of working on the implementation of this project over the coming months. Provided I can get my head around the concepts I hope that my planning proves to be useful and correct. If all goes well I may pursue developing an application on another mobile platform; Windows Phone 7 - mainly as this is completely free and through the UK MSP scheme I should have a device to test on.

  • Where do I begin with Windows Phone 7 Development?

    Oct 15, 2011

    Where can I get the tools?
    You can either install full Visual Studio 2010 and update it to Service pack one first. Or just go straight for the download from: http://create.msdn.com. This will install the latest SDK (7.1) and includes Expression Blend for Windows Phone, which will allow you to quickly design and create your application without the need to know how to program thanks to SketchFlow!

    Tools are installed, now what?
    You can easily dive right in to developing right away if you're familiar with Silverlight, or there are many resources available out there for introducing you to it.

    One of the tutorials I found most interesting, in depth, and easy to follow was the series of Windows Phone 7 Jumpstarts on Channel 9.


    I wrote a few blog posts a while ago for some quick reference to WP7 development. I haven't had a chance to test these lately with the release of Mango, but I believe the principles are the same. I also apologise for the formatting issues, but if you click the pastie number to the left of the 'raw' button you'll hopefully be able to view it more easily.


    What is the Silverlight Toolkit?
    The Silverlight toolkit is something that includes WP7 controls, which are not, by default, in the SDK. Now, although it is possible to create your own custom controls through the power of Silverlight and Expression Blend, it can be tedious to do so - and knowing that there are already some controls available it makes sense to use them.


    How do I use it in a project?
    • Add resource Microsoft.Phone.Controls.Toolkit
    • Create folder: Toolkit.Content
    • Add images into "Toolkit.Content" from: "Program Files > Microsoft SDKs > Windows Phone > v > Icons > dark"
    • Mark images as Build Action = "Content" in the properties window
    • Rename them to something like: ApplicationContent.Cancel.png for them to automatically load into the phone, and to change color depending on the user's selected theme.
    Students make money, for free!
    If you're lucky enough to be a student then Microsoft have an awesome portal, which also contains links to downloads and tutorials called Dreamspark



    Once you sign up and get verified you'll be able to activate your student developer account, which allows you free submission of 100 Applications on the Marketplace! Any money you make as a result of this, is yours, and you haven't paid a thing for it!

    A lot of people have ideas for mobile applications but don't take the first steps to turning that idea into reality. Now you know that you can do it for free, and make money. What's stopping you?

  • Being an MSP in 2012

    Oct 7, 2011

    Recently I found out that I've been selected as a Technical Microsoft Student Partner at the University of Reading, along with Dan Rodgers (@dansgalaxy) - I'm unaware of others at the University at the moment.



    This year's activities kicked of to a stunning start at the Live Meeting yesterday! Complete with @bennuk wearing a fez and making continual geeky references, and announcement gongs from a new member of the Microsoft UK Students team @joannatonguk!

    It's great to see that the team really seem to have listened to what MSPs had to say last year, and as a result this year the MSP Scheme looks to be the best yet! Complete with expanding on our UK MSP Meetup idea last year by announcing an annual MSP Summit packed full of events and talks!

    MSPs have access to a brand new online portal. The portal is now in tune with the Metro design and is complete with Office 365, and a new social tab which allows them to communicate with other MSPs right across the world. Other benefits to this year's MSPs include a full MSDN subscription, a hardware pack, copies of Office 2010 and Office for Mac 2011, and last but by no means least - a brand new Windows Phone 7 device!

    "Who is your daddy and what does he do?"
    MSPs are student representatives of Microsoft to provide students on campus a point of contact with Microsoft. You can ask an MSP about Microsoft Technologies, ask them how to get free developer tools from Microsoft via Dreamspark, or just have a chat - they're happy to help!




    How do I apply?
    Simply follow the link from the image bellow to www.microsoftstudentpartners.com and apply! You'll need to submit a short video to introduce yourself and why you should be an MSP.



    If the MSP Scheme doesn't sound quite right for you you can follow Microsoft UK Students on twitter twitter.com/MSUKStudents, or like their Facebook page and get involved!

    It's looking to be a great year for MSPs. I'm really excited to be a part of it, and if you're interested in joining a Mobile Development Society at the University of Reading, please head on over to our Facebook group and give it a like so we can kick it off this year! I have some exciting things planned in relation to Windows Phone 7 development as it's so easy to get started!


  • OSX Lion

    Sep 14, 2011

    Recently I went through the pretty painless procedure of upgrading my Macbook to OSX Lion from Snow Leopard. After spending some time re-configuring it was almost back to how it was. But it was far slower than before.

    Getting used to Natural Scrolling didn't take very long, apart from when using a scrolling mouse - that certainly took some time. But now it seems second nature, and going back to windows seems a little odd sometimes.

    Sadly it erased some of my settings, which took me some time to discover, locate, and change back again. Other than that there weren't seemingly too many changes.

    The slowing seemed extreme. 3x longer boot times and far longer shutdown times than I'd had before. So I tried rebooting in Safe Mode (holding shift), which I've read does some rebuilding for speed. No joy. Next I tried repairing disk permissions using Disk Utility, the difference was fairly minimal (and quickly reverted itself again). So after nosing around on the internet I found the solution for me.

    Holding down option (alt) whilst booting allows you to select which disk to boot from, the non-default one of these provides Disk Utility again, but this time allows you to repair the disk, rather than just disk permissions. After doing this I enjoyed faster boot times than before, but still a little longer shutting down occasionally.

    Very nice user experience, with some fluff which is easier to revert to be more like Snow Leopard.