Programistyczne WTF jakie Was spotkały

8

Nie wiem, czy już się aby na to nie żaliłam, ale:

Debilek, który projektował interfejs Allegro wymyślił sobie że w menu po lewej stronie zaznaczone opcje wyboru będą się wyświetlać w jego górnej części, przesuwając resztę zawartości menu w dół, zależnie od swoje ilości bardziej lub mniej. W efekcie, jak chcę zaznaczyć po kolei kilka opcji, to po zaznaczeniu pierwszej z nich, wszystko się przesuwa i kolejna zaznaczona jest już inna, niż zamierzałam. Poprawiam to lokalnym CSS-em, zamykając te cholerne opcje w przewijalnym kontenerze o zadanej wysokości, ale i tak się jeszcze trochę rozjeżdża.

Pozdrawiam DEBILKA, który projektował interfejs Allegro.

21

Niektórzy pamiętają może mój ostatni wpis na temat pomagania innemu zespołowi. Jako ze ja w swoim kodzie żongluje sobie jakimiś Either i Optional to pozostali zainteresowali sie i uznali że oni w sumie też mogą. Dzis robie review i moim oczom ukazuje się:

    //TODO move to a utility package.
    public Either<String, Object> convertEitherToEither(Either<String, Object> inputEither) {
        if (inputEither.isRight()) {
            return Either.right(inputEither.get());
        } else {
            return Either.left(inputEither.getLeft());
        }
    }

:D

Do tego cała masa kodu w stylu:

        if (response.isRight()) {
            X x= response.get().getX();
            return Either.right(x);
        } else {
            return Either.left(response.getLeft());
        }

A mialo być tak pięknie...

12
Enclosed please find a "Statement of Fees" for the Citi Handlowy Credit Card account. The "Statement of Fees" lists all the fees and interest charged between December 1, 2019 and July 14, 2020.

Below we present the manners of creating the password securing the attached document.

The password is a combination of:
the date of birth in the day/month/year format and
4 last digits of the mobile phone number held by the Bank.
Example:
Date of birth: 01Oct1972
Telephone number: 123 456 789
Password: 01Oct19726789 

If you have any questions regarding the attached information, please send your inquiry via the Contact tab in Citibank® Online after logging in.

Best regards,
Citi Handlowy

Pytanie, po 10 nieudanych próbach otwarcia zabezpieczonego załącznika, WTF is password?
Odpowiedź. Password: 01Paz19726789

Gdybym obchodził urodziny w październiku to byłby jeszcze test czy Paź czy może jednak Paz?

8

AZ.pl właśnie przysłało mi rachunek za domenę, którą ponad miesiąc temu przeniosłam od nich gdzie indziej.

Nawet tam zajrzałam w panel AZ i domena która bez żadnych wątpliwości znajduje się obecnie gdzie indziej (co potwierdza tak panel nowego rejestratora jak i dane z dns.pl) widnieje tam nadal na liście moich zamówionych usług. No po prostu jajcarze jacyś.

Zatanawiam się, czy zgłaszać to na policję, jako próbę wyłudzenia :P

10
Freja Draco napisał(a):

AZ.pl właśnie przysłało mi rachunek za domenę, którą ponad miesiąc temu przeniosłam od nich gdzie indziej.

Odpisałam im już poprzednio, że wystawiają jakieś faktury fantomowe, ale właśnie przysłali mi ponaglenie. Pewnie z automatu, ale kultura nakazuje odpowiedzieć:


W dniu 2020-12-21 o 02:15, AZ.pl Sp. z o.o. pisze:

przypominamy, że za 14 dni mija termin płatności za domenę
xxxxxxxxxxxxxxxxx. Pamiętaj, że dowolny użytkownik może przejąć i
zarejestrować wybraną przez Ciebie domenę, kiedy skończy się jej
okres ważności. Opłać usługi, by móc z nich swobodnie korzystać.
Jeśli masz pytania dotyczące Twojego produktu, daj znać
https://az.pl, chętnie na nie odpowiemy.

