Lista artykułów

Odświeżenie walidacji client-side w MVC3

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 [...]

Generowanie unobtrusive validation bez formy w MVC 3

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ę [...]

Hostowanie Git a modyfikacja historii

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ć [...]

4

Czy się różni wróbel

Niby prosta sprawa, a tak długo jak się tego nie sprawdzi to nie poczuje się różnicy. Czym się różni Process.Start od AppDomain.ExecuteAssembly – a tym, ze to pierwsze uruchomi proces niezależny od rodzica. Podczas gdy druga opcja będzie działać we w tym samym procesie, w tej samej konsoli. Tyle na dziś.

Git: wiele komend w jednym aliasie

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ł [...]

Git backup

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ę [...]

Słowo na niedzielę, o Ruby

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 [...]

8

C# nauka, materiały, etc

Każdy chciałby się szybko, przyjemnie i w interesujący sposób uczyć nowych technologi, języków czy bibliotek. Nie da się tego wszystkiego tak łatwo osiągnąć, albo ja nie znalazłem jeszcze sposobu. Jeżeli wiecie to będę wdzięczny za podzielenie się taką informacją. Nie ustając się w poszukiwaniu idealnego sposobu na naukę znalazłem jeden, który można uznać za prosty. […]

Jak korzystam z poziomów logowania

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 [...]

Czego nie robić na finałach Imagine Cup

[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 [...]

log4net vs nLog

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 [...]

object.LogInfo() – do logowania tożsamości obiektu

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: [...]

Zawód-programista. devamok i devyczerpanie.

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ć? [...]

Słowo na niedzielę, o działaniu, wiedzy i niedziałaniu

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 [...]

Pułapka relacji wiele-do-wielu (m:n)

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 [...]