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

2020-06-03 16:39

Rejestracja: 6 lat temu

Ostatnio: 11 minut temu

4

taki mały WTF, wczoraj coś pisałem w jednym ze swoich projektów, a dzisiaj chcę posprzątać i zacommitować, a tam takie coś:

// throw new Error('kurwa')

:D
a nie pamiętam, żebym to pisał. Widocznie samo się napisało. Polska podświadomość.


((0b10*0b11*(0b10**0b101-0b10)**0b10+0b110)**0b10+(100-1)**0b10+0x10-1).toString(0b10**0b101+0b100);
edytowany 2x, ostatnio: LukeJL, 2020-06-03 16:45
Jak tam zawsze new Exception("dupa"); - TomRiddle 2020-06-03 17:04
dupa to dość uniwersalny exception :D - abrakadaber 2020-06-03 17:37
@TomRiddle: zasłyszałem historię jak na pokazie dla klienta na wyświetlaczu zamiast powitania wyskoczyło "DUPA", co prowadzący prezentację przetłumaczył mniej więcej jako "Device Update Protocol Activated" xD - chalwa 2020-06-29 23:31
umiejętność szybkiego wychodzenia z trudnych sytuacji zawsze w cenie ;) - LukeJL 2020-06-30 01:25

Pozostało 580 znaków

2020-06-14 16:47

Rejestracja: 3 miesiące temu

Ostatnio: 5 godzin temu

1

Właśnie mam niezłe wtf. Właściwie pierwszy raz w życiu. Miewałem takie w których pomagał restart IDE/edytora. Miałem takie w których pomagało wylogowanie z systemu i takie w których pomagał restart. Jeden taki w którym kod dnia następnego działał, a poprzedniego nie. Teraz przyszłą kolej na nowe doznanie.

Mały jeszcze projekt API. Podzielony na 5 plików. Dla uproszczenia poruszam się w jednym pakiecie (Go). Taka oto struktura:

├── handlers.go
├── logger.go
├── main.go
├── routes.go
└── todo.go

Zero błędów w VSCode. Uruchamiam i dostaję:

# command-line-arguments
./main.go:9:7: undefined NewRouter

Myślę sobie - WTF. Przecież NewRouter() siedzi w środku:

func main() {
    r := NewRouter()
    log.Fatal(http.ListenAndServe(":3000", r))
}

func NewRouter() *mux.Router {
    router := mux.NewRouter().StrictSlash(true)
    // kod
    return router
}

Z racji tego iż mamy wieczór (wczoraj) zostawiam projekt. Dzisiaj jednak to samo. Zaprzęgam Goland, bo może tam coś więcej się człowiek dowie. Dowiaduję się wiele innych dziwactw, które spowodowane są brakiem konfiguracji IDE. Po trzech godzinach babrania się i szukania problemu w słynnym internecie postanawiam utworzyć nowy katalog, przenieść wszystko do jednego pliki main. Uruchamiam -> działa. Trafiłem na czarną dziurę czy o co tutaj chodzi?


nie brakuje jakiegoś importu? Z tego co widze nie widzi mux.NewRouter a nie tej twojej funkcji NewRouter - baant 2020-06-14 17:06
@baant: Nie brakuje. W tym rozbitym na pliki zmieniłem nazwę funkcji z NewRouter() na NewR() w razie gdyby jednak coś się miało gryźć -> undefined NewR. Nie może być undefined skoro nawet z poziomu VSCode jestem w stanie przejść do jej deklaracji. Wersja "wszystko w jednym pliku" działa po przekopiowaniu wszystkiego. Niesamowite. - purrll 2020-06-14 19:58
Może main jest w pakiecie (package) main, a plik z definicją NewRouter w innym (o nazwie folderu nadrzędnego)? Mi VSC podkreśla takie coś jako błąd, ale kompilator nie narzeka: https://imgur.com/a/AImlNI6 - iksde 2020-06-15 09:02
@iksde: wszystkie pliki trzymam w jednym katalogu i w jednym pakiecie żeby porozbijać je sobie później/ Natomiast muszę mieć coś wyraźnie zwalone w konfiguracji albo też coś "musiało się" porobić, bo nie mogę nic wyrzucić do innego pliku. Nic co jest w tym samym pakiecie. Zaraz popatrzę na te cuda. Czyli pewnie to nie jest wina czarnej dziury :v - purrll 2020-06-15 10:14
jeśli chodzi o katalog główny projektu, to linker nie dołącza do binarki wszystkich plików Go z automatu. W takim wypadku wystarczy dopisać mu pliki, które ma wraz z całą resztą skompilować. Przykład: go run handlers.go todo.go main.go - no_solution_found 2020-06-23 12:42

Pozostało 580 znaków

2020-06-18 02:23

Rejestracja: 2 lata temu

Ostatnio: 21 minut temu

