Serwis społecznościowy - jakie technologie, load balancing

Serwis społecznościowy - jakie technologie, load balancing
A1
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 3 lata
  • Postów:311
0

Cześć wszystkim. Mam w planach napisać serwis społecznościowy, dlatego chciałbym dowiedzieć się coś o load balancing'u, i miałbym kilka pytań o technologie do takiego serwisu.
Możemy założyć, że w serwisie byłoby kilkadziesiąt tysięcy użytkowników w jednym momencie (online). Chciałbym również mieć ten serwis w formie aplikacji, najpierw na Androida (wiadomo czemu).
Obecnie potrafię pisać w PHP i używam bazy danych MySQL, nie znam żadnego c/ruby/pythona/asp net.

Tak wiem, wszystko zależy od skryptu, ale pomińmy tę kwestię. Pamiętam o cache więc to również możemy pominąć.

  1. Czy mogę taki serwis napisać w PHP (framework Kohana - raczej lekki)? Jak PHP ma się do skalowalności, w czym w ogóle jest problem z PHP przy load balancingu, skoro i tak load balancer rozdziela ruch? - bo nie rozumiem co ma do tego język i kod.
  2. Jeszcze raz o tym load balancingu - jak to w końcu działa? W kodzie strony coś się zmienia? Jeśli będę korzystał z chmury, np. Oktawave, to czy ułatwia to load balancing np. w PHP?
  3. Czy baza danych MySQL będzie wystarczająca? Co się będzie działo, jeśli osiągnie ten swój "próg" kilku milionów rekordów? Jaką bazę danych zalecacie, i czy ciężko się przerzucić z MySQL na np. PostgreSQL (o ile się nadaje ta baza do takiego serwisu)?
  4. Mam w planach funkcję czatu publicznego, jak np. na fotce - z podziałem na "pokoje" i ludzie mogą na żywo pisać - jak najlepiej takie coś ugryźć w PHP, by nie zarzynało serwera i bazy przy sporej liczbie użytkowników?
  5. Chcę również zrobić aplikację dla tego serwisu, więc będę musiał ruszyć również coś innego niż PHP - jaki język proponujecie, bym nie musiał uczyć się rok czasu, aby napisać taką aplikację (zakładki jakieś, posty, wiadomości - podobne rzeczy jak w apce Facebooka)? Do pisania apek na androida jest chyba Java, ale kiedyś czytałem, że można w Pythonie to napisać i przy okazji zmieniając maszynę interpretującą/kompilator (?), można utworzyć od razu aplikacje na kilka systemów mobilnych.
