Programistyczne WTF jakie Was spotkały

8

Mało programistyczne WTF, bardziej projektowe (jest taki wątek?)

Od 1.04 w nowej robocie, korpo nad korpami - wiedziałem to z góry, akceptuję.

We wtorek / środę miałem szkolenia (06, 07.04) - w sumie 8h ~świadczenia usług. Od tego czasu do dzisiaj... nikt się do mnie nie odezwał. Nie mam dostępu do repa, nie mam kontaktu z ludzmi z projektu, nie ma komunikatora. Podpytałem się mojego menago - hej ale oco chodzi. _Spokojnie Lubieprogramowac u nas tak czasem jest. Okazało się że projekt w którym miałem robić im uciekł i szukają mi innego. Po dzisiejszym spotkaniu z menago + sales będę od maja (sic!) robić na 1/4 etatu w jednym projekcie. Co z $$$? Dobrze - płacone jest 8h / dzień za każdy dzień.

7

PHP bardzo różnie rozumie pojęcie modyfikacji i nie-modyfikacji arrayów.

  • array w PHP ma coś co się nazywa internal pointer, co jest po prostu wskaźnikiem na jeden klucz. PHP go używa do iterowania po array'u.
  • On niby jest internal, ale możemy nim sterować funkcjami next(), key(), current(), reset(), etc.
  • Wszystkie funkcje które tworzą nowy array, zwracają nowy array z internal pointerem na początku: array_slice(), array_values(), [...$array], array_merge()
  • Ale! array_values(), kiedy się wsadzić tablice sekwencyjną, np array_values([1,2,3]), zwraca ten sam array więc zwraca ten sam array internal pointer :/
$array = [0 => 'foo', 2 => 'bar']; // tablica nie sekwencyjna
next($array);
$copy = array_values($array);      // function made a copy with reset internal pointer
current($copy); // "foo" 
$array = [0 => 'foo', 1 => 'bar'];  // tablica sekwencyjna
next($array);
$copy = array_values($array);       // function didn't make a copy, so internal pointer is shared
current($copy); // "bar"

PS: Warto może dodać że array_keys(), już tak nie działa, tzn jeśli wsadzimy [0,1,2] do array_keys(), to dostaniemy również [0,1,2] (czyli niby potencjalnie to samo), ale tutaj internal pointer jest już ustawiony na 0.

8

Pokręcony kod w C
https://en.wikipedia.org/wiki/Duff%27s_device

send(to, from, count)
register short *to, *from;
register count;
{
    register n = (count + 7) / 8;
    switch (count % 8) {
    case 0: do { *to = *from++;
    case 7:      *to = *from++;
    case 6:      *to = *from++;
    case 5:      *to = *from++;
    case 4:      *to = *from++;
    case 3:      *to = *from++;
    case 2:      *to = *from++;
    case 1:      *to = *from++;
            } while (--n > 0);
    }
}

"the most dramatic use yet seen of fall through in C"

5

Typowa biblioteka w Pythonie
Screenshot from 2021-05-06 11-23-16.png

Do którego id przejdę jak query zwróci false?

9

Nieprogramistyczne, ale UXowe WTF.
Otóż od wielu miesięcy byłem przekonany, że Facebook ma buga w funkcji wyszukiwania w Messengerze (mówię o stronie internetowej messenger.com). Czyli że rozwalili kluczową funkcję (która i tak kijowo działała).

Dzisiaj dopiero się zorientowałem, że w rzeczywistości wyszukiwanie dalej działa 🤪To co natomiast przestało działać to... klawisz enter. Tj. szukając wpisywałem frazę do wyszukiwania, a potem naciskałem enter. I kiedyś to działało, jednak teraz czyści to tylko input i nic nie wyszukuje.

Jednak uświadomiłem sobie, że można dalej wyszukiwać po prostu poruszając kursorem myszy i klikając przycisk search messages for...(ew. też strzałka w dół działa, co też odkryłem, ale klawisz tab o dziwo już nie).
screenshot-20210510033619.png

I teraz - ciekawi mnie, czy brak wsparcia dla entera to jest jakiś bug, z którym nikt nic nie zrobił od miesięcy (ciekawi mnie też ile procent użytkowników to dotyka), czy to może nie jest bug, tylko ficzer? Może jakaś fatalna decyzja projektowa?

Teoretycznie teraz design wyszukiwarki jest zoptymalizowany pod wyszukiwanie osób. Problem w tym, że ja raczej nie szukam osób w messengerze, a często szukałem starych wiadomości, więc zobaczyłem, że nie działa i doszedłem do wniosku, że po prostu kolejny bug.