4

Utwórz sobie najprostszy plik CSV, np:

a,b
c,d

Dodaj do niego dowolny nagłówek zaczynający się od "ID", np:

IDEA,POGRZANA
a,b
c,d

Spróbuj otworzyć go w Excellu.
Poświęć kilka minut na przeklinanie i dociekanie, na czym polega błąd.
Poszukaj w necie informacji, o co chodzi z tymi błędnymi plikami SYLK, o których Excell gada.
Zadumaj się nad meandrami ludzkiego myślenia.


edytowany 1x, ostatnio: Freja Draco, 2020-06-18 02:24
Otworzył się w ułamku sekundy, bez problemu. Jakiś najnowszy Excel na Windowsie 10. - Afish 2020-06-18 03:17
u mnie w Excelu 2007 na Win10 jest jak @Freja Draco pisze - benoni12 2020-06-18 08:31
Sprawdziłem na drugim komputerze i też śmiga. Zaktualizujcie Excela. - Afish 2020-06-18 08:42
Yup, Portable Excel 2003 nie ogarnia - Marooned 2020-06-18 13:15
LibreOffice Calc nie ma z tym najmniejszego problemu ;-) - purrll 2020-06-18 14:29

Pozostało 580 znaków

2020-06-19 20:23

Rejestracja: 1 rok temu

Ostatnio: 17 sekund temu

Lokalizacja: Warszawa

6

Krótki dialog na 4 kopyta

On: - ...and lejto...
Ja: - łot?
On: - gugl font lejto... el ej ti oł
Ja: - dżast a sek... Oł aj si, samer font
On: - łot?!
Ja: [grin from ear to ear]

Komuś hen daleko spodobał się font
https://fonts.google.com/specimen/Lato
Lato
Designed by Łukasz Dziedzic

Lato is a sans serif typeface family started in the summer of 2010 by Warsaw-based designer Łukasz Dziedzic (“Lato” means “Summer” in Polish). In December 2010 the Lato family was published under the Open Font License by his foundry tyPoland, with support from Google.

Brawo dla Łukasza za więcej Polski na świecie

Może front-endowiec załapałby w lot ale ja pierwszy raz usłyszałem o foncie Lato. No dobra, Times, Helvetica, Courier, Arial i może parę innych bym sobie przypomniał...


"Ktoś sobie uświadomił, że pisał pod pseudonimem rzeczy, które lepiej żeby w firmie nie wypatrzyli :-)"
"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
edytowany 1x, ostatnio: BraVolt, 2020-06-19 20:24
raczej kazdy kto robi jaki frontend zna ten font. bardzo popularny jest - kimikini 2020-06-19 20:32
Robię frontend i pierwsze słyszę o tym foncie. I z wyglądu nie odróżniłbym go od trzystu innych pewnie. To może bardziej do projektantów i UXów, a nie frontendów. - Marooned 2020-06-20 11:17

Pozostało 580 znaków

2020-06-19 20:40

Rejestracja: 2 lata temu

Ostatnio: 2 godziny temu

5

U mnie w projekcie:
a) nie ma testerów w całej firmie
b) do początku marca kod był wrzucany prosto na produkcję - teraz mamy wersję beta
c) szok i niedowierzanie że były błędy oraz hotfixy
d) brak automatyzacji - programiści ręcznie sprawdzają flow przed releasem
e) brak przypadków testowych - dopiero ostatnio zostały połączone trzy dokumenty w jeden żeby jakoś smoke tests zrobić. Jest tyle pożarów że nie ma czasu na zrobienie smoke a jest tyle pożarów z powodu że nie ma czasu.
f) 20+ programistów androida którzy depczą sobie po palcach - zadania podzielone prawie co do zmiany znaków w xmlu. Każdy chce robić funkcjonalności (ja nie, w punkcie i jest napisane co robiłem) a nie zajmować się legacy code / refactorem
g) brak stagingu / preproda - jak miałem pierwszy raz zmienić stringi w localize i zapytałem się menago: "hej podaj link do stagingu dla loco chcę wrzucić zmiany do stringów i je przetestować" dostałem odpowiedź: Jesteś pierwszym programistą który się o to zapytał. Reszta waliła zmiany bezpośrednio do loko bez walidacji na proda
h) pixele w widokach
i) wywaliłem w projekcie 6k linii w tym 600+ linii styli które były zakomentowane - to jeszcze nie jest koniec...
j) wersja beta o której mówiłem w punkcie b tydzień temu 10 razy miała faila podczas budowania
k) dodane zostały testy ui - są zielone tak w 40% - reszta to false negative i czerwienią się przez np timeouty
l) mamy pokrycie testami 50+ ale jest tak zespolone z kodem że prawie nie do ruszenia
m) nie mamy flow to ekstrakcji logiki biznesowej - każdy klepie jak mu się podoba
n) jeden programista (który notabene jest bardzo dobry) napisał plugin do android studio żeby generować stuby kodu dla naszej wspaniałem architekury

