30-01-2008 21:42
Mój ulubiony błąd...
W działach: Informatyka | Odsłony: 0
end;
Ctrl-S
term
> qmake
> make
...
Done.
>./app
Działa. Ostatnia linijka napisana. Kompilacja bez problemów. Aplikacja działa. Szybki test. Wszystko jest dobrze. Wrzucamy program do ściągnięcia, rano sobie zaktualizują. Pora do domu.
Telefon dzwoni od wejścia.
- Słucham.
- Program nie działa.
Taaa. A mnie kryształowa kula.
- To znaczy co dokładnie? Jakie są objawy?
- Jak wciskam przycisk "Nowa funkcja" to się wywala.
- Sprawdzę Oddzwonię.
Windows. Uruchamiam. Klikam. Buch! Przecież wczoraj sprawdzałem... Działo.
Linux. Sprawdzam kod. try i catch na pozycjach, wieć wyjątki przechwytuję. Kompiluję. Działa. Przeglądam kod. Wszystko jest dobrze. Program przed wywołaniem okna sprawdza, czy zmienna nie jest null, a jeśli jest to wywołuje new i tworzy je. Potem też sprawdza, czy wszystko jest dobrze. A jeśli okno jest już stworzone (adres nie jest null) to tylko je wyświetla. Robię rebuild. Niech utworzy wszystko od początku. Taktyka spalonej ziemii. A co...
Działa... A pod Windowsem nie. Znaczy pora na kawę.
Olśnienia nie było. Jeszcze raz próba kompilacji pod linuxem i uruchomienie. Nie działa. NIE DZIAŁA! W końcu nie działa. Z czego to się człowiek potrafi ucieszyć. A skoro raz działa, a raz nie, to znaczy...
Szlag! Znowu. Niezainicjowana zmienna. Kompilator nie ma obowiązku zerować pamięci. Jakis śmieć w nieodpowiednim miejscu ramu i program myślał (błędnie), że okno już istnieje...
Za pierwszym razem się przejąłem, bo to w sumie głupio takiego babola strzelić... Wyleczyli mnie koledzy. W jednym tygodniu po kolei każdy z nas miał taką samą wpadkę. Teraz zdarza się rzadziej, ale nadal występuje. I zawsze jest tak samo upierdliwa - raz działa, raz nie. I oczywiście najczęsciej u nas działa, a u klienta nie.
Dobra. Szybka poprawka. Wrzucamy. Telefon - już wszystko dobrze, proszę ściągnąć aktualizację i rozpocząć pracę. Uśmiech na twarzy, bierzemy się za coś innego...
Drrrryńńńń.
- Znowu nie działa.
Powtarzam procedurę wyciagania informacji z klienta w wyobraźni wyciągając mu język na półtora metra z drugą ręką zaciśniętą na gardle.
- Już sprawdzam.
Tym razem tylko zapomniałem nadać kilentowi uprawnienia do korzystania z perspektywy (view) w bazie danych. Odkładam słuchawkę.
Spoglądam w edytor. Po raz kolejny zaczynam od początku analizować metodę klasy.
DRRRRRYŃŃŃŃŃ.
Zrezygnowany wyciągam dłoń do telefonu.
- Nie proszę pani. Nie dodzwoniła się pani do BRE Banku. Nie, nie wiem jaki mają numer telefonu.
Jeszcze tylko 7 godzin i 30 minut. Potem już nikt nie będzie dzwonił, a ja wreszcie będę mógł spokojnie popracować.
Ctrl-S
term
> qmake
> make
...
Done.
>./app
Działa. Ostatnia linijka napisana. Kompilacja bez problemów. Aplikacja działa. Szybki test. Wszystko jest dobrze. Wrzucamy program do ściągnięcia, rano sobie zaktualizują. Pora do domu.
Telefon dzwoni od wejścia.
- Słucham.
- Program nie działa.
Taaa. A mnie kryształowa kula.
- To znaczy co dokładnie? Jakie są objawy?
- Jak wciskam przycisk "Nowa funkcja" to się wywala.
- Sprawdzę Oddzwonię.
Windows. Uruchamiam. Klikam. Buch! Przecież wczoraj sprawdzałem... Działo.
Linux. Sprawdzam kod. try i catch na pozycjach, wieć wyjątki przechwytuję. Kompiluję. Działa. Przeglądam kod. Wszystko jest dobrze. Program przed wywołaniem okna sprawdza, czy zmienna nie jest null, a jeśli jest to wywołuje new i tworzy je. Potem też sprawdza, czy wszystko jest dobrze. A jeśli okno jest już stworzone (adres nie jest null) to tylko je wyświetla. Robię rebuild. Niech utworzy wszystko od początku. Taktyka spalonej ziemii. A co...
Działa... A pod Windowsem nie. Znaczy pora na kawę.
Olśnienia nie było. Jeszcze raz próba kompilacji pod linuxem i uruchomienie. Nie działa. NIE DZIAŁA! W końcu nie działa. Z czego to się człowiek potrafi ucieszyć. A skoro raz działa, a raz nie, to znaczy...
Szlag! Znowu. Niezainicjowana zmienna. Kompilator nie ma obowiązku zerować pamięci. Jakis śmieć w nieodpowiednim miejscu ramu i program myślał (błędnie), że okno już istnieje...
Za pierwszym razem się przejąłem, bo to w sumie głupio takiego babola strzelić... Wyleczyli mnie koledzy. W jednym tygodniu po kolei każdy z nas miał taką samą wpadkę. Teraz zdarza się rzadziej, ale nadal występuje. I zawsze jest tak samo upierdliwa - raz działa, raz nie. I oczywiście najczęsciej u nas działa, a u klienta nie.
Dobra. Szybka poprawka. Wrzucamy. Telefon - już wszystko dobrze, proszę ściągnąć aktualizację i rozpocząć pracę. Uśmiech na twarzy, bierzemy się za coś innego...
Drrrryńńńń.
- Znowu nie działa.
Powtarzam procedurę wyciagania informacji z klienta w wyobraźni wyciągając mu język na półtora metra z drugą ręką zaciśniętą na gardle.
- Już sprawdzam.
Tym razem tylko zapomniałem nadać kilentowi uprawnienia do korzystania z perspektywy (view) w bazie danych. Odkładam słuchawkę.
Spoglądam w edytor. Po raz kolejny zaczynam od początku analizować metodę klasy.
DRRRRRYŃŃŃŃŃ.
Zrezygnowany wyciągam dłoń do telefonu.
- Nie proszę pani. Nie dodzwoniła się pani do BRE Banku. Nie, nie wiem jaki mają numer telefonu.
Jeszcze tylko 7 godzin i 30 minut. Potem już nikt nie będzie dzwonił, a ja wreszcie będę mógł spokojnie popracować.