niedziela, 15 grudnia 2013

Just Trace

Just Trace jest profilerem pochodzącym od Telerika. Nie jest to cudowne i idealne narzędzie, dość zasobożerne, jeśli chodzi o RAM, ale dość przyzwoicie pokazuje miejsca problematyczne. Tool teoretycznie umożliwia uruchomienie go wraz ze startem aplikacji z Visual Studio - ani razu mi się to nie udało. Głównym obszarem w jakim pracuje są aplikacje ASP.NET, więc na tym obszarze się skupie. Po uruchomieniu widzimy przejrzysty interfejs.


Idąc do opcji "New Profiling Session", żeby sprofilować ASP.NET appke, po starcie Debuga, najlepiej wybrać "Attach to .NET Process" i wybrać IISa (zależnie od konfiguracji w3wp.exe/iisexpress.exe). Po uruchomieniu analizowanej aplikacji, w Just Trace widać zużycie pamięci, wykorzystanie CPU i aktywność na osi czasu.


Na osi czasu można wybrać pewien zakres co w przypadku WebFormsów pozwala wybrać okres w cyklu życia strony i znaleźć problematyczne metody. Na liście widać ile czasu zajęło wywołanie metody oraz jaki procent łącznego czasu zajęło wykonanie danej metody.


Narzędzie pokazuje "Hot spots", czyli miejsca w kodzie, które są często wywoływane oraz "Bottlnecks". W większości wypadków odnosi się to do naszego kodu. Jeśli pod spodem mamy zewnętrzną bibliotekę jak np. NHibernate, to z reguły nie jesteśmy wstanie nic zrobić z takimi miejscami. Po kilku miesiącach użytkowania, jestem zadowolony z tego narzędzia. W paru sytuacjach bardzo pomógł zidentyfikować problematyczne miejsca i rozwiązać skutecznie problemy z wydajnością.

NHibernate Profiler - czy warto?

W projekcie, nad którym pracuję, korzystam z NHibernate 3.x w połączeniu z biblioteką Fluent. Od samego początku mojej przygody z tym zestawem borykałem się z szeregiem problemów (chyba wszystkimi możliwymi jakich opis można znaleźć na Google) - od zapisywania list przez flushowanie sesji w niewłaściwymi momencie, lazy loading w miejscu gdzie powinien być eager aż do wydajności. NHibernate Profiler nie pomógł rozwiązać żadnego z nich, natomiast jako dość mocno opisywany na sieci, miałem nadzieję, iż pomoże mi w walce z optymalizacją wydajności.

Przyznam szczerze, że jestem rozczarowany. Sugeruje sporo oczywistości - zastąpienie lazy loading zassaniem wszystkiego za jednym razem, nadmierną ilość JOIN'ów itd.

Sam interfejs użytkownika jest dość przejrzysty. Jedyną rzeczą, której brakuję Just Trace względem NHibernate jest pokazywanie ilości sesji i tego co się dzieje w obrębie danej sesji.

Jeżeli macie doświadczenie z Hibernate wliczając w to dobre podstawy teoretyczne, to zdecydowanie nie warto wydawać tych pieniędzy, natomiast jeśli jesteście na początku przygody z NHibernate, to może się okazać bardzo przydatnym narzędziem. Natomiast, jeśli macie doświadczenie i ponadto macie kupiony pakiet kontrolek Telerika obejmujący Just Trace to zdecydowanie polecam to narzędzie. Zdecydowanie w porównaniu do samego NHibernate Profilera, odczujecie dużo większe korzyści z jego wykorzystania. Opis Just Trace'a będzie stanowił osobnego posta.

sobota, 30 listopada 2013

Biometria (cz. 1) - Wstęp

Pewnie zastanawiacie się czym jest biometria? Jest to nauka poświęcona unikalnym cechom fizycznym osobników (np. siatkówka, odciski palców) i zachowaniem (np. sposób chodzenia). Obecnie głównym jej celem jest budowanie systemów będących wstanie zidentyfikować danego osobnika. Specjalnie użyłem pojęcia osobnika a nie człowieka, gdyż nie mówimy tylko i wyłącznie o unikalności cech ludzkich, ale również zwierzęcych (np. odcisk nosa krowy).

