Czy kopiujecie kod z ChatGPT czy manualnie go przepisujecie?

Czy kopiujecie kod z ChatGPT czy manualnie go przepisujecie?
lambdadziara
  • Rejestracja:ponad 6 lat
  • Ostatnio:dzień
  • Postów:442
1

Pamietam, kiedys byl wywiad z polskim fejmem z dziedziny bezpieczenstwa, CTFow, nie pamietam ksywki. On mowil, ze z ksiazek np zawsze przepisuje kod recznie, bo tak sie szybciej czlowiek nauczy. Wiec tez tak robie w kwestii ChatGPT, wierze mu, ze to pomoze utwierdzic wiedze.
Ale mysle, ze osoby uzywajace ChatGPT na maszynie roboczej i ktorzy po prostu kopiuja ten kod, szybciesz pokoncza taski.
Wiec, to tez moze o mnie gorzej swiadczyc, bo mozna powiedziec, ze kto szybciej kopiuje kod z ChatGPT jest lepszym devem

Wiktor Zychla
A jak z książki inaczej przepisać kod niż "ręcznie"?
DR
@Wiktor Zychla: Książki są też w wersji elektronicznej
CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:2 dni
  • Postów:2287
1

Nie korzystam z chatuGTP, bo żadnego problemu by u nas w kodzie nie rozwiązał.

DU
To musi być srogie legacy. Mam tak samo
CZ
Najlepsze jest to, że to nie jest nawet stary kod, ale po prostu c**** design. Naprawiamy kod zachodni, który został napisany szybko przez zagranicznych byleby tylko zarabiał a my cierpimy i to sklejamy. Na plus, że dużo osób chce zmian i korpo menadżment się łamie na refactor.
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:4 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
3

Kopiuje, oczywiście że kopiuje. Przecież nie będę przepisywał. Co prawda jeszcze nic nie skopiowałem do pracy, ale jakbym miał możliwość to bym kopiował


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
TheWypierdzisty
TheWypierdzisty
  • Rejestracja:prawie 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:43
0

Ostatnio komuś pomagałem i podesłał mi kod źródłowy z chatGPT i akurat wyglądał poprawnie.

Ale potem jak z bliska zobaczyłem problem to zauważyłem, że chatGPT pisze pseudokod w zwykłym języku.
Człowiek pseudokod pisze zwykle w jakimś urojonym języku, który często jak python wygląda ze względu prosty, a chatGPT jaki tekst mu podasz to napisze ten pseudokod z NLP w postaci danego języka formy.

Oczywiście kod nie działał, ale większość operacji była prawidłowa syntaktycznie i semantycznie, że widziałem w którym miejscu będzie problem, ale jak zobaczyłem konkretny problem to okazało się, że brakuje bardzo dużej ilości pseudokodu opisującego daną domenę.

Ale tak większość kodu była poprawna prócz tam kilku rzeczy, po prostu dobrze napisany pseudokod, czasem jeśli problem jest prosty taki pseudokod zadziała bez problemu.

TerazOdpowiemNaKomcie
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 2 godziny
  • Postów:383
2

u mnie rozwiązał, gdy jakieś archaiczne EJB timery średnio działały, wkleiłem mu kod funkcji, opisałem co ma zrobić i cyk, zadziałało xD polecam do legacy. nawet dokumentacji tego shitu nie musiałem czytać :D

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Laska, z Polski
  • Postów:10056
0

Chyba tylko kilka razy spotkałem się z jakąkolwiek chęcią pomocy z ChatGPT, i za każdym razem wypluł mi taki bezsens, że nawet nie opłacało się tego brać pod uwagę.

SZ
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 godziny
  • Postów:1473
0

Poprawcie mnie jeśli się mylę. A to nie jest tak, że im więcej mu podajemy różnych problemów tym bardziej jest on mądrzejszy? W sensie uczy się? Wiele osób obawia się, że zabierze robotę a jednocześnie pomaga aby był jeszcze lepszy.

F2
Nie, chyba, że OpenAI później bierze Twoje dyskusje z czatem i wrzuca w trening, ale to się nie dzieje z automatu.
Hodor
  • Rejestracja:ponad 7 lat
  • Ostatnio:około godziny
  • Lokalizacja:Warszawa
  • Postów:325
0

I oczywiście to nie był GPT 4 tylko te mierne słabsze wersje

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Laska, z Polski
  • Postów:10056
0
Hodor napisał(a):

I oczywiście to nie był GPT 4 tylko te mierne słabsze wersje

