Return to Jarada Productions

Tuesday, 16 December 2008

Computer Science 2008 - Day 2

I woke up at around 7:15 this morning, having set a few alarms to wake me up then. Breakfast was in the great hall, and was a nice buffet of stuff (pastries, and the full English breakfast). By 9am, we were all back in the auditorium for today's first speech on procrastination, called The Power of Procrastination. This was spoken to us by Jorge Cham, who is the same guy who has created the comic Piled Higher and Deeper.

The speech itself was extremely funny and well put together, and utilised Jorge's comic strip character's. All I will say regarding the speech is that procrastination is not like laziness. Laziness is not doing the things you have to do; where as procrastination is not doing the things we have to do, now! For the rest of the speech though, you really need the wit and charm of Jorge himself.

Next up was the first set of mini tutorials for that day. We had a wide range of different tutorials on offer, as listed below:
  • Track A - Natural Language Processing and Text Mining (Cancelled)
  • Track B - Self-Adaptive Systems (Creating systems that manage themselves)
  • Track C - Designing Technology for Human Values (Human-Computer Interaction)
  • Track D - Realistic Imagery (Cancelled)
  • Track E - Web Science (from Wendy Hall, who has worked with Tim Berners-Lee himself, on how we can't predict how the web will grow)
  • Track F - Computer Vision (Microsoft Research on Graphics and Maths)
  • Track G - Design for the Future Internet (BT Research on the new technology for the future of the Internet)
Obviously there were a wide range of different tracks available to us, and we could only choose one. We decided on Track B - Self-Adaptive Systems, and were not disappointed! This track focused on how we can engineer self-managed systems that have autonomous adaptation. And for those of you who were wondering, this topic literally shouts "Prolog!" Indeed, a lot of the early work done was, we were told, written in Prolog. So for those failing to find a use for the language in the real world, self-adaptive systems is one. A big one.

The systems themselves should change/update their behaviour dynamically in response to changes, without a human's aid. Such as self-configuring themselves, self-healing and self-tuning. This would follow the basic architecture of Collect -> Analyse -> Decide -> Act -- Feedback Loop (although this was the early model and later models compressed this into Controller, Sequencer and Deliberator) with the three-layer architecture model.

There were a few examples with the cat and mouse game (where the cat and mouse can't be in the same room, and the controller must manage this without human intervention) and the Koala example (with a robot that had to take a ball from one location to another). This really was a most fascinating and enjoyable tutorial; creating a networked community of self-autonomous robot's (even virtual robots) would be so enjoyable!

After lunch, we got another wide multiple choice, this time in a group of workshops:
  • Track A: Tech Briefing: Infrastructure at Google
  • Track B: Research Methods
  • Track C: Intellectual Property
  • Track D: Changing the World
  • Track E: Getting your Paper Published in Journals
  • Track F: Digital Divide
  • Track G: Future of Science Publishing
After a healthy debate of what we should go for, we went with Track A, Google! And once again we got a most fascinating talk! The Google talk was a very popular talk, and they had to bring in extra chairs in order to fit everyone in. To summarise this lecture would be extremely difficult; and to write everything I wrote would take too long. So I'll try and find a bridge between the two.

Basically, Google works off decades of Computer Science research, most of which is intertwined with engineering. The user's view of Google is to organise the world's information to make it more accessible and organisable. However, there are large design challenges for that, including the vast scale, huge data growth, wide geographical distribution and the huge latency challenge that Google has set themselves (getting search results and the like delivered to the user "in a blink of an eye".

Google has a vast number of highly efficient servers in highly efficent data centres (they use huge water cooling). These data centres (which are actually warehouse-scale computers) off extremely fast responses and are highly managed. Google is extremely efficient in whatever they do; trying to keep waste to a minimum and recycling all waste they produce.

They also have fast moving applications, good OS System design (using Linux), loosely-coupled distributed systems, distributed data storage, processing and interpretation, and use a wide variety of programming languages (including but not limited to, C++, Java, Python and Javascript). But it's the way they do software development that fascinates me...

They have small teams that use an agile "launch and iterate" philosophy (that is launch internally). Once a product is launched, any engineer across the entire codebase (that is any engineer in Google!) can work on the code. This may seem completely chaotic, as with people working in small teams all editing each other's work, there are going to be variations; but there are strict style guides (and I mean strict) with automated code tests and constant code reviews. Engineers are also given the tools they want. If you want Eclipse, sure! If you prefer Notepad++, sure!

Overall, Google has an integrated tech platform and offers tools on high-quality output with continous agile improvement methodologies. Fantastic! There are also a lot of open research issues within Google; improving distributed systems and information extraction being two (contact me for a full list).

After a short break (Google sort of overran a little) we had our second half of mini tutorials, out of:
  • Track A: Interaction Design
  • Track B: Immersive Environments
  • Track C: Programming Language Semantics
  • Track D: AI for the Web
  • Track E: Sensor Nets
  • Track F: Computer Gaming
  • Track G: Human-Centred and Affective Computing
This time, we decided not to go with Computer Gaming but instead go with another also interesting subject, that of virtual reality and Immersive Environments (Track B).

Virtual environments are where you movements are tracked and the display and audio are changed along with you. The kit is often also voice activated. A few examples of virtual environments include Twinity, Neer and of course, Second Life.

However, they also offer some virtual tools, such as the historic Nintendo series (the Nintendo VirtualBoy, the Nintendo Power Glove, the Nintendo Wii).

However, the research tools used were the UCL ReaCTor, a Virtual Reality (VR) "Cave" system. This system is used because head-mounted displays often cause motion sickness due to high latency (ie, you move your head quickly, and the display updates too slowly, seconds afterwards). This is due to the primitive OS and the low screen refresh rate.

By using the Caves, people are able to immerse themselves more fully in a VR system. This provides a tool, a high-bandwidth human-computer interface, it exploits proprioception and participants treat VR differently from desktop graphics. This is evident from the fact that users behave as if VR was real. As such, reactions are usually appropriate for the situation (they treat virtual characters as real people, react to explosions and projectiles, and also to large drops).

The avatars themselves obviously make an important part in the creation of VR systems; the more realistic they look, the more realistic people expect them to behave, and therefore the less believable they are if they don't behave that realistically at all (if they look realistic that is). Therefore, if you have a stupid AI, make it cartoony and it's more believable.

I'll finish off once again with information on the dinner. We went to Girton College, a 5-10 minute drive from Homerton College. The Gala dinner was officially sponsored by Microsoft Research, and it was very nice of them to do so. At Girton, we entered a nice hall and was offered a Christmassy lunch. To start was pumpkin soup. There was turkey, with sausage wrapped in bacon, and veg. And for desert, was homemade christmas pudding, followed by coffee and tea.

As can be seen by the pictures, we all had lots of fun blowing up balloons (presented in little christmas boxes along with poppers, tape and a horn) and then letting them go to whizz around the room making noise! Overall, a fun evening to end another amazing day at this wonderful conference!

No comments: