Przychodzi baba do lekarza. Mówi “panie doktorze, byłam już u doktora X i on zalecił mi Y“. Na co lekarz: “a-HA! znam X, to konował, nic nie umie, tak naprawdę to dopiero JA pani powiem co trzeba zrobić“. Baba jest od tej pory zakochana w swoim nowym doktorze, nie mając tak naprawdę pojęcia czy faktycznie jest tak dobry jak twierdzi. Chodzi po sąsiadac...
Niniejszy post jest ostatnim z serii "Implementacja przepływu aplikacji" będącej jedną z czterech głównych zagadnień egzaminu MCSD: 70-480. Zajmiemy się w nim omówieniem, wprowadzonego w HTML5, API "Web Workers", pozwalającego na uruchamianie skryptów "w tle". Dowiemy się więc jak wystartować i jak zakończyć działanie Web Workera; w jaki sposób przekazywać dane do procesu Web Workera i jak ustawić dla niego timeout i interwał; poznamy także sposób na rejestrację obserwatora zdarzenia dla Web Workera, a t...
Dzisiejszy wpis, jak można się domyślić po przeczytaniu jego tytułu, ponownie poświęcony będzie językowi JavaScript, a konkretniej wykorzystaniu i implementacji funkcji typu "callback". Jak zwykle, post traktować będzie o zagadnieniach podanych na stronach Microsoftu, dotyczących właśnie tego celu egzaminacyjnego. A zatem, poznamy dziś zagadnienie odbierania wiadomości z HTML5 WebSocket API; dowiemy się w jaki sposób użyć jQuery (stąd obrazek towarzyszący nagłówkowi posta ;)) do wykonania wywołania async...
Założę się, że wiele osób czytając ten tytuł puknie się w głowę. I owszem w wielu sytuacjach wzorce nie są niezbędne do tworzenia przejrzystych i dobrze rozwijalnych skryptów. Do czasu. Dokładnie do momentu gdy nasz skrypt zaczyna mieć więcej niż kilkadziesiąt linijek.
Sztuka programowania 3622 dni, 22 godziny, 19 minut temu 201 źrodło rozwiń
As I mentioned some time ago Microsoft is offering free 3 month trial account in the BrowserStack service. Because I'm currently working on application that should support variety of browsers including old IE versions (fortunately starting from IE7 only - not IE6) I've decided to give it a try. I must say that I'm really impressed about it. But first let me explain some more details. What is it It is a service that gives us a possibility to use almost every browser running on operating system of our ...
Developers are mostly lazy. Nobody wants to do the same things every day. Doing the same activities can be very boring and non productive. Of course modern IDE should have multiple funcionalities that can improve speed of coding and development but it's really hard to satisfy all users at once. Below I present my favourite extensions to Visual Studio 2010. Working without them would be much slower and frustrating. This set isn't focused mainly to any of the Visual Studio project type but I've been usi...
GC nic nie wie o zasobach niezarządzanych. Nie wie ile pamięci one zajmują oraz oczywiście nie jest w stanie zwolnić takich zasobów. O zarządzaniu taką pamięcią pisałem już wiele razy. Opisywałem również zasadę działania GC. Zwykle jest on odpalany po przekroczeniu pewnego progu zużycia pamięci. Niestety, jak wspomniałem, GC nie wie nic o niezarządzanych zasobach. Co w przypadku gdy wrapper zużywa bardzo mało pamięci a zasoby niezarządzane w nim konsumują bardzo wiele pamięci? Dzięki metodom AddMemoryPre...
Sztuka programowania 3624 dni, 19 godzin, 28 minut temu 136 źrodło rozwiń
GTD – Getting Things Done. Let me make mod for it . CGTD – (clear getting things done)
Jak obiecałem – dziś uzupełnimy dotychczasowy zestaw testów o nowe testy. Co będziemy testować? Jeśli ktoś uważnie śledzi ten cykl zapewne oczekuje, że – zgodnie z wcześniejszymi zapowiedziami – przygotujemy test sprawdzający uruchamianie wszystkich metod biorących udział w przetwarzaniu pliku oraz dostosujemy stare testy sprawdzające powiadamianie o postępie przetwarzania. Tak – takie testy zostaną napisane. Ale najpierw utworzymy testy, których do tej pory nie było. Proszę zauważyć, że ...
Sztuka programowania 3627 dni, 5 godzin, 54 minuty temu 57 źrodło rozwiń
Zgodnie z tytułem tego wpisu, dziś zajmiemy się obsługą wyjątków w języku JavaScript. Biorąc więc pod uwagę wymagania egzaminacyjne zamieszczone na stronach Microsoftu, omówimy dziś takie zagadnienia jak: ustawianie i odpowiadanie na kody błędów; rzucanie wyjątków; sposoby sprawdzania wartości null; implementacja bloku try/catch/finally. Jak zwykle zapraszam do lektury! ;)Sprawdzenie "null check"
Visual Studio by default is showing a message when trying to attach to process. It is saying that: Attaching to this process can potentially harm your computer. If the information below looks suspicious or you are unsure, do not attach to this process. Because I'm attaching many times a day it becomes really annoying. Couple minutes of googling and here it is the solution for disabling it: First you need to make sure that Visual Studio isn't running.Next you need to modify registry key depending on...
Ostatnią z czynności refaktoryzacyjnych będzie przystosowanie dotychczasowej klasy MethodObject do używania powstałych w trakcie refaktoryzacji klas. Jak można sprawdzić w części drugiej, klasa ta posiadała cztery publiczne metody: ImportCSV(), ImportTabSeparated(), ImportFixed(), ImportBinary(). Metody te były następnie wykorzystywane przez interfejs użytkownika do wykonywania odpowiednich importów. Te metody muszą zostać zachowane, zmieni się natomiast ich implementacja. Zmianie ulegnie też...
Sztuka programowania 3627 dni, 5 godzin, 54 minuty temu 34 źrodło rozwiń
Witam, w kolejnej odsłonie mojego cyklu dotyczącego przygotowań do egzaminu "MCSD: 70-480 - Programming in HTML5 with JavaScript and CSS3". Tak jak można przeczytać w tytule, w dzisiejszym wpisie skupimy się na zdarzeniach w języku JavaScript. Zapoznamy się więc ze sposobami rejestracji funkcji obsługujących zdarzenia, poznamy zagadnienie bąbelkowego zachowania się zdarzeń, dowiemy się także jakie zdarzenia udostępniane są przez elementy DOM. Zapraszam do lektury.
Ostatnio dużo się piszę w polskim internecie na temat tego, że powinniśmy się cały czas rozwijać, sprawdzać nowe to rozwiązania, wykorzystywać coraz to nowsze biblioteki, może nawet i tworzyć takie, które nam ułatwią życie. Większość tych postów jest nastawiona negatywnie - w sposób jawny lub nie jawny – do osób/firm, które nie przechodzą lub nie mają możliwości przejścia na najnowsze technologię. Każdy z postów przeważnie zakłada, iż jak ktoś chce być programistą lub tworzyć oprogramowanie to trafia on ...
Opublikowano Z tematu dług technologiczny zrobił się całkiem spory cykl. Mimo, że nie wszystkie aspekty zostały poruszone, to myślę, że poruszone zostały wszystkie najważniejsze jego aspekty zatem nadszedł czas na odpowiedzenie sobie czy da się realizować projekty bez długu. Odpowiedź krótka brzmi NIE. Jeśli w każdym aspekcie będziemy korzystali z wszystkiego NAJ to przy dzisiejszym tempie rozwoju okaże się, że nie robimy nic oprócz zmian wersji narzędzi, bibliotek, framework-ów, wrzucaniu coraz to n...
W WPF przy wykorzystaniu stylów oraz szablonów w prosty sposób możemy stworzyć mechanizm skórek, dzięki któremu możliwa będzie zmiana wyglądu naszej aplikacji w trakcie jej działania. W dzisiejszym wpisie pokażę jak taki mechanizm stworzyć. Zacznijmy od prostego okna składającego się z kontenera Grid oraz trzech przycisków. Po naciśnięciu każdego z nich załadowana zostanie odpowiednia skórka...
W dotychczasowym procesie refaktoryzacji udało nam się stworzyć elastyczny mechanizm importu – uzyskaliśmy tym samym podstawową funkcjonalność w zadowalającej postaci. Pora zająć się pozostałymi operacjami, które są niezbędne, aby uzyskać kompletną, pierwotną funkcjonalność refaktoryzowanego kodu. Na implementację oczekują przecież: zdefiniowany na początku interfejs IFileSelector i jego pochodna IFilteredFileSelector. Konieczne jest też zaimplementowanie ...
Sztuka programowania 3628 dni, 13 godzin, 29 minut temu 42 źrodło rozwiń
Czasami zachodzi potrzeba wykonania krytycznego kodu, który zużywa dużo zasobów. Podobnie jak w CER, nie chcemy wykonywać kodu jeśli wiemy, że nie ma wystarczającej pamięci. W .NET istnieje klasa MemoryFailPoint, która potrafi z góry “zaalokować” określoną pamięć.publicsealedclass MemoryFailPoint : CriticalFinalizerObject, IDisposable { public MemoryFailPoint(Int32 sizeInMegabytes); ~MemoryFailPoint(); publicvoid Dispose(); } MemoryFailPoint sprawdzi czy jest dostępna pamięć. Jeśli jej nie...
Sztuka programowania 3629 dni, 13 godzin, 28 minut temu 100 źrodło rozwiń
Witajcie w drugim odcinku Coding News – nowej, cotygodniowej serii, w której omawiam najciekawsze wydarzenia i znaleziska minionego tygodnia.
Nadeszła pora, by doprowadzić do współpracy klas odczytujących pliki i klas wyodrębniających z nich dane. Aby ta współpraca była jednak w ogóle możliwa – klasa FileOfValuesReader musi zostać zmodyfikowana, albowiem musi być możliwe „wstrzyknięcie” do niej obiektu implementującego interfejs IValuesExtractor. W rezultacie konstruktor zyska jeszcze jeden, dodatkowy parametr, poprzez który będzie można przekazać odpowiedni interpreter danych. Ponieważ ów interpreter trafia od razu do klasy bazowej ...
Sztuka programowania 3629 dni, 13 godzin, 28 minut temu 43 źrodło rozwiń