Pokazywanie postów oznaczonych etykietą video. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą video. Pokaż wszystkie posty

poniedziałek, 28 września 2009

Pierwsze wrażenia z Microsoft Surface SDK 1.0 SP1

Kiedy w końcu udało mi się zdobyć dostęp do SDK Microsoft Surface, natchniony rozkminianiem o co w tym wszystkim chodzi, postanowiłem króciutko się podzielić pierwszymi doświadczeniami.

Instalacja

Instalacja oprócz tego że musiałem doinstalować coś do XNA przebiegła niezwykle sprawnie. Całość razem z SDK, przykładami, super emulatorem i resztą rzeczy o których jeszcze nie mam pojęcia, znalazły się bezboleśnie na moim dysku, a w Visual Studio doszły nowe typy projektów.

Development

Ci którzy może jeszcze nie słyszeli, na Surface-a robi się przede wszystkim w WPF i ponoć w XNA (nie sprawdziłem jeszcze). Różnica pomiędzy zwykłym WPFem, a WPFem na Surface polega na tym że mamy zestaw dodatkowych kontrolek

oraz tym że aplikację uruchamiamy w specjalnym emulatorze, zwanym "Surface Simulator".

Polecam zacząć swoją przygodę od przykładów zawartych w SDK, skąd nauczymy się najwięcej :)

Kursor myszki i touchpad z laptopa

Przykłady

Aby zwizualizować jak to wygląd w praktyce, nagrałem krótki filmik który niestety z powodu oporu przed nagrywaniem (winę ponosi "Surface Simulator"), nie oddaje pełnej frajdy z korzystania z tego dobrodziejstwa! Przez pełną frajdę rozumiem tu korzystanie z np. kilku myszek jednoczenie co symuluje palce użytkownika (patrz obrazki), czy też super dźwięk.

Na obrazku widać jak to jest zrobione w praktyce (mam dostępne 2 "palce" którymi obracam elementy, zmieniam ich wielkość itp.)


, a na filmie (jak wspomniałem trochę ograniczonym) widać jak to się wszystko uruchamia.



Jak tylko oderwę się na chwilę od tego cuda, postaram się wrzucić więcej info.

Pozdrawiam,

Jacek Ciereszko

piątek, 21 sierpnia 2009

Youtube w Silverlight 3.0?

Wraz z nowym Expression Blendem 3, a właściwie to z Expression Encoderem 3 otrzymaliśmy nową kontrolkę do wyświetlania mediów, czyli MediaPlayer!

Czym jest MediaPlayer?

MediaPlayer to zaawansowana kontrolka do odtwarzania plików video, która opakowuje wszystkie funkcjonalności jakie możemy sobie wymarzyć. Oprócz podstawowego odtwarzania pozwala na tworzenie Playlist, Chapters, AutoLoad, AutoPlay, działa w trybie Offline (po zaakceptowaniu zwiększenia przestrzeni IsolatedStorage), Popout, Transport Controls, Progress Bar, Volume Bar, Full Screen i Closed Caption buttons.

Uruchomienie

Jeśli mamy zainstalowanego Expression Blenda 3 oraz Expression Encoder 3 to kontrolka powinna pojawić się w zakładce Assets-> Media. Jednak jeśli tak się nie stanie, można zrobić to ręcznie, przechodząc do katalogu instalacyjnego Expression Encodera (zwykle jest to "C:\Program Files\Microsoft Expression\Encoder 3") i wybierając katalog "BlendMediaPlayer". W nim znajduje się biblioteka "MediaPlayer.dll" którą wystarczy dołączyć do projekt Silverlight np. w Visual Studio.

W aplikacji Silverlight (dowolnej) w kodzie xaml dodajemy odniesienie do namespace-a, np. "xmlns:media="clr-namespace:ExpressionMediaPlayer;assembly=MediaPlayer" oraz kod odtwarzacza

"<media:MediaPlayer />".

Filmy które chcemy odtwarzać ustawiamy w playlist. To w jaki sposób przekażemy je do kontrolki zależy już tylko od nas. W moim przykładzie ustawiam akurat adresy na sztywno w kodzie.

