Welcome to MSDN Blogs Sign in | Join | Help

Giorgio Sardo Blog


Silverlight for Mobile, WPF, .NET CF, Blend, Imagine Cup, and much more...
Imagine Cup 2008 Memories

Imagine Cup 2008 is over. Another GREAT edition has challenged more than 100 thousands students from all over the world.

This year I’ve been invited as a judge in the Software Design category; it’s hard to describe the amazing week I spent with the competitors, other judges and all the Microsoft ADEs and staff. I thought that sharing some picture might be a good start; however, if you have any question on this or previous edition of IC…don’t hesitate to contact me or add a comment to this post smile_regular

DSC_0038
Louvre (Paris) was the location of the finals!

DSC_00281
Italian Team

DSC_0012
Team UK

DSC_0066
Team China

DSC_0007 
Team Korea

DSC_0047 
Team Vietnam

DSC_0101 
Left to Right: Fotis Draganidis, Caroline Phillips, Emanuele Arpini

DSC_0020
Embedded Solutions entry

DSC_0069
Live ECG to trees!

DSC_0073
Myself and Millo (Emanuele Ognissanti)

DSC_0026
Myself and Guillaume Belmas

DSC_0006
Myself and Tiago Cardoso

DSC_0052
Vincent Bellet and (his) french food

DSC_0059 
Pyramid Iceberg

DSC_0096
Simon Brown and the Women In Technology panel

DSC_0091
Some of the competitors from IC

DSC_0021
Hotel de Ville Party

DSC_0015
Going around Paris

DSC_0028
Notre Dame de Paris

DSC_0074
Looking the Champs-Elysées

DSC_0078
View of Paris from the Boat trip

DSC_0074
The Imagine Cup Cup :)

DSC_0119
And the winners are…Australia!!!

DSC_00561
Joe Wilson and S. Somasegar with all the winners

Technorati Tags:

Please Vote Me for Blog Awards :-)

My blog has been nominated in the ComputerWeekly.com IT Blog Awards 08.

If you have time (I assume you read this blog since you are here smile_regular)…

please submit a vote for my blog here. cake

 

image 

Please do not hesitate to comment this post if you have any feedback/content request/comment on this blog…Thank you for your support! smile_wink

OOB (Out of Blog) Message

I’ve been (and I will) be traveling between London, Paris, Atlanta, Barbados and Seattle in the coming weeks, with the following schema…airplanecomputerairplaneairplanecomputerairplaneislandairplaneairplaneairplanecomputerairplane

I apologize for any inconvenience; I’ll reply to your comments/email asap smile_regular

Microsoft, Environmental Sustainability and Imagine Cup

imageWith Polar bears drowning, glaciers melting, forests being cut down…preserving the environment is a serious issue for the world.

In Microsoft we are investing our resources to foster environmental sustainability.

 

 

imageImagine a World Where Technology Enables a Sustainable Environment is the theme of the Imagine Cup 2008 competition. It will be a pleasure for me this year to judge the finalists teams (or may I say the brightest technology students in the world smile_sarcastic) in the Software Design invitational.smile_regular

The competition will begin next week in the magical location of Paris, France. I expect it will be very though to award only the top 3 teams…since I’m sure we will see a lot of great projects and ideas from all over the world!

Stay tuned, I’ll keep you updated! smile_regular

Silverlight 2 B2 Resources

Based on the questions I received in the last period, I’d like to share here some links that will eventually help you building your Silverlight 2 applications.

Runtime

  • Runtime (required from client machines, to run Silverlight application). You can skip this if you are installing the Dev Tools.

Development Tools

Official Resources

Screencasts

Tutorials / Tips&Tricks / Blogs

Showcase / Demo

Thanks to all the authors.

Technorati Tags:
Measuring WPF Effect Performance with .NET Framework 3.5 SP1

