• This is a usual time of the year for summaries so let’s keep the tradition alive and write one. Here’s my 2017 achievements split between months. January Blogging for 18 days straight – nothing near gutek’s achievement (whole year!) but still a nice streak Microsoft MVP title (thx Konrad Kokosa for pointing this one ;)) February […]

  • “Advent of Code is a series of small programming puzzles for a variety of skill levels.” Each day was a fun an interesting coding challenge. I’ve decided to practice and code this in python to learn the skill. Some of them might not be the best python scripting as I was short on time in […]

  • Some time ago I’ve attended a .net developer days 2017 conference. I was quite busy since (traveling, teaching .net, working) that only now I got some time to share some thoughts about it. As a bonus I’m including a short interview I did during the event. I need to state here, just to be clear, […]

  • We developers don’t like documentation. We don’t like to read it, and we even more we don’t like to write it. But sometimes it is worth to read it. Like when you find out that by using datetime in SQL DB you got a milliseconds precision but only if it ends on 0,3,7 (link). That […]

  • In the previous post we’ve removed some of the technical debt that could be found in our NetDeveloperPoland Website application. In this one we will remove it even more. We can even maybe reach a B? Let’s see where we’ll end up at the end of this part.

Ostatnio na blogu nie działo się wiele. Spowodowane było to po części moim obładowaniem różnymi projektami, pracą jak i częściowo chorowaniem.

Dziś chciałbym przedstawić jeden szczególny projekt. Światło dzienne ujrzał

dotnetomaniak.pl

Jest to portal agregacyjny typu http://dotnetkicks.com czy http://dotnetshoutout.com ale skierowany dla polskiej społeczności .NET.
Technicznie bliżej nam do tego ostatniego, gdyż wykorzystujemy udostępniony na codeplexie silnik KiGG. Na razie serwis jest w fazie beta, dlatego zachęcam do słania wszelkich uwag czy krytyk kiedy jeszcze możemy coś z tym zrobić. Na razie prócz mnie zamieszany jest także Jakub Malinowski a grafikę przygotował Michał Jałbrzykowski, ale gdyby ktoś chciał do nas dołączyć to niech również się kontaktuje.

Zachęcam do rejestrowania się i budowania społeczności .NET w Polsce.

Recenzję zacznę od napisania jakie miałem oczekiwania od tej książki. Chciałem książkę, która pokaże dla osób które mają już jako taką wiedzę odnośnie WPF’a jak niektóre rzeczy robi się w Silverlight’cie. Wiadomo, nie wszystko tu jest dostępne i czasem trzeba iść na około. Nie chciałem książki, która będzie przez 100 stron wałkować co to XAML.

W porządku. Jak już nakreśliłem jakie miałem oczekiwania mogę przystąpić do omówienia i recenzowania książki.

W pierwszym rozdziale następuje wprowadzenie o technologii Silverlight. Co to jest i z czym to się je. Jest trochę omówienia XAML’a ale 4 strony mogę przetrzymać.

Rozdział 2 przedstawia sposób użycia plugin-u, który posłuży nam za odtworzenie naszej aplikacji. Ciekawa sugestia odnośnie jak pluginy mogą się komunikować ze sobą za pomocą udostępnianych na zewnątrz metod. Trzeba będzie to przy okazji wypróbować.

Rozdział 3 omawia podstawowe kontrolki do layoutowania oraz TextBlock. Choć sądziłem, że w tym temacie niewiele ciekawego może być to jednak się myliłem. Cursor oraz elementy Run i Linebreak to coś co sądziłem jest dostępne do użycia tylko w klasie Document. Jak widać nie – można ich użyć do rozmieszczania tekstu także w TextBlock.

Rozdział 4 omawia interakcję z użytkownikiem. Prócz standardowych, omówione zostały także troszkę bardziej skomplikowane kontrolki jak np. InkCanvas. Nieznana wcześniej dla mnie kontrolka to Popup. Umożliwiająca uzyskanie w łatwy sposób wyskakującego, modalnego okna.

