poniedziałek, 8 grudnia 2014

.NET 5 C# - czas na rewolucję!

Niedawno M$ ogłosił nadejście nowego .NET - niby przewidywalne wydarzenie, ale masa nowości idąca za nią - już nie! Pierwszy szok i niedowierzanie - source code będzie otwarty! Kolejne: .NET będzie dostępny na Linux'a i MacOS!

Zacznijmy od rozdzielenia core'a od bibliotek - Core będzie w wersji 5, natomiast biblioteki zostaną oznaczone jako 4.6 - jednym słowem w tym obszarze wiele nowości nie będzie, natomiast można oczekiwać kilku modyfikacji.

Nowy ASP.NET 5 będzie działał na MacOS i Linux'ie dzięki serwerowi kestrel.

Narazie ciężko powiedzieć jak będzie wyglądał performance na jakimkolwiek środowisku. Należy liczyć, iż jest to mocno przemyślany i przetestowany ruch ze strony M$ i można spodziewać się stabilnych środowisk na wszystkich systemach operacyjnych. Pozostaje otwarte pytanie - czy przerośnie Jave?

niedziela, 23 listopada 2014

podatki w USA

Ostatnio częstą dyskusją w biurze, w którym pracuję są pensje i porównania Polska vs USA. Patrząc na ten kalkulator i porównując pensje netto vs brutto, to wychodzi na to, że (przynajmniej w Kalifornii) ich też nieźle skubią.

poniedziałek, 17 listopada 2014

kalkulator wyborczy 2014 - kod to czarna rozpacz (część kliencka)

Pod tym linkiem można znaleźć kod do kalkulatora wyborczego. Patrząc w zdekompilowany kod można zacząć płakać... Same nazwy zmiennych mogą przyprawić o zawał, nie mówiąc już o długości metod. Obsługa wyjątków - w jednym miejscu niemalże podręcznikowo, w innym tłumienie... zahardkowane adresy serwerów... Jeden idący po HTTPS, a drugi nie(!!!)... żal i rozpacz... w ten sposób to można informatyzować wszystko przez długie lata...

Polecam również ten wpis.

niedziela, 16 listopada 2014

VS 2013 Community - wersja pro za darmo

Kilka dni temu Microsoft ogłosił małą rewolucję w licencjonowaniu Visual Studio - wypuszczając VS 2013 Community pozwala w końcu pracować nad różnymi typami projektów w ramach jednego DARMOWEGO rozwiązania. "Nowa" edycja jest de facto darmową odmianą edycji Professional. Jedną z istotnych możliwości jest korzystanie z rozszerzeń takich jak ReSharper czy Xamarin.

Jedną z ciekawszych możliwości jest wsparcie Apache Cordova (należy zainstalować ten dodatek), a z najbliższą wersją .NET możliwość uruchamiania na innych platformach (np. na Linuxie) - o tym w następnym poście.

Warunkami korzystania z tej edycji są:
- zespół maksymalnie do 5 osób pracujący nad komercyjnym lub niekomercyjnym projektem
- pojedyncza osoba pracująca nad projektem komercyjnym lub niekomercyjnym
- studenci

Pobranie nowej edycji nie wymaga rejestracji.

piątek, 24 października 2014

Rydzyk vs prawo

O. Rydzyk znowu dał o sobie błyskotliwie znać twierdząc, że jest ponad prawem. Polecam tego demota http://demotywatory.pl/4407127/Katolikow-prawo-nie-obowiazuje wraz z artykułami na onecie/wp na ten temat.

niedziela, 14 września 2014

trefne paliwo - Ustroń - przelotówka

Takie coś jak na zdjęciu (miało być PB98) zdarzyło się zatankować koledze do motocykla na stacji w Ustroniu (oznakowanej jako Orlen, okazało się, że to franczyza). To co u góry tej mieszaniny to faktycznie jest benzyna (po spaleniu nie pozostał żaden ślad), to co na dole też się paliło, przy czym została mokra plama. Takiej mieszaniny zlano ok. 2 L, reszta wyglądała lepiej, ale nie wlewano mu tego z powrotem do baku.