W przypadku ludzi wyróżniamy następujące cechy fizyczne, które mogą (są) wykorzystywane w analizie obrazów pod kątem identyfikacji i/lub autoryzacji:

  • odciski palców
  • układ żył krwionośnych
  • tęczówka
  • siatkówka
  • geometria twarzy (dlatego w paszportach mamy zdjęcia "en face")

"Stare, dobre" odciski palców mają kilka wad, które powodują, że nie nadają się do ochrony krytycznych danych - ok 5% populacji ich nie posiada (choroby skórne, wady genetyczne, powikłania po leczeniu np. raka), zostawiamy je wszędzie a dodatkowo łatwo je skopiować. Zaletą natomiast jest niski koszt sprzętu oraz bardzo duża ilość metod i badań jakie przez lata przeprowadzono.

Jako, że najlepiej miałem okazję zapoznać się z układem żył krwionośnych, opis wad i zalet tutaj pominę. Poświęcę temu zagadnieniu kilka osobnych postów.

Tęczówka jest dość łatwa do pobrania. Jej wadą jest fakt, że obecnie każdy może nam zrobić zdjęcie w wysokiej rozdzielczości i wykorzystać taki obraz do wytworzenia sztucznej tęczówki (szkła kontaktowego ze wzorem). Metoda ta jest mało popularna również przez problemy z analizą obrazu - wydobycie wzorca i porównanie jest bardzo złożone.

Siatkówki w porównaniu do tęczówki nie jesteśmy wstanie tak łatwo podrobić, ani tym bardziej pobrać jej obrazu. Jest to dość czasochłonny proces, a ponadto nieprzyjemny. Sam sprzęt jest również kosztowny, ze względu, że musimy "zobaczyć" dno oka.

Identyfikacja na podstawie geometrii twarzy jest jedną z najszerzej stosowanych metod. Umożliwia bardzo szybkie i dokładne zidentyfikowanie człowieka. Podstawowymi trudnościami w takich systemach są: kolor skóry, obecność okularów bądź zarostu. Dodatkową wadą w przypadku niezależnych systemów (bez nadzoru człowieka) jest konieczność stosowania dodatkowych metod mających na celu zapewnienie czy to co "widzi" kamera jest twarzą człowieka czy tylko jej zdjęciem.

W swoich postach ograniczę się wyłącznie do biometrii ludzi, gdyż nad nią pracowałem ponad rok. Moja praca była skupiona wokół układu żył krwionośnych jako unikalnym kluczu dostępu. W kolejnych postach z serii wyjaśnię podstawy naukowe, dlaczego można go stosować, jak zbudować urządzenie do akwizycji i jak przetwarzać takie obrazy.

Jeżeli ktokolwiek z Was, drodzy czytelnicy ma pytania lub wątpliwości bądź nie zgadza się, z którąś tez, to zostawcie informacje w komentarzach do artykułu.

piwa regionalne

Kto z was lubi piwa regionalne? A może raczej pytanie powinno brzmieć kto nie lubi?

Lwówek Belg - bardzo dobre, wyraźny smak
Lwówek Książęcy - dość wyraźny smak, Lager, bez zachwytu
Lwówek Ratuszowe - Lager, bez polotu, zwykłe piwo, nie warte specjalnej uwagi
Atak Chmielu - pyszne :D czuć dokładnie chmiel, wspaniałe uczucie w porównaniu do Lecha, Żywca czy Tyskiego
Ciechan - wszystkie rodzaje - bardzo dobre, troszkę drogawe, ale za to smaczne
Na miodzie gryczanym - pycha, najlepsze na miodzie jakie piłem
Rebel - Lager Miodowy - cięższe piwko w stosunku do Na miodzie gryczanym, nie czuć miodu jak np. w Ciechanie Miodowym, nie jest złe. Ceną (przynajmniej w Tesco), konkuruje z w/w piwkami, ale słodkość jest dużo niższa.
Książęce Złote Pszeniczne - niezłe, pszeniczne, lepsze od Tyskiego i Żywca, ale nie powala smakiem

