Lista artykułów

Automapper a Dependency Injection

W przykładzie z ostatniego posta wielu mogła nie podobać się następująca linijka: 1: string targetTimeZoneName = Config.TargetTimeZone; I mają rację, gdyż można by to zamodelować jako zależność konwertera od konfiguracji – najlepiej przez constructor injection. Ale przecież Automapper sam tworzy konwertery, resolwery, formatery i wszystkie inne szmery bajery (reklama Ery?)… HA! Nie było łatwo się [...]

Automapper i mapowanie z czasu UTC

Niedawno popisałem troszkę o czasie UTC i dlaczego tylko taka reprezentacja czasu powinna znajdować drogę do bazy danych. A teraz… w jaki sposób przygotować datę do podróży w drugą stronę, czyli do użytkownika. Z Automapperem jest to zadanie doprawdy banalne, wystarczy odpowiedni Type Converter: 1: public class UtcToLocalTimeConverter : TypeConverter 2: { 3: protected [...]

Hardware upgrade – mission accomplished

Po jesiennym wzbogaceniu domowej maszynerii o filmowo-programistyczno-giercowego Della Vostro 1720 (BTW: jeśli się nad nim zastanawiasz, to… prawdopodobnie w podobnej cenie znajdziesz coś bardziej satysfakcjonującego) nadszedł czas na spimpowanie mojego głównego przyjaciela PC. Dwa rdzenie i 4 GB RAMu to nie jest na dzisiejsze czasy sprzęt wystarczający do zawodowej deweloperki, szczególnie dla kogoś tak uzależnionego [...]

Słowo na niedzielę, o wizji projektu i finalnym produkcie

Nie czarujmy się, większość z nas pewnie zetknęła się kiedyś z taką szarą rzeczywistością, którą zgrabnie określił Jeff Atwood: At the end of the development cycle, you end up with software that is a pale shadow of the shining, glorious monument to software engineering that you envisioned when you started Co możemy z tym zrobić? [...]

Papierosowo-chamskie sko_dev_jarzenie

Jakoś dawno nic mi się z niczym nie sko_dev_jarzyło :). Aż tu nagle…. Nie mam nic przeciwko nałogowym palaczom, sam lubię sobie zajarać. ALE gdy wchodzę o 6.07 z samego rana do obleśnej mikrowindy w tym zapyziałym starym bloku, w którym aktualnie przyszło mi mieszkać, i otacza mnie zewsząd cuchnąca mgła wydyszana z płuc smołczyciela, [...]

Technologiczny kogel-mogel. .NET vs Java vs PHP vs RoR…

W dzisiejszym świecie "nietechniczni" kreatywni ludzie  nie mają łatwo. Obrotny biznesmen chce wsadzić w coś trochę kasy, rozkręcić jakiś projekcik, wpada na genialny pomysł: "a, zainwestuję sobie w portal!". Pomysł – betka. Założenia – betka. Analiza – betka. Ewentualna dotacja – betka. Okazuje się, że wszystko jest banałem w porównaniu z dokonaniem wyboru technologii. I, [...]

WCF Auth Starter – zalążek aplikacji klient-serwer z uwierzytelnianiem username/password

Często WCF, mimo swoich możliwości w zakresie "interoperability", wcale nie musi być kompatybilny z komponentami zewnętrznymi. Nasz serwer, nasz klient, a WCF między nimi. I… tu zwykle zaczynają się problemy… (jak to pisał nie-ś.p. † Kurt Vonnegut, gówno wpada w szprychy:) ). WCF jest tak rozbudowaną i skomplikowaną technologią, że odpowiednie dobranie zawartych w niej [...]

Słowo na niedzielę, o wszechwiedzy

Dzisiaj myśl, która powinna być mottem każdego programisty. Porada motywująca do rozwoju i do poznawania świata. Zasada, której przestrzeganie jest gwarancją ogromnego doświadczenia, obycia i umiejętności porozmawiania na każdy programistyczny temat. Wreszcie: jedna z moich największych “zawodowych” porażek, ponieważ okazało się, że na życie według tej reguły najzwyczajniej w świecie nie ma czasu: Know something [...]

Co POWINIEN freelancer

Zastanawiałem się ostatnio nad tym, jaki MUSI być godny zaufania freelancer-programista, a jaki być NIE MOŻE. Efektem jest kilka spostrzeżeń, które dla wielu ocierają się zapewne o banał… ale ze względu na spore zainteresowanie ostatnim postem o tej tematyce postanowiłem się nimi podzielić. Co zatem cechuje profesjonalistę? Zadowolenie klienta Różne mogą być bodźce powodujące zostanie [...]

RAMołasy Windows7 regularnie poluje na mój komfort psychiczny… i moją klawiaturę!

Mój komputer ma 4GB RAMu, z czego 2GB prawie cały czas oddane są maszynie wirtualnej, na której pracuję. W celu zwiększenia wydajności wyłączyłem plik stronicowania, coby mi co chwila nie rzęziło dyskami (wzrost wydajności o jakieś miliard %, co chyba zwiastuje rychły zgon tychże…?) Podczas normalnej pracy, z uruchomionymi wszystkimi potrzebnymi aplikacjami, zwykle ok 500MB [...]

Przechowujesz datę i czas? Może warto w UTC?

W ubiegłym tygodniu w implementowanym systemie zajmowałem się datą i czasem. I tak mnie tknęło… dlaczego w ogromnej większości systemów, które przyszło mi oglądać, datę zapisuje się w sposób następujący? 1: article.PublishedTime = DateTime.Now Niby co jest z tym złego? Właściwie… to zależy od kontekstu i rodzaju tworzonego systemu. Korzystając z powyższej konstrukcji trzeba zdawać [...]

Słowo na niedzielę, o pomyłkach

Czytając ostatnio dokumentację narzędzia KDiff3 (tak, zdarza mi się czytać takie rzeczy:) ) natknąłem się na zabawne, a jednocześnie chyba dość prawdziwe stwierdzenie: To err is human, but to really mess things up you need a computer Przypomina to, że ostrożność przede wszystkim! Źródło: dokumentacja KDiff3.

Jak wyłączyć filtr antyspamowy w Gmailu

Gmail jest moją "oficjalną" skrzynką i codziennie dostaję na niego sporo wiadomości. Spora część to spam, ale… wolę dostać 100 spamów każdego dnia niż przegapić jeden nie-spam z powodu nadgorliwego filtra antyspamowego. Nie korzystam z interfejsu webowego, więc i o zapełniającym się spamie nie byłem w żaden sposób powiadamiany. Tak więc ku pamięci: poniższy obrazek [...]

“Lokalne” funkcje w C#

Programowanie w JavaScript niesie za sobą dużą dozę swobody jeżeli chodzi o posługiwanie się funkcjami. Funkcje są wszędzie, deklarować je można na wiele sposobów, a rozsądne ich wykorzystanie jest źródłem nowych przyzwyczajeń, które chciałoby się niejednokrotnie przenieść do "rodzimego" języka programowania. W moim przypadku oczywiście C#. I dzięki wyrażeniom lambda takie szafowanie funkcjami na lewo [...]

“Lokalne” funkcje w C#

Programowanie w JavaScript niesie za sobą dużą dozę swobody jeżeli chodzi o posługiwanie się funkcjami. Funkcje są wszędzie, deklarować je można na wiele sposobów, a rozsądne ich wykorzystanie jest źródłem nowych przyzwyczajeń, które chciałoby się niejednokrotnie przenieść do "rodzimego" języka programowania. W moim przypadku oczywiście C#. I dzięki wyrażeniom lambda takie szafowanie funkcjami na lewo [...]