Sporo kolegów tego samego dnia zatankowała PB95 i nie było takiego problemu. Być może pompa na stacji zassała jakiś syf z dna zbiornika. W trakcie reklamacji pracownicy zlali próbkę i wyglądała normalnie. Obsługa zachowała się poprawnie, czego nie można powiedzieć o właścicielu. Takiej chamskiej i niepoprawnej w języku polskim odpowiedzi jeszcze nie widziałem. Kultura poziom burak.

czwartek, 4 września 2014

zwiedzanie Wiednia

Ostatnio wybrałem się do Wiednia - jak się okazało przy poszukiwaniach dość tanim środkiem transportu - PolskimBusem - cena to ok 1/3-1/2 tego co gdzie indziej trzeba zapłacić (np. busy). Na nocleg wybraliśmy A&O Wien Hauptbahnhof - pokój 2 osobowy ze śniadaniami - razem za parę ok. 52 Euro - cena w stosunku do jakości dość dobra - czysto, schludnie, obsługa sympatyczna. Za szybkie Wi-Fi niestety trzeba zapłacić. Darmowe ledwo wystarcza do sprawdzenia maila.

Na początku wizyty warto zaopatrzyć sie w Wien Karte (22 Euro za 72H) - daje prawo do jazdy komunikacją miejską przez 72 godziny + zniżki do większości popularnych muzeów. Sam bilet na komunikację miejską na 3 dni kosztuje ok 17 Euro. Natomiast w każdym muzeum na tą kartę dostaje się od 1-2 Euro zniżki (+ np. darmowy audioguide). U Madame Tussaud zniżka wynosi 20%, czyli prawie 5 euro. Łącznie dzięki zniżkom zaoszczędziliśmy ok 10 Euro/osoba.

Pierwszego dnia zwiedziliśmy Hofburg (w tym muzeum Sisi). Kolekcja zastaw stołowych przytłacza swoim bogactwem - masa srebra, złota i pięknej porcelany. W muzeum Sisi można zapoznać się z historią życia cesarzowej. Warto to połączyć ze zwiedzaniem Shonbrunn, ze względu na niższą cenę na oba i dość krótkie zwiedzanie samego muzeum Sisi. Natomiast na Shonbrunn można poświęcić cały dzień (w zależności od pogody). W Schonbrunn udało nam się zwiedzić apartamenty, ogrody, punkt widokowy z którego widać panoramę Wiednia, oraz Strudelshow (pokaz robienia tradycyjnego strudla). Niestety mieliśmy fatalną pogodę i przez to zwiedzanie ogrodów było błyskwiczne i mokre.

Udało nam się zobaczyć Muzeum Techniki - dla każdego inżyniera pół dnia wyjęte z życiorysu. Bardzo dużo eksponatów począwszy od laboratoryjnych przyrządów znanych naukowców np. Tesli poprzez lokomotywy, urządzenia wysokiego napięcia, komputery (np. IPad jako eksponat muzealny jest wystawiony) aż do motoryzacji.

Kolejnym wartym odwiedzeniem miejscem jest Muzeum Historii Sztuki. Można tam spędzić cały dzień. Na pierwszym poziomie można zapoznać się z historią antyczną (m.in. grecka, rzymska, egipska). Na kolejny piętrze znajduję się bardzo bogata kolekcja obrazów. Można spędzić tam parę godzin. Nam zejście dwóch pierwszych poziomów zajęło ponad 3 godziny. Niestety na ostatni poziom (m.in. z wystawą monet) zabrakło nam czasu.

Jako ciekawostkę warto nadmienić, iż w każdym muzeum znajduję się kawiarnia, w którym można napić się kawy i zjeść ciastko. W tym muzeum załapaliśmy się na bardzo dobry sernik.

piątek, 8 sierpnia 2014

Oracle BI Publisher 11.1.1.x - wrażenia z zapoznania się