Drugi problem, że ten napis wcale nie wygląda jak przycisk. Ja dopiero dzisiaj się skapnąłem, że to się da kliknąć. Za moich czasów przyciski miały jakieś tło albo ramkę.

Trzeci problem, że z jakichś powodów ten przycisk jest po angielsku, mimo, że resztę interfejsu mam po polsku. Czyli kolejny WTF (nie każdy zna angielski).

Czwarty problem,że w polu edycyjnym jest napisane "szukaj w Messengerze", czyli ja to rozumiem, że szukaj w wiadomościach w Messengerze. Jakbym szukał znajomego, to bym nie pomyślał o tej akcji jako "szukaniu w Messengerze", bo ludzie żyją w świecie realnym, a nie są zamknięci "w Messengerze"(już prędzej się potocznie mówi "na facebooku / messengerze", choć nie wiem, na ile to poprawne językowo). Nie mogli napisać "wyszukaj znajomego"? O ile faktycznie to celowo, bo może po prostu zwyczajny bug.

2

jest klasa w javie powiedzmy X
są klasy z niej dziedziczące Xtaki, Xinny itp.
jest se fabryka XFactory z funkcją tworzącą na podstawie podanych parametrów obiekt której z klas dziedziczących z X
i kawałek kodu gdzie mamy obiekt klasy
X x;
pobieramy z niego nazwę i jakieś dane
przekazujemy do XFactory
Otrzymujemy inny obiekt tej samej klasy który wykorzystujemy żeby coś zrobił ale nie zmienił swojego stanu
Pytanie dlaczego nie można było tu użyć początkowego obiektu x
wspomniałam w wątku czy funkcje w javie nadal muszą mieć określone czy rzucają wyjątek? że do tego wątku się kod nadaje......

4
        System.out.println(user.getGuild().getMembers().contains(user)); // true
        user.setName("szymi");
        System.out.println(user.getGuild().getMembers().contains(user)); // false
10

screenshot-20210609223847.png
ała, lekko się zdziwiłem, jak po serii ctrl+z chciałem sporo przywrócić, a mi wszystko usunęło (na szczęście miałem w schowku) - wynik przemapowania skrótów vcode (rzadko używam) na IntelliJ (używam na co dzień) :D

1

Zrobiłem aktualizację systemu do wersji 20H2 i popsuło mi pasek zadań. Mam przypięty swój toolbar, kierujący do partycji z programistycznym barachłem, i ten oto toolbar przesunął się w lewo, zostawiając kupę miejsca po prawej jego stronie.

taskbar.png

Najlepsze jest to, że zrobiłem wszystko co w ludzkiej mocy, aby go dosunąć do strzałeczki zasobnika, ale ten nie chce się przesunąć — traktuje miejsce po prawej jak zajęte. Odblokowywałem pasek zadań, modyfikowałem, usuwałem, dodawałem, blokowałem, przestawiałem wszystkie ustawienia paska zadań, aby wymusić reorganizację elementów — no nic go nie zmusi do dosunięcia się.

Trudno, obejdzie się bez tego toolbara. :/

Co ciekawe, pasek zadań zachowuje się źle, bo nie używa tego miejsca w ogóle. Jeśli naotwieram masę programów i zacznie brakować miejsca na przyciski, to będą one ściskane w poziomie, a nieużytek jak był, tak jest nadal:

screenshot-20210610213007.png

3

Przeinstalowałem sterownik do grafiki — teraz mam na jednym ekranie pasek zadań na dole, a na drugim u góry. :D

screenshot-20210610223908.png

Cuda jaja. W sumie to nawet nie wiedziałem, że pozycja paska zadań nie musi dotyczyć wszystkich ekranów — można sobie go pozycjonować na każdym ekranie z osobna. Zawsze to nowa wiedza, a dziura na taskbarze jak była, tak jest nadal. ;)


Edit: dopadłem gnoja — odblokowałem pasek zadań, przeciągnąłem go na dół ekranu i pojawiła się zguba:

screenshot-20210610224218.png

Czyli dobrze kombinowałem — wymusić na pasku zadań reorganizację swojej zawartości. Teraz nie tylko pojawiła się brakująca ikonka, która zajmowała miejsce pomimo tego, że nie była wyświetlana, to w dodatku pojawiła się nowa pozycja w menu kontekstowym — ta, którą mi chłopaki sugerowali się zająć:

screenshot-20210610224438.png

Wyłączyłem ten pasek niusów, dodałem swój toolbar, zablokowałem paski zadań i bangla:

screenshot-20210610224621.png

Damn you, Microsoft! :D

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