Kolejne browarki będę dopisywał wraz z degustacją/odświeżaniem pamięci.


Rebel - Bohema Pilsner - smaczne, czuć dobrze chmiel, goryczkowe
Rebel - Vienna Lager - smaczne, ale mniej niż Bohema Pilsner, bardziej w stronę zwykłego piwka niż jakiegoś wyjątkowego
Rebel - Podwójnie Chmielone - smaczne, ale nie czuć zbyt wyraźnie nutki chmielu, której szukałem
Gniewosz - ciemne pasteryzowane - lekko słodkawy smak, wyraźny smak, mi niezbyt smakowało

Ciechan Stout - ciemne piwo - niedobre

Amber Chmielowy - smaczny, ale jakoś głębokiej goryczki nie czuć tak jak np. w Ataku Chmielu

piątek, 15 listopada 2013

zwiedzanie Krakowa - Muzeum Inżynierii Miejskiej

Muzeum składa się z 5 wystaw ulokowanych w 3 budynkach. Pierwsza wystawa jest poświęcona światłu i historii żarówek (ogólniej ujmując falom nie tylko w zakresie widzialnym). Na jednym ze stanowisk można kręcąc korbką zobaczyć ile natężenia prądu jest potrzebne, aby żarówka danego typu się zaświeciła (dla porównania są 3: "zwykła", energooszczędna i LED). Na kolejnych stanowiskach można obejrzeć kolejne porównania związane m.in. z ilością ciepła wydzielanego przez dany typ żarówki czy też zobaczyć jaka jest różnica pomiędzy temperaturą barwy światła. Kolejno można zobaczyć również plazmowe źródła światła (zdjęcia poniżej) czy też gigantyczną żarówkę energooszczędną. Ponadto na wystawie znajduję się kuchenka mikrofalowa z opisem działania, pryzmat, lampa rentgenowska i kamera termowizyjna (zdjęcie poniżej).





W kolejnym pomieszczeniu znajduję się kącik, gdzie można zobaczyć różne ruchome maszyny (m.in. kilka urządzeń pokazujących działanie przekładni czy wielobloczka). Głównie jest to kącik zabaw dla małych dzieci.

W trzecim pomieszczeniu znajdują się perełki polskiej motoryzacji. Można zobaczyć sporo motocykli, motoroweru czy aut eksperymentalnych (np. Beskid). Na wystawie znajduje się również kilka maluchów (w tym 1 egzemplarz z ostatniego dnia produkcji) czy różne modele Warszawy. Do tego można zobaczyć kilka ciężarówek i kilka silników.



W drugim budynku znajduje się wystawa poświęcona historii drukarstwa w Krakowie. Można obejrzeć sporo maszyn drukarskich z różnych epok, włącznie ze współczesnymi. Wystawiono również kopie biblii Gutenberga. Wystawa jest ułożona chronologicznie.


Na ostatniej wystawie znajdują się zabytkowe tramwaje. Niestety nie można wejść do żadnego z nich, jedynie przespacerować się pomiędzy nimi.

Dla mnie najlepszą i najciekawszą częścią wystawy była ta poświęcona światłu. Na drugim miejscu motoryzacja. Na ogonie stawki tramwaje - całkowicie rozczarowujące.

programista na siłowni

Jakiś rok temu zdecydowałem, że stanowczo trzeba wziąć się za siebie. Sapanie po przejściu 1 - 2 pięter zdecydowanie źle świadczyło o mojej kondycji fizycznej. No więc poszedłem tego pięknego dnia na siłownię. Miejsce gdzie leje się pot i łzy. Po pierwszym treningu 3 dni dochodziłem do siebie wliczając pozbycie się zakwasów. To mnie tylko utwierdziło w przekonaniu, że jest źle. Od tamtego czasu, bez katowania się jakąkolwiek dietą, ćwicząc regularnie po 3 razy w tygodniu, zrzuciłem 9 kg, wszędzie wyraźnie schudłem, tłuszcz zamieniłem w mięśnie. Wtedy na płaskiej ławeczce wyciskałem zaledwie 40 kg! (gryf + 2 x 10kg), dzisiaj jest to już 100 kg w ostatniej serii (2 powtórzenia). Chcieć to móc - trzeba mieć tylko odpowiednią motywacje i myśleć o własnym zdrowiu - w końcu w zdrowym ciele, zdrowy duch ;-)