Nie dawno zabrałem się za temat badania Oracle BI Publisher w wersji 11.1.1.x - niestety już na samym starcie spore rozczarowanie - instalator linuchowy nie chce złapać ścieżek do Javy - trzeba podlinkować albo poprawiać skrypt. Na szczęście to jedyny odkryty przeze mnie problem na tym etapie. Po instalacji bangla. Można podłączyć się do web'owego front-endu i sobie wyklikać raport.

Pod kątem możliwości generowania raportu (typy wykresów) narzędzie jest daleko w tyle za Reporting Services od Microsoftu. Bardzo brakuje możliwości renderowania map.

Jeśli chodzi o bezpieczeństwo i opcje konfiguracyjne, to możliwości są wręcz przytłaczające. Można uzyskać dużo większą granularność uprawnień względem Reporting Services.

Dużą wadą jest ilość wyjątków pojawiających się w logach - przy domyślnych ustawieniach ich ilość przekracza jakiekolwiek normy. Pod tym kątem developerzy mają jeszcze długą drogę przed sobą.

Jeśli chodzi o źródła danych domyślnie dostępne to spodziewałem się dużo szerszego domyślnego zakresu baz danych jak Oracle DB, IBM 2 i SQL Server. Nikt nie przewidział wykorzystania MySQL czy PostgreSQL. Niby można się podpiąć pod inną SQLową bazę danych (testowałem MySQL), połączyć się, pokazuje struktury poprawnie, ale nie da się zapisać zapytania, które sam wygeneruje. Rozczarowujące.

Reasumując - na rynku jest co najmniej kilka produktów o większych możliwościach i podobnych kosztach zakupu licencji.


PS
Wszędzie gdzie wspominam Reporting Services odnoszę się do wersji dystrybuowanej wraz z SQL Server 2008R2/2012.

niedziela, 3 sierpnia 2014

update Windows Phone 8.0 do 8.1 - Nokia 625

Po aktualizacji od razu w oczy rzuca się spowolnienie telefonu. Niestety pod względem wydajności jest trochę gorzej, ale telefon wciąż reaguje dobrze. Spośród znaczących zmian należy zwrócić uwagę na pojawienie się aplikacji Radio FM (w końcu!), zmianę nazw kilku programów oraz ikon (np. Data Sense został zastąpiony przez Czujnik danych), pojawienie się kilku aplikacji (np. Czujnik pamięci), nowy system powiadomień, automatyczne aktualizacje/notyfikacje o aktualizacji oprogramowania, duży lepsze włączanie/wyłączanie sieci (Wi-Fi, 3G) - podobne do Androidowego. Zmiany na plus.

poniedziałek, 14 lipca 2014

Internet w PolskimBusie

Miałem dzisiaj wątpliwą przyjemność korzystać z internetu w PolskimBusie. Niby free Wi-Fi, ale chodzi bardzo powoli. Po przełączeniu się na sieć komórkową, Internet chodził kilka razy szybciej. W PolskimBusie non stop sypało błędami proxy - powodzenia dla laików w zrozumieniu co się dzieje. Równie dobrze mogłoby tego Wi-Fi nie być - efekt byłby taki sam.

środa, 2 lipca 2014

Windows 8.1 + Windows Phone 8 + próby programowania

Chciałem spróbować programować pod Windows Phone 8 - pierwsze rozczarowanie - trzeba mieć Windows 8/8.1 żeby wogóle zainstalować odpowiednie Visual Studio. OK, pomyślałem - zrobię wirtualkę z Windows Server 2012 i będzie fajnie. Pierwsze rozczarowanie - na moim laptopie nie da się stworzyć takiej wirtualki - zarówno VM Ware jak i Virtual Box uparcie twierdzą, że mój procesor nie jest 64-bitowy (dwuletni Intel Core i3). No trudno - znalazłem na stronach Microsoftu Windows 8.1 trial. Jedziemy z tym koksem - pierwsze rozczarowanie - niesamowicie szarpie po dysku. Pomimo przydzielenia na wirtualkę 2 z 4 rdzeni i 4 GB RAM, I/O okazało się baaardzo wąskim gardłem - instalacja Visual Studio zajęła ponad 5 godzin. Po samej instalacji - wstało bez większych problemów... ale... stworzyłem pusty projekt - chciałem odpalić - niespodzianka - Hyper-V Supervisor jest niezbędny. Po dłuższej chwili szarpania się samemu, zacząłem google'ać - tu jest opisane jak zrobić setup pod VMWare. Podążając za tą instrukcją - udało się odpalić to pieroństwo. Kilka dni to trwało, ale na szczęście z sukcesem. Może uda się coś własnego w Windows Market opublikować za jakiś czas :-)