Przypominamy, że niniejsza domena od półtora miesiąca znajduje się u
innego rejestratora. Pamiętaj, że w kalendarzu ściennym należy
regularnie zdejmować kartki, kiedy skończy się okres ważności danego dnia.

Napraw skrypty obsługujące płatności swojego systemu, tak by
uwzględniały fakt, iż twój były klient nie chce już być dłużej twoim
klientem, co może rodzić podejrzenia o nieprofesjonalizm lub nawet
celowe zaniechanie mające wprowadzać w błąd mniej świadomych właścicieli
domen.

Jeśli masz jakieś pytania dotyczące usług, których już nie świadczysz, a
za które nadal usiłujesz wystawiać rachunki, daj znać, chętnie na
nie odpowiemy.


p.s. A tak swoją drogą to od kiedy w kontaktach z klientami weszła ta moda, żeby o sobie pisać w pluralis majestatis, a do petenta walić na "ty" zdaniami w trybie rozkazującym?

14

screenshot-20201222110917.png


Jest wtorek, dochodzi południe.

8

Minęło 20 lat, a śnieg na stronach https://www.wodaco.pl///www.wodaco.pl/

7

edge_update.png

Jakbym pojechał tym suwakiem w dół, to jeszcze ponad 100 takich procesów, w górę - około 30, plus kilkanaście porozrzucanych randomowo :)

15

Niżej ogarnięte osoby przy projekcie u mnie w Pracy mają takie (nie wiem jak to nazwać) "przyzwyczajenie"/"pogląd"...?

...że:

To jest prymitywny sposób budowania basepath'a

return "/" + countryCode;

...ale

To jest już dobry, extensible sposób:

return format("/{0}", countryCode);

Pomijam że oba są testowane tymi samymi unitami.

9

Jakie PHP je zjeb***.