edytowany 1x, ostatnio: adriano1995
Zobacz pozostałe 6 komentarzy
Spine
Pokaż mi teraz grę, która dostaje taki dobry start na smart phone'ach ;) Teraz za dużo gier się robi. Mamy Unity i inne technologie, które powodują, że coraz więcej ludzi tworzy gry, a co za tym idzie, jest większy podział rynku i bez odpowiednich funduszy na promocję i produkcję nie ma co marzyć o zarobku o własnej grze.
woolfik
Pokemon GO? aha i w gwoli ścisłości na https://en.wikipedia.org/wiki/Rovio_Entertainment masz wypisane tylko te gry, które zostały wydane, ale kiedyś czytałem wywiad z jednym z ich managerów i tam było wyjaśnione, że mnóstwo tytułów nigdy wydanych nie zostało.
Spine
Pokemon GO chyba nie było dołączane do telefonów i tabletów? - o taki "dobry start" mi chodziło ;) Poza tym trzeba pamiętać, że to gra dotycząca marki znanej na całym Świecie. Chociaż kiepska - gameplay bardzo upośledzony w porównaniu do pokemonów z gameboya - gdzie mogliśmy trenować naszego pokemona poprzez walkę z innymi trenerami, a nie zamieniać na cukierki :) Produkt odniósł krótkofalowy sukces, na który składało się wiele czynników, ale teraz baza użytkowników kurczy się - retencja aplikacji jest niska. Swoje aplikacja zarobiła.Zwróciły się koszty produkcji z nawiązką
Spine
Taki Disney może wypuścić dowolną grę ze swoimi postaciami (platformówka, puzzle, te wszystkie gry typu free fall) i każda z tych gier będzie miała znacznie większy odzew niż taka sama gra niezależnego twórcy z nieznanymi postaciami. Jak coś jest tyle lat na rynku, to każdy produkt z tym związany jest mocno z przodu przed początkującą konkurencją.
dzek69
@adriano1995: a dlaczego nie, skoro to prawda? :D
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
27
  1. Możesz. Nikt z tego korzystać nie będzie więc problemy wydajności z jakimi boryka sie pejsbuk cię nie dotyczą. Problem skalowalności wynika z tego ile cykli procesora potrzeba do obsłużenia zapytania użytkownika. To nie ma znaczenia że masz milion serwerów w load balancerze, bo konkretny request obsługuje tylko jeden z nich.
  2. W kodzie zmienia sie tyle że musisz mieć na uwadze np. rozproszone sesje / bezstanowość. Użytkownik wykonuje requesty i każdy z nich może obsługiwać inna maszyna oddalona od poprzedniej o setki kilometrów. Nie mozesz więc np. zapisać sobie czegoś w "pamięci" programu bo inny serwer tej informacji nie będzie miał
  3. Należy to sensownie zaprojektować.
  4. Niekonieczne musisz coś dziwnego robić. Możesz wrzucić tam webview, na stronce zrobic wersje "mobile" i viola. Są rozwiązania cross-platform (ionic, xamarin, phonegap) jeśli chcesz natywne aplikacje, ale to nie jest tak że piszesz jeden kod a to ci generuje aplikacje na każdy system. Każda platforma wymaga trochę własnej pracy.

Twój post brzmi tak:

Cześć wszystkim. Mam w planach zbudować myśliwiec odrzutowy, dlatego chciałbym dowiedzieć sie coś o sile nośnej i udźwigu uzbrojenia, i miałbym kilka pytań o technologie do takiego myśliwca.
Mozemy założyć, że samolot ma być porównywalny z F-18. Chciałbym również żeby był wielozadaniowy, zdolny do bombardowania oraz walki powietrznej, najpierw wystarczy bombardowanie (wiadomo czemu).
Obecnie potrafie budować samoloty z papieru oraz układać klocki lego.

Tak wiem, wszystko zależy od projektu myśliwca, ale pomińmy tę kwestię. Pamiętam o silnikach więc to również możemy pominąć.

  1. Czy mogę taki samolot zbudować z drewna (sklejka - raczej lekka?). Jak drewno ma się do siły nośnej samolotu, w czym w ogóle jest problem z drewnem przy udźwigu samolotu, skoro i tak to silniki popychają samolot - bo nie rozumiem co ma do tego kształt samolotu oraz materiały.
  2. Jeszcze raz o tej sile nośnej - jak to w końcu działa? W kształcie samolotu coś sie zmienia? Jeśli będę korzystał z paździerzowej sklejki to czy ułatwi to dźwiganie głowic jądrowych?
  3. Czy konstrukcja dwusilnikowa będzie wystarczająca? Co się będzie działo, jeśli osiagnie ten swój próg "kilku głowic jądrowych? Jakie silniki zalecacie i czy ciężko się przerzucić z silników turbofan na ramjet (o ile się nadaje do takiego samolotu)?
  4. Mam w planach funkcje zdalnego sterowania jak w dronach - ze sztuczną inteligencją i można sterować na żywo lub tylko oglądać wykonanie zadania - jak najlepiej takie cos ugryźć, by optymalnie wyznaczać trasę nalotu przy sporej liczbie celów?
  5. Chcę również umożliwić walkę powietrzną dlatego samolotu więc będę musiał ruszyć również cos innego niż bomby - jakie rakiety powietrze-powietrze proponujecie, bym nie musiał sam przez rok projektować własnych (zasięg 15km, samonaprowadzanie - podobne rzeczy jak w F-22)? Do budowania rakiet jest chyba tytan, ale kiedyś czytałem że można z aluminium to wykonać i przy okazji zmieniając kolor farby/wzorek (?), można utworzyć od razu rakiety które działają w atmosferze jak i w próżni.