As I said in the previous post, .NET 3.5 Service Pack 1 addresses issues that were found through a combination of customer and partner feedback, as well as internal testing. Overall, .NET 3.5 Service Pack 1 offers customers many new features and improvements in responsiveness, stability and performance for Visual Studio 2008 and .NET Framework 3.5.

Now…obviously I trust the WPF team smile_angel, but I was curious to test the “real difference” given from the .NET Framework SP1 (Beta); for the sake of a perf exercise, I’ve written a tutorial to compare the previous BitmapEffect with the new Effect, which is one of the new classes with HW-acceleration support introduced by the SP1.

You can download the source code for this tutorial here. Please remember that, in order to compile the project, you need to install the .NET 3.5 Service Pack 1.

1) Button with Blur Effect

The first sample I’ve created is a Button with a Blur effect.

Picture 1

The Radius property of the Blur effect is bound to a slider, which allows me to change easily its value at runtime.

   1: <Button Content="Ciao" x:Name="button" Width="400" Height="150" Grid.Column="1" Grid.Row="1">
   2:  
   3:     <!-- FAST, HW ACCELERATED -->
   4:     <Button.Effect>
   5:         <BlurEffect  Radius="{Binding Path=Value, ElementName=slider}" />
   6:     </Button.Effect>
   7:  
   8:     <!-- SLOW, SW ACCELERATED (deprecated) -->
   9:     <!--<Button.BitmapEffect>
  10:         <BlurBitmapEffect Radius="{Binding ElementName=slider, Path=Value}" />
  11:     </Button.BitmapEffect>-->
  12:  
  13: </Button>

After running and profiling this sample (how-to later in this post), these are my empirical results:

  • Bitmap Effect (SW Accelerated):
    • peek of 8.4 MB video memory usage
  • Effect (HW Accelerated):
    • peek of 1.7 MB video memory usage
  • Assumptions:
    • These results have a "quality meaning" only, since they depends on many factors such as environment/machine hw/memory….

As expected, the Effect is 5 times faster then a Bitmap Effect.

2) StackPanel with Animating Blur Effect

Running the Perforator tool with a slightly more complex sample, the results are stunning: you can see a huge step in the memory usage, from 150MB (sw acceleration) to 16MB (hw acceleration)…an outstanding 1000%!!! smile_regular

Capture2 Capture3

3) HOW-TO PROFILE AND MEASURE PERFORMANCE

I would like to share quickly how I’ve done the previous tests.

  1. First of all you need to download the Perforator tool, which come as one of the tool in the Performance Suite. Download it here. More info about it here.
  2. After installing the Suite, you need to run WpfPerf.exe installed in the folder “C:\Program Files\WPF Performance Suite”
  3. The first time you launch WpfPerf, you will need to select Microsoft.WpfPerformance.Perforator tool from the list, and add it to your console.
  4. From Visual Studio, create and run (F5) your WPF application.
  5. Back to WpfPerf, hit Refresh and select the application you are debugging…and voila’, you will have access to some interesting information smile_nerd

These are Snapshots from my tests:

image 

image

CVD…

These are just easy snippets of code, that don’t really require a lot of memory. However, although simple, they already clearly show some of the performance improvements provided from the .NET Framework SP1 (BETA). smile_speedy

I can’t wait to install the SP1 RTM!! smile_teeth

If you want to try this with your machine, you can download the source code for this tutorial here. Please remember that, in order to compile the project, you need to install the .NET 3.5 Service Pack 1.

Technorati Tags: ,,
Building RIA Event slides + source code + resources

VSBanner

Thanks to Ravi Nar and the Vista Squad folks for participating yesterday at the Building RIA for Desktop, Web & Mobile using Silverlight & WPF  session in London. I really enjoyed presenting with you and answering your questions (it’s been a while since I had so many questions in such a short timeframe smile_omg)…and talk with .NET, LINQ, Mobile, ASP.NET…as well as Python and Flash developers.

As promised, you can download here the slides from the presentation. A video of the session, thanks to Ian, will be available on the Vista Squad videos repository.

