Sunday, April 29, 2012

Featured @ The Silverlight Times Daily


I just found out that my blog is being featured at the online tech newspaper The Silverlight Times Daily, which is published by a fellow technologist Nithin Mohan. The article being displayed is the last one I published about how to rapid-prototype a video UI interface using only behaviours and simple event handlers to change application states using timed transitions and animations (check the article here).

Here is the link to the technology stories, featuring the article. Here is the published information about the article and myself. Here is Nithin’s technology blog.

Nice surprise on a London’s rainy, grey spring Sunday. Cheers!

Saturday, April 28, 2012

Masked Video Silverlight Interface

Here’s a simple sample of a Silverlight Video Interface. The idea came to me from something I was watching on television. I wanted to create a simple grid-like interface that could just mask an underlying video. The exercise also includes animated transitions to random UI arrangements each time the video ends.
imageStarting Position…
imageNext Position…
I created the app using only Microsoft’s Expression Blend. The interactivity is mostly based on behaviours and visual states. Here is the simple code I used to play the video and transition between states whenever the MediaEnded event is fired.

The XAML is just a 4x4 grid with a bunch of rectangles.

The Visual States definition is the one making the changes and firing up the animations. The beauty of Blend is that you can achieve complex levels of interactivity with pre-built behaviours and tweak them to your needs really fast. This as you could guess, allows rapid prototyping to prove concepts and interaction behaviours.
Since I don’t think is worth to go through the visual states of the app here, I have posted the full solution for download on Github. Feel free to get the code and play with it. Try to use only Blend and change the transitions, animations and timing. Hope you have fun with it!

Cut&Paste London 2012

London design crowd was able to experience an extreme and vibrant design competition last Friday @ Village Underground. Cut&Paste was in the house !

Cut&Paste London - Thursday, April 23

I got to the event  a bit early just after stopping at a nearby pub for a cold pint. It was the first time at Village Underground and I must say that I really dig the place. Great for music gigs and a perfect fit for Cut&Paste setup. Nice big screens allowed us to see the team’s design screens and one displayed the event real-time video feed.


We had to warm up with a drink before the thing started. Soon enough the host, D.ablo started the show. The three-rounded team competition had 3 teams of 2D/3D designers ready for the challenge.

First team was composed of Yeen Phong Trinh & Sylwia Bernatowicz, the second team had Colin Bigelow & Jay Harwood, and the third team was pairing Pavel Ivanov & Stefano Ottaviano. Make sure to click and check their profiles and their work online.


Each round lasted around 20 minutes. The first round was about the concept of the design, 2D mood board/collage works in a speedy fashion. The works were good, although I wasn’t terribly impressed with the output of this round. The following are the final works published in the Cut&Paste page.

image image image

After this one, we took the change to sketch and make some draws at the “Design for Clean Water” corner, powered by Adobe and Charity Water.


The second round was far more exciting. The best 3D Model created in 20 minutes. The tool of choice? Maya (my favourite 3D tool by the way and the one used when I worked developing video games). I must say that here was were the magic happened. The tool is awesome, but everyone demonstrated against-the-clock amazing skills.

My favourite was definitely the Dubstep monster having a blast as playing with London City, work from team 3, Pavel & Stefano. Check it out !


Round three was complicated by social-network voted constrains, while teams needed to complete their masterpieces and present a styleframe.

Although I had to leave before the event ended, I know that Steve West was declared the motion/animation champion of the night. Check the other animation works presented !

The event, the urban vibe, the place and the setup were great and the mix worked out very well for the teams, the organizers and the crowd itself. You can follow Cut&Paste and keep an eye on the upcoming world events. The music, provided by Kay Suzuki was punchy and inspiring. The works were outstanding!

It was a really good experience with a good mix of arts, music and technology. I hope that Cut&Paste continues the work and keep the gigs alive all over the world, and maybe in the future, evolve to encompass not only design, but application development and user experience competitions !

Congratulations to the winner team Colin Bigelow and Jay Harwood, well deserved.


Catch you guys later…


My First Computer

A couple of days ago, a few of my colleagues started a thread about the first computers we had. In my case, my first actual personal computer was a Pentium clone, which I was able to buy a year after I actually started studying computer sciences at the University of Costa Rica. Life circumstances didn’t allow me to get a computer before, and I have to admin that choosing computer sciences as my career without having any idea about how computers worked!

However, I did have a kind of computer when I was a kid…I had an Atari XEGS system, which on top of being the coolest gaming console ever, it had personal computer capabilities with the addition of a keyboard. The XEGS system, part of the 8-bit computer line,  was released in 1987, 25 years ago !!!

Here are some pictures of my beloved Atari XEGS system…


File:Atari XEGS keyboard.jpg

File:Atari XE joystick.jpg

File:Atari XG-1 light gun.jpg

Windows Phone Camp in London

