Categories
Blogging

Computer Science Blogs Beta

Rob and I have both been doing a lot of work on CS Blogs since the last time I blogged about it. Its now in a usable state, and the public is now welcome to sign up and use the service, as long as they are aware there may be some bugs and changes to public interfaces at any time.

The service has been split up into 4 main areas, which will be discussed below:

csblogs.com – The CS Blogs Web App

CSBlogs.com provides the HTML5 website interface to Computer Science Blogs. The website itself is HTML5 and CSS 3 compliant, supports all screen sizes through responsive web design and supports high and low DPI devices through its use of scalable vector graphics for iconography.

Through the web app a user can read all blog posts on the homepage, select a blogger from a list and view their profile — including links to their social media, github and cv — or sign up for the service themselves.

One of the major flaws with the hullcompsciblogs system was that to sign up a user had to email the administrator and be added to a database manually. Updating a profile happened in the same way. CSBlogs.com times to entirely remove that pain point by providing a secure, easy way to get involved. Users are prompted to sign in with a service — either GitHub, WordPress or StackExchange — and then register. This use of OAuth services means that we never know a users password (meaning we can’t lose it) and that we can auto-fill some of their information upon sign in, such as email address and name, saving them precious time.

As with every part of the site a user can sign up, register manage and update their profile entirely from a mobile device.

api.csblogs.com – The CS Blogs Application Programming Interface

Everything that can be viewed and edited on the web application can be viewed and edited from any application which can interact with a RESTful JSON API. The web application itself is actually built onto of the same API functions.

We think making our data and functions available for use outside of our system will allow people to come up with some interesting applications for a multitude of platforms that we couldn’t support on our own. Alex Pringle has already started writing an Android App.

docs.csblogs.com – The CS Blogs Documentation Website

docs.csblogs.com is the source of information for all users, from application developers consuming the API to potential web app and feed aggregator developers. Alongside pages of documentation on functions and developer workflows there are live API docs and support forums.

In the screenshot below you can see a screenshot of a docs.csblogs.com page which shows a developer the expected outcome of an API call and actually allows them to test it, in a similar way to the Facebook graph explorer, live on the documentation page.

CS Blogs API Documentation
CS Blogs API Documentation

Thanks to readme.io for providing our documentation website for free due to us being an open source project they are interested in!

The CS Blogs Feed Aggregator

The feed aggregator is a node.js application which, every five minutes, requests the RSS/ATOM feed of each blogger and adds any new blogs to the CSBlogs database.

The job is triggered using a Microsoft Azure WebJob, however it is written so that it could also be triggered by a standard UNIX chronjob.

Whilst much of the actual RSS/ATOM parsing is provided by libraries it has been interesting to see inconsistencies between different platforms handling of syndication feeds. Some give you links to images used in blog posts, some don’t, some give you “Read more here” links, some don’t. A reasonable amount of code was written to ensure that all blog posts appear the same to end-users, no matter their original source.

Try it!

I welcome anyone who wants to to try to service now at http://csblogs.com. We would also love any help, whether that be submitting bugs via GitHub issues or writing code over at our public repository.

Danny

Categories
University

Microtalks at the Computer Science Christmas Bash!

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
  • Anything, in fact, to do with technology!

I will be talking about my recent contributions to LibreOffice, which you can read about here.

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!

Danny

Categories
Modern Experience Development Programming University

Hull CS Blogs for Windows 8 Version 2.1 Released

You may remember a very similar Blog Title from a week ago, saying that version 2.0 of Hull CS Blogs had been released for Windows 8. After some feedback from Rob Crocombe and noticing a few things that irritated me I have made a few minor improvements and released version 2.1, which you can update to from the Windows 8 Store or download from here.

Changelog:

  • Changed the name on the Start Tile from “Hull Computer Science Blogs” to “Hull CS Blogs” for Aesthetic Reasons
  • Added the label “Latest Blog” above the latest blog on the home page, so now the blog title on the picture has more context
  • Improved performance on caching, meaning the initial start up of the app is much faster
  • Added “friendly dates” to each blog tile – e.g. “2 hours ago”, “3 Days ago” or “1 month ago” rather than “16/03/2012 16:45”
  • Made it so you can see who Authored each blog post on the main page
  • Improved UI for Split Views
  • Fixed a bug where the Latest Blog sometimes wouldn’t appear