I’d like to give here a few links as follow-up to the presentation:

1) WPF (Windows Presentation Foundation)

WPF is a next-generation presentation system for building Windows client applications with visually stunning user experiences. With WPF, you can create a wide range of both standalone and browser-hosted applications.

Interesting links:

I’ll publish the source code for some of the demo you’ve seen yesterday in the next post.

2) Silverlight

Microsoft Silverlight is a cross-browser, cross-platform, and cross-device plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. (Luckily you all already knew the definition smile_nerd)

Interesting links:

Again, I’ll publish in the next days the source code for the demo you’ve seen yesterday.

3) Silverlight for Mobile

Bringing Silverlight to devices expands the reach that developers and designers have when creating rich Internet applications. This enables them to easily leverage content, assets, and code that they are using today for browser-based Silverlight applications. Support for Silverlight on devices will quickly help change the landscape for the types of user experiences consumers can expect from their phones by bridging rich interactivity, wireless data, media and more.

Interesting links:

Feel free to ask me questions or to send me feedbacks, by commenting this post. Thanks again to everybody, I’m looking forward to meeting you again soon smile_wink

PS: just as a reminder, Forza Italia! soccerball

RIA for Desktop, Web & Mobile using Silverlight & WPF

Sign up for “The Wrath of Khan” meeting, organized by the UK user group Vista Squad.

The meeting will take place in Microsoft Cardinal Palace place, on 18th June, with the following talks:

  • Building RIA for Desktop, Web and Mobile using Silverlight and WPF (Giorgio Sardo, UX Consultant, MS UK)
  • Network Access Protection + Demos (Steve Lamb, IT Pro Evangelist, MS UK)

More info and agenda here.

PDC 2008 is coming!

Bling4

PDC 2008 registrations are now open. Expect lot of fantastic news/announcements this year about Windows 7, Windows Mobile, Silverlight, Live Mesh… smile_regular

Dates of the conference are: 27-30 October 2008
Pre-conference on 26 October 2008

More info at: http://www.microsoftpdc.com

Or…have a look at Mike’s Blog, Content Owner of this edition.

Technorati Tags:
[ITA] The Next Web Now – Sessioni disponibili!

 Capture

Message for English readers: the following links are the videos from the session recorded at The Next Web Now! event with Steve Ballmer in Italy. All the sessions are in Italian.

Sono state rese disponibili per il download le registrazioni delle sessioni dall’evento The Next Web Now.

Potete scaricare il video della mia sessione su Silverlight for Mobile al seguente indirizzo:

Creare applicazioni vettoriali per dispositivi mobili con Silverlight for Mobile

Ne approfitto per rispondere a una domanda frequente: "Come posso iniziare a sviluppare applicazioni per la piattaforma mobile?”
Risposta: Fate riferimento alle versioni di Silverlight per Desktop, sfruttando quindi Expression Blend 2.5 + Visual Studio 2008. Piu’ in la’ nel tempo rilasceremo un runtime di Silverlight for Mobile, che vi permettera’ di visualizzare le vostre applicazioni desktop anche su piattaforma mobile. smile_wink

Vi segnalo inoltre i link alle altre sessioni della developer track:

Per tutte le altre tracks fate riferimento al link: http://www.microsoft.com/italy/eventi/mix/default.mspx

Grazie per tutti i feedback, alla prossima! smile_regular

Windows Live Messenger + Twitter Addin (with setup and source code)

Twitter is a free social networking and micro-blogging service that allows users to send "updates" (or "tweets" (TW); text-based posts, up to 140 characters long) to the Twitter website. [Source: wikipedia]

Being an user of MSN (ops, Windows Live Messenger) since many years now, I get used to keep my WLM Personal Message (PM) updated.

Now, if we think about the two technologies together, isn’t a tweet kind of a public version of our personal message? Yep smile_omg

Merge