Rozdział 5 rozczarowuje. Omawia on data binding, jednak głównie podstawy ale mimo tego jest kilka rzeczy, których można się nauczyć. W moim przypadku była to informacja o tym, że grid w SL działa w trybie UI virtualization, jak też trochę informacji o konfiguracji Grid’a o których wcześniej nie wiedziałem (np. dostosowywanie wierszy oraz nagłówków). Ciekawie, ale bez rewelacji.

Tematem kolejnego (6.) rozdziału jest Networking and communication i zawiera podstawowe informacje jak korzystać ze źródeł danych w Silverlight. Omawia parę detali technicznych o których nie miałem wcześniej pojęcia, tak więc przydatność tego rozdziału jest jak dla mnie zadowalająca.

Rozdział 7 to zarządzanie cyfrową informacją czyli jak przygotować i odtwarzać audio i wideo. Rozdział ciekawy, pewnie dlatego, że przed przeczytaniem książki z tematem tym miałem niewielką styczność. Rozdział omawia też odtwarzanie zabezpieczonych danych. Na koniec dodano krótkie omówienie technologii DeepZoom

W kolejnym zostało omówione działania jakie możemy wykonywać na grafice w SL. Shape, Geometries oraz omówienie typów Brush’y to główna zawartość rozdziału z odrobinką transformacji na zakończenie. Niestety głównie podstawowe rzeczy.

Animacje to temat rozdziału 9. i jest to w zasadzie główny powód mojego czytania książki. W rozdziale opisane są typy animacji, i po części zaznaczone różnice występujące pomiędzy WPF a SL.

Zasoby i ich zarządzanie opisane są w rozdziale 10 i na szczęście duży jego fragment poświęcony VisualStateManger’owi – coś co chciałem dogłębniej zrozumieć.

Przedostatni rozdział to omówienie IsolatedStorage. Wspomnienie, iż taka przestrzeń jest dostępna dla naszych aplikacji w SL jest istotnet jednakże przykłady pokazujące jak użyć IsolatedStorage uznałbym za poniżej poziomu. Temat ten nie jest specyficzny dla SL i przykłady jak otworzyć plik w przestrzeni IsolatedStorage są wg. mnie chybione. Przykłady wykorzystania BackgroundWorkera też. Duży minus.

Na koniec omówiony został temat deploymentu. Z ciekawych rzeczy w tym rozdziale został pokazany przykład podmiany SplashScreen’a. Ogólnie rozdział na plus.

Podsumowując, książka w dobry sposób omawia technologię Silverlight 2, ale niestety moich potrzeb nie zaspokoiła. Mam nadzieję, że Foundation Silverlight 2 Animation będzie bardziej użyteczna.

Dziś będzie o:
Jeśli drażnią cię te polskie komunikaty wyjątków w VS i chciałbyś/-abyś to zmienić to przede wszystkim wytłumacz się dlaczego. Komunikaty wyjątków nie powinny być widoczne dla użytkownika, więc jedyna sytuacja, która wymagałaby takiej interwencji, a jest to poszukiwanie informacji w Internecie dlaczego dany wyjątek występuje. Wiadomo w języku angielskim znajdziemy więcej i komunikat po polsku może w tym przeszkadzać (oczywiście dużą częśc wyjątków możemy sobie po prostu przetłumaczyć). Są dwa rozwiązania takiej sytuacji.

Pierwsze:

    Thread.CurrentThread.CurrentCulture =

    Thread.CurrentThread.CurrentUICulture = new CultureInfo(“en-US”);

Dodanie takich lini spowoduje, że kultura naszej aplikacji będzie ustawiona na angielską z językiem amerykańskim. Wyjątek powinien pokazać się po angielsku. Należy jednak pamiętać, że takie ustawienie zmieni zachowanie naszej aplikacji – formaty dat, kalendarz, znak waluty i wiele innych ustawień zależy od kultury aplikacji. Należy je dodawać tylko na chwilę, aby dowiedzieć się angielskiej wersji komunikatu o błędzie.