<media:MediaPlayer x:Name="mediaPlayer" >
<media:MediaPlayer.Playlist>
<media:Playlist>
<media:Playlist.Items>
<media:PlaylistItem MediaSource="adresDoFilmu" Title="Star Trek Trailer" VideoHeight="1024" VideoWidth="864" />
</media:Playlist.Items>
</media:Playlist>
</media:MediaPlayer.Playlist>
</media:MediaPlayer>

Oczywiście cały powyższy proces można zrealizować w Expression Blend 3 przy pomocy kilku kliknięć. :)

Wygląd

Jeśli podstawowy wygląd kontrolki nie przypadł nam do gustu, możemy zmodyfikować jej template i dostosować wygląd do naszych wymagań. Najłatwiej można to zrobić używając Expression Blenda 3, poprzez wybór prawym myszki na kontrolce, "Edit Template" -> "Edit a copy..".

Live demo

Demo odtwarza HD film "Car accident" w formacie wmv (thx to http://stormscenes.com). Link.

Source Code

link

References

Pozdrawiam,

Jacek Ciereszko

środa, 19 listopada 2008

TechEd EMEA 2008 (Barcelona) – relacja, zdjęcia, Speaker Idol itd.

Hola! Buenos noches.. no więc konferencja dobiegła końca, wiele się nauczyłem i zobaczyłem, a teraz czas na refleksje. W tym artykule opisze w miarę jak najkrócej konferencję, sesje oraz Speaker Idola. Nie będę oceniać sesji ani prelegentów, a skupie się tylko na tym, co zobaczyłem.

Udział w konferencji zawdzięczam firmie Microsoft i konkursowi "Win The Web", który wygrałem wraz z dwoma kolegami, w maju na poziomie Polski i Europy oraz mojej firmie Hewlett-Packard dzięki udzielonemu wsparciu.

Konferencja i sesje

Aby wybrać sesję, spędziłem ponad 3h na czytaniu prawie wszystkich opisów i przeglądaniu terminów. Do wyboru było 335 sesji, w tym jedna sesja generalna, 247 sesji tematycznych, 80 sesji interaktywnych oraz 151 "Hands On Labs". Wybór był niesamowity i chyba każdy znalazł coś dla siebie. Ja głównie skupiłem się na sesjach architektonicznych oraz Web-owych z szczególnym nastawieniem na Silverlighta. Miałem także szansę uczestniczyć w kilku sesjach poświęconych ASP.NET oraz Windows Mobile. Wszystkie sesje były prowadzone na bardzo wysokim poziomie przez najlepszych specjalistów z całego świata.


Sesje były podzielone według następujących grup: Architecture, Business Intelligence, Database Platform, Developer Managers, Developer Tools and Languages, Development Practices Dynamics, Keynote, Microsoft IT, Office and SharePoint, PDC Highlights, Security, SOA and Business Processes, Unified Communications, Web and User Experience, Windows and Frameworks, Windows Embedded, Windows Mobile.

Spośród tak dużego wyboru i tylu kategorii, zawsze można było wybrać tematy najbardziej odpowiednie, nie zdarzyło się abym poszedł na prezentacje z braku wyboru.

Prezentacje których nie mogliśmy zobaczyć, są nagrane i umieszczone (prawie) na stronie TechEd EMEA 2008.

Planowane umieszczenie spisu wszystkich sesji oraz opisanie tych, na których byłem, muszę zaniechać, ponieważ ich mnogość wydłużyła by ten artykuł do stanu nie do przeczytania :] W ramach rekompensaty, zamieszczam link do spisu sesji na TechEd EMEA 2008.

Organizacja

Konferencja była zorganizowana na bardzo wysokim poziomie, było bardzo dużo osób które się nami opiekowały i dbały o nasze bezpieczeństwo. Dbały też o to, abyśmy głodni nie chodzili, choć tutaj należy wspomnieć o obiadkach które zwykle były podane jako torebki z jedzonkiem, a więc nic na ciepło. Rozwiązanie to ma swoje plusy i minusy, z jednej strony możemy się przemieszczać z jedzeniem po stoiskach i zjeść resztę obiadu później, a z drugiej strony nie jemy nic na ciepło.

W przerwach były podawane oczywiście zakąski, kawka, owoce itd., a wieczorem zdarzało się piwko.


