Programistyczne WTF jakie Was spotkały

Odpowiedz Nowy wątek
rnd
2009-04-03 11:31
rnd

Rejestracja: 12 lat temu

Ostatnio: 8 lat temu

11

Dziś w pracy moim oczom ukazała się klasa na 30k linijek. W jednym pliku.
Jeszcze jestem w szoku :-D
A jakie Wy mieliście WTF?


#define TRUE FALSE
//Happy debugging suckers :D
edytowany 2x, ostatnio: Demonical Monk, 2011-12-04 00:47

Pozostało 580 znaków

2019-08-25 20:28

Rejestracja: 3 lata temu

Ostatnio: 30 minut temu

5

Endomondo, mam więcej takich.
screenshot-20190825202819.png


Keep calm and blame frontend
Myslalem ze to morze to tez wtf ale windsurfing wiele wyjasnia - stivens 2019-08-25 20:31
Nie, tak naprawdę to pontonem płynąłem i chciałem sprawdzić prędkość. - kzkzg 2019-08-25 20:32
Wciaz ratuje to przed absurdem - stivens 2019-08-25 20:34
Musi, przez jakiś czas poruszałeś się z prędkością ujemną :) - Freja Draco 2019-08-25 20:52
Czyli inaczej mówiąc cofał się do tyłu ;) I wszystko jasne, nie ma żadnego WTF. - cerrato 2019-08-25 22:57
A zważywszy na kontekst, to chyba nawet cofał się do przodu ;) - Freja Draco 2019-08-29 15:14

Pozostało 580 znaków

2019-08-26 10:56

Rejestracja: 5 lat temu

Ostatnio: 3 minuty temu

2

Mały wtf w Javie.
Piszę sobie klasę do testu, gdzie muszę ustawić konkretną datę, z milisekundami.
No to jadę:
LocalDateTime.of(2018, 8, 8, 4, 5, 0)
Teraz potrzebuję dodać do tego 489 milisekund. Korzystając z tej klasy wcześniej, widzę metody:
plusHours, plusDays, plusMinutes, plusMonths, plusNanos, plusSeconds, plusWeeks, plusWeeks.
Gdzie jest plusMillis? Pytanie z kategorii co autor miał na myśli, i co ich bolało jeszcze dodać jedną metodę do API? Zatem zostaje mi skorzystać z trochę bardziej ułomnego sposobu.
LocalDateTime.of(2018, 8, 8, 4, 5, 0).plus(489, ChronoUnit.MILLIS)
Działa, choć niesmak pozostał...

edytowany 2x, ostatnio: dargenn, 2019-08-26 10:56
Pokaż pozostałe 3 komentarze
masz plusNanos. dodaj sobie 489000000 nanosekund :) - Azarien 2019-08-26 11:37
Milisekundy i mikrosekundy liczysz z nanosekund. Poza tym jestem ciekaw, kiedy ten test się wysypie :D - Koziołek 2019-08-26 12:29
Na środowisku z innym timezonem ;) Dlatego później jest jeszcze brany z tego Instant i ustawiana strefa, co powinno przeciwdziałać takim kwiatkom ;) - dargenn 2019-08-26 12:36
I dlatego potrzebujesz TimeService. Chyba, że to właśnie on. - Koziołek 2019-08-26 13:46

Pozostało 580 znaków

2019-08-26 13:37

Rejestracja: 6 lat temu

Ostatnio: 4 dni temu

2

title

Każdy taki pliczek od D0 do D53 zawiera praktycznie to samo.

package com.ardublock.translator.block;

import com.ardublock.translator.Translator;
import com.ardublock.translator.block.exception.SocketNullException;
import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;

public class D36 extends TranslatorBlock
    {

        public D36(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label)
        {
            super(blockId, translator, codePrefix, codeSuffix, label);
        }

        @Override
        public String toCode() throws SocketNullException {
            return codePrefix + "36" + codeSuffix;
        }

    }

My to na arm napiszemy wszystko i zrobimy co chcemy tyle że 90% kodu to biblioteki z netu albo robota kompilatora Zdajesz sobie sprawę że tak na prawdę wyższy poziom języka może świadczyć jedynie o tym jak niskim poziomem wiedzy może dysponować bałwan,który nazwie się w rezultacie programistą i napisze działający program wciskając zleceniodawcy że tam to akurat musi być 100MHz ARM z 1M pamięci bo tak na prawdę jego pusta łepetyna nie potrafi zrealizować czegoś na innym słabszym mikrokontrolerze
Mam nadzieje że to wyszło z jakiegoś generatora ;) - Shalom 2019-08-26 13:39
@Shalom: szkolonego na bootcampie :) - Koziołek 2019-08-26 13:45
wiadomo czym się kierował autor ? - robertwadowski 2019-08-26 13:48
Nie no serio to wygląda jak z jakiegoś generatora parserów :) - Shalom 2019-08-26 13:56
Ktoś kiedyś to wygenerował, poszedł do innej firmy i nowy zespół ręcznie edytuje i robi bugfixing :D :D :D To dopiero WTF. - nie100sowny 2019-08-26 14:07