sobota, 21 czerwca 2014

polityka prywatności - Microsoft

Miła odmiana względem Facebooka - Microsoft zobowiązuje się do (lepszej?) ochrony prywatności użytkowników - poniżej cytat z maila jaki kilka dni temu dostałem:

"As part of our ongoing commitment to respecting your privacy, we won't use your documents, photos or other personal files or what you say in email, chat, video calls or voice mail to target advertising to you. "

Można mieć nadzieję, że się z tego wywiążą. Im mniej śmieci na stronie, tym lepiej.

piątek, 20 czerwca 2014

Nokia 625 i synchronizacja/backup

Chciałem zbackupować sobie pliki i kontakty z mojej Nokii 625 - po dość długiej walce poddałem się. Można bezproblemowo kopiować muzykę, zdjęcia czy filmiki - ale nie aplikacją M$ (Zune). Tym czymś można co najwyżej pomarzyć o tym, żeby zobaczyła telefon - wczoraj walczyłem blisko 2 godziny - na liście sukcesów można zanotować rozwiązanie problemu ze sterownikami (po zainstalowaniu ok 5 paczek), ale aplikacja jak nie widziała telefonu tak dalej nie widzi.

Jedyny plus jest taki, że przy podłączeniu telefonu do WiFi na pół dnia, wszystkie pliki się zbackupowały i kontakty do chmury M$owej, czyli jakaś minimalna szansa na odtworzenie w razie czego jest. Trochę wstyd, że Microsoft nie udostępnia solidnego softu (za to masę wskazówek jak próbować naprawić problemy, szkoda, że mało który działa w setupie Windows 7 - Windows Phone 8).

sobota, 24 maja 2014

Lenovo T440p - wadliwy produkt

Wpadł mi w ręce ostatnio laptop T440p - jakość wykonania - tandeta bazarowa. Z całej serii jaka przyszła do firmy większość wraca do producenta - blue screeny zaraz po instalacji Windowsa, DVD które się zwiesza po zaczytaniu płyty - wsadzając następną już jej nie przeczyta - konieczny restart laptopa i dopiero wtedy bangla.

Rozbroiła mnie całkowicie klawiatura. Klawisze funkcyjne F1-F12 działają z FN, domyślną funkcjonalnością np. F1 jest mute/unmute.

Miałem wcześniej już styczność z produktami Lenovo i zdarzały im się wadliwe serie, ale przynajmniej jakość wykonania obudowy była OK. W tym przypadku to ciężko mówić o jakiejkolwiek jakości...

sobota, 17 maja 2014

Nokia 625

Nabyłem ostatnio cudo zwane Nokia 625 - nie najnowszy model, na Windowsie, ale o przyzwoitych parametrach i co dla mnie najważniejsze jako dla programisty technologii M$owych - na Windowsie. Pierwsze wrażenie po przesiadce z Nokii na Symbianie - WOW. Nie wiesza się, działa dynamicznie, można customizować bardziej niż iPhone'a. Żywotność baterii też nie jest najgorsza jak na smartphone'a z ekranem 4.7" - nawet powyżej 2 dni - przy czym tu istotny komentarz - WiFi + LTE czasem włączane, nie chodzi 24/7 + jasność ekranu ustawiona w trybie automatycznego dostosowania - czyli możliwe, że przy ciągłym włączeniu dostępu do neta i maksymalnej jasności żywotność nie przekroczy 1 dnia. Co do szybkości działania - jest OK. Póki co jedna aplikacja mi tylko umarła i musiałem ją odinstalować - prawdopodobnie jakiś wewnętrzny problem appki. Kolejny problem to fakt, iż zdarzyło mi się włączyć głośnik policzkiem w trakcie rozmowy - niestety rozmawianie przez tak duży telefon nie jest najwygodniejsze - jakby miał te 0,2-0,4" mniej to by było lepiej pod tym kątem.