wtorek, 12 listopada 2013

Zwierdzanie Krakowa - Muzeum Lotnictwa

10go listopada w końcu udało mi się dotrzeć do Muzeum Lotnictwa w Krakowie. Zbierałem się do tego już od kilku lat, ale jakoś zawsze było nie po drodze. W niedzielę miałem czas a do tego pogoda sprzyjała zwiedzaniu otwartego obiektu jakim jest to muzeum w przeważającej części.

Główny budynek jest skromny. Po wejściu widać kasę ukrytą z lewej stronę. Na wprost zwiedzających witają mundury wojskowe polskich lotników wraz z pamiątkami. W głównym budynku, w bocznej sali, znajduje się również częściowo rozłożony silnik lotniczy i pomieszczenie gdzie dzieci mogą zapoznać się z wnętrzem samolotu. W głównej sali budynku znajdują się samoloty z różnych okresów, pięknie odnowione, a niektóre nawet jeszcze latające!


Za głównym obiektem znajdują się 2 hangary. Niestety jeden z nich był nieczynny :(. W otwartym obiekcie można zobaczyć porównanie między wojskami Układu Warszawskiego a NATO. Pierwsze wrażenie bardzo mocne, słychać muzykę radziecką. Niestety dalej jest gorzej. Trochę modeli samolotów NATO i Układu Warszawskiego, rakiety różnego rodzaju, parę radarów i kombinezony pilotów. Ponadto 2 śmigłowce i jeden myśliwiec pozbawiony silnika. Maszyna robi piorunujące wrażenie kiedy stanie się obok niej po raz pierwszy - człowiek czuję się taki malutki.

Z hangaru wychodzi się na olbrzymi teren gdzie można podziwiać zrekonstruowane samoloty i śmigłowce, głównie pochodzenia radzieckiego bądź też wykonane według radzieckich projektów. Do ciekawszych obiektów należy niegdyś rządowy TU-134, myśliwiec pionowego startu i lądowania Harrier oraz w pełni zrekonstruowany Junkers Ju 52 w wojskowym malowaniu, ze swastykami.



Kolejnym obiektem zwiedzania stał się hangar z samolotami z okresu I i II wojny światowej oraz szybowcami. Wśród eksponatów znajduje się również samolot zbudowany przez Polaka w mieszkaniu, w bloku, którym uciekł z PRLu.

W następnym pomieszczeniu znajduję się wspaniała kolekcja silników - począwszy od małych gwiazd, poprzez 14 cylindrowe w układzie podwójnej gwiazdy, przez rzędowe aż do odrzutowych. Część z nich "przecięta" tak, że dokładnie widać zasady działania. Dość ciekawą konstrukcją jest niemiecki silnik 6-cylindrowy z 2 tłokami na cylinder.


Ostatnie pomieszczenie jakie można zwiedzić zawiera najstarsze konstrukcje - pozostałości z początków lotnictwa. Ponadto można obejrzeć jak zrzuca się sprzęt na spadochronie (w tym jeap'a na specjalnej platformie). Oprócz tego na terenie muzeum znajdują się zestawy do obrony przeciwlotniczej w tym zestawy do radiolokacji wraz z wyrzutniami rakiet.

Zachęcam do odwiedzenia strony muzeum i wybrania się na zwiedzanie samemu.

Wyścig - recenzja

Byłem dzisiaj na filmie "Wyścig" - opowiada o historii Nikiego Laudy, znanego kierowcy F1. Motywem przewijającym się są piękne kobiety, imprezy, rywalizacja z Jamsem Huntem. Zademonstrowano również słynny wypadek Nikiego z toru Nuerburgring. Zwieńczeniem jest kilka zdań o tym co się działo z Jamsem przez kolejne lata po ostatnim wyścigu.

Film jest realistyczny, nie przesadzony efektami specjalnymi, nie dodający żadnemu z kierowców dodatkowych cech, których nie mieli - jest bardziej biograficzny niż jakikolwiek amerykański super produkt. Ku pewnemu zaskoczeniu aktorzy są bardzo podobni do pierwowzorów co uwidaczniają wstawki filmowe zrobione na torach F1 w czasach, gdy obaj kierowcy się ścigali ze sobą.

Jest to zdecydowanie jeden z lepszych filmów biograficznych jakie widziałem, warty polecenia każdemu fanowi F1.

piątek, 1 listopada 2013

Wersje wielojęzyczne stron a baza danych

Częstym wymogiem w projektach jest przygotowanie wersji wielojęzycznej strony. Najczęstszym problemem na jaki można się natknąć jest jak to zrobić wydajnie i do tego bez zmieniania połowy aplikacji przy dodawaniu kolejnego języka?

Do dyspozycji mamy 3 rozwiązania:
  • Każdy język - osobne tabela z rozszerzeniem języka/schematem indywidualnym - ilość tabel w takim rozwiązaniu, często z powtarzającymi się danymi wynosi, jest bardzo duża, a utrzymanie systemu staje się bardziej skomplikowane, gdyż przy każdej zmianie w jednej tabeli (np. dodanie kolumny, założenie indeksów) musimy powtórzyć operację w wielu miejscach.
  • Każdy język - dodatkowa kolumna w tłumaczonej tabeli - rozwiązanie kosztowne w utrzymaniu, gdyż przy każdym dodaniu języka musimy dodać kolumny we wszystkich tabelach, które zawierają tłumaczenia.
  • Główna tabela z wartościami i tabela z tłumaczeniami (stosowane również w wariancie dużo tabel z danymi i jedna globalna z tłumaczeniami). To rozwiązanie najłatwiej utrzymać pod kątem rozszerzania o kolejne języki czy dodatkowe wartości w tabelach.
Bez względu na to, które rozwiązanie wybierzemy niezbędna będzie tabela z listą obsługiwanych języków i ich kodów. Najczęściej korzysta się z 2 znakowych kodów ISO (np. PL, EN, DE) bez rozróżnienia na dialekt (np. angielski amerykański, niemiecki austriacki, francuski kanadyjski itd.). Konieczne jest oznaczenie domyślnego języka. Pozwoli to uniknąć sytuacji, w której przeglądarka wyśle niewspierane kodowania. Ponadto praktyka pokazuje, iż rzadko kiedy 100% tekstów jest przetłumaczona. Z reguły jakaś część pozostaje w oryginale. Do typowej strony internetowej rozwiązanie nr 2 i 3 powinno się dobrze sprawdzić. W przypadku, gdy utrzymujemy rozwiązania regionalne, gdzie zawartość poszczególnych portali utrzymywanych w ramach jednego silnika może się mocno różnić, wartym rozważenia są opcje 1 i 3. Opcję nr. 2 traktowałbym jako bardzo rezerwową, do wykorzystania, gdy potrzebujemy coś stworzyć na szybko i oddać do klienta, a dalej sami nie będziemy tego utrzymywali.

piątek, 25 października 2013

Przechowywanie załączników a baza danych

Sposób przechowywania załączników - temat rzeka przewijający się przez setki forów i blogów podobnych do tego, aczkolwiek ze względu na pytania ze strony kolegi z Indii opiszę to również tutaj.

Skupmy się na dwóch możliwych (i najczęściej spotykanych) zastosowaniach załączania plików :
  • przechowywanie dokumentów stanowiących integralną część danych (np. wzory podań, wypełnione deklaracje) - mały rozmiar, mało dokumentów, brak przeszukiwania
  • przechowywanie dużych plików (filmy, zdjęcia, muzyka) i/lub intensywne przeszukiwanie

W przypadku pierwszej możliwości nie potrzebujemy zbyt dużych nakładów na utrzymanie bazy danych ani specjalnych zabiegów. Dla niezbyt dużego obciążenia, powinno sprawnie działać. Wadą jest duży rozmiar bazy. W jednym z rozwiązań, które odziedziczyłem, przechowywanie załączników było zrobione właśnie w ten sposób, dokumenty stanowiły 50% objętości bazy. Przy dzisiejszych kosztach storage "zwykły" kontra bazodanowy (wliczając w to, że baza sama z siebie też zajmuje RAM), zdecydowanie taniej wychodzi pierwsza opcja. Plusem rozwiązania jest łatwy dostęp do plików, brak dodatkowej logiki (lub warstwy w aplikacji) zapewniającej ich obsługę.
SQL Server od wersji 2008 posiada wsparcie dla FILESTREAM (trzeba manualnie włączyć). FILESTREAM to nic innego jak zapis pliku fizycznie na dysku, zamiast przechowywania danych bezpośrednio w tabeli w bazie danych. Wymogiem koniecznym jest włączenie tej funkcjonalności w konfiguracji SQL Server. Patrząc na tą funkcjonalność z punktu widzenia programisty, kolumna zawierająca pliki musi być typu varbinary(MAX). Więcej na temat tej funkcjonalności i ograniczeń z nią związanych możecie przeczytać na tej stronie.

W drugim przypadku architektura system jest bardziej złożona. FILESTREAM nie wchodzi w grę, gdyż nie poradzi sobie z dużymi filmami (powyżej 2 GB). Można je teoretycznie ciąć w tle na mniejsze, tylko po co? W takiej sytuacji jedyną opcją jest zapisanie filmu prosto na serwer plików, a w bazie zapisać ścieżkę do pliku i metadane. Należy pamiętać o konieczności zmiany nazwy pliku na GUID/unikalny string, gdyż w innym przypadku ktoś może nam go nadpisać. Gdybyśmy sobie to rozrysowali, to od razu widać, iż dokładamy dodatkową warstwę do systemu, która może spowodować dużo komplikacji (zapewnienie pojemności, czas dostępu, sposób dostępu, kopie zapasowe). Do optymalizacji przeszukiwania metadanych można skorzystać z dodatkowego silnika wyszukiwania jak np. open source'owy Solr. Co prawda to jeszcze troszkę bardziej komplikuje architekturę, ale niesamowicie przyśpiesza przeszukiwanie w dużych zbiorach danych.

Do tego rozwiązania można podciągnąć również pewne rozwiązania dostępne w chmurach jak Amazon S3. Jeżeli jednak korzystamy z usług innego providera niż Amazon, to raczej nie traktowałbym tego jako opcji ze względu na opóźnienia sieciowe.

niedziela, 20 października 2013

Microsoft exam 70-480 - Programming in HTML5 with JavaScript and CSS3

W ramach ścieżki MCSD (Microsoft Certified Solutions Developer): Web Application rozpocząłem przygotowania do egzaminu Programming in HTML5 with JavaScript and CSS3. Szukając materiałów natrafiłem na post http://www.bloggedbychris.com/2012/09/19/microsoft-exam-70-480-study-guide/ który daje bardzo dużo, fajnych linków pomocnych przy nauce. Jak tylko znajdę ciekawsze materiały/więcej/uzupełnienia to dopiszę je do tego posta.

sobota, 19 października 2013

MongoDB @pluralsight - prosto i zrozumiale

Obejrzałem dzisiaj kurs poświęcony MongoDB (tutaj) w celu zebrania informacji z czym to się je i do czego służy. Jako wprowadzenie to całkiem fajny kurs - prosty i zrozumiały, bez zbędnych fragmentów, zagłębiania się w detale czy traktowania oglądającego jak typowego użytkownika.

Cechy MongoDB, które mogą skusić do prób wykorzystania tej bazy:
  • prosta instalacja i konfiguracja
  • łatwa konfiguracja replikacji + skalowalność
  • możliwość wykonywania skryptów w shellu napisanych w JS
  • jeśli sami nie nadamy ID zapisywanemu dokumentowi, MongoDB zrobi to dla nas
  • ciekawe opcje/możliwości przeszukiwania
  • możliwość budowania indeksów w tle (dla porównania w SQL Server dostępne tylko w edycji Enterprise)
  • wieloplatformowość
  • licencje (Apache, komercyjna)

SQL Server nie zastąpi, natomiast może stanowić uzupełnienie projektu, np. do przechowywania danych w postaci hierarchicznej, które jest mało efektywne w SQL Server.

Jeżeli chcecie dowiedzieć się więcej, to zachęcam was do obejrzenia tego kursu. Warto.

Toshiba 39L4333DG - TV z Wi-Fi

Parę dni temu miałem okazję przetestować telewizor Toshiby z wbudowanym WiFi zawierającym pełną przeglądarkę internetową. Nie będę opisywał cech telewizora tylko skupię się na części multimedialnej związanej z siecią. Wrażenia z początkowej konfiguracji - dość prosty interfejs, natomiast sygnału z routera nie chciał złapać. Po namyśle postanowiłem ustawiłem SSID jako widoczny w sieci - ku mojemu rozczarowaniu pomogło.

Żeby skorzystać z możliwości multimedialnych należy zalogować się do cloude'a Toshiby... Dość rozczarowujące, że jest to obowiązkowe. W trakcie rejestracji należy podać datę urodzenia co sugeruje personalizację reklam pod kątem grupy wiekowej, czyli krótko mówiąc zbieranie informacji z pewnych naszych aktywności - inaczej mówiąc śledzenie użytkownika.

Po przebrnięciu przez powyższe kroki nadszedł czas na sprawdzenie aplikacji wbudowanych. I tu nastała dość niemiła niespodzianka. Menu długo się ładuję i nie jest to incydentalny przypadek, a normalne zachowanie, które przy każdej następnej czynności można zaobserwować (np. otwierając aplikacją najpierw przełącza z powrotem na kanał TV, a później dopiero ładuje aplikację.

Weryfikację możliwości sieciowych zacząłem od YouTube'a. Szybkość, sposób działania, przejrzystość i jakość obrazu - bardzo dobre, sterowanie nieskomplikowane.

Następną aplikacją było Skype. Sposób logowania i interfejs użytkownika - przejrzyste i czytelne. Rozczarowuje brak możliwość zadzwonienia bez podpięcia kamery z wbudowanym mikrofonem. Rekomendowana jest kamera od Skype, którą można kupić już za "jedyne" 409 zł.

Trzecią aplikacją był program wyświetlający prognozę pogodę. Aplikacja korzystająca z accuweather umożliwia podgląd bieżącej pogody w danej lokalizacji. Duży plus za możliwość zapisania danej lokalizacji.

Na koniec zostawiłem najciekawszy smaczek - przeglądarkę internetową. Przy braku klawiatury i myszki podpiętej do TV, nawigacja staje się prawdziwą męką. Istnieje możliwość przełączenia kursora tak, żeby nawigowało się kółkiem w pilocie tak jak myszką, ale to prawdziwa masakra - bardzo powoli reaguje i długo się przesuwa. Próba wpisania adresu w przeglądarkę też nie należy do najłatwiejszych (no może bardziej uporczywa niż trudna). Bez klawiatury i myszki, szkoda czasu na próbę wykorzystania urządzenia do przeglądania www.

Czy warto? Za te pieniądze (obecnie w Media Markt ok 1600 zł) ciężko będzie znaleźć coś o podobnym stosunku jakość/cena, jeśli chodzi o możliwości "sieciowe" urządzenia. Moim zdaniem urządzenie nadaję się wyłącznie do sporadycznego wykorzystywania do przeglądania stron www.

UPDATE - WARNING
Jeśli ktoś będzie aktualizował oprogramowanie - zaplanujcie dużo czasu. Pójdźcie na zakupy albo do pracy i jak wrócicie to będzie krótko po. Aktualizacja zabrała ponad 5 godzin! Samo ściągnięcie było bardzo szybko, natomiast instalacja była baaaaardzo powolna. Nie mam pojęcia co tam w tle się dzieje, ale jest to niesamowicie wolne.

UPDATE II - konfiguracja WI-FI
Konfigurując WI-FI można napotkać następujące problemy:
1) problemy z podłączeniem się do AP/routera przy ukrytym SSID - SSID musi być widoczny
2) Hasło - ku zaskoczeniu odniosłem wrażenie, że wielkość liter ma znaczenie
3) samo podłączenie zabiera dłuższą chwilę czasu