For this reason, I’ve developed with my dear friends Stefano Santoro (Microsoft Student Partner from Italy) and Marco Bodoira (CE Embedded expert at BEPS) an add-in for Windows Live Messenger that keep the personal message of MSN synchronized with your Twitter status. Please note that this add-in is not supported. (More info about support below).

How does the add-in works?

When the add-in is turned on, it will keep your TW on Twitter synchronized with the PM on MSN; in fact your PM on MSN will be sent to TW within the specified polling time.

Addin 

Where can I download the add-in?

You can download the setup file here, or download and view the source code here.

How do I install the add-in?

In order to start the magic synchronization, you need to install the Setup file (download it here). On the first restart of WLM, you will be asked to prompt your Twitter information (obviously your information will be saved and you will not be prompted to insert them again…). The only action required from you is to manually Turn On the add-in.

TurnOn

Why did you developed this add-in?

For fun. smile_regular

To be used. lightbulb

To show some example of interoperability between “everyday application” and web services in the cloud. envelope

The whole communication layer with the Twitter web service uses web services, with the following two functions:

        internal bool SendTwitter(string message)
        {
            if (string.IsNullOrEmpty(message))
                return true;

            string auth = Convert.ToBase64String(Encoding.UTF8.GetBytes(Username + ":" + Password));
            string status = "status=" + HttpUtility.UrlEncode(message, Encoding.UTF8);
            byte[] data = Encoding.ASCII.GetBytes(status);

            try
            {
                HttpWebRequest req = WebRequest.Create(SetStatusUrl) as HttpWebRequest;
                req.Method = "POST";
                req.Headers.Add("Authorization", "Basic " + auth);
                req.ContentType = "application/x-www-form-urlencoded";
                req.ContentLength = data.Length;

                Stream reqStream = req.GetRequestStream();
                reqStream.Write(data, 0, data.Length);
                reqStream.Close();

                return true;
            }
            catch
            {
                return false;
            }
        }

        internal string GetTwitter()
        {
            string auth = Convert.ToBase64String(Encoding.UTF8.GetBytes(Username + ":" + Password));

            try
            {
                HttpWebRequest req = WebRequest.Create(string.Format(GetStatusUrl, Username)) as HttpWebRequest;
                req.Headers.Add("Authorization", "Basic " + auth);
                req.ContentType = "application/x-www-form-urlencoded";

                XmlTextReader reader = new XmlTextReader(req.GetResponse().GetResponseStream());
                string status = string.Empty;
                if (reader.ReadToDescendant("text"))
                    status = reader.ReadString();
                reader.Close();

                return status;
            }
            catch
            {
                return "";
            }
        }

An interesting bit of this project is the setup file, that performs the following operations:

  • Check pre-requisites
  • Deploy assembly and configuration file
  • Register assembly in the GAC
  • Instruct programmatically WLM to run add-ins
  • Instruct programmatically WLM to install our add-in
  • Complete rollback of the installation in case you want to uninstall...

Is the add-in supported?

NO, the add-in is not (and will not be) supported. However we tested it successfully on Windows XP 32bit (English and Italian), Windows Vista 32bit (English and Italian)…with Windows Live Messenger 8.5 and Windows Live Messenger 9.0. Please let us know if you can install it on platforms other than these.

Does the add-in need any 3rd-party components or Plus or will it ask me to pay?

NO, NO, NO. The add-in requires Windows Live Messenger and the .NET Framework 2.0 installed only. If the setup detects that you are missing the .Net Framework, it will download and install it automatically for you.

What are your Twitter account?

Want to know more about Windows Live Platform?

Have a look at those great blogs from colleagues:

Any feedback?

Please feel free to add a comment or a feedback to this post!

Thank you
Happy twittering with MSN,

Giorgio, Marco & Stefano

How to be successful in the Imagine Cup (Software Design) competition?

icpromo With the Imagine Cup 2008 worldwide final in Paris coming on the way…I've been asked a few times recently to give some advice about "How to be successful in the Imagine Cup (Software Design invitational) competition?".