Drugie:
Bardziej permamentne. Skasowanie/zmiana nazwy/przeniesienie pliku z resource’ami w którym znajdują się komunikaty błędów. Nie sprawdzałem dla wszystkich wyjątków, ale dla kilku, dla których sprawdziłem działa:

%windir%\assembly\GAC_MSIL\mscorlib.resources\2.0.0.0_pl_b77a5c561934e089\mscorlib.resources.dll

Po zmianie trzeba zrestartować Visual Studio. Nie wiem jakie skutki uboczne ma takie rozwiązanie. Na razie żadnych nie zaobserwowałem.

Na koniec uwaga (zapożyczona od Scotta Hanselmana – na razie w formie tekstowej):

Works on my machine & Do it on your own risk.

Dziś zauważyłem dziwną rzecz. Po wyszukaniu słowa w google chciałem jak każdy normalny człowiek przejść na tę stronę, jednak zamiast strony moim oczom ukazał się następujący widok:

Co jest? – pomyślałem. Czyżbym źle zobaczył adres i wszedł na jakąś stronę, która rzeczywiście może być niebezpieczna i Google uprzejmie mnie o tym informuje?
Sprawdzam. Nie, no dobrze widzę – Wikipedia.
jednak pod adresem strony pojawił się taki mały dodatek:

Sprawdziłem w ustawieniach i Safe search jest wyłączone. Inne strony też mają takie oznaczenie. Czyżby Google “dziś” uznało cały Internet za niebezpieczny?

Dopisano: Szybko działają :-). Dodatek już zniknął. Ale kto wie, może to próba generalna przed całkowitą blokadą dostępu do sieci?? 🙂

Dopisano 20:28: Nie byłem jedyny 🙂 – http://www.wykop.pl/ramka/138856/reakcja-uzytkownikow-wykopu-na-blad-w-google

Zawsze z lekkim przymrużeniem oka patrzyłem na przykłady jak to w C# 3.5 w stosunku do 2.0 usprawnia pisanie kodu. Wyrażenia lambda, automatyczne property, słowo kluczowe var. Oczywiście stosowałem je programując w VS 2008, ale chyba do końca nie doceniałem ich przydatności.

Ostatnio jednak musiałem sporo programować w VS 2005. Dopiero to pozwoliło uświadomić mi jak nowe VS 2008 ułatwia naszą pracę. Użeranie się z pisaniem prywatnego pola, tylko po to aby je zwracać w get i ustawiać w set – kompletna strata czasu. Tworzenia delegata, aby przekazać go do metody (tu anonimowe delegaty i tak znacznie ułatwiają). Ciągłe powtarzanie typu zmiennej przy jej tworzeniu. Nie chcę ‘klepać takiego kodu’.

Na moje szczęście mam licencję ReSharpera (którego notabene używam razem z VS 2008) tak więc niezwłocznie go doinstalowałem, aby nie musieć więcej ‘użerać się’ z takim kodem. Po prostu szkoda mi na to czasu.

Więc jeśli Ty z jakichś powodów musisz używać VS 2005 (lub też w VS 2008 nadal nie korzystasz z dostępnych udogodnień – z niektórych z nich możesz korzystać nawet jeśli piszesz pod .NET Framework 2.0) – zaopatrz się w narzędzie, które sprawi, że kod będzie pisany szybciej i jednocześnie więcej będziesz mieć na wymyślanie logiki oraz napisanie całości w spójny, rozszerzalny i po prostu czysty sposób. Będziesz po prostu bardziej wydajny. Bo przecież o to w tym chodzi.

Jeśli twój przełożony jest negatywnie do takich narzędzi nastawiony – wyjaśnij mu, że przecież twój czas stracony na pisanie takiego kodu jest cenniejszy – a przynajmniej być powinien.

Kim chcesz być – rzemieślnikiem czy artystą?

