Programistyczne WTF jakie Was spotkały

Programistyczne WTF jakie Was spotkały
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
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.


Koziołek
PIsz do nich :) Serio. Tam siedzą ogarnięci ludzie i potrafią przyjąć krytykę.
LP
Też mnie to irytuje. Jak to przeszło UXa? Kiedyś pisałem do allegro że chciałbym mieć możliwość dodania sprzedawcy do bla.. denylist. Dlaczego? Np kupiłem od niego szmelc i nie chcę z nim więcej "robić interesów". - Niestety nie ma takiej funkcjonalności, pomysł zostanie przekazany do działu IT.
Freja Draco
Freja Draco
@lubie_programowac: Ale widzę, że za to dodałeś "blacklistę" do blacklisty ;)
somekind
Chyba w co drugim sklepie internetowym siedzi taki debilek. Może to rodzina?
WhiteLightning
Ktos fajnie opisal takie zachowanie w prezentacji, ze to tak jakby otworzyc lodowke, siegac na dol po sok i w momencie jak chcemy go zabrac, nagle wpadaja nam do reki z gory jajka...
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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ę:

Kopiuj
    //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:

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

A mialo być tak pięknie...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
Zobacz pozostałe 24 komentarze
jarekr000000
Co do kopiowania rozwiązań: Kiedyś rozwiązałem jakiś większy problem produkcyjny używając volatile - wyjaśniłem co to znaczy, tak mi się wydawało. Pech, że zaraz potem pojechałem na 3 tygodnie urlopu... Można się domyśleć jak kod systemu wyglądał jak wróciłem...
Shalom
@superdurszlak @stivens no wlaśnie jak na mnie to zupełnie lajtowo :) np. If we really want to return Either and not just Optional from here I would make some base Error class and not use String, to avoid pain with refactoring if we decide to add more details for example. ad trzymania String jako Left, albo Checking with .isRight and .isLeft is generally a bad style. You should use map() and mapLeft() to trasform albo ewentualnie do tego move to a utility package skomentowałem Move this to oblivion. This literally does nothing. :) Serio, nic strasznego.
stivens
Kurde jakis wrazliwy tez kolezka. Zgadzam sie ze nic strasznego.
jarekr000000
@Shalom: ostatnie niepolityczne. Powinienes napisać: This piece of code is suboptimal and can be simplified a little.
superdurszlak
Jak dla mnie brzmi najzupełniej normalnie ¯\_(ツ)_/¯
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
12
Kopiuj
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?


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
edytowany 3x, ostatnio: BraVolt
Marooned
Najpierw piszą, że format 01/10/1972, a potem przykład 01Oct1972...
UR
Bo kiedyś tak było. Ale tak to jest jak nie ma nic rozpisanego, to potem nikt nic nie wie co sie dzieje i po co ktos zmienial. Albo im sie formatowanie zmienilo wraz ze zmiana strefy serwera. Ogolnie jak otworzylem raz ich "formularz" do aplikowania o pracę, to nie wytrzymałem, zrezygnowałem i go zamknąłem.
Sarrus
Ja dostałem takiego maila po polsku i nie było takich rozterek :)
MarekR22
Najsmutniejsze jest to, że te "zabezpieczenia" są powszechne, a nic nie dają. Są tylko irytujące dla użytkownika. Dla byle hackera taki plik leci do paragramu, który łamie to zabezpieczanie w pół sekundy.
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
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


hzmzp
Odkąd pamiętam to az był syfem. Znikające maile, sypiący się system cache i problemy z komunikacją z konsultantami.
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
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?


edytowany 3x, ostatnio: Freja Draco
Zobacz pozostałe 6 komentarzy
ĆK
Dlaczego w niemieckim, angielskim "ja" piszemy z dużej litery?
FA
pisała do mnie konkretna osoba,a nie dział handlowy ;) - no to straszne raczysko, kiedyś dorabiałem w firemce co miała "firmowego fb do komunikacji na messegerze". W teorii spoko. W praktyce wyglądało to tak ze z tego samego konta pisało o koło 5 róznych osób. Najlepsze był akcje jak ten sam problem był przekazywany drugiej osobie. Jedna z dziewczyn, miała taki styl pisania, że emotki tęcza i milusio, a druga po neutralnym wstepie przechodziła do pasywnej agresji i trybu rozkazujacego. Mega schizofremiczne. O "amnezji" i tlumaczeniu tego samego 5 razy szkoda gadac.
somekind
W ogóle mail z kancelarii prawnej z "pozdrawiam" na końcu to jakiś cholerny brak profesjonalizmu. Tak to sobie można do kolegi pisać, a nie do klienta poważnej instytucji.
cerrato
@somekind: też racja, ale z dwojga złego wolę "pozdrawiam Anna Nowak asystent radcy" niż "z wyrazami szacunku kancelaria"
somekind
No z tym się nawet zgodzę. :)
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
14