Pozostało 580 znaków

2019-08-29 15:03

Rejestracja: 1 rok temu

Ostatnio: 4 minuty temu

2

smbclient '\\zasób' -U uzyszkodnik -c "put kaczka.txt kaczka.txt" '---' 2>&1

W odpowiedzi otrzymałem
ntlmssp3_handle_neg_flags: Got challenge flags[0x60898205] - possible downgrade detected! missing_flags[0x00000010] - NT code 0xc0020057
session setup failed: NT_STATUS_MORE_PROCESSING_REQUIRED
did you forget to run kinit?

A tak naprawdę użytkownik nie istnieje.


Nie sztuka uciec gdy w dupie sztuciec

Pozostało 580 znaków

2019-09-18 23:38

Rejestracja: 4 lata temu

Ostatnio: 4 minuty temu

8
Log.wtf(String tag, String msg)
//What a Terrible Failure: Report a condition that should never happen

https://developer.android.com/reference/android/util/Log.html

Pozostało 580 znaków

2019-09-19 09:30

Rejestracja: 7 lat temu

Ostatnio: 3 minuty temu

1

Zapraszam do poczytania
https://www.assembla.com/home
A później zabawne jest tu

Kapitanie...? - axelbest 2019-09-19 09:33
Chyba że jest top secure of secures a można do czyjegos kodu wejsc z gugla - baant 2019-09-19 09:36

Pozostało 580 znaków

2019-09-20 15:10

Rejestracja: 1 rok temu

Ostatnio: 1 tydzień temu

0
Freja Draco napisał(a):

Pozwolę sobie skomentować komentarze odnośnie mojego powyższego WTF
x = 0.1 + 0.2; // -> 0.30000000000000004 - JavaScript rulez!

Tak, wiem że dwójkowa reprezentacja ułamków dziesiętnych może skutkować dziwacznymi wynikami. Walczyłam z podobnymi efektami już 20+ lat temu. Niektórzy komentatorzy pisali powyżej, coś w stylu "przecież to jest zapisywane w postaci dwójkowej, więc takie będą efekty", z czym pozwolę się sobie nie zgodzić, bo zapis wartości w postaci dwójkowej nie wymusza wcale, by operacje matematyczne z ich udziałem wykonywać zawsze po prostu na bitach.

Moje WTF tyczy się tego, że po ponad 20 latach nie widzę w tej kwestii żadnego postępu, a twórcy języka/implementacji nie widzą żadnego problemu w tym, żeby taki sposób przeprowadzania operacji stosować w języku "dla ludu", w którym ktoś mógłby chcieć np. podliczyć swoje rachunki.

A na koniec wkleję skrin z identyczną operacją przeprowadzoną w Basicu na prawie 40-letnim Commodore 64:

C64, basic, dodawanie

jako komentarz, dla tych, którzy uważają, że "tak po prostu jest, więc tak musi być".

To przez to w jaki sposób liczby zmiennoprzecinkowe są trzymane w pamięci.
Np. zapisując 0.1 w float (32bit) w pamieci zapisuje sie 0x3DCCCCCD co jest równe 0.10000000015

Kurcze, mialo isc jako komentarz :/ - FL4RE 2019-09-20 15:10
Kurcze juz o tym gadalismy - stivens 2019-09-20 15:15
A to przepraszam - FL4RE 2019-09-20 15:16

Pozostało 580 znaków

2019-09-21 23:43

Rejestracja: 5 lat temu

Ostatnio: 8 minut temu

10

Wrzucanie filmiku promocyjnego z takim kodem like a boss


ifologia, null na nullu, komentarze i kod czasem po czesku, metoda na cały ekran (to jest chyba dopiero połowa tej ifologii), własne exceptiony (throws RohlikException), fajnie że Javę 8 odkryli bo widać filtry, szkoda że Optionala nie widać, widok na linii 275 a pasek przewijania na samej górze więc zakładam ok 1,5k linii w tej klasie, profil w IntelliJ - "production" :D
screenshot-20190921233953.png

edytowany 1x, ostatnio: OtoKamil, 2019-09-21 23:53
fajny filmik - WeiXiao 2019-09-22 00:16
Krecik lepszy - somekind 2019-09-22 03:14
na co dzień pracuję z Czechami. Dajcie spokój :D To co tu widzicie to normalka. - Berylo 2019-09-30 21:04

Pozostało 580 znaków

2019-09-26 21:08

Rejestracja: 1 rok temu

Ostatnio: 4 minuty temu

1

title
Eee tssso? To w końcu Janki czy Warszawa i Blue City?


