Strona konkursu Z pamiętnika dewelopera historii kilka… zawiera szczegółowy regulamin i opis nagród. Planujemy dodatkowo podczas konferencji umożliwić podzielenie się swoimi "przygodami" w formie stand up comedian:)
//====================================
Gdyby ktoś z lenistwa nie kliknął linka pod którym znajdują się zgłoszone historyjki, to zamieszczam kopię własnej:
Tytuł: java.util.Calendar a sprawa Polska, czyli gdzie są moje 24 minuty?
Problem:
Duży system, w którym klientem do serwera były applety. Na wielu formularzach istnieje możliwość edycji czasu pewnych zdarzeń. Czas edytowany przez zwykłe pole tekstowe w formacie godzina:minuty. Niestety, na niektórych formularzach można zaobserwować następujące schorzenie: wpisujemy pewien czas, zapisujemy, następnie gdy ponownie edytujemy rekord, czas jest zawsze cofnięty o 24 minuty! Liczba 24 kojarzy się każdemu z ilością godzin w dobie tak więc jest to doskonale zwodnicza wartość…
Tło techniczne:
Czas – z powodów, które pamiętają już tylko prastarzy Słowianie programujący w technologiach z epoki krzemu łupanego – był zapisywany w bazie danych jako: 01.01.1900 godzina_z_formularza:minuta_z_formularza:00.000
Kluczowy jest tutaj pierwszy stycznia roku 1900.
Zapis i odczyt działały poprawnie. Komunikacja applet – serwisy serwera poprzez Spring Remoting (zdalne wywołanie metod Beanów Springa, serializacja paramentów i wyników i wyjątków).
Czas był przesyłany w DTOsach w postaci obiektów klasy java.util.Calendar (służącej lepiej lub gorzej do manipulacji czasem) zamiast java.util.Date (służącej jako kontener na czas).
Calendar jest o tyle sprytną klasą, że jej obiekty badają lokalizację systemu operacyjnego na którym żyją. W przypadku podpisanych appletów robiły to na maszynach klienckich po ich przesłaniu i deserializacji.
Warto wiedzieć:
Po tygodniu poszukiwań okazało się, że głęboko w kodzie kalendarza istnieje logika, która uwzględnia następujący fakt:
A panowie z Suna (niestety) odrobili lekcje z historii…
6 komentarzy:
Manipulacje czasem to ciężki temat - strefy czasowe, historyczne zdarzenia jak znikające tygodnie, bieżące zdarzenia jak decyzje niektórych państw dotyczące likwidacji czasu letniego, sekundy przestępne i pewnie dużo innychs
A czy można poprosić o źródła? Nie mogłem dokopać się do żadnych informacji w sieci na temat z zmiany czasu w 1904 (pobieżna lektura klasy Calendar też nie pryniosła rezultatu)
Sytuacja miała miejsce w 2006r więc nie pamiętam źródła tej informacji - przekazał nam ją sprawca zamieszania, który zachwycony nowo poznaną klasą Calendar zaczął jej używać namiętnie:)
Ale przy najbliższej okazji zapytam go, bo na pewno pamięta wszelkie szczegóły - nie zdziwiłbym się gdyby śniły mu się po nocach do tej pory hehehe
To był 4 sierpnia 1915: Szczegóły tu.
Dzięki za sprostowanie. Widocznie po 5 latach liczby w moim mózgu się rozmyły i 4. sierpnia stał się rokiem 1904.
super wpis
Prześlij komentarz