screenshot-20201222110917.png


Jest wtorek, dochodzi południe.


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
edytowany 1x, ostatnio: BraVolt
vpiotr
Przynajmniej nie musi być face-to-face.
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
8

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


Marooned
Nie z No-Script ;-)
cerrato
Ale przynajmniej taki ładny, rozmyty, a nie chamskie gwiazdki bijące po oczach pikselami ;)
LiuXiaoYang
LiuXiaoYang
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 3 lata
  • Postów:16
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 :)

Zobacz pozostały 1 komentarz
hzmzp
@Marooned: Ale to jest proces od update
Marooned
A, umknął mi ten drobny detal :D
Azarien
może jest osobny proces na każdy plik?
Silv
Albo paczkę (nie wiem: czy w Windowsie występują "paczki"?).
Azarien
każdy rodzaj instalatora ma swoje wynalazki. nie wiem jak działa instalator Edge.
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10051
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

Kopiuj
return "/" + countryCode;

...ale

To jest już dobry, extensible sposób:

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

Pomijam że oba są testowane tymi samymi unitami.

edytowany 1x, ostatnio: Riddle
MarekR22
Java to nie moja bajka, ale pamiętam, że ktoś kiedyś tu wspominał, że w jakiejś bardzo starej wersji Java wydajność budowania napisów za pomocą operatora dodawania, pozostawiała wiele do życzenia. Czyli kiedyś to była prawda, teraz jest nieaktualne, ale przekonanie zostało. Zapewne po starych materiałach lub po takich, które bezrefleksyjnie powiela stare źródła.
Riddle
@MarekR22: Chodziło o to że stringi w javie są immutable, i tak na prawdę "etyowanie" stringa to jest tworzenie nowego takiego, więc np "a" + "b" + "c" + "d" "pod spodem" robiło stringi "a", "b", "c", "d", "ab", "abc", "abcd", i one wszystkie są trzymane potem, jako osobne instancje klasy String. Ale teraz są optymalizatory, które wszędzie gdzie się da wstawiają StringBuilder i nie pozwalają temu wystąpić.
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10051
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).

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

Pokazuje

Kopiuj
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***.

edytowany 3x, ostatnio: Riddle
Zobacz pozostały 1 komentarz
Althorion
Locale są faktycznie durne, jak chyba każda pozostałość po C, ale ja akurat jestem fanem tego, by \w oznaczało literę lub cyfrę z zadanego języka — bo jak chcę mieć z alfabetu łacińskiego, to naklepanie sobie tego [a-zA-Z0-9] to dwie sekundy roboty, ale jakbym miał tak wypisać wszystkie znaki, powiedzmy, z greki…
Riddle
@Althorion: Wszystkie greckie znaki jeśli chcesz: /\p{Greek}/, jest wiele podsetów, zapoznaj się z \p ;) https://www.php.net/manual/en/regexp.reference.unicode.php
hauleth
\d też jest chyba zależne od locale. Ogólnie to to jest naleciałość z POSIX. Locale to ogólnie zło.
MarekR22
locale jest właściwością systemu. Proces może sobie zmienić swoje locale globalne. Najlepiej jednak kontrolować locale bezpośrednio do danego zadania (zależnie od kontekstu). Nie wiem jak to jest w PHP, ale większość języków ma API do lokalnego kontrolowania locale. Dodatkowo RE nie mają jednego standardu, więc każdy robi to według własnego najlepszego mniemania. Przykładowo w Go \w działa tylko dla zakresu ASCII jest to udokumentowane.
SW
  • Rejestracja:około 5 lat
  • Ostatnio:3 miesiące
  • Postów:250
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?

loza_wykletych
loza_wykletych
Spytaj natury jakim cudem istnieje inteligentne życie.
danek
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Poznań
  • Postów:797
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