Telefon dobry i solidny, co prawda nie jest już pancerny jak choćby kultowa 3310, ale i tak kawał dobrej roboty względem marazmu jaki Nokia prezentowała przez 3-4 ostatnie lata.

sobota, 10 maja 2014

Firefox 28.0

Odpalając nowego Firefoxa prawie przeżyłem traumę jak zobaczyłem nowy style zakładek. Do tego pasek menu przeniesiony na prawo z ikoną Apple/mobile style... jak dla mnie brzydkie i mniej użyteczne niż poprzednia wersja. Znaleźć cokolwiek jest trudniej, do tego mało intuicyjny jest powrót poziom wyżej. Można to było lepiej przemyśleć i zrobić.

poniedziałek, 21 kwietnia 2014

Zaznaczanie krajów z Google Maps

O tym jak zaznaczyć kraj (pokolorować) na Google Maps możecie zobaczyć tutaj. Najlepiej działa pod Chrome, trochę gorzej Firefox, IE11 nie wspiera ani input type range i color.

sobota, 19 kwietnia 2014

Entity Framework 6.1 RTM

17 Marca na blogu Microsoftu poświęconemu ADO.NET i EF pojawił się nowy wpis (tutaj) poświęcony EF 6.1.

Co nowego w EF 6.1:

  1. Model wizard wspiera model Code First włączając w to Reverse Engineering na podstawie istniejącej bazie
  2. Nowy handler CommitFailureHandler pozwala na automatyczne przywrócenie przerwanego połączenia podczas commitowania transakcji.
  3. Atrybut IndexAttribute pozwala na specyfikowanie indeksu na property w Code First używając [Index]
  4. Publiczne API udostępniające informacje o mapowaniu na kolumny i tabele. Do tej pory API było wewnętrzne (internal)
  5. Możliwość dodawania interceptorów poprzez App/Web.config bez rekompilacji aplikacji
  6. optymalizacja wydajności
  7. wsparcie dla metod ToString(), String.Concat() i enuma HasFlags w zapytaniach LINQ (nareszcie!)
  8. nowy interceptor System.Data.Entity.Infrastructure.Interception.DatabaseLogger ułatwaiający logowanie operacji na bazie do pliku
  9. nowy interceptor System.Data.Entity.Infrastructure.Interception.IDbTransactionInterceptor, który pozwala komponentom na otrzymywanie notyfikacji, gdy EF rozpocznie operacje na transakcji

Nowy Entity Framework dostępny jest dla VS 2012 i 2013.

niedziela, 13 kwietnia 2014

testowanie metod, których widoczność jest ograniczona przez internal

Częstym problemem przy testowaniu jest ograniczenie widoczność metod z biblioteki poza nią - częsty problem przy testowaniu. W przypadku metod czy klas oznaczonych przez internal, rozwiązaniem mogą być refleksje (trudne do wykorzystania w dłuższej perspektywie, dużo kodu itd.). Alternatywą do nich jest oznaczenie zbioru jako InternalsVisibleTo. W tym celu do pliku Assembly.cs należy dopisać [assembly: InternalsVisibleTo("NAZWA_ZBIORU_W_KTORYM_METODA_MA_BYC_WIDOCZNA")].

raport o branży IT

Znalazłem dzisiaj w sieci raport o branży IT z maja 2013 roku produkcji ANTAL (link do dokumentu).

