MVP, MSSQL, .NET
Dość regularnie zdarza mi się, że próbując wyszukać coś w projekcie dostaję wielką śmierdzącą figę zamiast wyników. Co prawda lepsze to niż wielkie śmierdzące figi, ale i tak oczekuję czegoś innego. Jest na przykład tak: Wyraźnie widać, że szukany tekst "pnlall‘ znajduje się chociażby dokładnie tu, w otwartym już pliku! WTF?? No ale dobra, bug [...]
Ostatnio pokazałem jak można wygenerować panel zawierający walidację bez używania formy. Można go potem gdzieś dokleić i… No i nie działa:). Powód jest bardzo prosty: samo doklejenie htmla do dokumentu nie sprawia jeszcze, że walidatory zostaną obsłużone. Aby to osiągnąć należy wymusić sparsowanie nowych elementów przez framework walidacji. Okazuje się, że robi się to bardzo [...]
W ASP.MVC 3 dodano bardzo przyjemną walidację danych po stronie klienta, która nie miesza w htmlu jak Gargamel w wielkim garze pełnym wypatroszonych kwiczących smerfów. Wszystkie dane chowa w atrybutach ("data-*" zgodnych z HTML5), a skrypty wywalone są na zewnątrz. Tak jak powinno być. Zwie się bardzo poważnie: unobtrusive validation. Wystarczy zawrzeć to co się [...]
Opublikowałem kiedyś kilka słów o modyfikowaniu historii w Gicie. Bardzo przydatna możliwość, gdy chcemy robić to lokalnie, przed pchnięciem zmian do zdalnego repozytorium. Albo gdy w pełni kontrolujemy wszystkie zmiany lądujące w centralnej lokalizacji i świadomie wykonujemy push z opcją –force w celu nadpisania już wysłanych commitów. Prawdopodobnie zdarzy się jednak, że będziemy musieli dać [...]
Dopiero niedawno dowiedziałem się, że w Gicie można agregować wiele komend pod jednym aliasem. Kluczem jest rozpoczęcie definicji aliasa od wykrzyknika, którzy powoduje wykonanie tekstu jako zwykłej komendy systemowej a nie polecenia gita: 1: [alias] 2: stl = !git status && git log -n1 Powyższy alias pokaże aktualny status oraz ostatni commit. Nie będę ściemniał [...]
Jak już niejednokrotnie pisałem, że do pracy bardzo intensywnie wykorzystuję maszyny wirtualne. Każdy projekt ma swoją. Co za tym idzie – cały kod mam także schowany w wirtualkach, bo repozytorium hostuję na vipserv (lub na hostingu dostarczonym przez klienta). Ma to nieprzebrane wprost morze zalet. Ma też kilka wad, z których jedna dawała mi się [...]
Nauka nowego języka programowania jest procesem fascynującym. Jak jednak wybrać docelowy język jeśli już będziemy przekonani, że mamy na to czas? Poniżej argument przemawiający za Ruby, z którym ciężko dyskutować: You know it’s time to learn Ruby when non-Ruby books are using Ruby for the code examples To co – do roboty?:) Źródło: Hadi Hariri [...]
Pod jednym z moich ostatnich postów na temat logowania Jacek zasugerował w komentarzu abym napisał trochę więcej o tym jak dzielę logi na poszczególne poziomy. Poniżej opis moich ZAMIERZEŃ. Zamierzeń, ponieważ jeszcze w ten sposób z logowania nie korzystałem, ale po dość długim rozmyślaniu wydaje mi się to najsensowniejszy podział. Może pojawią się uwagi korygujące [...]
[Uwaga: pisząc "Imagine Cup" mam na myśli "Imagine Cup, kategoria Projektowanie Oprogramowania"] Polskie finały Imagine Cup 2011 zbliżają się wielkimi krokami. Postanowiłem skorzystać z okazji i podzielić się kilkoma refleksjami na ten temat. Miałem przyjemność dwukrotnie uczestniczyć w tym evencie jako startujący, i dwukrotnie jako widz. Oraz kilkukrotnie o tym pisać. Przez lata (właściwie od [...]
Kolejny raz o logowaniu… "bo to naprawdę ważne™" :). W świecie .NET mamy dwie liczące się biblioteki oferujące logowanie informacji z aplikacji: log4net oraz nLog. Oczywiście znajdą się też inne rozwiązania: od koszmarnych (The Logging Application Block z EntLiba) po głupie (pisanie własnego loggera i jego produkcyjne wykorzystanie). Z tych dwóch zdecydowanie bardziej popularny jest [...]
Niedawno przedstawiłem TokenContext, klasę pomocniczą upraszczającą wyławianie kontekstu z masy logów tworzonych w aplikacji wielowątkowej, gdzie wiele operacji przeplata się nawzajem. Regularnie jednak zdarza się, że interesuje nas nie tyle jedna szczególna operacje co cały cykl życia konkretnego obiektu. Kumpel, z którym pracuję nad "głównym" projektem, zaproponował stosowanie takiej, bardzo prostej, logicznej i przydatnej, konwencji: [...]
Jak przez mgłę widzę czyjąś twarz. Rusza ustami, chce mi coś przekazać. Początkowo dociera do mnie tylko głuchy bulgot, jakbyśmy byli pod wodą. Powoli jednak skrawki wypowiadanych słów w jakiś sposób trafiają do moich uszu. Im więcej rozumiem, tym głębszy mają sens. Chcę słuchać, jeszcze i jeszcze. Przeżywam moment olśnienia. Skąd on wie co mówić? [...]
Zmagając się z problemem przez dłuższy czas można sobie życzyć: “niech to wreszcie zacznie działać!“. Przypuśćmy, że zaczyna… i co? Hip? Hip? Hurra? Niekoniecznie. Jeżeli coś zaczęło działać ot tak, nagle, samo z siebie, równie dobrze może ot tak, nagle, samo z siebie przestać działać. Wiadomo, że nie ma czasu, że gonią kolejne zadania, że [...]
Wpadłem w pułapkę relacji wiele do wielu, m:n. Po raz kolejny. Jak fretka w sidła… te same po raz n-ty (czy m-ty?). Byłem na siebie tak wściekły, że to ludzkie pojęcie przechodzi. Właściwie bardziej mi teraz szkoda nerwów niż straconego czasu. Ale o co się, panie, rozchodzi? W moim systemie miałem bardzo prostą zależność: Company [...]
Dzisiaj miała miejsce premiera pierwszego odcinka programistycznego videobloga codingtv.pl. Łukasz Gąsior i Andrzej Kowal zamierzają poprowadzić swoich widzów przez deweloperską drogę "od kołyski do mundurka", czyli od zebrania wymagań systemu do jego zakończonej implementacji. Za swój cel obrali implementację platformy do prowadzenia bloga. Zapowiada się ciekawie i liczę, że każdy programista .NET będzie w stanie [...]
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.