I hope you enjoy the application! Please rate and review, and don’t hesitate to get in contact if you have any bug reports, ideas or feedback!

Thanks,
Danny

Categories
Modern Experience Development

Hull CS Blogs for Windows 8 Version 2.0 Released

Since I changed my domain from DanTonyBrown.com to DannyBrown.net my Hull Computer Science Blogs application has experienced a few difficulties. This is because it looks for a list of Contributors (blog writers) from the old domain, which I totally forgot about before I let it expire.

Having noticed the problems I set out fixing it right away. Whilst doing this I also added a few extra features.

I completely rewrote the user interface, making it more touch friendly, scale-able across all screen sizes and including a snapped view for every page. Below is a gallery detailing all the changes, in each instance the old UI is shown above and the new improved UI is below:

I also added in ATOM support so you can now enjoy the blog feeds of people who use the standard which competes with RSS, such as those who use Google’s Blogger Platform to post. This includes Dr. David Parker amongst others.

You can download the application here or just go to the Windows 8 Store to complete the upgrade now.

I hope you enjoy the app, and as always I love any feedback you may have!

Danny

Categories
Mobile Application Development Modern Experience Development

Winner! Windows 8 App Generator Competition

Microsoft is really heating up its drive to get more applications in the Windows Store, as part of this push they have a few competitions on — which, if you’re a developer you should definitely check out!

One of these is the Creative Bloq App Generator competition, which is described below:

Whether you’re an experienced Windows developer or a newcomer to the platform, there’s an incredible range of prizes to be won – and EVERYONE who enters has a chance to win. As well as prizes for the Ten Best Apps and the overall Grand Prize winner, there are also 28 daily draws, where winners will be randomly chosen to receive some fantastic prizes. All you need to do is register here, either with a live app in the Windows Store or with an app you are building – or even just thinking about building. And as soon as your app is available for download in the Windows Store, you’ll be entered into the draws and competition.

I signed up to the competition with my Hull Computer Science Blogs application for Windows 8, and much to my surprise received an email a few days ago which read:

Good morning Daniel,

Congratulations you are a winner!

Your app Hull Computer Science Blogshas been chosen at random as one of the Creative Bloq and Windows 8 App Generator competition daily prize winners.

You have won a 32GB Windows tablet (make and model TBC), this will be despatched to you no later than the end of January 2013.

I can’t wait to receive my tablet in January and find out what make and model it is 😛 You can be sure to find a receive of it here at some point in February,

Thanks Microsoft!
Danny

Categories
Mobile Application Development

Hull CS Blogs for Windows Phone v1.1

A few days ago an update which I’d written for the Hull CS blogs windows phone app went live.

Here are the release notes:

  • Updated splash screen to match upcoming Windows 8 MX Style App Splash Screen
  • Fixed a bug which meant that the last blog posts “abstract” could be covered up by the app bar
  • Various Minor Bug Fixes

🙂

I hope you all enjoy the latest version of the app

Danny

Categories
Life University

Computer Science Welcome Party

Scalextric is cool! Especially when you mix it up with Computers! Thanks to Rob Miles for all the images in this post

After our presentation on Thursday morning we were conscripted to help out at the Freshers welcome party, not being one to turn down an afternoon of computer games and free alcohol the rest of the Hull CS Blogs team and I turned up early to help set things up 🙂

Our first job was to move some tables around to make a play area for the Skalextrics set that was going to be the centerpiece of the party, we then wen’t apart fitting the pieces of track — including a bridge — together and doing so was just as much fun as I remember from when I was a kid.

What isn’t the same as I remember things is pretty much everything else about the car racing game, now your cars are partially controlled by a computer — you can set up proper races rather than arguing over who won, interdependently change the acceleration speed and max speed of each car, and even assign virtual fuel limits forcing your cars to take pit stops every few laps or run out of gas and stop working! It’s more like a computer game than a real game!

Exciting Racing Action
Exciting Racing Action
Race Control Software Showing Race Leaderboard
Race Control Software Showing Race Leaderboard

