Showing posts with label surface. Show all posts
Showing posts with label surface. Show all posts

Tuesday, 15 November 2011

Android workshop and Surface

It feels unusually warm for November, which has made the past week quite pleasant for running. I've gotten 4 runs in over the last week, and I'm hoping to keep up at least 3 runs a week until the end of the semester. Dr Cutts talk last Wednesday on computing science education has caused a bit of introspection on how I use my time, and has made me realise that I don't always spend it wisely. I'm a workaholic, I get lots of work done, and I consider myself to be quite well organised. But maybe I could achieve similar things in a lot less time. Lately I've been focusing more on coursework, really trying to get as much done as early as possible. I've never had to pull an all-nighter working towards a deadline before, and I certainly don't plan to start any time soon.

I'm excited for the start of Week 12 because, other than the obvious reasons of having no more deadlines, I'm likely going to be putting on an Android development workshop in the School of Computing Science, along with another classmate. It'll be cool to give something back like that, and hopefully attendance is pretty decent. I'd certainly hope so, given that the Mobile Software Engineering degree has over 5 times as many students this year as last. The more Android projects I work on, the more I notice patterns emerging and the ability to re-use code. Things have gotten to the point now where any project I do in Android has about 50% re-used code. I think myself and James have a decent amount of experience to offer and can help teach other developers how to address problems that we've already encountered.

Week 12 is also the start of a fortnight dedicated to project work. My project at the moment is in quite a good state, I reckon. As far as implementation is concerned, I'm well ahead of schedule and the main technical concerns have been addressed. I don't know if I've mentioned it before, but I'm working with Microsoft Surface this year, and one of the technical challenges I'm approaching is how to display information when the Surface has stuff on top of it. I find this an interesting problem because it's only natural that a tabletop computer has to remain usable at the same time as being used as a table.

So far I've been iteratively developing a prototype which displays a shape in the largest unoccluded space, and have just started to animate this shape as it moves around the tabletop due to objects being placed on or removed from the Surface. There's some really cool stuff going on to make this work, and we (my project supervisor an I) are probably going to submit a work-in-progress paper to CHI2012 about our research so far. It's a new and novel area of research and it'd be the highlight of my academic "career" if that paper gets accepted.

Here's a terrible quality video I took earlier showing a prototype in action.


Wednesday, 24 August 2011

C#, Surface and Running

Since my last post I've taken up running. I've bought new shoes, fought through some hiking blisters and learned that I need to smarten up and pace myself. Running never really appealed to me before, but that was largely because I sucked at it. I'd put on any pair of trainers and head out without any consideration for progression and form. It was really an oversight on my part, because I've had experience with weightlifting which taught me to put an emphasis on proper form and planned workouts aimed at making progress.

Hiking in North Cyprus
I wish I was there again...
I'm addressing all of these issues now though and for the past week have been starting to carefully build up a base of fitness. Walking and cycling over the past few weeks has improved my fitness but I still need to ease my body into this, especially as running is more of an "impact" sport than cycling. My running trainers are comfortable and provide just as much support as I need, being flat footed. I've not yet ran over 2 miles in a single session, instead focusing on starting small and building my distance up slowly. After this post is finished I'll be heading out for another, while there is a break in the rain.

I'm a week into my 100 mile challenge and I've already covered 29 miles. Feels good.

In my fourth year of university I'll be undertaking a solo project which accounts for a significant part of my degree. Although I'm still discussing and arranging the details, I'm most likely going to be working with Microsoft Surface, Microsoft's touch-screen tabletop computing system. It's a technology completely new to me and I'm excited about working with it.

Of course, that means learning to develop for it, which also requires me to learn C# (C sharp), a language I've got no experience with. So far I've had no difficulty with it; it's so alike to other languages that I've used before. It has some small details though which I really like.

One of these is "Properties". Properties provide easy encapsulation without the need to explicitly call accessor and mutator methods. Whereas encapsulation in Java requires that for a private variable foo you create and use methods getFoo and setFoo, C# allows you to do the following:

public class Nyan
{
    private int foo;

    public int Foo
    {
        get { return foo; }
        set { foo = value; }
    }
}

Although the definition is similar to that in Java, it means you can access foo through the Foo property, like so:

x = Nyan.Foo;
Nyan.Foo = 15;

It's a minor detail, but it's an idea I really like.