niedziela, 13 października 2013

konfiguracja IIS - "symulacja" load balancera na pojedyńczej instancji Windowsa - sesje

Ten post został zainspirowany problemem z konfiguracją serwera produkcyjnego, który z nieznanych (wówczas) przyczyn zaczął się zachowywać jakby działał za load balancerem.

Przyczyną takiego zachowania było ustawienie wartości Maksymalna liczba procesów roboczych większej niż 1 i ustawienie sesji w aplikacji webowej na InProc. Ta wartość mówi o ilości kopii programu uruchomionych w pamięci. Można ją znaleźć w ustawieniach zaawansowanych puli IISa (poniżej zrzut dla IIS 7.5).


Początkowo wydawało mi się, że to samo zło. Aczkolwiek po przemyśleniach doszedłem do konstruktywnego wniosku kiedy może nam się to przydać:

1) Wstępne testowanie aplikacji, która ma działać w przyszłości z load balancerem lub w cloudzie (np. AWS)
2) Weryfikacja aplikacji pod kątem wykorzystywania sesji (np. pod kątem poprawnej implementacji)


W sytuacji kiedy maksymalna ilość procesów roboczych może być większa niż 1 na danej puli, występuje w sytuacji, gdy przechowujemy sesję po stronie bazy danych lub po stronie state server'a. Baza danych ma tą wadę, że wymaga konfiguracji i dodatkowego utrzymania i najczęściej oznacza konieczność utrzymania dodatkowego serwera. W przypadku state server'a możemy go skonfigurować tylko i wyłącznie na jednej maszynie, dlatego przy load balancerze, gdy jeden node przestanie działać, i będzie to ten ze state server'em - to aplikacja przestanie działać. Jeżeli skorzystamy z bazy danych - jesteśmy bezpieczniejsi - tak długo jak długo serwer działa bezproblemowo (np. korzystamy z klastra).