I am happy to share here some Tips&Tricks that I consider helpful, given the experience I had as former worldwide winner in IC 2006 (India) and mentor of the Italian team in IC 2007 (Korea) :)

This list is not complete, and it doesn’t pretend to be any official sort of communication (that you find here instead). Feel free to add your feedbacks or comment to this post.

  1. Believe in your project. If you don't like your idea, it will be tough to get other people to like it. You need to be passionate about what you have been hardly worked.
  2. Have fun. This is a corollarium from the previous tip. As long as you are having fun, you know you are going in the right direction.
  3. Release your potential. Imagine Cup is about innovation: try to go out from the common schemes...try to think out of the box. Your solution need to be realistic, but it doesn't need to be 100% implemented during the competition. I know lot of students are often "scared" to do not meet the deadline because they think they can not build a IC project while attending university courses. Maybe someone could not agree with me on this, but in my opinion IC final applications are proof of concept (in an advanced state) of what your solution could look like in the future. Summarizing...if you demonstrate that it's reasonably possible to build the real application within a 1-2 years timeframe, then you can concentrate on building just a (working!!) proof of concept for IC.
  4. Great Idea, Great Project, Great Presentation. Normally you would spend a considerable amount of time thinking about the right idea. Then you will go deep down in the development of your project; if you are developers, I’m sure you will still want to add a new great feature even 5 before the delivery of the solution. Fine…until you spend enough time on the presentation. If you are not able to present in an effective way your project, you might loose the judges consensus. I would suggest to spend at least one week on the presentation. To give you an idea, I spent 2 weeks preparing mine (slides, videos, audio, content, timing, demoing, doing rehearsals...). Moreover try your presentation at least a couple of time before going on stage, possibly presenting in front of different audience (technical, marketing, business, …)…and listen carefully to the feedbacks you will receive.
  5. Stay updated with all the latest Microsoft technologies. I'm sure you are all passionate and you read lots of blogs about alpha/beta/rc/... version of products coming out a few weeks before the final. Using those technologies in your project will be a competitive advantage against "older applications". Obviously this mean that you will need to work even harder (and possibly you will not find any support since the early stage of the build you are using). For this edition, you should try to use Silverlight or WPF or DeepZoom or all the new Live API or XNA or ASP.NET 3.5 or Mobile or….you have really a lot of fresh technologies to implement!
  6. Team working is essential. Each person in the team should have a defined role and he/she should be accountable for his/her specific area. It's amazing to see the results a good team can bring when working together.
  7. Make a business plan. Having a business research of your project would be an added value to understand how your solution is going to impact the market. Study the market size, position, stakeholders, competitors,.... We live in a world with more that 6.6B individuals: it's normally difficult (or impossible?) to be the only one in a market. You need to do research on potential business competitors, understand what make your solution different (and hopefully better), create a strategy, estimate costs...
  8. Backup plan: in the default scenario on the first day of the competition you are ready and prepared with your presentation. Your slides are done, your demo is working well, you've done the rehearsal of the presentation a few times...you are relaxed and comfortable. However...sometime you might have a last minute issue (the wireless is not working, the hw is broken, the batteries are down, your voice is down, one of the laptop didn't reach the location, you are ill, the demo suddenly stop working, you have localization issues, ...). [Note that I've seen all these at least once in the previous editions :)]. For this reason you should always have at least one back-up plan. Record a video of the demo, prepare different slides-deck, take screen-shoots, cache remote webservices or website on your machine, ... I know you don't have years to prepare your project before the IC final...but spending one night on a back-up plan is worth the pain, believe me. If then everything works fine (as I wish it will) you still have some resource to give away to journalists or partners ;)
  9. Networking: finally don’t forget that Imagine Cup is not just about you. It is about meeting the best team from around 60 countries in the world, Microsoft employees, subject matter experts, local MSPs. In such an amazing environment you can't stop learning and making exclusive experiences! Of course you need to concentrate and be focused on your project...but networking with your “colleagues” is one of the experience you will never forget in your life. :)
  10. Use the available resources: visit the Imagine Cup website and Channel8 websites...they are THE place where you can get all the information you need about Imagine Cup (rules, guidelines, history, interviews to judges and winner, tips, news, ...)

