Jak poprawić scroll’a w Semantic Zoom (zoom out)

Zapewne każdy WinRT Developer wie czym jest Semantic Zoom.

Semantic zoom - widok normalny (zoom-in)

Semantic zoom – widok normalny (zoom-in)

Semantic zoom - widok oddalony, zgrupowany (zoom-out)

Semantic zoom – widok oddalony, zgrupowany (zoom-out)

A jak nie wie to odsyłam do poczytania albo do pooglądania.

W czym problem?

Problem z jakim ja się spotkałem to nieprawidłowe zachowanie się Semantic Zoom scroll’a w stanie zoomed out. Jest to problem wyłącznie UI. Czytaj dalej

WinRT: Debugowanie projektów C++ w C#

Od kilku dni użeram się z projektem WinRT C#/XAML, który korzysta z projektu WinRT C++. Ta sytuacja rodzi u mnie wiele problemów, z którymi sobię jakoś daję powoli radę. Jednym z WTF, na które natrafiłem to problem debugowania mieszanej solucji. A ponieważ ja ostatni raz w C++ pisałem dekadę temu to współczynnik WTF per minute mam wysoki. Czytaj dalej

Premiera nowych kursów Excel 2013 na Eduweb.pl

Dzisiaj na eduweb.pl zostały opublikowane dwa nowe kursy mojego autorstwa. Oba kursy dotyczą Excel’a 2013. Gorąco zachęcam do zapoznania się z materiałem.

Poniżej znajduje się copy-paste z opisami kursów.

Excel – Podstawy

excel-podstawyW kursie na przestrzeni niemal 5 godzin poznasz wszystkie najważniejsze narzędzia najbardziej popularnego arkusza kalkulacyjnego wchodzącego w skład pakietu Office. Jeżeli dopiero zaczynasz pracę z Excelem, lub chcesz uzupełnić braki w podstawach, ten materiał jest właśnie dla Ciebie! Więcej na eduweb.pl

Excel – Programowanie w VBA

excel-programowanie-w-vbaW kursie na przestrzeni ponad 5 godzin poznasz podstawy programowania w VBA w Excelu, dzięki czemu nie tylko przyspieszysz swoją pracę, ale także będziesz mógł w pełni wykorzystać możliwości najbardziej popularnego arkusza kalkulacyjnego z pakietu Office. Więcej na eduweb.pl

Custom development in Lync 2013

Microsoft Lync 2013

Ostatnio udało nam się reaktywować firmowego bloga. Jest to też jeden z kanałów, którymi otwieramy się na dev-community.

I tak chciałbym zachęcić wszystkich swoich czytelników do mojej pierwszej publikacji na ów blogu, gdzie opisuję jak szybko i łatwo zacząć custom-development z Lync 2013.

Orbit One Blog: Custom development in Lync 2013

Microsoft Innovation Summit

microsoft-innovation-summit-logoSerdecznie zapraszam na konferencję Microsoft Innovation Summit, która odbędzie się 13-go listopada 2013 w Lublinie.

Konferencja społecznościowa i oczywiście darmowa. Za wydarzeniem stoi Paweł Niewęgłowski.

Cennej wiedzy technicznej będą dostarczać:

  • Marcin Borecki (MVP, Architect)
  • Grzegorz Rycaj (MVP, Dyrektor R&D, Billennium)
  • Szymon Szeliga (Architect, Team Lead, Billennium)
  • Tomasz Kopacz (Senior Architect Evangelist, Microsoft)
  • Dariusz Porowski (MVP, Konsultant techniczny, Merago)
  • i ja

Zapowiada się całkiem ciekawie. Zza kulis wiem, że Paweł bardzo serio-serio podchodzi do organizacji.

Ja przygotowuję czysto techniczną sesję o developmencie Lync’a 2013. Wg. mnie temat może być ciekawy, bo mało kto o tym mówi na naszym podwórku.

Do zobaczenia w Lublinie!

Velkommen til Orbit One

Ostatnio cisza na moim blogu, a przez ostatnie miesiące sporo się działo… ale postanowiłem to nadrobić w kilku najbliższych postach.

Velkommen til Orbit One

Orbit One logo

Z końcem kwietnia 2013 rozpocząłem pracę w Orbit One na stanowisku Dev Team Lead. Tym samym zakończyła się moja przygoda z A plus C oraz krótki epizod… uwaga… w Kamsofcie. Tak… 🙂 Ale wracając do Orbit One. Jest to mała firma (20+ ludzi) z siedzibą w Gent (Gandawa) w Belgii i nowo powstałym oddziałem w Katowicach. Orbit One specjalizuje się w web developmencie opartym o stack technologi Microsoft (w tym Dynamics CRM, Lync, SharePoint, Umbraco). Jesteśmy Gold partnerem w Web Developmencie i Silver partnerem w kilku innych kompetencjach. Czytaj dalej

Liczniki wydajności w Windows Store Apps

Ostatnio pisałem na temat zdarzenia BindingFailed klasy DebuggerSettings. Jedną z niewielu właściwości tej klasy jest EnableFrameRateCounter.

public App()
{
    InitializeComponent();
    Suspending += OnSuspending;

    DebugSettings.EnableFrameRateCounter = true;
}

Zmiana tej flagi na true sprawia, ze w górnym lewym rogu uruchomionej aplikacji pojawią się liczniki wydajności, które doskonale znają programiści Windows Phone.

FramerateCountersWindowsStoreApps

 

Znaczenie poszczególnych wartości:

  • Cp fps: the frames-per-second frame rate for the composition thread
  • UI fps: the frames-per-second frame rate for the UI thread
  • Memory: memory utilization for textures
  • Batch: the count of surfaces that are sent to the graphics processing unit (GPU)
  • Cp cpu: time in milliseconds spent on the composition thread’s processor
  • UI cpu: time in milliseconds spent on the UI thread’s processor

Debugowanie BindingExpression w Windows Store Apps

Jedną z zalet XAML’a, DataBinding i MVVM jest to, że grafik i programista mogę swobodnie pracować nad tą samą aplikacją. Miejscem styku są wyrażenia BindingExpression w kodzie XAML. Niestety, czasami styku nie ma, albo wręcz robią się zwarcia i trzeba na to jakoś zareagować. Czytaj dalej

Zastosowanie SemanticZoom z domyślnym ZoomOut

Ostatnio portowałem moją aplikację Relax z Windows Phone do Windows Store. Oryginalna aplikacja została utworzona w XNA, bo chciałem mieć ładne animowane, opadające kształty (tekstury) oraz płynne przejścia tła (wiem, wiem…to samo też można zrobić w Silverlight, ale miałem problemy z wydajnością i obciążeniem procesora). Relaxed (tak się nazywa w Windows Store, bo ktoś mi wcześniej zajumał nazwę „Relax”) to MonoGame + XAML.

Relax - Menu Relax - Rain theme Relax - Forest theme Relax - Beach theme

W tej wersji aplikacji zdecydowałem się na menu w XAML’u, a część releksacyjna (muzyka + animacje) to XNA. Pomyślałem sobię, że fajnie by było użyć kontrolki SemanticZoom. W trybie ZoomIn (normalny) nic nie ma (nie ma zawartości XAML) więc widać to co rysuje XNA. W trybie ZoomOut (oddalony) pojawiają się kontrolki, gdzie użytkownik wybiera interesujący go temat.

Relaxed - Main menu Relaxed - Forest  theme Relaxed - Rain theme Czytaj dalej