Konferencja była podzielona na sale prezentacyjne, sale do "Hands On Labs" oraz exhibition hall, gdzie znajdowały się wszystkie stoiska firm, stoiska specjalistów z MS oraz scena Speaker Idol. Była także duża sala na największe prezentacje, gdzie odbywał się key note, na którym było ponad 3000 osób, sala ta była przeogromna!


Na większości powierzchni konferencji był także stały dostęp do Internetu poprzez WiFi oraz ustawione stanowiska komputerowe.



Do przyjemniejszych rzeczy należały stanowiska z XBOXami, gdzie non stop ktoś grał w gry. W budkach wystawiających się firm zbieraliśmy liczne upominki i braliśmy udział w konkursach. Nagrody była cenne i jako przykład podam, że kolega z którym przyjechałem, zgarną w jednym z takich konkursów nowiutkiego XBOXa!!! Ja dostałem mniej cenne nagrody (jak widać na zdjęciu) ale za to mam ich bardzo dużo.



W stoiskach "Ask the Expert" spotkałem także byłego prelegenta z C2C 2008 - Martina Kulova z którym miałem okazje zamienić dwa słowa i podziękować za C2C 2008.

Speaker Idol

Dla tych którzy jeszcze nie słyszeli o konkursie Speaker Idol, przypomnę że jest to bardziej zabawa niż rywalizacja, polegająca na wybraniu osoby która w najlepszy sposób poprowadzi prezentację. Nagrodą zwykle jest szansa na poprowadzenie całej 1.5h prezentacji na następnej edycji konferencji i tak też było na TechEd EMEA 2008.

Mój Speaker Idol odbył się właśnie w czasie konferencji Tech-Ed EMEA 2008 w Barcelonie, a napisałem mój, ponieważ przeszedłem wstępne eliminację (wybranie 30 najlepszych zgłoszeń) oraz "późne" eliminacje z których to dostałem się do finałowej grupy 9 osób, które miały swoje 5 minut przed publicznością oraz jury.


Nagrodami w tegorocznym Speaker Idol na TechEd EMEA 2008 była w/w szansa na poprowadzenie prezentacji w przyszłym roku na TechEd EMEA 2009 w Berlinie!!! Za drugie i trzecie miejsce uczestnicy otrzymali wstęp na TechEd EMEA 2009. Tu warto wspomnieć, że bilet na TechEd EMEA 2008 w Barcelonie kosztował prawie 2500 EURO, a więc nagrody były na prawdę cenne!!!

W jury zasiadły największe gwiazdy i osobistości. Należą do nich przede wszystkim Jose Luis Latorre Millas z INETA, Oliver Sturm, Kate Gregory oraz inni najlepsi prelegenci, którzy prowadzą prezentacje na co dzień.

Na TechEd konkurs trwał 4 dni, w pierwsze 3 trwały eliminacje i w 4 dzień były finały. Każdy z uczestników/uczestniczek miał/ła swoje max 5 minut na przeprowadzenie prezentacji. Dodam tylko, że według powszechnie panujących zasad, przede wszystkim oceniany był prelegent, a to co prezentował było drugorzędną sprawą.

Tak jak wspomniałem, ja także miałem swoje 5 minut, które w całości poświęciłem prezentacji o Silverlightcie :D Na przygotowania poświęciłem około tygodnia, podobnie na eliminacje wstępne, choć najtrudniejszy do przezwyciężenia był strach przed wyjściem w tak "zacnym" miejscu i przed tak dużą liczbą ludzi oraz jury.

Występowałem jako trzeci i konkurowałem z Guiseppe Maggiore z Włoch oraz Kurt Claeys, MVP z Belgii. Konkurs oczywiście przegrałem, jak jury słusznie powiedziało, zabrakło energii w wypowiedziach, trochę zbyt dużo łaziłem po mównicy i zbyt daleko od laptopa, przez co powroty przy zmianie slajdów wyglądały nieatrakcyjnie. Było jeszcze trochę uwag ale o dziwo nic poważnego, da się poprawić :P