I hope this post will answer at least 1% of your questions. If you have any other question, feel free to post them in the official Imagine Cup forum...or if you have something specific for me, drop me an email at giorgio.sardo@microsoft.com

Eventually I’m sure that my friends Guillaume (winner IC SD 2004) and Stan (winner IC SD 2005) will be happy to share even more advices.

Imagine Cup changed my life, I will remember this experience forever. I really wish you best luck, and I hope to see you in Paris in July or next year in... :)

Ciao!

Technorati Tags:
Deep Zoom Batch Export (Programmaticly using C#)

[SOURCE CODE + BINARY OF THE EXPORTER APPLICATION ATTACHED TO THE BOTTOM OF THE POST]

The Deep Zoom composer is a great tool to manually design a composition. It is still in an early stage and I’m sure its team will add lot of interesting new features in the future. lightbulb

Meanwhile…I think that something where it lacks is the possibility to perform a proper batch export, given a lot of images.

SCENARIO: your want to show 500 pictures using DeepZoom. Due to the high number of pictures, you decide to implement a collection and positionate the images at run-time.

Using the batch export feature of the composer, you can only create several single deepzoom composition…and you miss the option to create a collection.

image

Luckily the Deep Zoom application comes with a tool (SparseImageTool.exe) which is installed in the application folder. The tool allow you to create a collection from the command line, giving as parameter the SceneGraph file and the images input folder (plus other interesting parameters).

image

Not too bad...but...what is the SceneGraph.xml file? This file is an xml file containing the layout of our scene, with the following format:

image

We now have all the tools and information to programmaticly create our collection, avoiding the direct use of the UI of the composer. As proof of concept, I created an application to create a Deep Zoom collection using C#, without opening the Deep Zoom Composer UI.

  • The tool take as input the folder containing all the images to convert, the destination folder and the name of the collection. That’s it!!
  • The generated output is a collection where all the images are overlapped in position (0,0) with their original dimension, and the zoom is set to 1. star

image

Source-code of the application is attached at the bottom of this post.

I will move this application to CodePlex as soon as possible, since I believe the community could add more interesting features. Don’t you? smile_wink

PS: Once you exported your collection using this tool, you can start positionating/resizing/… images using C#…I’ll write a new post about this later…

Technorati Tags: ,
Deepzoom Composer Export as Composition or Collection?

I was trying the new version of the Deep Zoom Composer…it’s just great!! Between all the new features, the tool now creates a Silverlight 2 application during the exporting process, in order to host your composition...easy peasy thumbs_up

When you are exporting your project, you can select to Export as Composition or Export as Collection.

image

What is the difference?

  • Collection: The tool will export image by image, creating a folder for each picture (and building the tiles specifically for each image).
    • PRO: you are able to work with single images (showing/hiding/relocating) on runtime. Better support for incremental updates.
    • CONTRO: you need to generate more tiles (thus you will need more space...).
  • Composition: The tool will export the composition as an unique big picture, according to the layout you specify in the "compose tab".
    • PRO: design-optimized version.
    • CONTRO: you can't change the position of images inside the composition at run-time. You will need to replace the whole composition everytime you add a new picture.

Which one is the best option? Personally I would say that Export as Collection is much more flexible and it's probably going to work with most of the scenario. As a developer that likes to write code...I would go for it smile_regular

Technorati Tags:
Steve Ballmer Interview (by Carlo Rossanigo)

Carlo, the PR and Marketing Director of Microsoft Italia, has been successful in the tough task to interview Steve Ballmer while visiting Italy for the Next Web Now! event. The interview takes place in Milan and in Rome, in the hotel, inside a car, at the airport…all in the same day! Well done!!!

More Posts Next page »
Page view tracker