Linki:

Dziś na wykopie pokazał się ciekawy rysunek przedstawiający na co wydawane są pieniądze podatnika w USA.

Takie duże grafiki zawsze zapalają u mnie lampkę – Deep Zoom Composer. Postanowiłem sprawdzić czy dostępna jest nowa wersja oraz co się od czasu Preview 2 zmieniło. Na pierwszy rzut oka tool wygląda tak samo. Dostępna jest wstępna dokumentacja narzędzia.

Na zakładce Exportu pojawił się też nowe typy projektu – Images oraz Seadragon AJAX

W wygenerowanym projekcie widać natomiast zmianę. Dodano 4 przyciski, umożliwiające nawigację:

“+” i “-” wiadomo do przybliżania i oddalania obrazu. Pozostałe dwa to zoomowanie do widoku 1:1 oraz FullScreen. Przydatne – nie trzeba robić samemu.

Cały projekt dostępy tutaj:

Jeszcze jeden ciekawy projekt z ciekawym zdjęciem – Resources

Miłej zabawy z Deep Zoom’em 🙂

Jeśli ktoś odwiedza tego bloga od jakiegoś czasu może zauważyć, że od dziś wygląda on inaczej.

Postanowiłem zmienić wygląd, gdyż poprzedni doprowadzał mnie do ‘białej gorączki’. Weźmy taki obrazek z wpisu SQL Injection od ‘środka’ :

Tyle przestrzeni po bokach niewykorzystanej, a kod wygląda kompletnie nieczytelnie. Tak i tak starałem, się formatować kod, aby wyglądał jak najlepiej, ale jak widać nie zawsze się to udaje.

Zalety nowego:

  • więcej przestrzeni na treść
  • mniej mojej pracy przy formatowaniu kodu

Wad (na chwilę obecną) brak.

Miłego czytania.

9 stycznia o 12 (czasu PST) Microsoft opublikował beta wersję najnowszego systemu operacyjnego Windows 7.
2,5 mln kluczy czekało na śmiałków chętnych podjęcia się klikania w nowy system. Wygląda chyba na to, że jednak nie spodziewali się, aż takiego zapotrzebowania bo przy okazji zrobili sobie mały atak DoS :-).

U mnie strony wyglądały tak:


Dzięki lifehacker.com mam możliwość pobrania obrazów ISO, ale połączenie cały czas jest zrywane lub kończy się po kilkudziesięciu MB – więc na razie bez sukcesów. Nie wiadomo jak będzie też z kluczami..

Cóż Microsoftowi pozostaje się chyba cieszyć dużą popularnością nowego Windowsa, a nam pozostaje czekać…

Dodano: Udało się w końcu pobrać 7-kę. Zatem do instalacji.

Pierwszy etap Speaker Idol’a na konferencję C2C’09 zakończony. Osoby, które będą się zmagać o prawo wygłoszenia sesji to:

  1. Barbara Fusińska – Wzorce w akcji: Wyraz swoje intencje – doprecyzuj role
  2. Jacek Ciereszko z tematem “Silverlight 2.0 Tips and Tricks”.
  3. Andrzej Szczodrak – temat jest uzupełniany
  4. Szymon Pobiega z tematem “Service oriented architecture – event driven architecture”
  5. Piotr Leszczyński z tematem “Kolejny kontener DependencyInjection? NIE – dziękuję!! Czyli o koncepcji meta-kontenera słów kilka.

Zapowiadają się ciekawe tematy.

P.S Trwa jeszcze przyjmowanie zgłoszeń do Speaker Idola na NET w wersji ONLINE – czyli webcasty – do 18 stycznia czekamy pod adresem si(mapłka)c2c.org.pl

Z biciem w pierś i uniżoną głową chcemy ogłosić, iż filmy z sesji codecamp’owych są już dostępne do obejrzenia. Trochę to trwało zanim się udało. Teraz tylko oglądać.

http://codecamp.pl/PostConference/Videos.aspx