I spent a lot of the party by the Rob’s laptop which was controlling the cars as well as meeting new freshers and talking about the Hull CS Blogs platform. There were however lots of other things to do such as playing rock band with computer science lecturers, or wii tennis with freshers! 😛

After a while I claimed my two free kopparbergs and a few sandwiches. At the end of the evening there was a quiz, which we took part in but were not allowed to win 😛 It was good fun anyway and featured classic Rob Miles questions such as:

Q: Which cheese is made backwards?

A: Edam

Turns out we actually got the high score of 41, shame I wasn’t allowed to win 2 years in a row 😉 It was great fun to go to the party and as always it was brilliant to meet more people passionate about the course and hopefully some future bloggers!

Danny.

Categories
Blogging Modern Experience Development

Introducing Hull CS Blogs for Windows 8

This week I’ve been working on porting my Hull CS Blogs app for Windows Phone 7 to Windows 8 (The PC &  Tablet Operating System).

I’ve been able to use a lot of my code from the WP7 app, but making some changes. For example saving and writing files is now done through Local Storage using StorageFolder, StorageFile and Stream objects rather than through Isolated Storage on Windows Phone. It took me a while to get used to the new API’s but now I understand them I actually prefer them and think they make more sense. For example my code to load an XML file on Windows Phone 7 Looked like this:

public static void LoadXML(string Location, out XDocument XMLFile)
        {
            // Get the local storage directory for this application
            using (IsolatedStorageFile IsoFile = IsolatedStorageFile.GetUserStoreForApplication())
            {
                //Open the file and make it into a stream
                using (IsolatedStorageFileStream IsoSteam = new IsolatedStorageFileStream(Location, FileMode.Open, IsoFile))
                {
                    XMLFile = XDocument.Load(IsoSteam);
                }
            }
        }

And in Windows 8 it now looks like this:

        public async static Task LoadXMLAsync(string Location)
        {
            // Get the local storage directory for this application
            StorageFolder storageArea = Windows.Storage.ApplicationData.Current.LocalFolder;

            // Get the file itself
            StorageFile storageFile = await storageArea.GetFileAsync(Location);

            // Read the file in as a stream
            IRandomAccessStream randomAccessFileStream = await storageFile.OpenReadAsync();
            Stream fileStream = randomAccessFileStream.AsStreamForRead((int)randomAccessFileStream.Size);

            return XDocument.Load(fileStream);
        }

Whilst the Windows 8 code appears to be longer, to me it makes more sense, and that can be more important in projects such as ours in which the code is going to be handed over to other software developers. First you find the directory, then you find the file, then you use it. It’s the exact same way of accessing data as people do in real life, or through windows explorer.

At the moment I’m still working on the user interface. An interesting challenge of Windows 8 development, which I haven’t had to deal with before in Windows Phone development, is the large amount of different screen sizes and resolutions that devices can have. In Windows Phone 7 there was one size,  800 x 480px.

The Windows 8 version of Hull CS Blogs should be available on the Windows Store before Windows 8 is available to the general public on the 26th October.

Danny

Categories
Blogging

Introducing The Hull Computer Science Blogs Workgroup

I’ve found that for projects like this is useful to have a Facebook group as most people at uni check Facebook more often than their Email Inbox

You may recall that earlier this year I started work on a Windows Phone 7 application for HullCompSciBlogs.com, this quickly progressed into a full scale project to make sure that the 3 smartphone operating systems with the highest market share had an application available. So far we already have a Windows Phone 7 app available on the Windows Phone Marketplace and an Android App available on Google Play.

Cameron is still working hard on the iOS application and expects that it will be available through iTunes in the very near future! When we were discussing this we both agreed that the back end system needed a complete revamp.

When I was designing the Windows Phone 7 application I decided on using XML as the data interchange format, mainly because I was getting used to using LINQ which means that an XML based solution is very easy to implement in C# for Windows Phone. I never expected that it would turn into a full scale project and instead expected that it would remain my own personal project. Probably a silly idea in hindsight considering that the Hull CS Blogs very fundamental idea is that of a community. Not only is XML not as well supported out-of-the-box on certain other fruity platforms, its not the best format for the job. In my opinion JSON is much better because it provides the same data in a much smaller file due to its simpler syntax.