To co mnie zdziwiło najbardziej po udziale w konkursie, to że wciąż się cieszę że wziąłem w nim udział. Spodziewałem się, że jak przegram to będę bardziej zawiedziony, w końcu włożyłem w przygotowania tyle pracy, a jednak było inaczej. Bardzo dużo się nauczyłem o prowadzeniu prezentacji, oglądałem innych uczestników oraz słuchałem to co mówi jury i zdobyta wiedza na pewno przyda mi się w przyszłości. Biorąc udział w konkursie, nie spodziewałem się, że uwagi jury będą aż tak szczegółowe, że będą oni zwracać uwagę np. na trzymanie ręki w kieszeni albo zerknięcie na slajdy (te uwagi akurat wyłapałem dzięki innym uczestnikom :P ).


Najważniejsze jest to, że znowu miałem okazję aby zwalczyć strach przed przemawianiem. Przed wystąpieniem, przez około 1.5 dnia miałem "stukotanie" serca. Poranek przed samym konkursem było najgorszy, ledwie pamiętam na jakich sesjach byłem, w ogóle nie mogłem się skupić na prezentacjach. Serce uspokoiło się dopiero jak znalazłem się na miejscu, stanąłem za mównicą i spojrzałem na ludzi. Wtedy tylko zostało "spięcie", które widać bardzo ładnie na nagraniu :]

Video z prezentacji (niesynchronizowane z powyższym filmem)


Pomimo przegranej, polecam udział w konkursie, jest to wspaniałe doświadczenie, duża szansa na nauczenie się profesjonalnego prowadzenia prezentacji oraz sprawdzenie samego siebie w roli prelegenta!

Na końcu chciałbym dodać, że dwie osoby z zeszłorocznych finałów TechEd EMEA 2007, pracują obecnie w Microsoft, a więc jest to nie tylko szansa na bycie prelegentem ale także na pokazanie się i wybicie w ścieżce kariery.

A więc uczcie się i dzielcie się wiedzą bo warto!

Barcelona

Oprócz samej konferencji, miałem także okazję zwiedzić Barcelone. Wszystkie wieczory spędzaliśmy spacerując i zajadając się lokalną kuchnią (tapas, Paella, owoce morza). W sobotę zjechaliśmy cała Barcelonę, zwiedzając ich wiecznie w budowie Sagrade Familie, pałacyk z fontannami, stadiony olimpijskie, "stare miasto" z mnóstwem małych uliczek, centrum i oczywiście plaże.


Podsumowanie

Fajnie było ale się skończyło. Mieliśmy trochę problemów z odbiorem mieszkania, no i zabrakło imprezy integracyjnej dla Polaków, tak jak miały inne kraje ale cała reszta, łącznie z pogodą, dopisała. Serdecznie polecam wyjazd na taką konferencję i udział w Speaker Idol, no i do zobaczenia za rok! Adios!

Resources

  • Strona konferencji - link
  • Galeria upominków które otrzymałem w czasie konferencji - link

poniedziałek, 7 kwietnia 2008

Moje wrażenia po C2C - materiały

No i po konferencji. W moim poprzednim artykule przypominałem o terminach, mam nadziej, że wszyscy którzy zadeklarowali się, to przybyli i że im się spodobało tak jak mi. Ja nie żałuje ani jednej sekundy spędzonej na konferencji. Impreza była bardzo dobrze zorganizowana i przemyślana. Pyszna pizza na obiad, zamiast oklepanego cateringu, piłeczki z logiem (cały dzień się nią w pracy bawiłem) oraz wielkie osobistości.



Na konferencję przybyło bardzo dużo osób z różnych części Polski i Świata. Sesje rozpoczeli Maciej Szczepański i Paweł Leśnikowski wystąpieniem na temat Test Driven Development (TDD) w praktyce.



Następnie Martin Kulov, na prezentacji zatytułowanej "Debugging and Crash Dump Analysis of ASP.NET Web Sites", zaprezentował narzędzia do usprawnienia debugowania i wykrywania "błędów nie do wykrycia".


Kolejną prezentacje poprowadził Jarosław Kowalski na temat "Wprowadzenie do Entity Framework".



Jako czwarty, od razu po obiadku, wkroczył, a raczej wbiegł (patrz film) Dino Esposito. Dino opowiedział zgromadzonym na sali słuchaczom o Frameworku MVC dla ASP.NET, czyli "Understanding Goals and Features of the ASP.NET MVC Framework".





Na końcu, Dino zorganizował konkurs w którym udział wzięły wybrane osoby i sobie rzucały piłeczką do torebki. W ten oto sposób tylko jedna z nich "coś" dostała, a więc mogło być lepiej.



