MVP, MSSQL, .NET
Aż dziw bierze, że od ponad dwóch latam param się freelancingiem, a jak ktoś pyta "gdzie mogę zobaczyć efekt twojej pracy?" – jestem zmuszony odpowiedzieć "nigdzie, zią". Tak to jednak bywa, gdy pracuje się głównie nad jednym projektem (ciągle w fazie rozwoju) albo przy zleceniach na systemy "wewnętrzne". Na szczęście niedawno uległo to zmianie i [...]
Na samo wspomnienie pracy z TFS mam nieprzyjemne ciary na plecach. I jak codziennie widzę kilka/kilkanaście wpisów na Twitterze rzygających na to paskudne narzędzie gorącą nienawiścią, pokłon Bozi składam że nie muszę się z tym już użerać. Na myśl przychodzi mi wówczas tekst z najlepszej płyty jaką kiedykolwiek wydano… bo słowa te mogłyby być taglinem [...]
Wielojęzyczność aplikacji www można rozwiązać na kilka sposobów. Jedne strony mają rysuneczki flag symbolizujących język, w jakim chcemy widzieć teksty (i nie tylko) i pamiętają to w cookie. Inne pozwalają to ustawić w profilu użytkownika i pamiętają ustawienie w bazie. Ostatnio pisałem rozwiązanie, które ustawia odpowiednią kulturę aplikacji na podstawie informacji wysyłanych przez przeglądarkę podczas [...]
Wczoraj miałem przyjemność poprowadzić sesję o testach jednostkowych na spotkaniu studenckiej grupy .NET na PB. Już dobre półtora roku temu postanowiłem sobie, że takie wystąpienia to rzecz nie dla mnie i że więcej nie będę próbował sprawdzać się w ten sposób. Jednak gdy dostałem zaproszenie od Justyny Iwanowskiej, białostockiej SC, zdecydowałem "a co mi tam". [...]
Chciałem, aby maile wysyłane z mojego systemu w nagłówku "from" posiadały jakąś ładną nazwę zamiast gołego adresu e-mail. Jednocześnie nie życzyłem sobie rezygnować z konfiguracji SMTP w web.config. O ile ustawienie tego z kodu jest z tego co pamiętam dość proste, to już osiągnięcie żądanego rezultatu z konfiguracji wymagało kilku prób i błędów. Ostatecznie okazało [...]
Nasiedziałem się nad pewnym problemem zdecydowanie dłużej niż siedzieć się nad nim powinno. W pisanym systemie Callcenter podpinam się do FreeSWITCHa socketem TCP coby w tenże sposób kontrolować jego zachowanie. Jak się można domyślić – stan połączenia między serwerem a centralką telefoniczną jest dla aplikacji callcenter dość kluczowy. Okazało się jednak, że standardowa logika wykrywania [...]
Pisać testy jednostkowe do wszystkiego? Celować w 100% unit-test-code-coverage? Stosować TDD dla każdego rodzaju kodu? Na te pytania bardzo łatwo znaleźć w internecie odpowiedź i brzmi ona: TAK. Niestety nie jest to odpowiedź prawidłowa. Czasem lepiej testu nie napisać, niż go napisać. Czasem lepiej test skasować, niż go po raz dziesiąty poprawiać po zmianie w [...]
Wykorzystanie Automappera ma swoje uzasadnienie i często-gęsto można je uznać za "kod pożądany". Pomimo swych zalet ma jednak również wady. Jedną z nich są z pewnością dość długaśne instrukcje wykonujące mapowanie: 1: var mapped = Mapper.Map(source); Takie coś powtarzane ołwer-and-ołwer-egen potrafi zirytować. A gdyby to uprościć? Do: 1: var mapped = source.Map(); Nadal nie [...]
Ostatnio natknąłem się na sytuację, która miejsca mieć nie powinna… a mimo to zdarza się w każdym chyba projekcie dość regularnie. Otóż podczas klikania po aplikacji w przypadkowym teście okazało się, że jedna z podstawowych funkcjonalności nie działa. Nie wykonywał się POST jakiejś prostej formy. Dziw nad dziwy… kod wyglądał OK, przejrzenie ostatnich commitów nie [...]
Dość dawno już temu pokazałem jak można użyć Automapper do mapowania kolekcji bez powodowania ciągnięcia ich zawartości z bazy: "AutoMapper, NHibernate, lazy loading oraz problem select n+1". Dzisiaj wrócę na chwilę do tematu Automappera i NH. Spójrzmy na klasy: 1: public class User 2: { 3: public virtual int Id { get; set; } 4: [...]
Niedawno po raz pierwszy w życiu zajmowałem się Google Maps. Spodziewałem się, że zajmie to max kwadrans, w końcu masa stron to ma, dokumentacja jest dobra… no i moja Joanna na mapach zęby zjadła:). Niestety nawet z połączonymi siłami poprawne skorzystanie z map zajęło nam dobre kilka godzin. Problemem okazało… w sumie kilka rzeczy. Wymagania: [...]
Wpadanie na świetne pomysły warte miliony jest chyba wpisane w zawód programisty. Ja, odkąd sięgam programistyczną pamięcią, mam dwa-trzy takie pomysły w roku. Ba, nawet aktualnie, w tej właśnie chwili, nie mogę pozbyć się jednego z głowy. A jeszcze 4 miesiące temu siedział tam zupełnie inny! Wiem, że inni programiści również co i rusz coś [...]
Miłe złego początki Przychodzi baba do lekarza… Tfu. Przychodzi klient do freelancera. Wręcza całkiem niezłą i dokładną specyfikację. – Za ile? – Za tyle. – Ile czasu? – Tyle. – To robimy. I projekt rusza. Wszystko jest jasne, dograne i wytłumaczone. Zakres prac określono w specyfikacji, ptaszki ćwierkają, freelancer z zapałem uderza w klawiaturę, klient [...]
NHibernate posiada zmienną show_sql, której ustawienie na "true" powoduje wypluwanie na konsolę wszystkich SQLi idących do bazy. Zachciało mi się pewnego dnia podpiąć po prostu debuggerem pod aplikację i zobaczyć te SQLe w Visualu, w okienku Output. Była to aplikacja web – więc konsoli brak. Trial na nhprof akurat się skończył:), więc w danej minucie [...]
Optymalizacja procedur składowanych czy zwykłych zapytań do bazy danych nie jest zadaniem wdzięcznym, ale potrafi dać bardzo wiele satysfakcji. Kto doświadczył zoptymalizowania działania jakiegoś potworka w taki sposób, że po pół godziny pracy czas wykonania spada z 2 minut do 1 sekundy, wie doskonale o czym mówię. A jak uda się tego dokonać bez grzebania [...]
MVP, MSSQL, .NET
Programista-pasjonat. Człowiek od wszystkiego związanego z programowaniem. Autor bestsellerowej książki “Zawód: Programista“.
Od 2008 posiadacz tytułu Microsoft MVP (Most Valuable Professional) w kategorii .NET.
Od 2005 Microsoft Certified Professional.