"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 3x, ostatnio: Shalom
Zobacz pozostałe 7 komentarzy
KA
najpierw wystarczy bombardowanie (wiadomo czemu). czemu?
xfin
@karolinaa bo dobre bombardowanie rozwiązuje większośc problemów konstrukcyjnych :P
KA
21 plusów lol. to nie fer
Shalom
@karolinaa a wiesz ile to kosztowało wysiłku? :P
czysteskarpety
czysteskarpety
  • Rejestracja:prawie 10 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Piwnica
  • Postów:7697
1

pewno i tak się skończy na jakimś blogu na wordpress :)


KA
KA
  • Rejestracja:prawie 12 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:Warszawa
  • Postów:1683
4

Ambitne - kiedy już to napiszesz proponuję coś mniej legalnego. Poczytaj o API, które wystawia facebook , Selenium i różne biblioteki są też do fb dedykowane do tego. Napisz sobie facebookowego crawlero-spidera (lecz nie jest to łatwe, bo fb robi różne tricki i zabezpiecza się przed tym) żeby trochę pochodził na fb i na samym początku zasilił Ci bazę pierwszymi "fejkowymi" użytkownikami z fb. Na początku symuluj ruch na serwisie i zrób generator fejkowych kont, fejkowego wszystkiego. Musisz to cwanie przemyśleć i dodać ciekawe opcje.
To się sprzeda adriano. Pozdrawiam


PROGRAMY NA ZAMÓWIENIE, ZALICZENIA STUDENCKIE, KONFIGURACJA SERWERÓW, SYSTEMÓW I BAZ DANYCH, STRONY INTERNETOWE, POMOC W PROGRAMOWANIU, POPRAWIENIE I OPTYMALIZACJA APLIKACJI
JAVA, C++, LINUX, WWW, SQL, PYTHON
POSIADAM KOMERCYJNE DOŚWIADCZENIE
TANIO, SZYBKO I PORZĄDNIE
Z KOMENTARZAMI OBJAŚNIAJĄCYMI KOD
PISZ NA PRYWATNĄ WIADOMOŚĆ
CENY JUŻ OD 49,99ZŁ ZA PROGRAM
ZAJMIJ SIĘ TYM CO CIĘ NAPRAWDĘ INTERESUJE!
edytowany 3x, ostatnio: karolinaa
czysteskarpety
czysteskarpety
ja bym to zrobił emacsem przez sendmail
LI
@czysteskarpety To śmieszy tylko informatyków :D
mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
1

Wiedziałem, że w odpowiedziach do takiego tematu zobacze same posty typu "rzuć to". a ja ci powiem tak. Rób to. Masz swój cel więc rób. Po pierwsze tworząc go nauczysz się bardzo wielu nowych rzeczy a to jest najważniejsze. Po drugie nigdy nic nie wiadomo co się z tym stanie. Podam ci 2 przykłady:

  1. Zrobiłem portal społecznościowy jako swója pierwsza porządna strona w php. Oczywiście po przejrzeniu kodu zrobiłem ctr+A, del. I napisałem go od początku. Działa już 4 lata. Co prawda żyje z dotacji ale żyje i jest na drugiej pozycji takich portali w Polsce.
  2. Robiłem portal dla kolegi. zawarł w nim wiele moich pomysłów. Co prawda nigdy nie zyskał jakiejś wielkiej rzeszy użytkowników, ale 1000 kont założonych przez rok wystarczyło by pojawił się większy gracz i kupił portal za 80tys zł. Zarobić 80tys zł po roku działania serwisu odliczając powiedzmy te 10tys na koszty prowadzenia i stworzenia serwisu? Nie jeden by chciał.