Właśnie się dowiedziałem, że w wyrażeniach regularnych w PHP, character class \w (o którym zawsze myślałem że jest równy [a-zA-Z0-9_] jak w każdym innym języku), tak na prawdę jest zależny od PHP'owego locale'a, który dodatkowo nie jest per thread, tylko per process (więc inny skrypt uruchomiony na tym samym procesie może zmienić locale' w naszym skrypcie i wpłynąć na \w).

var_dump(preg_match('/\w/', 'Ó'));
setlocale(LC_CTYPE, "Polish_Poland.1250");
var_dump(preg_match('/\w/', 'Ó'));

Pokazuje

int(0)
int(1)

PS: Teraz muszę poprawić około 100 testów w T-Regx, bo używam \w w testach jednostkowym, a nie powinienem skoro mają taką ukrytą zależność :|
PS2: Przepatrzyłem dokumentację PHP, wygląda na to że tylko \w jest takie zjeb***. Na szczęście, ale to też się nie powinno zdażyć.
PS3: Nie, jednak nie, jednak \d też jest zjeb***.

2

Kilkadziesiąt serwisów, mikro- i monolitów, część w outsoursingu. Soap, rest, grpc, co tam dochodziło na przestrzeni lat. Odpytują siebie nawzajem, bezpośrednio manipulują bazami innych usług, współdzielą zależności. Niemalże random join. Sporo cache'owania w nieoczekiwanych miejscach. Powszechna mutacja, nullowalność itp.

Oczywiście można powiedzieć, że w wielu firmach jest tak samo. Ale jakim cudem to wszystko zarabia pieniądze?

5

bo klienta końcowego nie obchodzi czy pod spodem jest stary php czy nowoczesna architektura. Coś co spełnia założenia biznesowe ale jest napisane jak kupa często zarabia więcej niż super kod którego nikt nie używa

14

Niby nieprogramistyczne, ale przypomina któreś z sortowań O(N^2):
https://en.wikipedia.org/wiki/Hermit_crab

When an individual crab finds a new empty shell it will leave its own shell and inspect the vacant shell for size. If the shell is found to be too large, the crab goes back to its own shell and then waits by the vacant shell for up to 8 hours. As new crabs arrive they also inspect the shell and, if it is too big, wait with the others, forming a group of up to 20 individuals, holding onto each other in a line from the largest to the smallest crab. As soon as a crab arrives that is the right size for the vacant shell and claims it, leaving its old shell vacant, then all the crabs in the queue swiftly exchange shells in sequence, each one moving up to the next size.

4

Dostałem z US wiadomość, że ktoś czegoś nie ogarnął i mam złożyć korektę. Pani zaproponowała stronę e-deklarację albo e-pit. Nigdy nie korzystałem, wybrałem tę drugą.
Przywitała mnie taka strona, to klikam "zaloguj się"
screenshot-20210115092922.png

Po kliknięciu:
screenshot-20210115093036.png
aha.. no to powtórka.. ponownie już pojawiła się strona logowania. Wybrałem profil zaufany i logowanie przez bank. Po zalogowaniu przez sekundę mignął komunikat, że mam aktywną sesję na innej zakładce (a nie mam) po czym przekierowało mnie na stronę z info, że zostałem wylogowany...

Udało się zalogować za trzecim razem. Boję się klikać dalej...

6

Klasy deklarowane w PHP są trochę runtime, trochę compile time:

$before = get_declared_classes();
class DeclaredHere {}
$after = get_declared_classes();

Zmienne $before === $after są równe, klasa DeclaredHere jest w obu arrayach (coś jak hoisting).

A tera pa na to:

$before = get_declared_classes();
if (true) {
  class DeclaredHere {}
}
$after = get_declared_classes();

I teraz! Teraz DeclaredHere here jest w $after, ale nie w $before.

12

Programistyczny majstersztyk twórców polskiego konkurenta dla Twittera i Facebooka. Mistrzowie zabezpieczeń :D https://zaufanatrzeciastrona.pl/post/jak-ponownie-moglismy-poznac-haslo-do-bazy-serwisu-albicla-com/

md5(md5(password))
11

Chyba się już do tego nie nadaję.
Często w kodzie (javascript / typescript) pojawia się !! żeby zamienić wartość "truthy" na booleana. Przydatne w zwracaniu czegoś z funkcji żeby zwrócić true/false zamiast całego obiektu (który też co prawda się będzie ewaluował na true/false ale można mu po drodze zrobić niechcący krzywdę).
No więc podwójny wykrzyknik spoko, nawet można sobie wmówić że się oszczędza pamięć (heh). W kodzie zaczęło się ich pojawiać coraz więcej i nawet taki zapis już mnie nie dziwi:

if (!!zmienna_typu_boolean) {}

ale dzisiaj odkryłem w kodzie nowy level:

if (!!!foo) {}

Spytałem autora co miał na myśli myśląc że to literówka, ale okazuje się że... trzy zaprzeczenia są dla czytelności! Dzięki temu, jak się okazuje, od razu wiadomo że sprawdzamy czy obiekt jest "falsy" a nie "false". Jeszcze nie wiem po co mi taka wiedza.
Nie nie nie mam pytań.

30

Al-Kibla ciąg dalszy, podobno wszystko prawda:

Wczoraj ruszyła "polska odpowiedź na Facebooka", czyli serwis Albicla prowadzony przez Sakiewicza (prezesa pisowskiej Gazety Polskiej). Wykonanie portalu nie jest szczytem profesjonalizmu, kilka kwiatków:

-Regulamin portalu to ctrl+c, ctrl+v regulaminu facebooka, nawet hiperłącza zostały,

-Można pobrać całą bazę użytkowników, bo nie jest w żaden sposób chroniona (poszło zgłoszenie do UODO, ale prezes UODO jest z PIS, tak że tego),

-Jeśli chcecie pisać na wall'u osobie "nieznajomej" to klikacie "ppm -> zbadaj" na przycisk "opublikuj" (na swoim profilu). Następnie szukacie "input" w html który wam się otworzy i zmieniacie "Value" na id osoby na której profilu chcecie coś napisać.

-Hasło użytkownika nie ma limitu znaków, ktoś jako hasło wkleił całą treść Pana Tadeusza,

-Połowa użytkowników to papieże,

-Druga połowa to fake konta działaczy PIS, Trumpa i innych znanych postaci,

-Ktoś stworzył konto o nazwie "login", po kliknięciu w jego profil zostajemy wylogowani,

-Ktoś inny nazwał się "delete_account", po kliknięciu w jego profil usuwamy swoje konto (i obecnie to chyba jedyna działająca metoda usuwania konta),

-Przez noc przewinęło się pełno treści pedofilskich,

-Rzadko komu udaje się otrzymać maila aktywacyjnego, sam portal wywalił się po paru godzinach działalności.

-Inni nie mają z tym problemu, ponoć ktoś założył już 500 tys. multi kont (nawet po banie można się zarejestrować z tego samego maila),

-Ponoć da się założyć konto bez nazwy, bez emaila i bez hasła. Wystarczy w źródle strony z pól input usunąć atrybut required.

https://www.reddit.com/r/Polska/comments/l1u3gl/podsumowanie_dzia%C5%82alno%C5%9Bci_serwisu_albicla/

6

Największe zaskoczenie w dotychczasowej karierze:
Ustawiłem rodzicom na desktopie Ubuntu tak, żeby sobie nie zrobili krzywdy korzystając z przeglądarki. Siostra - studentka filologii znalazła poradnik jak zresetować hasło roota w Ubuntu i zrobiła włam :D Podziwiam za kreatywność. Sam muszę chyba zrewidować swoją wiedzę o Linuxie.

2
var request = new RestRequest(null, Method.POST);

da 200 ok jezeli sie to uruchomi.

9

Otworzyłem kilka różnych plików w Excelu w kilku oknach. Wciskam ctrl+z w jednym oknie, żeby cofnąć wszystkie zmiany, aż tu nagle na wierzch wysunęło się kolejne okno Excela i ctrl+z zadziałał na tym właśnie pliku. Microsoft zrobił tu śmieszną opcję: ctrl+z to skrót globalny.
Czy pocieszające jest to, że nie tylko ja się zdziwiłem?
https://superuser.com/questions/293044/excel-how-to-undo-in-current-file-only
"Nie baudzo."

7

To bardziej pasuje chyba do "kącika marudzenia", ale że takowego na forum nie ma, to piszę tutaj:

Próbowałam zorientować się odnośnie przedłużenia usługi Internetu stacjonarnego na stronie Oranga. Po wstępnej próbie przedarcia się przez przetykany obrazkami misz-masz zawierający głównie nie to, co właśnie z menu wybrałam, tylko to, co dostawca chciałby mi wcisnąć, przypomniałam sobie, że jak się poszuka cenników w PDF to zwykle da się z nich coś szybciej wyczytać niż z tej kolorowej sieczki.

Więc poszukałam, przejrzałam i po chwili miałam (nomen omen) czarno na białym. Na stronie nie dość, że nie było wszystkiego, to jeszcze zachachmęcone tak, że nie wiadomo, czy dana oferta jest ze zgodami marketingowymi, czy bez itp.

Po 20 latach rozwoju portali internetowych trzeba szukać "papierowych" dokumentów, żeby czekokolwiek sensownie się z nich dowiedzieć.

BTW: na stronie zaimplementowano modne i niewygodne kafle. Myślę sobie, no ok, oni i tak celują głównie w mobilnych odbiorców a tam kafle mogą się sprawdzać, ale zajrzałam, jak strona wygląda na małym ekranie. Kafle zamiast zawijać się responsywnie, wypełniają szerszy od ekranu, przewijany w poprzek kontener. K... no po prostu nie rozumiem tych współczesnych projektantów. No i oczywiście trzeba się naklikać jak dziki osioł, żeby rozwijać dodatkowe opcje itp.

0

"błąd kompilatora"

6

Cyberfolks.pl (dawne linuxpl.com) właśnie samowolnie zmieniło mi rodzaj wykupionego pakietu hostingowego (z: WPRO, na:lx_150_unlimited).

Nowy pakiet jest o 30 GB większy i 6 zł miesięcznie tańszy (no ok), ale na moje pytania odpowiadają, że wzrost cen wynika z rosnących kosztów.

Cyberfolks twierdzi, że lx_150_unlimited to inna nazwa pakietu WPRO.
Tego nowego pakietu z nową nazwą nie ma w ich cenniku, ten stary nadal jest obecny w ich cenniku ze starą ceną.

Dostaję zatem bez pytania jakiś nowy pakiet, który nigdzie oficjalnie nie istnieje, jego charakterystyka nigdzie nie da się znaleźć, nieznana jest nawet cena rocznego przedłużenia.

Cyberfolks twierdzi, że wysłał mi w styczniu mailem informację o zmianie pakietów (ew. zmianie nazw pakietów, bo już cholera wie), ale nie potrafi odpowiedzieć na pytanie, w którym dniu tegoż maila mi przysłało.


Kurde. A za czasów linuxpl.com to była taka ogarnięta firma z ludzką gębą :/

p.s. Dowiedziałam się właśnie, że to jest taki specjalny pakiet dla specjalnych klientów. No kurczę, ktoś mnie wreszcie docenił ;)