sobota, 12 października 2013

Fakty i mity o wyglądzie i uprawianiu sportu przez programistów

Często poruszanym i wyśmiewanym tematem był ubiór i kondycja fizyczna programistów. Czy każdy programista jest chuderlakiem? Albo grubasem z długą brodą i długimi włosami? Owszem tacy też się zdarzają, ale raczej należą do mniejszości. Współczesny członek społeczności IT zdecydowanie nie przypomina tych Panów. Kiedy w Polsce doszło do transformacji, wraz z masą towaru zza zachodniej granicy, zachodnie koncerny zaczęły otwierać biura w Polsce. Wraz z nimi przybyła również częściowo kultura pracy, której składową jest dbanie o siebie - swój wygląd i formę. Wraz z przyjściem mody na "keep fit" oraz rosnącym wsparciem firm dla utrzymania zdrowia pracowników (np. poprzez Multisport), programiści ruszyli na siłownie i w teren. Liczne grono moich kolegów chodzi na basen, na siłownię, jeździ na rowerze czy biega (bądź wszystko po kolei).  Pozwala to niejednokrotnie zaskoczyć dziewczyny, że programista też potrafi.

Nie tylko moda na zdrowie wdarła się w życie speców od komputerów. Również moda z ulic. Nie jest niczym nadzwyczajnym zobaczyć programistę ubranego modnie. Natomiast ciągle króluje nieśmiertelny i zawsze wygodny zestaw T-Shirt + jeansy :-)

Obiecuję, że następne posty będą bardziej techniczne. Tym pierwszym wpisem chciałem powalczyć ze stereotypami.