wiatrace.log – SSD killer

Zauważyłem przycinanie się Windowsa i duży strumień zapisywanych informacji. Winowajcą okazał się jakiś driver od drukarki EPSON, którego poskromienie  nie przyniosło rezultatów. Skorzystałem więc z poniższego skryptu aby przekierować nichciane śmieci do /dev/null

Zatrzymanie serwisu musi się odbyć z poziomu administratora

Być jak Haskell

Historia kołem się toczy, więc po raz kolejny zabieram się do programowania bardziej funkcyjnego. Obejrzałem film  Refactoring to Functional. a ponieważ jego autor Hadi Hariri pracuje obecnie dla JetBrains, to uznałem, że temat trzeba potraktować poważnie. W C# mamy dobrodziejstwa Linq, jednakże istnieje, że jego uniwersalność jest okupiona dużym narzutem. Unikam zatem Linq w miejscach, gdzie może […]

Dependency Injection według Microsoftu

Kto się boi zastrzyków? Na wskazanej poniżej stronie można dokładnie przeczytać o co chodzi z całym Dependency Injenction. Mówiąc w skrócie chodzi o to, aby pisząc program dostarczać małych kawałków kodu, które są łatwiejsze w tworzeniu, testowaniu i serwisowaniu zamiast monolitycznych gigantów przerośniętych gęstwiną splątanych zależności. Relacje pomiędzy komponentami powinny być realizowane przy użyciu wzorca Strategy, […]

Prosty API Controller

Kontynuuję zabawę z AspNetCore. W poprzednim artykule zrobiłem szkielet aplikacji, który udało się uruchomić. Rozgrzewka Czas na prosty kontroler API, który zwraca dane w postaci np. JSONa, które mogą zostać użyte np. w architekturze AJAX. W katalogu Controllers  należy utworzyć nową klasę  SimpleApiController, która dziedziczy z  Controller. Do tej klasy dodajemy metodę Indeks zwracającą  IActionResult.

Po skompilowaniu i […]

AspNetCore, pierwsze starcie

Postanowiłem zabrać się w końcu za przetestowanie AspNet Core. Po pierwsze stworzyłem nowy projekt Dlaczego .NET Framework? Otóż .NET Core uważam w tej chwili za mocno niedojrzały. Miałem pod górę w kilku projektach więc pomyślałem „jeszcze nie tym razem”. Kolejny krok to wybór szablonu. Wybrałem zwykłą „Web application” Po kilkudziesięciu sekundach projekt się stworzył, ściągnęły […]

Pożeracze pamięci

Wstęp Zauważyłem ostatnio dużą ilość pamięci zużywanej przez proces ID=4, t.j. System Bywa, że ilość pamięci sięga granicy grubo ponad gigabajt Jak znaleźć łakomczucha? Zabrałem się do poszukiwania winowajcy. Na początek pobrałem pakiet Windows Driver Kit (WDK), który zawiera narzędzie poolmon.

Po uruchomieniu i kliknięciu „B” (sortowanie po ilości bajtów) ukazał się pełen obraz: Lista […]

Magiczne async

W sieci jest wiele materiałów na temat konstrukcji async-away. Postanowiłem zbadać kilka ciekawostek. Użycie async bez away Rozważmy kod

Metoda „Pierwsza” jest napisana zgodnie ze sztuką. Budowa metody „Druga” budzi sprzeciw kompilatora:

Użyłem strony http://tryroslyn.azurewebsites.net aby obnażyć prawdę. Oto prawdziwy „kod pod spodem” (fragment)

Zabawa w „znajdź różnice” skutkuje tylko tym, że […]

Azure Quota Exceeded

Zaliczyłem „Quota Exceeded” na bazie MsSql w Azure. Ponieważ była to aplikacja testowa, to usunąłem wszystkie dane, z tabel. Zrobiłem rebuild indeksów i oczekiwałem odblokowania dostępu. Tymczasem ku mojemu zdziwieniu: Żadne 'refresh' nie pomaga. Najciekawsze jest to, że na jednej stronie Azure podaje sprzeczne informacje.

Roslyn-rozpoznawanie typów wyrażeń

Pochylmy się nad następującym kodem

Łatwo odgadnąć, że zmienna x jest typu int, natomiast podczas przypisania wartości x do zmiennej y następuje niejawne rzutowanie do typu decimal. Jak robi to Roslyn? Napiszmy testowy kod

Na konsoli otrzymamy wynik:

Co jednak gdybyśmy chcieli dowiedzieć się czegoś więcej o rzutowaniu typów. Rozważmy kod:

[…]

Raspberry PI i Arduino – bezprzewodowo

Po udanym połączeniu dwóch jednostek Arduino poprzez moduł nRF24L01+ narobiłem sobie apetytu na połączenie bezprzewodowe Arduino z Raspberrym i uczynienie z RPI koncentratora zbierającego rozmaite dane. Krok po kroku podążałem za artykułem Communicating from low power Arduino to Raspberry Pi via NRF24L01 . Po drodze potknąłem się kilka razy i o tym jest ten post. […]