Ostatnią sesje poprowadzili chłopaki z Krakowskiej Grupy .NET (Marcin Celej i Michał Brzozowski) na temat ".NET Developer Toolbox A.D. 2008".


Po dokładne opisy przedstawionych sesji odsyłam was do:



No i na koniec, zdjęcie podsumowujące oraz podziękowania ode mnie i nie tylko, dla wszystkich prelegentów, którzy przekazali nam dużą dawkę wiedzy oraz organizatorom za bardzo duży wysiłek i trud włożony w przygotowanie tak fajnej imprezy.

Z przyjemnością wybiorę się na C2C2009.






Jacek Ciereszko

wtorek, 1 kwietnia 2008

Silverlight Rehab - You're not alone

Wczoraj, na blogu Tiny Wood ukazała się dość żartobliwy filmik z udziałem kilku "gwiazd" (Adam, Laura, Nic, Monica, Dan, Scott and Tina) z kręgu Silverlight-a i nie tylko. Trochę śmieszny, trochę prawdziwy (O.o) i co najgorsze, jak bym co chwila słyszał swoją dziewczynę (patrz film na 3:04s). ;)




A więc, stay out of the dark and go in to the light, Silverlight, the Silverlight!!!


Resources


Jacek Ciereszko

niedziela, 30 marca 2008

Jak przygotować oraz wyświetlić plik video w Silverlight 2.0

W artykule tym, zmierzyłem się z encodingiem pliku video do formatu "lubianego" przez Silvelright-a oraz z wyświetlaniem otrzymanego filmiku w aplikacji. Dodatkowo, chciałem zaprezentować jak w prosty sposób możemy wyświetlić pasek ładowania oraz stanu filmiku.

Obrabiamy filmik

Ponieważ Silverlight jest technologią internetową (RIA), to z racji swoich ograniczeń musi nakładać na wyświetlane elementy pewne standardy. Jednym z nich jest np. brak wyświetlania filmów video w różnych formatach i o dowolnej wielkości (dla porównania, WPF nie ma z tym problemu). Nałożone wymagania ze strony Silverlight-a, zmuszają nas do wstępnego przerobienia plików video, zanim umieścimy go w aplikacji.

Obróbkę pliku video, najlepiej dokonać przy pomoc program "Expression Encoder". W artykule tym użyje "Expression Encoder 2 Beta", wersje tą można pobrać za darmo na stronie Microsoftu (link).

Po zainstalowaniu i uruchomieniu aplikacji "Expression Encoder 2 Beta", ładujemy plik video. Możemy to zrobić poprzez File->Import lub przeciągając plik video na ekran aplikacji. Mając już załadowany filmik, przechodzimy do menu po prawej, gdzie tak jak widać na załączonym obrazku, możemy zmienić ustawienia encodingu.


Opcji jest bardzo dużo ale dla potrzeb tego dema, w zakładce "Profile" wybieramy z rozwijanej listy video np. "Streaming 256k DSL (MP)". Każda opcja jest opisana w tooltip-ie i powoduje zmiany w jakości otrzymanego pliku. Przy każdej zmianie, program wylicza przewidywany rozmiar pliku wyjściowego.

Następnie wciskamy przycisk "Encode" i czekamy na rezultaty. Katalogiem wynikowym jest ten, z zakładki "Output". W katalogu tym, powinien pojawić się gotowy do wstawienia filmik.

Oczywiście program Expression Encoder nie służy tylko do konwersji video dla aplikacji Silverlight ale także posiada wiele innych rozbudowanych opcji.

Umieszczamy video w aplikacji Silvelrigth 2.0

Gotowy film, przerobiony przez Expression Encoder, należy dodać do aplikacji oraz wyświetlić. Aby wyświetlić wystarczy jedna linia kodu:

<MediaElement Source="videoName.wmv" AutoPlay="True"
/>