W raporcie można znaleźć 3 ciekawe informacje:
  1. Polscy specjaliści niechętnie współpracują B2B - patrząc na zatrudnienie w firmie, w której obecnie pracuje to jest to bzdura - ok. 50% programistów jest zatrudnionych w tej formie.
  2. Mało specjalistów biegle zna angielski - za to bardzo dużo zna dobrze lub bardzo dobrze w odróżnieniu od wielu naszych kolegów np. z Włoch czy Francji.
  3. Oczekiwania finansowe specjalistów są (zbyt) wysokie - z pewnością zarobki w branży przekraczają średnią dla Polski, ale nie można ich nazwać wysokimi względem Zachodnich. Należy pamiętać, że w czasach globalizacji usług, koszty projektów są porównywane globalnie, więc nie ma żadnego uzasadnienia, żebyśmy nie dorównywali do Zachodnich specjalistów, zwłaszcza biorąc pod uwagę wysokie kompetencje polskich specjalistów w branży IT.

czwartek, 10 kwietnia 2014

Pytania rekrutacyjne - SQL Server

Wielu z nas czasami zdarzają się rozmowy rekrutacyjne, czy to jako prowadzący czy też jako starający się o pracę. Jako osoba w postawiona w obu sytuacja poniżej przedstawiam zestaw pytań związanych z SQL Server (T-SQL).

  1. Proszę utworzyć tabelę, która spełnia następujące warunki ... (najczęściej pojawiają zagadnienia związane z liczbami zmiennoprzecinkowymi - dokładność i finansami).
  2. Proszę wymienić rodzaje złączeń (JOINów) i podać przykłady na podstawie przykładowych tabel.
  3. Co to jest transakcja? Jakie są jej cechy?
  4. Co to jest funkcja, co to jest procedura składowana? Jakie są różnice pomiędzy nimi?
  5. Do czego można wykorzystać statystyki i gdzie je można znaleźć?
  6. Proszę wymienić rodzaje indeksów i porównać.
  7. Jak uzyskać wysoką dostępność korzystając z MS SQL Server? (UWAGA! dużo nowości w SQL Server 2012 względem 2008)
  8. W jaki sposób możemy dokonywać optymalizacji? Jakie narzędzia dostarcza Microsoft?

niedziela, 6 kwietnia 2014

pozostanie w OFE/ZUS

Jak wszyscy wiemy od 1 kwietnia do końca lipca mamy okazję zdecydować czy nasze składki emerytalne zostaną przejedzone przez ZUS czy OFE. Odpowiedni druk ze strony Ministerstwa Finansów: druk na stronie ministerstwa

UPDATE - 13/04/2014
Jeśli ktoś chce przesłać pocztą to może to zrobić wysyłając list polecony do każdej jednostki terenowej ZUS (wyszukiwarka adresów tu).

czwartek, 20 marca 2014

Kendo UI - Grid - starcie numer 1

Dzisiaj przeszedłem przez pierwsze poważniejsze starcie z KendoUI MVC. Jako, że uparcie filtrowanie nie chciało zadziałać, zhookowałem buttona i dopiąłem w jQuery event onClick. Żeby nie implementować za dużo, zdecydowałem się na pozostawienie wyłącznie filtra "Contains" jako, że potencjalnie daje wszelkie możliwości dla użytkowników. Implementacja tego cudu wygląda mniej więcej tak

Filterable(filterable => filterable.Extra(false)
.Operators(operators => operators
.ForString(str => str.Clear()
.Contains("Contains")
)))

Na developerskim wszystko fajnie działa, zero problemów. Po wrzuceniu na test - f..k - zamiast 1 opcji, są wszystkie i do tego po polsku! Aplikacja ma włączone opcje lokalizacji, więc zaczęło się szukanie jak to można zrobić w Kendo, żeby wymusić wyłącznie jeden język - niestety nie znalazłem, więc jakby komuś się udało to zrobić, proszę o zostawienie informacji w komentarzu. Dalsze szperanie po folderach doprowadziło mnie do folderu z lokalizacjami w JS - usunąłem go - i nadal to samo :/ Dalsze dziubanie wykazało, że jakieś pliki lokalizacyjne zaplątały mi się z DLLkami - ich wyrzucenie rozwiązało problem.

To co dla mnie wciąż nie jest jasne to czemu nadpisał ilość opcji, mimo, ze jawnie ma podaną wyłącznie jedną.

czwartek, 13 marca 2014