Nie sztuka uciec gdy w dupie sztuciec
Pokaż pozostałe 20 komentarzy
@PerlMonk: to jest bardzo dobrze opisane. Nie jest to wiedza tajemna, ale wiedza zbudowana świadomością marki IKEA. To są te elementy, które w UX zazwyczaj wydają się głupie, ale w praktyce świetnie się sprawdzają dzięki innym działaniom firmy. - Koziołek 2019-09-30 12:42
Dobrze według jakiej miary? Czy jest jakaś komisja, która taką miarę ustala? - PerlMonk 2019-09-30 12:46
@PerlMonk: ponieważ tak to wygląda od wielu lat, a IKEA ma w zwyczaju reagować na sugestie klientów. - Koziołek 2019-09-30 12:50
Czyli wzięli sobie to z kosmosu :P . - PerlMonk 2019-09-30 12:53
@PerlMonk: ja bym chciał, by co dziesiąta firma brała sobie tak z kosmosu dane do UX, jak to robi IKEA. internet byłby znacznie lepszym miejscem. - Koziołek 2019-09-30 13:31

Pozostało 580 znaków

2019-09-30 15:42

Rejestracja: 2 lata temu

Ostatnio: 1 minuta temu

4

mBank wprowadził bardziej złożony system uwiarygodniania klienta. Przy każdym logowaniu system "rozpoznaje moje urządzenie", co oznacza, że po prostu sadzi ciastko i do ponownego rozpoznania wymaga, żebym pozwalała mBankowi przechowywać u siebie te ciastka, co kłóci mi się z zasadami poszanowania prywatności.

Ten sam mechanizm po stronie banku nadaje mojemu urządzeniu tę samą domyślną nazwę, powiedzmy "Windows Firefox", jeśli raz dodam do zaufanych urządzenie o takiej nazwie, to przy kolejnym logowaniu nie mogę dodać go ponownie, bo... takie urządzenie już istnieje w systemie. Żeby się zalogować, tworzę zatem kolejne "Windows Firefox2", "Windows Firefox3", póki co doszłam do numeru 7 i od dwóch tygodniu niczego w tej kwestii nie naprawili.

Jeśli nie naprawią, to będę chyba przy każdym logowaniu monitować, że ich rozwiązanie jest nieprofesjonalne, a jego ew. obejście poprzez przechowywanie mBankowych ciastek narusza prywatność klientów.


Swoją drogą to nie jest pierwsze WTF jeśli chodzi o mBank w ciągu ostatniego roku i mam niestety przykre wrażenie, że bank, który 20 lat temu wyznaczał standardy w internecie ostatnio zatrudnia u siebie chyba jakichś informatyków na stażu :(

EDIT: Swoją drogą myślałam, że to ja mam problem, ale to co ludzie w ciągu ostatnich dni odnośnie mBanku raportują, to po prostu jakiś sajgon:
https://downdetector.pl/statu[...]alnosci/268940-awaria-w-mbank

Się normalnie zaczynam zastanawiać, czy by się w końcu nie przenieść do jakiegoś normalnego banku z porządnym interfejsem ala pierwszy mBank.


edytowany 2x, ostatnio: Freja Draco, 2019-09-30 15:51
Pokaż pozostałe 49 komentarzy
Nie wiem ile kodów, poza tym podejrzewam, że jest to jakoś szacowane w oparciu o sposób korzystania danego użytkownika. Oczywiście - jeśli nagle poczuję potrzebę puszczenia 50 przelewów, to zdrapki mi zabraknie. Ale - jak pisałem - przez kilkanaście lat ani razu nie miałem problemu z powodu braku kodu jednorazowego. Poza tym - jak pisał @Azarien - można mieć zawsze dodatkową kartę w zapasie. - cerrato 2019-10-02 16:07
"Akcja nie powiodła się" i zdarzające się 404 po kliknięciu w cokolwiek (nawet w "Wyloguj") to akurat jeden z ficzerów wielkiej zmiany GUI mBanku sprzed 5 czy tam 6 lat. Obstawiam, że to ma duży związek z frameworkami SPA. Co do problemów z mTokenem, to akurat nie blokuje to korzystania z banku. Ogólnie z mBankiem pod względem działania ich panelu użytkownika coraz gorzej, ale z drugiej strony to i tak najlepszy pod tym względem bank, z tych, które używam. - somekind 2019-10-07 16:32
Czy zna ktos inny sposob jak moznaby zaimplementowac taka funkcjonalnosc zaufanego urzadzenia, nie przy pomocy ciasteczka? - kzkzg 2019-10-10 08:20
Jedyne co mi przychodzi do głowy to localstorage albo jakiś fingerprint. Przy czym to drugie jest ryzykowne, zwłaszcza w przypadku osób o bardzo zmiennym IP. - cerrato 2019-10-10 08:49

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0