4

https://www.php.net/manual/en/function.reset.php

reset() returns the value of the first array element, or false if the array is empty.

https://www.php.net/manual/en/function.current.php

The current() function simply returns the value of the array [...]. If the internal pointer points beyond the end of the elements list or the array is empty, current() returns false.

https://www.php.net/manual/en/function.key.php

The key() function simply returns the key of the array element. [...] If the internal pointer points beyond the end of the elements list or the array is empty, key() returns null.

4

Przykład złego, a może nawet celowo wrednego designu:
Destrukcyjny w działaniu a do niczego niepotrzebny przycisk (zaznaczony na czerwono) po środku kilku innych, jakże potrzebnych kontrolek (zaznaczonych na zielono).

screenshot-20210204155931.png

źródło: YouTube.

5

Microsoft Photos (alias "Zdjecia", Windows 10) - prawdopodobnie jedyna w historii przegladarka zdjec ktora po otwarciu jednego nie potrafi przejsc do nastepnego przy pomocy klawiszy kursora.

Za to Del dziala znakomicie...

4

@vpiotr: to obczaj to - aplikacja "Zdjęcia" na iPadzie

Aplikacja nie obsługuje sortowania. Jak to wygląda w praktyce?

  • Nowe zdjęcia są zawsze na końcu galerii, tak więc jak często dorzucasz nowe fotki, to potem musisz nieźle się namachać z przewijaniem ekranu w dół. Oprócz tego ipada, każdy inny sprzęt jaki posiadałem zawsze jako domyślne sortowanie mial "Od najnowszego" - bo po co komuś non-stop oglądać najstarsze fotki?

  • Zdjęcia importowane są datowane zgodnie z datą importu, zatem mając np zdjęcia z 3 źródeł (np. ze stycznia, lutego i grudnia) - jeśli wrzucisz je w kolejności "luty -> grudzień -> styczeń" to nie ma sposobu by to posortować

  • apple ma w nosie takiego rzeczy jak data wykonania zdjęcia, dane zawarte w exiffie, nazwa pliku

Porażka po całości, nie mogłem uwierzyć w to, do czasu aż zacząłem przeglądać fora szukając pomocy w tej sprawie. Najstarsze posty jakie znalazłem były datowane na 2013 rok.

Od razu wyjaśnie - że w tej samej aplikacji tylko w wersji na iPhone'a - sortowanie jest, ale ponoć też nie wszędzie (nie mam jak sprawdzić).

0
vpiotr napisał(a):

Microsoft Photos (alias "Zdjecia", Windows 10) - prawdopodobnie jedyna w historii przegladarka zdjec ktora po otwarciu jednego nie potrafi przejsc do nastepnego przy pomocy klawiszy kursora.

E... nie wiem, jakich przeglądarek zdjęć używałeś, ale zarówno w ACDSee jak i w XnView klawiszami kursora poruszasz się po powiększonej grafice, a do przechodzenia dalej i wcześniej służę Page Up i Page Down

0

Największe "zdziwienie" że ludzie w latach dwudziestych mogą przeglądać galerie zdjęć używając do tego klawiatury.

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