It's All About the Game.
edytowany 1x, ostatnio: mr_jaro
LI
Wiesz ile jest beznadziejnych serwisów społecznościowych? Trzeba mieć jakiś pomysł nie tylko chęci nabicia kasy. Jeśli robi to ot tak aby się nauczyć to okey,a jeśli tylko chce mieć pasywne żródło dochodu to niech lepiej weźmie kredyt na mieszkanie i je wynajmuje. Chyba że naprawdę ma jakiś pomysł. Nie piszę w żadnym razie o Tobie, więc nie bierz tego osobiście. Chodzi mi tylko o to że jest pełno osób które nie mają pomysłu a chciałaby nie wiadomo co. Mamy potem jakieś nikomu niepotrzebne serwisy na których nikt normalny nie pisze.
czysteskarpety
czysteskarpety
a jakie to portale?
DO
Minecraft, albo jakieś perwersje. Nikt inny chyba nie dotuje (konta premium?) społecznościówek:P Co by to nie było gratulacje sukcesu i pomysłu :)
A1
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 3 lata
  • Postów:311
0

@Shalom, sprawdziłem phonegap i spodobał mi się bardzo, ale wyczytałem, że nie nadaje się do gier i do serwisów, które będą miały dużo contentu, chociaż to były jakieś artykuły chyba z przed 2 lat - czy może coś wiesz na ten temat? I dlaczego nie nadaje się do gier? Jakieś problemy z javascriptem?
Całą logikę serwisu musiałbym napisać w JS, lub pobierać niektóre "przemielone" dane przez API z wersji przeglądarkowej?
Sam webview to raczej mało, ludziom średnio chce się wchodzić przez przeglądarkę mobilną, wydaje mi się, że wolą jednym klikiem przez apkę odwiedzać ulubione usługi.

edytowany 2x, ostatnio: adriano1995
SO
ludziom średnio chce się wchodzić przez przeglądarkę mobilną, wydaje mi się, że wolą jednym klikiem przez apkę odwiedzać ulubione usługi. I właśnie od tego jest Cordova/PhoneGap.
A1
@some_ONE tak, ale Cordova/PhoneGap nie nadaje się do większych stron bo wydajność ssie
SO
Wydajność to inna sprawa. Po prostu to zdanie nie miało sensu, bo jak napiszesz apkę w Cordovie/PhoneGap to użytkownik nie odpala ręcznie przeglądarki tylko po prostu apka renderowana jest w WebView. Jak zachowasz natywny wygląd to użytkownik nawet się nie zorientuje.
NG
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 7 lat
  • Postów:278
0

skoro jestesmy w temacie "polskich serwisów społecznościowych", to polecam:
http://extra.natemat.pl/czemu-upadlo-grono

drugi opis:
http://www.spidersweb.pl/2012/04/upadle-legendy-polskiego-internetu-grono-net.html

generalnie nawet im to wyszło (3jce facetów) , ale zabrakło pomysłu na monetyzację i "zarobienie na tym"

swoją drogą to ja pamiętam grono.net, jakby tak dopracować i przemyśleć parę spraw, znaleźć inwestora, to by było lepsze od facebooka (na tamte czasy)