ChatGPT 4 napisał nawet gorszą wersję niż ChatGPT3.5.

Zadałem obu chatom zadanie "write tests for regexp parser in php". ChatGPT3 próbował rozbić faktycznie wyrażenie na znaki, tylko źle rozparsował escape'y i character group.

Jak zapytałem ChatGPT 4 o to samo to napisał mi ten bezsens:

Kopiuj
<?php

use PHPUnit\Framework\TestCase;

class RegexParserTest extends TestCase
{
    public function testValidEmail()
    {
        $regexParser = new RegexParser();

        $this->assertTrue($regexParser->isValidEmail('test@example.com'));
        $this->assertFalse($regexParser->isValidEmail('test@example'));
        $this->assertFalse($regexParser->isValidEmail('testexample.com'));
    }

    public function testValidPhone()
    {
        $regexParser = new RegexParser();

        $this->assertTrue($regexParser->isValidPhone('123-456-7890'));
        $this->assertFalse($regexParser->isValidPhone('123-4567-890'));
        $this->assertFalse($regexParser->isValidPhone('123-45-67890'));
    }

Żaden człowiek przy zdrowych zmysłach poproszony o napisanie parsera nie napisałby czegoś takiego.

IK
Korzystanie z ChatGPT to skill, tak samo jak korzystanie z google'a. Jak mu wrzucasz taki input to nie dziw się, że dostajesz taką odpowiedź. Swoją drogą po programiście oczekiwałbym większego rozgarnięcia w tym temacie.
Riddle
Tak samo jak korzystanie z jquery to Skill, ale częścią fachu jest dobór odpowiednich narzędzi. Nie wątpię że kiedyś AI będzie wartościowym narzędziem, ale to jeszcze nie jest teraz
TheWypierdzisty
TheWypierdzisty
  • Rejestracja:prawie 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:43
0
Riddle napisał(a):

Zadałem obu chatom zadanie "write tests for regexp parser in php". ChatGPT3 próbował rozbić faktycznie wyrażenie na znaki, tylko źle rozparsował escape'y i character group.

Żaden człowiek przy zdrowych zmysłach poproszony o napisanie parsera nie napisałby czegoś takiego.

Jeśli bot miał napisać testy dla regex parsera w php to tam widać jakieś asserty czy funkcja zwraca dla isValidEmail True gdzie jest podany poprawny adres email.
Może nie jest to jakiś imponujący zestaw testowy, ale jakieś testy są, a na dole piszesz, że miał parsera napisać, może przypadkiem złe zadanie mu zadałeś?

Chyba, że miał jeszcze testować ci prefix i domenę czy poprawnie wyciągnął z tego adresu email.

edytowany 1x, ostatnio: TheWypierdzisty
CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:2 dni
  • Postów:2287
2
szydlak napisał(a):

Poprawcie mnie jeśli się mylę. A to nie jest tak, że im więcej mu podajemy różnych problemów tym bardziej jest on mądrzejszy? W sensie uczy się? Wiele osób obawia się, że zabierze robotę a jednocześnie pomaga aby był jeszcze lepszy.

Nie jest tak, GPT-4 zostało wyuczone na bazie danych do 2021 roku i nie updatuje wag już.

edytowany 2x, ostatnio: Czitels
Hodor
  • Rejestracja:ponad 7 lat
  • Ostatnio:około godziny
  • Lokalizacja:Warszawa
  • Postów:325
0
Riddle napisał(a):
Hodor napisał(a):

I oczywiście to nie był GPT 4 tylko te mierne słabsze wersje

ChatGPT 4 napisał nawet gorszą wersję niż ChatGPT3.5.

Zadałem obu chatom zadanie "write tests for regexp parser in php". ChatGPT3 próbował rozbić faktycznie wyrażenie na znaki, tylko źle rozparsował escape'y i character group.

Nie znam się na PHP, ale czy gpt nie zrobił to o co prosiłeś? Jeśli nie to można próbować przekazywać swoje wymagania trochę bardziej precyzyjnie, np. w jaki sposób ma coś zrobić, a w razie błędów przede wszystkim mu to wytłumaczyć.

Ja mam z GPT doświadczenie takie, że może być to niezłe narzędzie do pair programmingu, debuggingu, eksploracji rozwiązań alternatywnych, i nauki. Nie daję mu ogólnych wymagań typu "read my mind, do what I want". GPT non stop się myli, wtedy go poprawiam, albo redefiniuję wymagania, i często się nie zawodzę. Ofc trzeba GPT 4 mieć.

Mi wygenerował coś takiego:

Write unit tests for parsing regex, matching numbers with two decimal places. The numbers can be negative. These numbers always have two decimal places (e.g., 2.00 or 2,00) and can use either a comma or a dot as a decimal separator.

Spock framework.

Edge cases is must.

well-written, clean code, maintainable, extensible, best practices

Kopiuj
import spock.lang.Specification
import spock.lang.Unroll

class DecimalParserSpec extends Specification {
    DecimalParser decimalParser = new DecimalParser()