Spring? Ja tam wole mieć kontrole nad kodem ᕙ(ꔢ)ᕗ
Haste - mała biblioteka do testów z czasem.
UR
Zaczyna go obchodzić jak musi zapłacić 5 programistom 10 dniówek, zamiast 1 programiście 2 dniówki za zrobienie czegoś :)
Schadoow
@urke: IMO to też zależy od wielkości jak firma zatrudnia załóżmy >30k ludzi to co to 50MD zmienia :p. Szczególnie, że przy takich kolosach i tak wtedy spala się więcej czasu na dyskutowaniu zmian z biznesem, sprawdzaniu czy nowa logika nie jest sprzeczna z jakaś starą funckjonalnością używaną przez jedną Grażynkę na drugim końcu świata.
wasiu
O, jakie to życiowe. Już tyle dni na spotkaniach po 10 osób na pieprzeniu o głupotach zleciało, że to po prostu część rytuału można powiedzieć. Potem jeden programista robi to w półgodziny. W dużych firmach nie musi być tanio i szybko, management od gadania też musi przecież coś robić.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 5 godzin
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.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
Zobacz pozostałe 2 komentarze
YA
Zawsze się zastanawiałem co te kraby pół dnia robią na plaży. A tu taka prosta odpowiedź. Sortują :)
cerrato
Ciekawe swoją drogą, jak to sortowanie wygląda. Kto decyduje o tym, który krab jest większy. Czy jest jakiś sędzia krabich rozmiarów, który interweniuje w sytuacjach spornych oraz jakaś komisja odwoławcza?
vpiotr
Po polsku "rak pustelnik".
KamilAdam
Potocznie bywają nazywane rakami pustelnikami lub (zwłaszcza w literaturze anglosaskiej) krabami pustelnikami. To ja nie wiem czy po polsku :(
Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 11 godzin
  • Lokalizacja:Poznań
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...


Zobacz pozostałe 4 komentarze
Marooned
No, ja mam dwa niezależne profile zaufane pod dokładnie tym samym adresem e-mail (jeden stary, nieaktywny, gdy loguję się hasłem i nowy aktywny gdy loguję się bankiem). Już sam fakt, że system na to pozwolił pokazuje jakość tego kodu. A jak przychodzi mail, że mam jakąś wiadomość, to nie widzę go w żadnym z tych dwóch - a z maila nie wynika, na który to zostało wysłane. Dramat w III aktach.
somekind
Adblocka wyłączyłeś?
Marooned
Wiadomo, że nie (pihole też czuwa).
somekind
To wyłącz, bo na tej stronie i tak nie ma reklam, a może blokować jakieś potrzebne rzeczy.
Marooned
I tak tam nie dało się poprawić. Musiałem z e-deklaracje pobrać pdf, ale i ten zgłaszał błędy. Kobitka z US w drodze wyjątku przygotowała mi nowego pita, pojechałem tylko podpisać.
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10051
6

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

Kopiuj
$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:

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

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

edytowany 2x, ostatnio: Riddle
KamilAdam
Klasy deklarowane w PHP to wystarczy na WTF
KA
Kto w ten sposób pisze kod (deklaracja klasy gdzieś w środku, nie w osobnym module nawet nie gdzieś na początku)? Tego nikt nie mógł przewidzieć, że można tak pisać nawet twórcy PHP... Gdyby deklaracja była w innym module a tylko include było między kodem sprawdzającym byłoby OK.
axelbest
Potwierdzam, zakop za bezsensowne szyderstwo z phpa. Nikt tak nie deklaruje klas. get_declared_classes? A to już composer za słaby?
A9
  • Rejestracja:ponad 8 lat
  • Ostatnio:7 miesięcy
  • Postów:408
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/

Kopiuj
md5(md5(password))
chalwa
Nie wierzę xD Chyba pora założyć nowy wątek dla naszych narodowych czempionów.
KamilAdam
@chalwa: to jest ten osobny temat? Bo treści o alkibla jest naprawdę dużo i już trudno nadążać
chalwa
@KamilAdam: Jest wpis na mikroblogu ze ścianą komentarzy, ale coś czuję, że będzie zalew treści na temat tego portalu.
Anna Lisik
o kur*a mocne :)
obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:9 minut
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ń.


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
KamilAdam
Czekamy na !!!!
vpiotr
Nie programuję w JS, ale jak inaczej sprawdzić "oczyszczonego booleana" czy jest false?
KamilAdam
@vpiotr: to podstęp? Nie czyścić, if(!foo) zadziała tak samo
vpiotr
A OP polecam przeczytać https://www.sitepoint.com/javascript-double-negation-trick-trouble/ - cała litania fuckupów na jakie można się nadziać.
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
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/


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 1x, ostatnio: KamilAdam
Zobacz pozostałe 16 komentarzy
vpiotr
@superdurszlak: prawda jest inna, to zazdrośni ludzie atakują ten nikomu nie przeszkadzający serwis.
superdurszlak
zazdrośni, wrogowie polskości, LGBT, komuniści, ateiści i proaborcjoniści, no i kilka dywizji papieży, nie mówiąc o tych co chwalą Niemców po niemiecku... wiadomo ;)
vpiotr
dokładnie tak, było o tym na zebraniu.
ToTomki
Udał Ci się ten post ;)
KamilAdam
@ToTomki: dziękuję, ja tylko przekopiowałem
chalwa
  • Rejestracja:około 7 lat
  • Ostatnio:około rok
  • Postów:109
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.