edytowany 2x, ostatnio: aurel
mr_jaro
hmm nawet nie wiedziałem o tych perypetiach. Szkoda, jak zwykle to co polskie upada, bo ktoś nie pomyślał o czymś.
somekind
Pamiętam jak robiło się coraz gorzej i wchodziłem tam coraz rzadziej. Pewnego dnia postanowiłem sprawdzić, co się dzieje, bo już ze 3-4 miesiące mnie nie było, okazało się, że od tego właśnie dnia domena była już na sprzedaż. :( Ale paru fajnych ludzi tam poznałem i trzymam z nimi kontakt jeszcze dziś.
LukeJL
Grono to kawałek mojej historii internetowej, w sumie szkoda, że już nie ma, ale cóż, twórcy Grona sami na własną prośbę je udupili...
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:minuta
  • Postów:8399
0

generalnie nawet im to wyszło (3jce facetów) , ale zabrakło pomysłu na monetyzację i "zarobienie na tym"

@NieGooglujMnie Wydaje mi się, że pomysł na monetyzację to nie wszystko (przecież wstawili reklamy, potem konta premium a i tak upadli). Problem z Gronem był inny. Gdzieś koło 2009 roku serwis ten został strasznie zaniedbany. Miało poważne braki (np. wydajność - na ładowanie jednej podstrony na Gronie czekało się czasem z kilkanaście sekund. To po prostu męczyło i zniechęcało do używania). Nie wiem czemu, ale za cholerę nie było to zoptymalizowane, natomiast programiści gronowi zamiast łatać bugi/polepszać wydajność zajmowali się masowym wdrażaniem nowych designów / nowego interfejsu na siłę bez słuchania użytkowników, którzy z całej siły protestowali przeciwko ciągłym zmianom i upodobnianiem serwisu do Facebooka.

Na Gronie było jednak parę fajnych rzeczy, przede wszystkim były tam prawdziwe fora("grona") dyskusyjne (wyglądało to tak mniej więcej jak na Goldenline), gdzie toczyły się dyskusje w jakiejś uporządkowanej formie, a nie tak jak teraz na fejsie, że jest jakaś durna ściana i zamiast wątków są komentarze. Przecież to co jest na fejsie to jakaś parodia portalu XD

Miało to też swój klimat, i w sumie szkoda, że twórcy Grona sami swój portal zaciachali (smuci mnie to też o tyle, że zrobiłem na gronie aplikacje, która potem się stała drugą najpopularniejszą na całym Gronie, i przez to, że Grono zaczęło upadać, to mi zyski spadały z reklam, aż w końcu musiałem wyłączyć aplikację, ponieważ przestała na siebie zarabiać...).

swoją drogą to ja pamiętam grono.net, jakby tak dopracować i przemyśleć parę spraw, znaleźć inwestora, to by było lepsze od facebooka (na tamte czasy)

Wydaje mi się, że największym błędem Grona było po prostu to, że olali swoich użytkowników, nie słuchali ich, tylko robili wszystko na siłę. To bardziej zła polityka niż brak kasy chyba (tam coś jest o serwerach w tym artykule, że niby potrzebowali serwerów - okej, tylko, że np. kiedyś z ciekawości spojrzałem w Firebugu czemu się Grono tak długo wczytuje - i okazało się, że jest jakiś bug, który polegał na tym, że każda strona 2 razy się wczytywała - coś z iframe nie tak im poszło. No i różne inne miejsca, gdzie nawet nie widząc kodu serwerowego(a jedynie frontend) można by przypuszczać, że ten serwis nie został należycie zoptymalizowany.

A administracja miała to w głębokim poważaniu, bo wdrażali nowy design i zmieniali kolorystykę grona.

Niestety ścieżką podobną do Grona poszedł również Goldenline, chociaż tu już chyba w ogóle twórcy postawili kreskę na nim. Może się poddali uznając, że i tak przegrają z Linkedin więc nie ma co nawet konkurować?


0

Grono padło, Goldenline zdycha, a jeszcze było przecież PROFEO.pl (odpowiednik GL, który padł jeszcze wcześniej) - ktoś pamięta?

Ogólnie jak się nie ma wsparcia (sponsorów, kolesi i zaprzyjaźnionych mediów) tak jak ma F. to nie ma co zaczynać takiego portalu :)

Obecnie potrafię pisać w PHP i używam bazy danych MySQL, nie znam żadnego c/ruby/pythona/asp net.

Naucz się ROR lub coś podobnego, bo od PHP powoli się odchodzi.

Druga sprawa, są gotowe skrypty portali społecznościowych za kilkaset $ masz całkiem niezły. Nie nauczysz się tworzyć takich portali w ten sposób, ale będziesz mniej wku..... jak to wszystko się nie uda.

mr_jaro
Bo nie można uderzać na rynek polski tylko globalnie, chyba że to portal mocno tematyczny to może być i pl.
LukeJL
Ruby oraz RoR też święte nie jest. Ruby'emu zarzuca się często powolność działania, a RoR to jakby nie było trochę kobyła.
1

Niestety ścieżką podobną do Grona poszedł również Goldenline, chociaż tu już chyba w ogóle twórcy postawili kreskę na nim. Może się poddali uznając, że i tak przegrają z Linkedin więc nie ma co nawet konkurować?

Właśnie zauważyłem, że GL podupada - coraz mniej się tam dzieje, fora jakieś takie puste, nie przybywa wątków. Szkoda, że serwis pada.

A co do LINKEDIN - niby strona super (w sensie liczby użytkowników i pozycji na rynku), ale nie do końca. Wchodzę szukam pewnej grupy. Są setki grup programistycznych, dziesiątki podgrup, podgrupy podgrup i na końcu jest ...znalazłem grupę - ale,... ma tylko 5 członków :D

LINKEDIN ma straszny bajzel w tych (pod)grupach, layout całej strony też cienki jak na serwis za grube miliony dolców. Ze względu, że jest to serwis angielskojęzyczny to raczej dla GOLDENLINE stanowi średnią konkurencję.

0

Naucz się Node.js jeden język (JS/ES6) do wszystkiego lub Ruby, Python, PHP 7 z frameworkami.

A1
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 3 lata
  • Postów:311
0

skoro w PHP jest problem z sesjami przy skalowaniu, to jak to rozwiązuje się w innych językach, np. w Pythonie lub Javie?

drorat1
  • Rejestracja:ponad 15 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Krasnystaw
  • Postów:1181
0

Ale w czym masz problem? Każdy liczący się framework ma możliwość ustawienia domyślnego sposobu składowania danych sesyjnych w plikach konfiguracyjnych, w czystym PHP piszesz tylko swój session save handler.

Alternatywy:

MySQL
PostgreSQL
Memcached
Redis
SSDB
MongoDB
Cookie

W tym ostatnim też można składować sesje (nie mają jednak swojego session id), pytanie w jakich przypadkach (bezpieczeństwo i pojemność cookie)?
To samo by się odnosiło do składowania cache, bo też domyślnie jest File Store i też domyślnie można w configu w którymś frameworku zmienić na Memcached, Redis albo np. SSDB.

edytowany 1x, ostatnio: drorat1
nalik
  • Rejestracja:około 9 lat
  • Ostatnio:prawie 2 lata
  • Postów:1039
0

Co do load balancingu - to zależy co chcesz load balansować i na jakim poziomie.

Możesz zrobić load balancing na poziomie L3 (maglev, teoretycznie, jak masz dużą infrastrukturę), L4 (np load balancery komercyjne), L7(nginx albo komercyjne) czy na poziomie samej aplikacji (jak robi to cassandra czy riak - metoda consistent hashing, żeby rozproszyć dane w klastrze).

Zdroworozsądkowo można założyć, że przed każdym serwisem powinien stać jakiś load balancer i z tą myślą zaprojektowałby aplikację.
Przykładowo nginex przed bezstaowymi serwisami. Jako baza baza casssandra, to (przykładowo) pozwoli Ci zmniejszyć poziom konsystencji do ewentualnej w zamian za availability, partition tolerance i dodatkowo skorzystać z load balancingu wynikającego z równomiernego rozproszenia danych. To załatwia load balancing na poziomie lokalnym, globalnie chcesz mieć inne serwery na rożne rejony, teoretycznie można do tego wykorzystać DNSy.

edytowany 7x, ostatnio: nalik
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)