Natomiast, aby dodać film video do projektu mamy dwa sposoby:

  1. Poprzez dodanie do projektu oraz ustawienie w properties pliku video, opcji "Copy to Output Directory" na "Copy always", co zapewni nam ciągłe kopiowanie pliku video do katalogu ze skompilowanym plikiem .xap (można oczywiście kopiować ręcznie ale jest to uciążliwe)
  2. Drugim sposobem jest ustawienie w properties filmiku, opcji "Build Action" na "Resources". Efektem tego ustawienia jest wkompilowywanie filmiku w plik .xap, przez co zwiększamy znacząco jego wielkość. Im większy plik .xap tym wolniej będzie się uruchamiać aplikacja. Opcja ta nie jest zalecana, znacznie lepiej jest odpalić plik xap i zassać filmik już po uruchomieniu aplikacji Silverlight 2.0.

Pasek ładowania oraz stan filmu

Oprócz zwykłego wyświetlania filmu video na stronie, mamy także możliwości dostanie się i obsługiwania jego ładowania oraz stanu wyświetlania.

Aby tego dokonać, dodajmy do pliku xaml trzy prostokąty, które będą reprezentować pasek stanu oraz pasek ładowania.

<Canvas HorizontalAlignment="Left">
<Rectangle x:Name="ProgressRect" Opacity="1"
Stroke="#FF000000" StrokeThickness="2"
Width="448" Height="16"
Canvas.Left="5" Canvas.Top="10"/
>
<Rectangle Opacity="0.3"
Fill="#FF000000"
x:Name="playingRect"
Width="0" Height="16"
Canvas.Left="5" Canvas.Top="10"/
>
<Rectangle Opacity="0.3"
x:Name="downloadRect"
Fill="#FF000000"
Width="0" Height="16"
Canvas.Left="5" Canvas.Top="10"/
>
</Canvas>

oraz StoryBord do obsługi czasu trawania filmu:

<Canvas x:Name="LayoutRoot"  >
<Canvas.Resources>
<Storyboard x:Name="timer" Completed="timer_Completed"/>
</Canvas.Resources>

Dla kontorlki MediaElement dodajemy trzy metody:

MediaEnded="MediaElement_MediaEnded" MediaOpened="MediaElement_MediaOpened" DownloadProgressChanged="MediaElement_DownloadProgressChanged"

oraz ich implementacje w kodzie .cs:

bool isMediaOpened = false;
void Page_Loaded(object sender, RoutedEventArgs e)
{
timer_Completed(sender, e);
}

private void MediaElement_MediaEnded(object sender, RoutedEventArgs e)
{
timer_Completed(sender, e);
((MediaElement)sender).Stop();
((MediaElement)sender).Play();
}

private void MediaElement_MediaOpened(object sender, RoutedEventArgs e)
{
isMediaOpened = true;
}

private void MediaElement_DownloadProgressChanged(object sender, RoutedEventArgs e)
{
downloadRect.Width = Math.Floor(((MediaElement)sender).DownloadProgress * ProgressRect.Width);
}

private void timer_Completed(object sender, EventArgs e)
{
if (isMediaOpened)
{
double percent = filmik.Position.Seconds / ((double)filmik.NaturalDuration.TimeSpan.Seconds);
playingRect.Width = Math.Floor(percent * ProgressRect.Width);
}
sekund.Text = filmik.Position.Seconds.ToString();
timer.Duration = new
TimeSpan(0, 0, 1);
timer.Begin();
}

A wiec, w kodzie xaml dodaliśmy trzy prostokąty (Rectangle), które będą reprezentować pasek ładowania oraz pasek stanu filmu (czas). Dodaliśmy takżę StoryBord który będzie się wywoływał co sekunde i atualizował stan prostokątów.

Dodaliśmy także metody, MediaElement_MediaEnded() obsługuje zakończenie trawnia filmu, robi Stop() i ponownie go włącza poprzez wywołanie Play(). Powstała także metoda MediaElement_MediaOpened, która przełącza flagę, gdy filmik zostanie ściągniety z serwera i włączy odliczanie czasu. Kolejna metodą jest MediaElement_DownloadProgressChanged (). Jest ona wywoływana gdy stan pobierania pliku video z serwera się zmienia, a więc podczas łądowania strony. No i ostatnią z metod jest timer_Completed. Obsługuje ona przesuwanie prostokąta odpowiedzialnego za wyświetlanie czasu filmu. Szerkość prostokąta jest zmieniana, a StoryBord zostaje uruchomiony na kolejną sekunde.

Proste i fajnie wygląda.

Demo:





Source Code:

Resources:


kick it on DotNetKicks.com


Jacek Ciereszko