Przemysław Walkowski Parę linijek kodu, proste pytanie co ten kod robi lub gdzie jest błąd. Nazywam to zagadkami. Czasem nawet 5 lat doświadczenie nie wystarczy aby odpowiedzieć prawidłowo na tego typu pytania. Poniżej lista paru zagadek, które zebrałem w jednym miejscu. Osobiście zawsze gdy idę na rozmowę o pracę mam ze sobą swoją zagadkę, w razie gdybym nie odpowiedział na którąś zadaną mi przez rekrutera. Robię to po to aby pokazać, że zagad...
Sztuka programowania 3136 dni, 18 godzin, 24 minuty temu 1418 źrodło rozwiń
Ostatnio w pracy miałem do rozwikłania pewien banalny problem (przynajmniej tak mi się pierwotnie wydawało). Moim zadaniem było znalezienie programowego rozwiązania, które w sposób jednoznaczny pozwoli zidentyfikować smartfon z systemem Windows Phone. Aplikacja wykorzystywała architekturę WinRT (Universal Apps).
Mobile development 3148 dni, 8 godzin, 10 minut temu 179 źrodło rozwiń
Zapewne słyszeliście o MapReduce, a jeśli nie, to teraz macie okazję poczytać. MapReduce jest frameworkiem służącym do przetwarzania dużych zbiorów danych w sposób zrównoleglony. Ostatnimi czasy stał się bardzo popularny dzięki platformom takim jak Hadoop (o nim w kolejnym poście) czy Spark. Wykorzystywany jest wszędzie tam, gdzie dane liczy się w terabajtach. Duże firmy produkują dużo danych...
Agile Principles, Patterns, and Practices in C# by Uncle Bob is the best book about modern Software Development I have ever read. First section (chapters 1-6) is an Overview of Agile, Extreme Programming (XP), and TDD. Very good introduction to modern software development. Chapter 6. shows all these techniques by example, by creating “The Bowling Game” application...
Sztuka programowania 3160 dni, 2 godziny, 19 minut temu 246 źrodło rozwiń
„Linq to Object” jest bardzo dobrze wyposażonym mechanizmem. Posiada wiele metod, które generalnie pokrywają 70% potrzeb podczas projektowania aplikacji. Jednak czasami potrzebujemy tych 30%, których nie ma. Poniżej pokazuje jak napisać własną metodę rozszerzeń (extension method) do Linq To Object na przykładzie autorskiej metody SplitIntoParts. Aby napisać dobrą metodę rozszerzeń należy spełnić kilka warunków...
Sztuka programowania 3170 dni, 17 godzin, 59 minut temu 182 źrodło rozwiń
W C# możemy tworzyć własne konwersji obiektów. Przy użyciu słów kluczowych Explicit i Implicit możemy przeprowadzić konwersję typów referencyjnych na wartościowe i odwrotnie. Na początek podstawy. Konwersje Implicit nie wymagają żadnych dodatkowych słów kluczowych, ponieważ kompilator dopuszcza tylko takie konwersje, które są bezpieczne (czyli na przykład takich, w których nie ma utraty precyzji). Przykład poniżej: int i = 1234; double d = i;...
Sztuka programowania 3180 dni, 8 godzin, 14 minut temu 193 źrodło rozwiń
Nadszedł czas na kolejną porcję przykładów z wykorzystaniem ThreadSafe collection. W tym poscie po krótce opisze do czego i w jaki sposób używać kolekcji ConcurrentStack
Sztuka programowania 3180 dni, 8 godzin, 14 minut temu 212 źrodło rozwiń
Do dzisiejszego wpisu zainspirowała mnie aplikacja, którą współtworzymy z Tymkiem Kęstowiczem. Potrzebowaliśmy połączyć naszą aplikację napisaną w MVC z bazą danych (tu wybór padł na MySQL). Zdecydowanie chcieliśmy uniknąć strzelania z armaty ...
Sztuka programowania 3181 dni, 16 godzin, 37 minut temu 278 źrodło rozwiń
Programowanie nigdy nie było łatwe i szybkie, ale największe wyzwania stoją przed tymi, którzy chcą stworzyć prosty, czytelny, elastyczny i wydajny kod. Czy da się zawsze ładnie połączyć wszystkie elementy tej układanki? Niestety nie, ale to nie oznacza, że powinniśmy łatwo się poddawać.
Sztuka programowania 3183 dni, 3 godziny, 50 minut temu 511 źrodło rozwiń
Gdy przychodzi czas na stworzenie aplikacji to najpierw staram się przemyśleć co ona ma robić i co z czym się łączy. Gdy obraz jest już w miarę wyraźny to zanim zacznę kodować jakieś prototypy i abstrakcje, przeglądam poniższą listę wzorców projektowych. Są ku temu dwa powody. Po pierwsze sprawdzam czy do mojego rozwiązania można dopasować jakieś wzorzec. Nie znam na pamięć wszystkich wzorców a czasem te mniej popularne (o których się normalnie nie pamięta) się przydają. Po drugie robię to aby trochę s...
Sztuka programowania 3200 dni, 5 godzin, 55 minut temu 3425 źrodło rozwiń
W ostatnim czasie otworzyłem mały cykl wpisów na temat Universal Apps, ponieważ jest to obecnie dość bliski mi zawodowo temat. Sama koncepcja tego rozwiązania, wydaje się być odważna, ale wygląda jednak na to, że ktoś to w Microsofcie całkiem sprytnie to przemyślał. Oczywiście kilka elementów jeszcze tutaj kuleje, ale w tej chwili projekty Universal Apps przypominają trochę tworzenie stron responsywnych. Mamy jednolity backend i tak naprawdę zmienia się głównie frontend (XAML), choć w tym akurat przypadk...
Sztuka programowania 3205 dni, 8 godzin, 24 minuty temu 105 źrodło rozwiń
C#, Narzędzia progamistyczne.NET Często podczas pracy firmach finansowych przychodzi czas na typowe zadanie zamiany liczby z postaci cyfrowej na postać liczbową w języku polskim. Szukałem w internecie gotowej implementacji takiego algorytmu, sprawdzonego i przetestowanego z otwartymi kodami i… okazało się, że nic nie znalazłem do C#. Nie było nigdzie implementacji takiego konwertera w .NET dlatego poniżej zrobiłem własną implementację. Poniżej warunki t...
Dużo w ostatnim czasie piszę o aplikacjach uniwersalnych, a wcześniej również sporo było tekstów o WPF. Co łączy oba tematy? Oprócz XAMLa który pojawia się w obu tych technologiach, pewnym dość istotnym łącznikiem jest wzorzec architektoniczny MVVM. MVVM pozwala na rozbicie logiki naszej aplikacji na pewne określone elementy. Mamy widoki, modele oraz tajemniczy element ViewModel. ViewModel to klasa, która zawiera uporządkowane i wypełnione danymi klasy modelu, pasujące do pewnego określonego widoku. Inny...
Sztuka programowania 3210 dni, 8 godzin, 42 minuty temu 514 źrodło rozwiń
Czasami musimy połączyć kilka dokumentów PDF w jeden. W moim przypadku polegało to na stworzeniu jednego dokumentu pdf z kilku dokumentów wgranych na serwer przez użytkownika, oraz dołączeniu pliku z podpisem na początku lub końcu dokumentu w zależności od konfiguracji.
Niedawno byłem zmuszony do powrotu do kodu, który kiedyś współtworzyłem. Musiałem dołożyć pewną w gruncie rzeczy drobną funkcjonalność. Nie sprawiło to mi większych problemów, ale samo obcowanie z tym kodem skłoniło mnie do refleksji. Dopiero porównując tamten kod (z którego byłem przecież dumny jak paw) z kodem dzisiejszym widzę różnicę (ciekawe co powiem za kilka lat o obecnym kodzie). Różnicę w sobie samym. Widzę jak przez ostatnie dwa lata się zmieniłem (ale to temat na inny post). Moją szczegó...
Sztuka programowania 3222 dni, 13 godzin, 38 minut temu 135 źrodło rozwiń
Częstym zadaniem, na które natykam się w czasie pracy programisty .NET to integracja z Office-em. Typowym zastosowanie takiej integracji jest export lub import danych do plików Excela dla Pań z księgowości : ) Jednym z problemów podczas integracji jest szybkość importowania i eksportowania danych do z plików Excela. Problem szybkości tworzenia plików Excel-a widać już przy wielkościach rzędu 1000 wierszy. Jedyną pomocą jest zmienić sposób integracji.
Sztuka programowania 3225 dni, 20 godzin, 31 minut temu 521 źrodło rozwiń
Nieuchronnie zbliża się moment, w którym aplikacja, za którą jestem współodpowiedzialny zostanie opublikowana i zacznie działać u klienta. Lubię ten moment bo jest to ostateczna weryfikacja naszej pracy. Zdaje sobie jednak sprawę, że wiąże się to z wprowadzeniem pewnych dodatkowych funkcjonalności w aplikacji, które w fazie rozwojowej są (całkowicie?) zbędne. I właśnie jedyną z takich funkcjonalności chciałem omówić a konkretnie migrację bazy danych. Pamiętam jak dziś moment, w którym oddaliśmy (na...
Sztuka programowania 3235 dni, 8 godzin, 56 minut temu 200 źrodło rozwiń
W poprzednim temacie opisałem czym jest Azure Service Bus oraz jak rozpocząć korzystanie z tej usługi. Dziś zajmę się tematem kolejek (Queues). Pokażę w jaki sposób zarządzać kolejkami z poziomu kodu oraz jak oprogramować wysyłanie i odbieranie wiadomości. W prezentowanych przykładach wiadomość przesyłana pomiędzy nadawcą i odbiorcą będzie zawierała obiekt zamówienia: public class Order { public...
NavigationStrona głównaO MniePrelekcjeGutek6th November, 2014pro , c#, json.net, reflections Pisząc jeden system, doszliśmy do wniosku w firmie, że trzeba zrobić testy integracyjne. Wiemy, że poszczególne części systemu same w sobie działają tak jak chcemy, albo dokładniej tak jak myślimy, że mają działać :) Część systemu, którą chcieliśmy przetestować była odpowiedzialna za słanie wiadomości poprzez szynę, jej odbiór, następnie odpowiedni processing uzależniony od danych wejściowych i tych w bazie dan...
Omawiana w poprzednim poście zależność w najprostszej postaci charakteryzuje się pewnym nieprzyjemnym problemem (nie mówiąc o samym fakcie konieczności korzystania z takiej abstrakcji), który postaram się przedstawić na przykładzie.
Sztuka programowania 3251 dni, 23 godziny, 56 minut temu 343 źrodło rozwiń