    @Unroll
    def "test matchesTwoDecimalNumber with #input should return #expected"(String input, boolean expected) {
        expect:
        decimalParser.matchesTwoDecimalNumber(input) == expected

        where:
        input   || expected
        "2.00"  || true
        "2,00"  || true
        "-2.00" || true
        "-2,00" || true
        "-2"    || false
        "2.0"   || false
        "2,0"   || false
        "-2.0"  || false
        "-2,0"  || false
        "abc"   || false
        ""      || false
        null    || false
    }
}

can improve?

Kopiuj
import spock.lang.Specification
import spock.lang.Unroll

class DecimalParserSpec extends Specification {
    DecimalParser decimalParser = new DecimalParser()

    @Unroll
    def "test matchesTwoDecimalNumber with '#input' should return #expected"(String input, boolean expected) {
        expect:
        decimalParser.matchesTwoDecimalNumber(input) == expected

        where:
        input    || expected
        "2.00"   || true
        "2,00"   || true
        "-2.00"  || true
        "-2,00"  || true
        "0.00"   || true
        "0,00"   || true
        "-0.00"  || true
        "-0,00"  || true
        "-2"     || false
        "2.0"    || false
        "2,0"    || false
        "-2.0"   || false
        "-2,0"   || false
        "200.00" || true
        "200,00" || true
        "-200.00"|| true
        "-200,00"|| true
        "abc"    || false
        ""       || false
        null     || false
        " "      || false
        "- 2.00" || false
        "2.000"  || false
        "2,000"  || false
        "-2.000" || false
        "-2,000" || false
    }
}

A do maili:

Kopiuj
import spock.lang.Specification
import spock.lang.Unroll

class EmailRegexParserSpec extends Specification {

    def parser = new EmailRegexParser()

    @Unroll
    def "should validate valid email address: #email"() {
        expect:
        parser.isValid(email) == true

        where:
        email << [
            "test.user@example.com", 
            "user.name+tag+sorting@example.com", 
            "user@localhost", 
            "user@1.1.1.1", 
            "user@[IPv6:2001:db8::1]", 
            "username@example.com"
        ]
    }