Zobacz pozostałe 2 komentarze
chalwa
Z tego co wiem to chciała zainstalować Steam, ale mogła po prostu spytać administratora o zgodę :D To była standardowa instalacja z CD ROM bez żadnych dodatkowych konfiguracji i szyfrowania, ale nie wiem jeszcze jak to zrobiła.
Althorion
Ja kiedyś dostałem w prezencie od członka rodziny skrypt w cronie, który co kilkanaście dni kasował losowy plik z dokumentów. Zajęło mi kupę czasu odkrycie, co jest nie tak i dlaczego.
vpiotr
W Windowsie też się chyba da - skąd to zaskoczenie? Siedzisz na Macu?
chalwa
Na Win z bitlockerem więc nigdy się nad tym nie zastanawiałem.
vpiotr
@chalwa: nie zastanawiałeś się bo nie przewidujesz zgubienia hasła / klucza? https://blog.elcomsoft.com/2020/05/unlocking-bitlocker-can-you-break-that-password/
fasadin
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
  • Postów:4882
2
Kopiuj
var request = new RestRequest(null, Method.POST);

da 200 ok jezeli sie to uruchomi.

Zobacz pozostałe 6 komentarzy
fasadin
Też myślałem że wyrzuci wyjątkiem ;) ale jak pisze @Koziołek ma sens (więc nie taki wtf) że zwraca 200
Koziołek
@hzmzp: no nie. Tutaj jest POST, czyli tworzenie/modyfikacja zasobu null. Wiec co najwyżej można by się do kodu odpowiedzi przyczepić (powinno być 201 lub 304). Zasobem REST może być dowolna informacja, której można nadać nazwę. Specyficznym rodzajem takiej informacji będzie informacja pusta.
fasadin
@Koziołek: imo wiadomosc pusta to string.Empty; a null jest nieokreslony, ale tak rozumiem ze w tym przypadku null jest interpretowany jako pusty zasob :) Ale tak, wtf nie jest juz wtfem :) nie wiedzialem o tym o czym napisales
Riddle
Moim zdaniem powinno rzucić NullReferenceException albo InvalidArgumentException. Można by spekulować, gdyby argumentem był "".
Anna Lisik
@fasadin: jeśli zapytanie wróci pusty zasób, powinno dać 404.........
PerlMonk
  • Rejestracja:około 6 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Warszawa 🐪
  • Postów:1719
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."


Nie sztuka uciec gdy w dupie sztuciec. 🐪🐪🐪
Zobacz pozostałe 2 komentarze
Silv
No rozumiem. :)
WL
No to wersja dla sześciolatka @Silv ; wyobraź sobie, że odpalasz kilka instancji VS.Code. W każdej z nich masz otwartych wiele plików (zakładek). W instancji VS.Code nr 1 robisz sobie CTRL-SHIFT-H. Następnie przechodzisz do instancji nr 2 VS.Code i robisz CTRL+Z. VS.Code cofa Ci zmiany we wszystkich wszystkich plikach otwartych w każdej z instancji VS.Code. Fajnie? "Nie baudzo."
Silv
@wloochacz: teoretycznie mówiąc, nie widzę powodu otwierania naraz kilku "instancji" VS Code – tak samo jak kilku "instancji" Excela. Ale architekci Excela mają pewnie własne wytyczne i nie czułbym się w porządku mówiąc, że nie mają racji, bo mi się wydaje inaczej. Być może inaczej od nich rozumiem słowo "instancja", a może w ogóle go nie rozumiem? Tak więc zgadzam się z Tobą i z @PerlMonk , że w pewnych use case taka funkcjonalność ma sens, w pewnych nie.
PerlMonk
@Silv: akurat w przypadku Excela podany link wyjaśnia w czym problem. To jest zrozumiałe. Mogliby zmienić konstrukcję programu, ale byłaby to na tyle duża zmiana, że lepiej zostawić jak jest. Ja osobiście mogę się przyzwyczaić. Po prostu zdziwiłem się, że Excel zachowuje się inaczej, niż inne programy.
obscurity
cały windows jest tak skonstruowany. Otwórz sobie jakiś folder, zmień w środku nazwę pliku lub usuń jakiś plik, zamknij folder. Za dwie godziny przypadkowo naciśnij o jedno "ctrl+z" za dużo w innym folderze - nic się nie stało? Otóż nie - windows po cichu cofnął zmiany w dawno zamkniętym już folderze. Trzeba się pilnować
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
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.