Hindusi w IT - przygoda nr 1

O tym, że współpraca z Hindusami nie należy do łatwych i przyjemnych, w świecie IT, przekonała się masa osób. Dzisiaj ja to przeżyłem - okazuje się, że deployment prostego web service'u na IISie wcale nie musi być taki prosty, nawet z instrukcją dość dokładną. Problem polegał na tym, że wpisałem w instrukcję dowolny port. Jako, że główna aplikacja pracującą na serwerze pracuje na porcie 80 i nie ma podpiętej domeny, to start drugiej aplikacji spowodował konflikt i "nadpisanie" tamtej. Najprostsze i skuteczne rozwiązanie - przestawienie portu. Hindusi walczyli z tym prawie dobę, po eskalacji do mnie problemu, rozpoznanie problemu i naprawa zajęły mniej niż 10 minut. Kompletnie nie rozumiem wartości wynikających z outsourcingu IT do Indii poza teoretycnzym obniżeniem kosztów. Mówię o teoretycznym, gdyż w rzeczywistości wraz z taką operacją dramatycznie spada jakość usług.

niedziela, 2 marca 2014

Visual Studio Online + TFS - budowanie appek

Ciekawy news ze strony Visual Studio Online - wraz z TFS umożliwia budowanie appek Javowych korzystając z Maven/Ant.

Więcej informacji na ten temat tutaj.

piątek, 28 lutego 2014

Telerik RadGrid + AJAX + IE + .NET w wersji 4.5.0 i starszej = problemy

Ostatnio walczyłem z bardzo dziwnym problemem - query AJAXowe w IE przy pierwszym callu nie zwracały żadnego wyniku, pomimo, że w Firefox i Chrome wszystko pięknie bangla. Debug - nic, wszystko OK, brak problemów. Do tego problem występuje na teście i produkcji, nie da się go na localhoscie powtórzyć. A problem dotyczy wyłącznie jednego widoku a co najmniej w 10 zbudowanych na podobnych zasadach jest OK, a zatem WTF?!? Po całkiem długim googlaniu udało mi się znaleźć informację o możliwości podejrzenia w IIS jakie query pracują po stronie serwera.

Po otwarciu IISa należy wejść w Worker Process, znaleźć interesującą pule i ją otworzyć. Widzimy wtedy wszystkie aktualnie przetwarzane requesty wraz z ich stanem. I tu doszedłem do ciekawej sytuacji - IIS utyka w RequestAcquireState aż do timeout'u.

Googlanie ponowne i informacja o tym, że IE nie ustawia jakiegoś(?) cookie (sorry to było z miesiąc temu w detalach nie pamiętam) i przez to aplikacja nie wykonuje RequestEnd. Mając tą wiedzę ponownie Google Fu. I tu niesamowite zaskoczenie - Microsoft przyznaje się do błędu w .NET (w wersjach aż do 4.5 włącznie). Dopiero w .NET 4.5.1 rozwiązano trwale ten problem. I faktycznie - instalacja nowszego .NETa niż używany do tej pory (upgrade z 4.5 do 4.5.1) rozwiązał problem. Wg stron Microsoftu istnieje jakieś KB, ale nie udało mi się go znaleźć na stronach M$ do ściągnięcia. W sieci można znaleźć jakieś paczki na innych serwerach niż M$owe, ale to zbyt duże ryzyko. Nie wiadomo co tak naprawdę w nich siedzi.

środa, 19 lutego 2014

SiteMap + KendoUI + MVC + WebForms + lokalizacje = problemy

W ostatnich dniach stanąłem przed zadaniem wdrożenia do istniejącej aplikacji w WebForms, ASP.NET MVC dla nowych funkcjonalności. Oprócz MVC, wykorzystuję Kendo UI. Wdrożenie nowych podstron wymagało niestety przepisania dwóch kontrolek - o ile formatka do wyświetlania informacji o błędach okazała się pikusiem, o tyle menu, zależne od zestawu ról użytkownika, zlokalizowane (możliwość obsługi wielu języków) nie jest już taka trywialna. Oczywiście można skopiować sitemap i przepisać ją do wykorzystania MvcSiteMap Provider. Tylko po co mnożyć byty? To się przecież MUSI dać zrobić. Opinie znalezione z Google mówią, że się nie da. Przynajmniej nie "out of the box" z kontrolką KendoUI Menu. No dobra. Nie dają defaultowo wsparcia, ale może jednak jakoś się da... Odczyt pliku zawierającego sitemap jest dość dobrze opisany (np. tu).