Uff trochę mi lepiej

edytowany 1x, ostatnio: lubie_programowac, 2020-06-19 20:40
Trzymaj łapkę na pocieszenie - Rizorz 2020-06-19 21:59
dzięki, poczułem się odmłodzony o 18 lat postępu technicznego. - jarekr000000 2020-06-20 08:22

Pozostało 580 znaków

2020-06-20 00:20

Rejestracja: 16 lat temu

Ostatnio: 1 minuta temu

6

No chyba żartujecie..

a.png

  • a.png (0.01 MB) - ściągnięć: 5
Pokaż pozostałe 6 komentarzy
a i trzeci bezsens: od razu na dzień dobry "wykryto podejrzaną aktywność" i mam "potwierdzić tożsamość" numerem telefonu. no jak zakładanie konta jest podejrzaną aktywnością to niech się wypchają. Instagram nie dla mnie. - Azarien 2020-06-20 00:34
No generalnie powinni sobie albo darować takie potraktowanie sprawy, albo sensownie rozmieścić dropdowny, to nie byłoby wtf-a :P A "podejrzana aktywność"... Bez komentarza :D - Klojtex 2020-06-20 00:38
Bo Amerykanie są generalnie ignorantami, którzy nie rozumieją, że różne kraje mają swoje formaty zapisu dat, że języki mogą mieć różną gramatykę, a więc i też tego, że nie wystarczy po prostu przetłumaczyć nazwy w UI, żeby efekt był prawidłowy dla docelowego języka. A swoją drogą, to czemu dorosły facet mógłby w ogóle chcieć pomyśleć o zakładaniu konta na Instagramie? :P - somekind 2020-06-20 03:45
@somekind: żeby mieć ciagly dostęp do memów oraz żeby mic lajkować zdjęcia żonie - KamilAdam 2020-06-20 09:23
Nawet z targetem dla US i ich absurdalnymi formatami nadal nie da się łatwo wybrać 31 października na ten przykład. Ewidentny brak projektanta i testera z głową na karku. - Marooned 2020-06-20 11:20

Pozostało 580 znaków

2020-06-22 12:54

Rejestracja: 12 lat temu

Ostatnio: 3 minuty temu

1
Mac MarekR22$ pwd
/Users/MarekR22/Src/Baddll
Mac MarekR22$ ls
CMakeLists.txt      baddll.cpp      dllmain.cpp     dllmainMacOS.cpp    stdafx.cpp      stdafx.h        targetver.h
Mac MarekR22$ git mv dllmain.cpp dllmainWin.cpp
fatal: not under version control, source=Baddll/dllmain.cpp, destination=Baddll/dllmainWin.cpp
Mac MarekR22$ echo "// what is going on?" >>dllmain.cpp
Mac MarekR22$ git status
On branch improvement/newFeature
Your branch is ahead of 'origin/improvement/newFeature' by 1 commit.
  (use "git push" to publish your local commits)

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    modified:   CMakeLists.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   ../baddll/dllmain.cpp

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    dllmainMacOS.cpp

Kod napisany był pod Windows. Klon na MacOS, robię modyfikację (nie tworzyłem żadnych katalogów).
dllmain.cpp przyszło z rego, ale nie moglę zmienić mu nazwy.
git status wyjaśnia sprawę, git widzi i rozróżnia dwa katalogi baddll i Baddll (wielkość pierszej literki) file system tylko jeden z nich.
Pewnie ktoś poprawił nazwę katalogu (na Capital) i równocześnie ktoś inny dodał plik w tym katalogu i po merge zrobił się taki kwiatek.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

2020-06-24 20:07

Rejestracja: 3 miesiące temu

Ostatnio: 5 godzin temu

2

Mniej programistyczne ale jednak.

ageupbhkrq651.png