A few weeks ago I attended a Windows Phone Camp here in the UK with a few colleagues from R/GA. The event followed the same line that Microsoft UK Windows Phone events have been having, however this was the first which was organized by Nokia. It has been some time since the Camp, and because of personal reasons I wasn’t able to blog over the last few weeks. However I noticed that there’s no information at all about this Camp on the net, so I wanted to share a small summary.
The event was quite good and good some of my mates excited about Windows Phone development, even from iOS and Android developers. The space was organized to have two tracks running in parallel: a set of presentations about Windows Phone development topics and then a working space for people who wanted to jump straight into coding and do some social networking.
During the morning I had the change to meet Matt Lacey, a patient and cool windows phone developers, which by the way is one of the few current devs totally dedicated to Windows Phone development. We talked about the future of .NET, Silverlight, WPF, Surface, Windows Phone of course and some thoughts about competitors, companies, and the market situation for the upcoming years. All in all, really nice talk, thanks Matt ! (check here one of his latest presentations at
Among the highlights, there were several good presentations. Peter Vickers and company from AppaMundi were responsible from most of them, covering topics like Design Sessions, User Journey, Intro to Windows Phone Development, Controls & Control Toolkit, Execution Model, Storing Data, Launchers and hookers, Background Tasks, Marketplace & Submissions and a series of Hands On Labs.
There was a really good presentation given by Dave Crawford from Microsoft, about the principles behind the Metro UI design and practical tips about Marketplace publishing which were really valuable.
Along the tech stuff, the organizers brought the guys from hit + run, which were providing free nice windows phone t-shirts which you could customize on the spot.
I’m trying to get more details from the presenters and organizers, but in the mean time make sure to check the following helpful links and keep working hard on your Windows Phone development skills.
Happy Windows Phone Development!

Silverlight Evolution


It has been a while since the last time I wrote post about Silverlight. I still do pure web Silverlight work in my spare time, and there are some nice features in the latest version (5.0) that are quite cool (maybe a post to come !).
I have been working heavily on backend solutions in my day job, however I still invest a lot of my time playing around with frontend .NET development and more recently pure HTML/JS/CSS development.
One fun fact is that here in the UK most people see Silverlight as a failed web plugin technology. Since flash has massively lost traction on the interactive industry and Silverlight never reached the web browser install base promised, most people don’t look beyond and see it as just another failed plugin. The truth is that Silverlight evolved from an interactive browser plugin for rich internet application development into a full blown multi channel interactive platform.
At the moment, there are several platforms powered by Silverlight, or at least powered by the technology underneath Silverlight, meaning XAML/C# and related platform features. Windows Phone development is probably the best example. Even if you can’t run Silverlight web apps in your phone browser, Silverlight (its mobile variant) is in fact the platform used to create applications. The Xbox interface, which was updated last year is also powered by variants of the Silverlight framework. Also there are countless Silverlight controls and intranet applications powering enterprise applications across the globe, which are not going away any time soon and companies like Telerik being successful at it. The expected Windows 8 OS allows Silverlight development, but more than that, the WinRT framework for Metro style application development is powered mainly by the evolution of the Silverlight framework.
All in all, the main point is that even if Silverlight as a browser plugin was not as successful as expected and even if it ends up being replaced by pure HTML5/JS/CSS development, Silverlight’s evolution is undeniable, and there will be plenty of technologies and frameworks based on the core concepts and techniques that come from this technology.
For the .NET world, it means that our skills continue to spread and evolve, so we can keep taking advantage of our knowledge and experience in the next generation applications.

Monday, April 23, 2012

Designing APIs

Today I got a reference to a post published by Charlie Kindel about an extreme point of view (maybe rather an extreme post title) of why API design and publishing can become a nightmare.

Kindel is a former Microsoft guy behind a lot of Windows tools including Windows Media Center where I had the opportunity to work with him during a couple of MCE projects we did while I was working for Schematic (now Possible Worldwide).

I did some research around since at this point of my career I have been involved in the design, development, publishing and maintenance of several APIs for different projects, platforms and companies. Designing good APIs is hard, and designing robust and maintainable APIs is even harder. I agree on that with Charlie. Once you publish an API you can't change have to live with it forever...until you have to kill it !

Here's a summary of the article and my personal opinion:
  • APIs need to be well designed and proved from the beginning.
  • Public APIs will be used in ways you can't foresee.
  • Once an API has clients and users, you will need to support it forever.
  • APIs are better when they are easy to use, consume and understand.
  • APIs are better when they are simpler and condensed.
  • APIs should be public only when there's a strong reason and a real world scenario for them. 
Charlie was kind enough to share a really good presentation about API design best practices by Joshua Bloch, Principal Software Engineer of Google.

I have published a few posts about APIs implementation taking advantage of Microsoft's WCF Framework to expose APIs that can be exposed as SOAP or HTTP endpoints, which I have used in several projects with great results and I believe the article and the document are quite relevant and helpful for everybody out there dealing with public APIs. 

Although I know I'm not adding a lot of value to Kindel's already published post, I wanted to log this on my blog and make sure to share the document's link with all of you. I really hope it helps.