    @Unroll
    def "should not validate invalid email address: #email"() {
        expect:
        parser.isValid(email) == false

        where:
        email << [
            "plainaddress", 
            "@no-local-part.com", 
            "invalid@syntax.@", 
            "user.name.@.invalid.com", 
            "user.name@.invalid.com", 
            "user.name@example.com (comment)", 
            "username@.com", 
            "", 
            null
        ]
    }
}


W każdym razie z powodzeniem można używać GPT do ambitniejszych rzeczy niż regexy

ledi12
  • Rejestracja:ponad 5 lat
  • Ostatnio:25 dni
  • Lokalizacja:Wrocław
1

Czasami użyje, żeby wygenerował mi fabryki testowe, gdy mam sporo tabel w projekcie. Za każdym razem muszę po nim poprawiać. Zdarza się, że generuje kod, który się nawet nie skompiluje. Bezmyslne copy-paste to igranie z ogniem.


Robię http response status cody w martwych ciągach
obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:około 2 godziny
1
szydlak napisał(a):

Poprawcie mnie jeśli się mylę. A to nie jest tak, że im więcej mu podajemy różnych problemów tym bardziej jest on mądrzejszy? W sensie uczy się? Wiele osób obawia się, że zabierze robotę a jednocześnie pomaga aby był jeszcze lepszy.

Ponoć się coś tam uczy, niedawno był jakiś news że zaczął podawać innym wartości z kodu źródłowego który ktoś tam inny mu wkleił.
Ci którzy pomagają żeby był jeszcze lepszy to ci którzy wykupują konto premium i dają im kasę.

Wracając do tematu - jeszcze mi się nie udało wygenerować niczego większego sensownego, małe fragmenty kodu kopiuję ale potem zmieniam bo zawsze czegoś brakuje lub coś mi nie pasuje - choćby nazwa zmiennej.


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
Zobacz pozostały 1 komentarz
obscurity
zastosuje się ale IDE robi to szybciej a chatgpt czasem dokłada niechciane zmiany, jakbym miał tak szczegółowo opisywać kod który chcę to szybciej bym sam to napisał
cerrato
No OK, tylko zobacz - podałeś jako argument przeciw GPT że daje nieadekwatne nazwy zmiennych. Ale Tobie się nie chce tego doprecyzować, wolisz samemu poprawić. I spoko, jest to dobra opcja, ale trochę nie fair względem GPT. Trochę jak słynne babskie "domyśl się" a potem foch, że się nie domyśliłeś.
obscurity
nie to nie argument przeciw gpt, po prostu mówię że zawsze jest coś do zmiany, nazwa zmiennej to najprostszy przykład ale zazwyczaj brakuje logowania, obsługi błędów, ogólnie kod nie przystaje stylistycznie do reszty kodu itp. GPT zazwyczaj sobie radzi lepiej lub gorzej z poprawianiem tego, ale jest zbyt wolny żeby to robić w ten sposób, a dłuższe fragmenty kodu dzieli na fragmenty i kiedy mu piszę "kontynuuj" to czasami zaczyna od początku. Poza tym zawsze analizuję kod który dostaję, nie zaufałbym żeby go tak po prostu wkleić
cerrato
Wiesz - ja zauważyłem, że jak mu się zgłosi zastrzeżenia to w 2-3 iteracjach daje to, czego chcesz. Przykładowo (ostatnio go mocno wałkowałem z Fluttera) - stwórz okno z polem do wprowadzenia maila oraz hasła - wypluwa klasę/widget. Ale to się nie kompiluje, dał gołą klasę, bez boilerplate (typu import czy funkcji main()). No to piszę mu daj kompletny kod, który się kompiluje - dostaję już coś, co mogę bezmyślnie wkleić do IDE i się odpali. Potem dalsze wymagania - dodaj walidacje maila i jak jest niepoprawny do zrób edit na czerwono itp.
cerrato
i właściwie, bez poprawiania przeze mnie czegokolwiek w kodzie, mam prosty UI wyklikany w kilku iteracjach. Mój kuzyn, który w ogóle się nie zna na programowaniu, sobie sam też stworzył jakies narzędzia w pythonie, które pobierają jakieś dane ze strony dostawców (jakieś scrappowanie po zalogowaniu) odnośnie cen i dostępności jakichś elementów serwisowych. Także można mieć działającą apkę bez umiejętności programowania, chociaż (póki co) ERP'a tak nie stworzysz.
W0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około godziny
  • Postów:3553
0

Ogólnie to należy rozdzielić naukę od pisania w pracy. Jakbym się uczył z ChatGPT to bym raczej przepisywał kod i na bieżąco go analizował, ale jeśli korzystałbym z niego jako narzędzia do pracy - to bym kopiował.

Natomiast uważałbym przy wklejaniu kodu do ChatGPT, a raczej - nie wrzucałbym kodu firmowego (ani żadnego, którym chciałbym się dzielić ze światem).

xxx_xx_x
  • Rejestracja:prawie 13 lat
  • Ostatnio:18 dni
  • Postów:365
2

W pracy praktycznie nie, większość zadań mam zbyt złożonych żeby chatGPT to ogarnął.
Za to do zlecenia na boku tak..dużo generuje i kopiuje. później sprawdzam tylko czy kod nie ma oczywistych bugów bo chat robi ich trochę;]
Generuje głównie rzeczy które po prostu nie chce mi się pisać jak np UX, chat generuje to w moment, klepanie tego ...strata czasu

DM
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 godziny
  • Postów:220
3

Używam chatGPT-4.

Nie jest w stanie napisać niczego co nadawałoby się na produkcję.

Nie sprawia, że jesteś 10x bardziej produktywny. Już miałem przypadek kontraktora który twierdził, że jest 10 razy bardziej produktywny ale nie chciał sobie przypisać 130 punktów na Sprinta :(

Po kilku iteracjach zaczyna się gubić, i popełniać już poprawione błędy.

Pisałem to raz i napiszę kolejny, jeżeli w pracy piszesz ping-ponga, CRUDy lub siedzisz w zamkniętym pokoju i tylko dostarczasz metody bez zrozumienia kontekstu, to może Ci to pomoc.

GPT-4 Web-browsing - powodzenia - dużo czasu i cierpliwości. Znalezienie ceny BTC/USDT w Binance zajmuje około 20 sekund i daje przestrzale rezultaty.

Wielu tutaj wpadło w pułapkę marketingowa pewnej dużej firmy. Sprawnie zorganizowana kampania aby zainwestowane pieniądze się zwróciły :)

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Laska, z Polski
  • Postów:10056