Podstawa odczytu to poniższy fragment kodu:
if(!SiteMapManager.SiteMaps.ContainsKey("WebSiteMap"))
{
SiteMapManager.SiteMaps.Register("WebSiteMap", sitemap => sitemap.LoadFrom("~/Web.sitemap"));
}

To co zrobiliśmy właśnie to załadowanie do statycznego obiektu naszej sitemapy. Różnica pomiędzy tą zaimplementowaną przez KendoUI i .NET polega na tym, że Kendo nie jest wstanie automatycznie przetłumaczyć wpisów z pliku .resx podpiętych do taga resourceKey. Ponadto brakuje ról a adresy do stron ASPX mają \ zamiast /. Niestety właściwości title, po odczycie, będą null'ami. Bez tego, mimo sukcesu przy odczycie, nie uda się ustawić nazw pozycji. Konieczne jest przeiterowanie kolekcji node'ów i odczyt z atrybutów resourceKey.

Problematyczne okazało się ucinanie wierszy w przypadku, gdy użytkownik nie ma danej roli. Usuwanie node'a nie dawało sukcesu. Dopiero ustawienie Visibility = false, gdy właściwość Text jest null'em z poziomu cshtml'a dało pożądany rezultat.

3 dni walki, ale rezultat jest satysfakcjonujący.

sobota, 1 lutego 2014

Odkurzacz ELECTROLUX ZEO 5430

Kupiłem ostatnio odkurzacz ELECTROLUX ZEO 5430 - długo szukałem taniego i dobrego i wygląda na to, że to dobry wybór (po 2 tygodniach użytkowania).

Zalety:
  • dużo szczotek (poza standardowymi 3 małymi, są 3 większe)
  • dobry ciąg nawet na małej mocy
  • podgumowane kółka
  • bardzo dobry stosunek cena/jakość - już za 250 zł można go nabyć

Wady:
  • pierwsze wrażenie co do jakości wykonania budzi wątpliwości (plastiki)
  • mógłby być cichszy

wtorek, 14 stycznia 2014

Legalizacja Marihuany

Tematem, który nieustannie wraca w dyskusji publicznej jest pytanie "Czy zalegalizować narkotyki?". Specjaliści od uzależnień powiedzą: nie, a palacze tak. Których jest więcej, to łatwo sobie wyobrazić. Czytając artykuł na wp.pl (http://finanse.wp.pl/kat,1033759,title,Miliardy-utracone-na-marihuanie,wid,16298526,wiadomosc.html) o legalizacji w jednym ze stanów w USA, stwierdziłem, że warto się przyjrzeć temu zarówno z perspektywy społecznej jak i finansowej.

1) Podatki - łatwiej udowodnić i posadzić za niepłacenie podatków niż za hodowle/handel/posiadanie. W Polsce osoby posiadające niewielkie ilości są w praktyce niekarane przez sądy przez niską szkodliwość społeczność.

2) Sprzedaż - jak to w biznesie - jest popyt, to towar się zawsze znajdzie. Policja zamknie jednego handlarza, to szybko w jego miejsce przychodzi ktoś nowy. Łatwy i szybki zysk jest dla wielu ludzi kuszący.

3) Szkodliwość dla zdrowia - tutaj można się mocno spierać - jedno jest pewne - tak samo jak alkohol czy papierosy - nadużywanie szkodzi.

Więc zamiast podnosić różne podatki, zalegalizujmy handel trawką. Będzie mniej przestępców, policja i prokuratura zamiast łapać za posiadanie grama czy dwóch będzie ścigała poważnych przestępców, a do budżetu wpłyną znaczne środki.