edytowany 1x, ostatnio: purrll, 2020-06-24 20:08
no co? jak robisz po 14h na dobę co ci wychodzi 7 lat doświadczenia - hzmzp 2020-06-24 20:17
Premiera Core była czerwiec 2016. Zakładając start od premiery i pracę do dziś daje nam to 48 miesięcy (bez zabawy w dni). Uśredniając na miesiąc = 30 dni daje to 1440 dn * 14h dziennie to 20_160 godzin. Dzielone na 1 dzień roboczy zakładając pracę bez dnia przerwy daje nam to 840 dni, które dają nam dopiero ~2.3 roku. Do 7 nadal daleko. Więc Twoje 14h nie spełnia oczekiwanego warunku :D PS. Dla 24h pracy przez 1440 dni to nadal będzie jakieś 3.94 roku :( - purrll 2020-06-24 20:26
Rzutem na taśmę udałoby się spełnić wymagania dla React (Initial release May 29, 2013). Oczywiście pracujący w wcześniej w Facebooku z tym frameworkiem też mogą brać udział w rekrutacji. - BraVolt 2020-06-25 15:43
Takie kwiatki pojawiają się regularnie. W zasadzie za każdym razem, gry jakaś nowa technologia staje się powszechnie używana. - MarekR22 2020-06-30 16:30

Pozostało 580 znaków

2020-06-24 21:33
Moderator Delphi/Pascal

Rejestracja: 8 lat temu

Ostatnio: 3 minuty temu

Lokalizacja: Tuchów

3

Notacja węgierska czasem bywa zabawna:

sra.png

Gdyby ktoś się zastanawiał skąd się bierze prefiks sra, to z typu TStringReplaceAlgorithm:

type
  TStringReplaceAlgorithm = (
    sraDefault,    // Default algoritm as used in StringUtils.
    sraManySmall,  // Algorithm optimized for many small replacements.
    sraBoyerMoore  // Algorithm optimized for long replacements.
  );

Szczególnie zabawnie wygląda ostatni enum. :]

  • sra.png (0.02 MB) - ściągnięć: 3

Pokaż pozostałe 50 komentarzy
@cerrato: język ma w logice dość szeroką definicję, którą dość łatwo jest spełnić. - Koziołek 2020-07-01 17:26
@Koziołek: więc tym bardziej - potwierdzasz de facto tezę, że HTML to jest język ;) - cerrato 2020-07-01 21:38
@Marooned: może i nie rozumiem, ale w moim ograniczonym świecie prostego człowieka to wygląda tak, że wszyscy wiedzą, o co chodzi - czym jest żarówka LED, co to jest dioda LED, nikomu nie przeszkadza "podatek VAT" w kontekście litery "V". A potem pojawia się samozwańczy rycerz na białym słowniku i musi szukać dziury w całym. - cerrato 2020-07-01 21:42
@cerrato: TIR to jakaś-tam konwencja, ale tir to duża ciężarówka (ciągnik z naczepą), niekoniecznie posiadająca karnet TIR (który wewnątrz UE jest zbędny, więc obecnie większość „tirów” nawet nie ma tabliczki „TIR”). - Azarien 2020-07-01 22:04
PS. polska Wikipedia podaje rozwinięcie skrótu jako "Transport International Routier" (liczba pojedyncza), angielska jako "Transports Internationaux Routiers" (liczba mnoga), podczas gdy francuska na pierwszym miejscu podaje nazwę "transit international routier". wiarygodność Wiki :) - Azarien 2020-07-01 22:15

Pozostało 580 znaków

2020-06-30 15:00

Rejestracja: 8 lat temu

Ostatnio: 44 sekundy temu

5

Kotlin pozazdrościł JS logiki. Dzisiaj natknąłem sie na błąd w buildzie release, szukam i nie moge znaleźć, unit testy na zielono, przeglądam logi, analizuje kod biorąc pod uwagę to co w logach, no powinno być ok. Wtedy mnie natchnęło i zrobiłem mały kod testowy..

fun main(args: Array<String>) {
    val var1 = (false == true and (true != true))
    val var2 = (false == true && (true != true))

    println("$var1 $var2")
}

Wynik? "true false"

Pokaż pozostałe 24 komentarze
Błędogenne. Znajomość języka nic tu nie da - jest to po prostu pułapka. :-( Raz na jakiś czas ktoś w to wpadnie. Jedyną szansą na takie pułapki są lintery (ale nie znam kotlinowego, który coś takiego wykrywa i wymusza nawiasy). Nawiasy to też nie jest do końca fajna opcja - stosuję często natrętne (redundatne) nawiasy i zaciemniają one kod. - jarekr000000 2020-07-01 13:55
@jarekr000000: dokladnie, jak widac tutaj ktos wpadla w te pułapkę. No a ja zmarnowalem masę czasu na szukaniu tego bo niestety to nie byl taki trywialny warunek jak w tym przykladzie tylko duzy i zlozony niestety. Do tego nawet nie za bardzo bylo wiadomo gdzie szukac problemu. - xxx_xx_x 2020-07-01 14:05
Jedna szansa to sprawdzanie cyclomatic complexity - tu jest duże, ale prawda jest taka, że w projektach kotlinowych tego często nie robię. - jarekr000000 2020-07-01 14:12
Skoro możemy tworzyć operatory to możemy też zaciemniać. W końcu nowoczesny język musi być ekspresyjny. - loza_wykletych 2020-07-01 17:05
czy dobrze myślę że && ma taki priorytet jak && w C, a and taki jak and w Pascalu? może w tym jest jakiś zamysł :) - Azarien 2020-07-01 22:20

Pozostało 580 znaków

Odpowiedz

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

Robot: Googlebot