Nigdy nie ciągnęło mnie do logowania. Zawsze miałem problem z określeniem poziomu na jaki zasługiwała dana informacja, a może ostrzeżenie. Czy to błąd, czy to już krytyczny błąd. Jak mam to dobrze zalogować. Czemu te okrutne logi tak strasznie mieszają mi się w aplikacje, wtedy jeszcze nie znałem podejścia AO...
Strona głównaUżytkownik
rroszczyk | użytkownik
ASP .NET, OgólnePiotr ZielińskiLeave a comment IIS w Windows 10 wspiera już od jakiegoś czasu nową wersję protokołu. W zasadzie prawdopodobnie nic nie musimy robić, jeśli posiadamy prawidłową wersję IIS. Oczywiście użytkownicy muszą posiadać również odpowiednią wersję przeglądarki internetowej. Ich kompatybilność można sprawdzić tutaj. Jak widać, Edge, Chrome, Firefox, Opera czy iOS Safari radzą sobie najlepiej. W przypadku IE, najnowsza wersja wspiera HTTP 2.0 tylko częściowo. Jeśli jeszcze nie zains...
Jak wygląda rynek pracy w naszej branży – wiemy wszyscy. “Kandydat nasz pan”. Firmy często prześcigają się w “dogadzaniu” złowionym już programistom, kusząc różnymi dogodnościami kolejną zwierzynę. Widać to po wielu ogłoszeniach i komunikacji wychodzącej od rekruterów. A to piłkarzyki w biurze, a to konsole, a to zjeżdżalnia (sic!), a to jeszcze nie wiadomo co. Zwykłe rzutki przy tym wymiękają. Pracownicy takich placów zabaw także lubią szczycić się, jak to firma tuli ich i kołysze za pomocą powyższych z...
W tym wpisie poruszę temat tego jak bufory „bezpieczeństwa” (cudzysłów nie jest przypadkowy) w taskach wpływają na przedłużenia projektu. Opiszę również jak „kary” za nie wykonywanie zadań w terminie przez developerów przyczyniają się do opóźnień. Zrozumienie istoty problemu jest pierwszym krokiem do ich eliminacji i zwi...
Sztuka programowania 3256 dni, 17 godzin, 13 minut temu 304 źrodło rozwiń
ASP .NET, OgólnePiotr ZielińskiLeave a comment Kilka postów chcę przeznaczyć na temat HTTP 2.0. Zamiast pisać tylko o nowościach w nowej wersji protokołu, warto najpierw zrozumieć jak działała dotychczasowa wersja czyli HTTP 1.1. Pierwszym problemem HTTP 1.0 oraz HTTP 1.1 była obsługa wielkiej ilości zapytań. Każda strona, aby prawidłowo wyświetlić się potrzebuje załadować mnóstwo zewnętrznych zasobów takich jak skrypty JS, arkusze css czy grafika. Ponadto HTTP oparty jest na TCP więc ponadto mamy do...
ASP .NET, OgólnePiotr ZielińskiLeave a comment Zanim przejdę do kolejnych usprawnień w HTTP 2.0, warto poświęcić chwilę na zastanowienie się jak omijamy problemy HTTP 1.1 dzisiaj. Większość stron wciąż opiera się na HTTP 1.1 i nie najgorzej radzą sobie z wydajnością. Oczywiście sporo jest do poprawy, ale strony działają na urządzeniach mobilnych bez ogromnych opóźnień. Mimo wszystko, opóźnienie (latency) jest jednym z podstawowych problemów rozwiązanych przez HTTP 2.0. Zastanówmy się, jak dzisiaj...
Tworzy się wszystko po angielsku, a przez to nie ma problemów ze znakami "zażółć gęślą jaźń". Ja popełniłem ostatnio małą aplikację, gdzie postanowiłem że cały UI będzie po polsku, ponieważ do takich odbiorców kieruje swój projekt. Skoro jedno języczne to będzie to proste. HTML i opisy po polsku, atrybuty i informacje po polsku. Nic nie zapowiadało małej katastrofy, ale ta nadeszła całkiem szybko...
Podczas zabaw z Dependency Injection można się trochę zapędzić używając kontenerów, uzależniając od nich cały kod naszej aplikacji. A to źle. Na dobra sprawę logika aplikacji nie powinna nawet wiedzieć z jakiego kontenera korzystamy. Do kontenera nie powinniśmy się przyzwyczajać – jeśli wykorzystujemy go poprawnie, to jego podmiana na inną bibliotekę nie będzie nastręczać żadnych trudności. Tak naprawdę to całkowite pozbycie się kontenera z systemu również powinno być proste. Pisałem już trochę o tym w p...
Sztuka programowania 3260 dni, 19 godzin, 55 minut temu 190 źrodło rozwiń
Człowiek uczy się całe życie. Słyszymy, powtarzamy ten truizm. Czasem jest to pochwała, najczęściej pocieszenie.Wiedza, mądrość, inteligencja, czy to synonimy? Na studiach uczymy się czy studiujemy? Po studiach jesteśmy mądrzejsi czy mamy większą wiedzę? Czasami słyszę pytania skąd wiem to co wiem i w jaki sposób dowiaduję się co mam wiedzieć. Oto garść moich przemyśleń (rad?) na ten temat.
Sztuka programowania 3263 dni, 18 godzin, 4 minuty temu 418 źrodło rozwiń
W poprzednim wpisie pokazałem, w jaki sposób możemy zaprojektować obsługę błędów. Jak widać mamy do dyspozycji sporo opcji. Z punktu widzenia AKKA.NET nie jest to jednak tak skomplikowane. Wystarczy przeładować jedną metodę i zwrócić odpowiedni obiekt. Tak jak w poprzednim wpisie będziemy testować kod na następującym “systemie”: Dla przypomnienia nasz ApplicationUserActor wygląda następująco: public class ApplicationUserActor : UntypedActo...
Programowanie rozproszone 3263 dni, 18 godzin, 4 minuty temu 103 źrodło rozwiń
ASP .NET, BezpieczeństwoPiotr ZielińskiLeave a comment W poprzednim poście opisałem zasadę działania protokołu HTTP Strict Transport Security. W skrócie najważniejsze punkty to:Serwer zwraca specjalny nagłówek “Strict-Transport-Security”, który powinien być przesyłany wyłącznie przez HTTPS.Po otrzymaniu nagłówka od serwera, przeglądarka zawsze będzie łączyć się przez HTTPS, a nie HTTP. Użytkownik jeśli nawet będzie chciał użyć HTTP, przeglądarka dokona wewnętrznego przekierowania na HTTPS (307 – interna...
At least ASP.NET 5 is production ready. I know that current state is release candidate, but be honest it means that it is ready. Maybe some quick fixes will be need but who cares ;) This means that we can start thinking about migrating csproj to project.jsonNuget >= 3.0 The separate part of .NET is Nuget. It is separate but very important unless you don't have one project solution, and you don't have external dependencies. In Visual Studio 2015 Update 1 Nuget 3.3. is included. I hope 3....
BezpieczeństwoPiotr ZielińskiLeave a comment Protokół HTTPS jest dzisiaj powszechny na wszystkich stronach z wrażliwymi informacjami. Banki są klasycznym przykładem. HTTPS “gwarantuje”, że dane są przesyłane w szyfrowanej formie, a klient wie, że łączy się z oryginalną stroną. Certyfikat publikowany przez stronę jest gwarantem, że korzystamy właśnie z tej aplikacji, z której zamierzaliśmy. W najprostszej postaci wygląda to zatem następująco: Tego przynajmniej spodziewamy się… Problem w tym, że czasam...
Tak… aż chciałem to nazwać Autentykacją ;) by tych wszystkich purystów, Hitlerów polskiej gramatki skłonić do wejścia i dania komentarza. Ale nie, nie będę taki, bo dla tych purystów też będzie piękne słówko, ale kiedy indziej. No dobrze, to dlaczego w ogóle z tym słowem wyskakuje? A, to dobre pytanie. Przez ostatni miesiąc miałem dość sporo na głowie i za każdym razem jak coś paplałem, to sobie to zapisywałem by to...
What could be simpler than returning HTTP status codes? Did the page render? Great, return 200. Does the page not exist? That’s a 404. Do I want to redirect the user to another page? 302, or maybe 301. I like to imagine that HTTP status codes are like CB 10 codes. “Breaker breaker, this is White Chocolate Thunder. We’ve got a 200 OK here.” — Aaron Patterson (@tenderlove) Life is bliss, well… until someone tells you you’re not doing this REST thing. Next thing you know, you can’t sleep at night becaus...
Wiemy już jak zoptymalizować samą instalację paczek npm, jak także przyspieszyć instalację z wykorzystaniem archiwizacji node_modules. Teraz skoncentrujemy się na optymalizacji instalacji bez konieczności posiadania szybkiego dysku twardego! W tym celu trzeba się zastanowić co można by byłoby zrobić by tak naprawdę te paczki zawsze były zainstalowane nie...
C# jest językiem, który był zaprojektowany z nastawieniem na programowanie obiektowe. Ewoluując, z każdą wersją zawiera co raz więcej elementów, które pozwalają na skorzystanie z paradygmatu języków funkcyjnych. Na przykładzie metody budującej listę html’ową pokażę kilka technik, dzięki którym zamienimy typowy kod C# w kod bardziej przypominający kod języka funkcyjnego.
Sztuka programowania 3286 dni, 17 godzin, 52 minuty temu 552 źrodło rozwiń
Czasami w widoku wywołujemy funkcję JavaScript z parametrami, które są przekazane za pomocą ViewModel z kontrolera. Załóżmy, że nasza metoda w kontrolerze wygląda następująco...
W poprzednim poście użyliśmy metody ActorSelection w celu uzyskania referencji do aktora: var actor1 = system.ActorSelection("/user/ApplicationUserControllerActor/Piotr") Dzisiaj chciałbym bardziej skupić się na definiowaniu ścieżki do aktora. Pełna ścieżka może zawierać następujące elementy: – protokół – nazwa systemu – adres ip aktora – seria nazw aktorów opisująca hierarchie np. ApplicationUserControllerActor/actor1/actor2 itp.
Programowanie rozproszone 3290 dni, 13 godzin, 24 minuty temu 62 źrodło rozwiń
Ostatnio przy jednym z projektów służbowych, musiałem zrobić layout, który obejmowałby zagnieżdżanie kontrolek ListView. Poziomy scroll przesuwał elementy głównej listy, natomiast w każdym takim obiekcie, znajdował się panel zawierający pewne określone dane + kolejny ListView przesuwany już wertykalnie. Nie byłoby w tym nic nadzwyczajnego, gdyby nie fakt, że wewnętrzne kontrolki ListView, zawierały w sobie listę elementów na których znaleźć można było kontrolki użytkownika. Szybko okazało się, że to był ...
Mobile development 3290 dni, 13 godzin, 24 minuty temu 167 źrodło rozwiń