Mix:UK 07: Sneak Peeks
Bamboo flute playing with the audience.
Demo of 3D application showing someone's head captured with an MRI, followed by a foot, with bones and flesh being coloured. A sneak peek within us.
Sea Dragon: How to deal with high resolution images, that will be included in Silverlight 1.1 [EDIT: This is the technology used by PhotoSynth]. This lets you stream high resolution images. Demonstration of a commercial for a car that lets you zoom in very deeply until a corner of the image reveals text and a dashboard.
Technology to deliver ads. Project Gatineau is part of adCenter. Some of the demo should be available in beta by the end of the month. Through a report, you can see graphs based on the age of users, which is collected through LiveID.
There's also visualization technology which lets you see where people navigate. There's also a marketing campaign which shows a timeline.
There's a treemap visualization of traffic. This provide tools to let a web site owner to know where people navigate. You can subscribe for the beta on the advertisement web site.
Simon Peyton Jones from Microsoft Research does a presentation about the multicore challenge. Because of the increase in the number of cores, processors are not getting faster anymore. So you need to do task parallelism.
To do parallelism, you need to use concurrent programming objects that have been the same for 30 years, with no progress.
What's wrong with locks? First you can forget the lock, and you have a race condition. Or you take them in wrong order and you have a deadlock. Condition variables get threads to block if someone forgets to notify. And error recovery is very difficult. But theres worse. Locks are absurdly difficult. Sequential code is doable by undergraduate, locks and condition variables done right gets you a publishable paper at an international conference.
Atomic memory transaction: If we could wrap code inside an atomic clause, there would be all-or-nothing semantics: That's the Atomic from ACID. They execute in Isolation. And there's no lock.
How could it work? With Optimistic concurrency. Execute the code without taking locks. Each read and write in the code is logged to a thread-local log. Writes go to the log only, not to memory. At the end, the transaction tries to commit to memory. Commit may fail, then transaction is re-run.
How to do blocking? You could add retry. Retry says "abandon the current transaction and re-execute it from scratch". The system could keep a reference to all the reads you did and only re-exeute the transaction when one changes.
Locks don't compose well. If within an atomic code block there's a request for retry, the whole transaction retries. They also compose well with choice, which lets execute either a segment of the code or another. If code1 retries, execute code2. If code2 retries, the whole transaction will be retried.
There's a run-time cost, but a compiler technology and hardware support can reduce it a lot. It's better to have a correct program than a fast program. Finally transactions can even be faster as there's no locks and it's more fine-grained.
Graphs shows that it's actually faster than fine-grained locking, while being more scalable.
Atomic blocks will be a step forward. IT's like using a high level language instead of assembly code. It's not a silver bullet, you can still have concurrency errors. You can still introduce bugs, but they're much more interesting bugs.
There's a implementation available today in STM Haskell: http://haskell.org/ghc Theres a tutorial on STM in the book beautiful code And there's other papers at http://research.microsoft.com/users/simonpj/
Demo of a video tool that lets you drag and drop videos on a timeline in low-resolution, done in Silverlight with Sharepoint integration.
Expression Web 2 supports PHP!
LiveStation: Silverlight application streaming video from a peer2peer network. There is no browser!
There's a game coming out soon: Halo3! With actual footage from the game.
[EDIT: And finally, we've all received a copy of Vista Ultimate and a copy of Expression Studio! Which is fabulous considering I moaned about wanting a license to Expression Studio at the dinner the night before!]