Zobacz pozostałe 6 komentarzy
somekind
Że niby "czarno-biały PDF" to jest nazwa czegoś? Myślę, że mocno brniesz w ten błąd.
Freja Draco
Freja Draco
@somekind: Nie chce mi się w kółko tłumaczyć tego samego.
somekind
Naturalnie. :) Wszyscy przecież wiedzą, że łaciński zwrot w losowym momencie daje +10 do mądrości tekstu.
KamilAdam
Przypominam tylko że to jest polskojęzyczne forum a nie łacińsko języczne i oczekuję repolonizacji obcych (a więc wrogich) zwrotów
Anna Lisik
Próbowałam zorientować się odnośnie przedłużenia usługi Internetu stacjonarnego na stronie Oranga......... aha, powodzenia....... ta strona to jedna wielka tragedia.........
gośćabc
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Szczecin
  • Postów:500
0

"błąd kompilatora"

PerlMonk
Wyjątkowo nie PEBCAK :]
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
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ł ;)


edytowany 3x, ostatnio: Freja Draco
Zobacz pozostałe 3 komentarze
mar-ek1
Na zenboxa, bo jestem tym frajerem co z wordpressa korzysta :P Może nie najtaniej, ale jako-tako
Ktos
Ja z kolei z linuxpl.com przeszedłem na VPS-y od OVH - ale to kompletnie inna liga.
AreQrm
Nie programistyczne...
cerrato
@Ktos: tak na wszelki wypadek zapytam odnośnie tej "innej ligi" - na korzyść której firmy?
Ktos
@cerrato: Chodziło mi raczej o inną ligę w kategorii czym jest ta usługa (VPS vs hosting współdzielony) ;)
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10051
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.

Zobacz pozostałe 3 komentarze
Riddle
@hzmzp: Wszystkie funkcje do sterowania wbudowanym array w PHP zwracają false jak array jest pusty, z wyjątkiem key() który akurat zwraca null.
hzmzp
chyba za długo robię w php, faktycznie to może być mylące :D
obscurity
a jak odróżnić element tablicy false od tego że się po prostu skończyła tablica? Z tego co widzę to element w tablicy null => false kładzie wszystkie te funkcje
obscurity
@Shalom: ta funkcja mnie rozwaliła, po opisie myślałem że zwróci wartość pomiędzy 0.0 a 1.0, ale tego się nie spodziewałem
Riddle
@obscurity: Nie da się. Musisz użyć key() albo array_key_exists().
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 godziny
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.

Zobacz pozostałe 4 komentarze
Azarien
@chalwa: ale niech sobie idzie ten guzik gdzieś na drugą stronę, z dala od pauzy, głośności i początkowego kawałka paska postępu gdzie trzeba statystycznie częściej klikać by przeskoczyć czołówkę filmiku albo po prostu zobaczyć czy jest sens to oglądać.
hzmzp
W ogóle cały yt jakiś taki rakowy jest i pod względem kontentu jak i playera ostatnimi laty.
chalwa
Tak jak pisałem, to jest celowe żerowanie na pomyłkach użytkowników. To samo na instagramie: przesuwaj w dół i jak obejrzysz posty znajomych to będą juz tylko reklamy. Jesli chcesz zobaczyć stare posty kliknij miniaturowy napis, który zlewa się z tłem. To był dla mnie ostateczny powód, żeby tą aplikację odinstalować.
Azarien
Instagram mnie zbanował za podejrzane zachowanie, którym było założenie konta. chcą żebym podał im nr telefonu. niech się wypchają.
superdurszlak
Ostatnio utrudnili wyłączanie autoodtwarzacza - teraz toggle jest nie tylko w zupełnie innym miejscu, ale też mniejszy i trudniej odróżnić wizualnie stan on/off - w obu jest szare coś na szarym tle :)
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
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...