0
Hodor napisał(a):
Riddle napisał(a):
Hodor napisał(a):

I oczywiście to nie był GPT 4 tylko te mierne słabsze wersje

ChatGPT 4 napisał nawet gorszą wersję niż ChatGPT3.5.

Zadałem obu chatom zadanie "write tests for regexp parser in php". ChatGPT3 próbował rozbić faktycznie wyrażenie na znaki, tylko źle rozparsował escape'y i character group.

Nie znam się na PHP, ale czy gpt nie zrobił to o co prosiłeś? Jeśli nie to można próbować przekazywać swoje wymagania trochę bardziej precyzyjnie, np. w jaki sposób ma coś zrobić, a w razie błędów przede wszystkim mu to wytłumaczyć.

Ja mam z GPT doświadczenie takie, że może być to niezłe narzędzie do pair programmingu, debuggingu, eksploracji rozwiązań alternatywnych, i nauki. Nie daję mu ogólnych wymagań typu "read my mind, do what I want". GPT non stop się myli, wtedy go poprawiam, albo redefiniuję wymagania, i często się nie zawodzę. Ofc trzeba GPT 4 mieć.

Mi wygenerował coś takiego:

Write unit tests for parsing regex, matching numbers with two decimal places. The numbers can be negative. These numbers always have two decimal places (e.g., 2.00 or 2,00) and can use either a comma or a dot as a decimal separator.

W każdym razie z powodzeniem można używać GPT do ambitniejszych rzeczy niż regexy

I to ma być parser?

Miał napisać parser, z lexerem i AST, z obsługą escape'owania i character class. To co napisał to jest Funckja którą można znaleźć w Google w sekundy.

MA
Ale przecież kazałeś mu napisać testy do parsera?
Riddle
@Magiczny: no i nie napisał.
ID
  • Rejestracja:prawie 9 lat
  • Ostatnio:około rok
  • Postów:54
1

Fajnie pisze bojlerplate i robi proste refactoringi w obrębie jednego pliku.

loza_prowizoryczna
  • Rejestracja:ponad 2 lata
  • Ostatnio:2 dni
  • Postów:1606
0
lambdadziara napisał(a):

Pamietam, kiedys byl wywiad z polskim fejmem z dziedziny bezpieczenstwa, CTFow, nie pamietam ksywki. On mowil, ze z ksiazek np zawsze przepisuje kod recznie, bo tak sie szybciej czlowiek nauczy. Wiec tez tak robie w kwestii ChatGPT, wierze mu, ze to pomoze utwierdzic wiedze.

Może po prostu lubi mieć kontrolę nad kodem.


Przetrzyma wszystko
LitwinWileński
  • Rejestracja:prawie 3 lata
  • Ostatnio:16 dni
  • Postów:734
0

W połowie przypadków wkurzam się na niego i postanawiam sobie wygooglać rozwiązanie, bo on lubi zmyślać.

MI
  • Rejestracja:około 2 lata
  • Ostatnio:około miesiąc
  • Postów:18
2

Jakiś czas temu zaczynałem w obszarze, który był dla mnie całkowicie nowy.
Wysoki próg wejścia, a trzeba zacząć dostarczać.
Postanowiłem wykorzystać ChatGPT (3.5) i mam takie spostrzeżenia:

  • kiedy kazałem mu tłumaczyć sobie różne rzeczy to szło to dobrze i było moim zdaniem dużo bardziej efektywne niż szukanie w dokumentacji, Google, czy SO. Przypomnę, że mowa o sytuacji, kiedy o zagadnieniu nie wiedziałem prawie nic. W przypadku, kiedy pracuję z czymś, z czym mam doświadczenie tradycyjne narzędzia wciąż wydają mi się bardziej efektywne.
  • kiedy kazałem napisać jakiś kod to pi razy oko było OK, ale pewne rzeczy były kompletnie od czapy i trzeba było być bardzo czujnym, no i na pewno nie kopiować kodu 1:1. Trochę jak na tych wygenerowanych obrazach, gdzie ludzie mają po 3 kostki w palcach. Ludzki malarz nigdy by nie popełnił takiego błędu, a SI najwyraźniej ma takie dziwne odchyły.
CZ
3.5 to dziadostwo, wszędzie o tym się pisze, żeby testować płatny 4.0, który jest o niebo lepszy.
MI
Być może, ale nie każdy chce płacić, więc myślę, że to co napisałem powyżej też się komuś przyda.
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)