The Data Interchange Format is just one niggle with the system, the other is that it is at the moment a bit of a pain to update. I have to manually edit an XML file to create, edit or update information on featured applications and contributors — which is based on my portion of Freeside, so no one else has access rights in order to update it themselves. There’s also currently no system for someone to submit their blog to our system and have it reviewed before becoming publically viewable. So the addition, removal and editing of contributor profiles and blog feeds isn’t exactly the perfect solution at the moment.

The final big issue with the system is that we simply don’t keep enough data on our contributors. The system we are currently proposing will keep the following details for contributors:

  • A display picture
  • Their full name
  • URL’s for both their website and blog RSS feed
  • Twitter Username
  • LinkedIn Username
  • Reddit Username
  • Date they joined HCSB
  • Study Year
  • Study Programme

Whereas at the moment we only keep their Name, Twitter username and Blog RSS url. We’ll also keep information on applications developed by students and lecturers who attend the university including:

  • Platform
  • Release date
  • Name
  • Version
  • Price
  • License type
  • Description

At this point we need to think about security because we carry a lot of information. It then becomes a bit more of a project that needs to be handled by more than one person, and instead handled by a team of competent computer scientists, and wheres better to source them than from the list of contributors itself? Therefore yesterday I put together the Hull CS Blogs Workgroup consisting of the current mobile application developers, John Van Rij — who set HCSB up initially — and a few people I thought would be helpful in producing a back end.

The basic aims of The HCSBW is to create a community based around Computer Science at the University of Hull based on an open JSON api that can be expanded on and improved by University students for years to come (one of the reasons why the whole system will only be written in language formally taught within the university itself) allowing students to improve their career prospects by getting their story out there for employers to see.

It will all begin properly in freshers week where the team and I will be presenting to the new first year computer scientists in an attempt to get them interested in Hull Comp Sci Blogs and indeed blogging itself. I’ll be sure to write about how our software project and social project of getting people on board works.

Danny.

Categories
Blogging Mobile Application Development University

Hull CS Blogs App for Windows Phone 7 Submitted

Last night I finally submitted Hull CS Blogs for Windows Phone 7 to the Windows Phone Marketplace. The concept started out because I wanted to make a few applications for the Windows Phone Rewards program, which rewards you with a point for each application you successfully get on the Marketplace. These points can in turn be exchanged for prizes such ranging from XBox controllers to Helicopter Lessons and Surround sound systems to track days.

Original versions of the application just showed the blog RSS stream from Hull Comp Sci Blogs, and required the user to download the entire steam each time, which saved some data compared to going to the full desktop-orientated website but not much. Building on that core feature I incrementally added more and more features, making sure each one worked correctly before moving the next. In order I added:

  1. Contributor blog feeds
  2. Contributor twitter feeds
  3. Image backgrounds for the pages
  4. Caching of the contributor blog and twitter feeds, as well as the latest blogs feed
  5. Featured application hub tiles
  6. An about page
  7. An “Email support” task
  8. Enhancements to the twitter experience
  9. Progress bars for everything.

After point 7 I issued a beta of the software to some of my fellow computer scientists through the Windows Phone Marketplace Beta feature. Everything worked as expect and I got lots of good feedback from little things such as “You’ve mis-spelt download in the about page” to “Sometimes the main feed doesn’t update unless you press the back button and reenter the application”, which is obviously a more serious glitch.

Some people even offered suggestions for what they’d like to see added to the app, James Czerwik-Hampshire asked for the ability to click a twitter name and go to the persons twitter profile which is implemented in this version and James Croft asked for the ability to pin a contributor to the start screen, which I’ve started work on but jumped back to version 1.1.

Issuing a beta was definitely a good experience, and made the product a much better experience for its target audience. I had particularly good experiences because I know my target audience very well, they’re my fellow students, and so could tailor it to their exact needs and get them to test it for me.

Over the last few days, since my last post, I’ve been fixing bugs and adding in features that have been requested. Last night I submitted the app for certification and hopefully it should be on the store by Monday 18th June, if everything goes to plan and the reviewers don’t find any bugs.

I shall be writing about the many, many things I’ve learnt about Windows Presentation Foundation and C# throughout the course of making this application over the next few days. So keep your eyes peeled 🙂

Danny.