Rzadko to rzadko, ale czasami moja głupota mnie przeraża. Zdarza mi się utknąć nad jakimś kawałkiem kodu, który MUSI działać. Po prostu MUSI. A nie działa…
Zwykle ma to miejsce po bardzo długiej sesji kodowania. Takiej jak ta, o której pisałem kiedyś. Podzielę się, chociaż mi wstyd:). Jedziemy…
Mailu, dlaczego się nie wysyłasz???
Prawie 3 godziny zmarnowałem jednej nocy na wysłanie maila. Siedziałem, testowałem, drapałem się w głowę, wymyślałem najdurniejsze juz możliwe rozwiązania… Wreszcie o 4 rano dostrzegłem że faktycznie coś chyba jest nie tak z mojej winy.
Info na stronie Onetu:
Mój konfig:
Bez dalszego komentarza.
WCFie, dlaczego nie działasz???
Równie niemało czasu (i o równie zboczonej porze) zajęło mi kiedyś przesłanie WCFem obiektu z serwera na klienta. Poniżej uproszczony kod… który NIE WYSYŁAŁ DANYCH! W jakie zagłębiłem się wówczas konfiguracje WCFa, czegóż ja nie zmieniałem, jakieś limity, jakieś zabezpieczenia… A godzin tych nikt już mi nie zwróci:
Ale przynajmniej teraz ZAWSZE gdy coś z WCF nie działa tak jak trzeba to przypominam sobie ową historię i sprawdzam czy przypadkiem moja klasa nie wygląda tak jak ta powyżej:).
SQLu, dlaczego źle się wykonujesz???
Innym razem tworzyłem w kodzie zapytanie SQL (komentarze "tak się nie robi!" proszę na bok). Zwracało one dane zależne od daty przekazanej w parametrze. Tworzyła je klasa skonfigurowana w kontenerze DI jako singleton, i wyglądało to mnie więcej tak:
Pierwsze wykonanie: OK. Ale im dalej w las, tym bardziej bezsensowne wyniki!
Oczywiście okazało się, że po takiej zmianie:
wszystko było już w porządku.
Wszystko, oprócz mojego poczucia własnej wartości:).
O, parametrze, dlaczegóż wartość twa niezmienna jest???
Nie tak wcale dawno z kolei modyfikowałem logikę wykonywania skryptów IronPython w tworzonym systemie. Nowe założenia (uproszczono-wymyślone): "jeśli przekazany skrypt jest pusty, pobierz z konfiguracji domyślny skrypt i go uruchom".
Banał, prawda? Ale, kurde, nie działa! Oto dlaczego:
Fluent eNHajbernejcie, dlaczego mapowania moje ignorujesz???
Dawszy się ponieść szałowi refactoringu zapędziłem się też w kozi róg przy użyciu NHibernate. Po dość intensywnych przemieszczeniach funkcjonalności między klasami, klas między folderami, folderów między projektami itd (jak to bywa w bardzo początkowej fazie projektu) znalazłem się w sytuacji… prawie że bez wyjścia. Kodu jako takiego nie zmieniałem w ogóle – modyfikowałem jedynie jego położenie. A mimo to nie mogłem z bazy pobrać nic. NIC!
Nie było błędu, ale nie było też danych. Po podłączeniu SQL Profilera okazało się, że nie wykonują się nawet żadne zapytania. Norrrrrmalnie szok i masakra.
Powyższy obrazek pokazuje (zasymulowaną w 5 minut w nowej instancji VS) co było nie tak. Idiot, idiot, idiot! Półtorej godziny wyrwane z nocy jak… ząb ze zgniłego dziąsła?
Karto sieciowa, dlaczego coś z tobą nie tak???
Ostatnia historyjka (i tak już pewnie wystarczająco straciłem w Waszych oczach:) )…
Tworzę sobie nową wirtualkę, wpinam w sieć gotową do testowania, i… i nic!
NIe pamiętam już ile czasu zajęło mi dostrzeżenie tego:
Blacha!
To kilka masakrycznych po prostu debilizmów z ostatnich kilkunastu miesięcy… Może nie nadają się na The Daily WTF, ale mam nadzieję że uśmiech u kogoś wywołało:) (są jak Pokemony – musisz rozwiązać je wszystkie!)
A jakie Wy mieliście przygody, po których głupio było spojrzeć w lustro?
Taki mały off-topic: jaki jest cel definiowania delegata _time zamiast funkcji private DateTime GetCurrentTimeValue()?
@Szymon Pobiega:
Nie potrafię sensownie odpowiedzieć – po prostu "samo wyewoluowało" z pola:).
Hehe, dobre, uśmiałem się :)
Szacuneczek za przyznanie się, to działa oczyszczająco.
No nie jest tak tragicznie, popełniałem większe kwiatki, no ale ja jestem amatorem, więc czuje się trochę usprawiedliwiony ;-) Eniłej, na gamedev.pl jest nawet wątek od tego, gdzieś tam w sumie są i moje kwiatki.
http://forum.gamedev.pl/index.php/topic,4306.0.html
ech chyba jakis filtr zaposciles na te kwiatki ;)
Oj tak, praktyka czyni mistrza i każdy z nas ma na koncie takie grzechy:). Mało tego – można być pewnym działania, by po jakimś czasie dopiero się przekonać, że jest złe. Ja m.in. do tej pory "pluję sobie w brodę", że wysłałem (dawno temu:)) rozwiązanie zadania (program w C++) na olimpiadę informatyczną, które przechodziło mi wspaniale pod Windows, ale pod Unixem jak się okazało już nie działało…a wszyyyystko toooo..boo… nie zainicjowałem tablicy :) Zabrakło
for (int i = 0; i < n; ++i) tab[i] = 0;
Jedną z głupszych a co gorsza powtarzających się u mnie jest… "wrong filesystem"!
No ale tak to jest jak się czasami ma kilka instancji podobnego kodu… branch stabilizacyjny, head… a potem Visual przypadkiem wyszukuje nie po tej ścieżce….
żebym to raz się tak nabrał :(
EEE słabe ;p To w sumie w ogóle nie są wpadki.
Ale z tym _time to trochę przesadziłeś. Z jakiego powodu nie mogłeś tam użyć zwykłego property Time { get; } ?