Zobacz pozostałe 4 komentarze
vpiotr
Azarien, juz zainstalowalem IrfanView. Nie wiem jak mozna bylo skopac taka podstawowa funkcjonalnosc - chyba tylko jesli ktos to zrobil specjalnie. Ale Notepad przez dlugi czas nie obslugiwal Ctrl-S AFAIR wiec mnie to az tak nie dziwi.
Sarrus
Właśnie sprawdziłem u siebie i o dziwo działają strzałki
PA
Też sprawdziłem i działaja strzałki lewo/prawo, zmiana następuje jeżeli powiekszymy zdjęcie, wtedy strzałki "ruszaja" obraz, powrót do nieskalowanego zdjecia ctrl+0 i strzałki działaja "normalnie"
chalwa
Ja dalej używam google Picassa :D Ale jak macie jakiś dobry soft do zarządzania zdjęciami na dysku to chętnie zmienię
Anna Lisik
@vpiotr: eeee nie jedyna. Domyślna przeglądarka foci na Macu po otwarciu iluś naraz również nie reaguje na strzałki, trzeba kółkiem myszy ( aczkolwiek w ustawieniach apki można zremapować)
axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Warszawa
  • Postów:2249
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ć).

edytowany 2x, ostatnio: axelbest
DR
bo po co komuś non-stop oglądać najstarsze fotki powiedz to moje żonie XD
hauleth
Muszę sprawdzić u teściowej, ale do tej pory nie zauważyłem tego problemu. Tak, najnowsze zdjęcia są "na końcu", ale domyślnie aplikacja otwiera się "na końcu", więc nie trzeba nic przewijać.
Sarrus
Właśnie dlatego nigdy nie kupię nic z literką i. Za dużą wyższą ceną nie idzie lepsza jakość. Co rusz się o tym przekonuję
axelbest
@hauleth: faktycznie, teraz to sprawdzilem, ja najwyraźniej robiłem to jakąś inną ścieżką ;) albo to kwestia tego, ze nie zamykałem aplikacji tylko minimalizowalem. Mimo wszystko nie zmienia to faktu, ze nie mozna posortowac wg innego kryterium niz te narzucone. A
Anna Lisik
@axelbest: jak nie obsługuje jak obsługuje ( fakt, jest to mało intuicyjne, ale jest )
Freja Draco
Freja Draco
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 3 lata
  • Postów:3394
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


Zobacz pozostałe 2 komentarze
Sarrus
O faktycznie korzystało się kiedyś ;)
Miang
ACDSee to było coś, ale na linucha nie ma :(
Freja Draco
Freja Draco
@axelbest: Ifvan nie jest zły, ale nie pozwalał mi skonfigurować sobie interfejsu, tak jak chciałam.
somekind
ACDSee to prehistoria. A windowsowa przeglądarka z PgUp i PgDown ma dokładnie ten sam problem, co ze strzałkami.
Azarien
Z tego co widzę https://www.acdsee.com/en/index/ ACDSee próbuje teraz być konkurencją dla Photoshopów i innych Premiere'ów… aż sobie wezmę triala chyba.
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
0

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


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
vpiotr
Zamiast latac myszka po rogach obrazka. Szok.
Freja Draco
Freja Draco
Ale przecież tak jest szybciej i wygodniej. Z resztą większość powtarzalnych rzeczy się szybciej robi klawiaturą.
somekind
@Freja Draco: nie przetłumaczysz ludziom, którzy zeszłego wieku nie widzieli.
BraVolt
Jaką klawiaturą? Kto używa telefonu z klawiaturą? AFAIR było BlackBerry ale padło. Nawet gdyby komuś pokazywać galerię na laptopie, to skąd myszka (która abo się zgubi albo się jej zapomni zabrać do torby)? Jest porządny touchpad i dała Bozia palce żeby używać albo ekranu telefonu/tabletu albo touchpada.
somekind
Touchpady to z założenia g**no. I nikt nie wspominał o telefonach, piłeś coś?
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)