Rozwój komputerów i oprogramowania

Rozwój komputerów i oprogramowania
SN
  • Rejestracja:ponad 18 lat
  • Ostatnio:2 miesiące
2

Mam ostatnio takie przemyślenie, że rozwój programów komputerowych idzie w złym kierunku. Aktualnie komputery mają wielokrotnie większą moc obliczeniową niż 10, 20 czy 30 lat temu, jednak ta moc pozostaje w dużym stopniu niewykorzystana. Zamiast tworzyć coraz szybsze i ciekawsze programy wyciskające z komputerów wszystko co się da, tworzonych jest cała masa programów, które mogłyby spokojnie działać na o wiele słabszym komputerze jednak ze względu na to w jaki sposób są napisane są bardzo pamięciożerne. Nikt nie przejmuje się optymalizacją (jest na to nawet termin tzw. premature optimisation) dopóki coś nie wybuchnie na produkcji, ale nawet wtedy szybciej jest dołożyć kilka kolejnych node-ów niż naprawić niewydajny kod w 10 miejscach. Mamy coraz szybsze komputery, ale cały wzrost ich wydajności nie jest pożytkowany przez coraz szybciej działające aplikacje, lecz przez coraz bardziej pamięciożerne frameworki. Często proste aplikacje zajmują GB danych.

Czy ktoś ma może podobne spostrzeżenia?
Czy można coś z tym zrobić?

TheWypierdzisty
TheWypierdzisty
A gdzie przykłady tych aplikacji?
Azarien
@TheWypierdzisty: wszystko na Electronie ;)
TheWypierdzisty
TheWypierdzisty
@Azarien: nic złego nie ma w zrobieniu webview i wyświetleniu tam apki, dodasz dodatkowy interface żeby z poziomu strony mieć dostęp też do systemu za pomocą js, a jak komuś uda się uciec na inną stronę, to inna strona dostanie dostęp do api systemowego XD Przykładowo jeśli apka może korzystać z aparatu lub czytać z dysku i się ucieknie na inną stronę to inna strona może korzystać z tych dostępnych. Tak ogólnie, wygląd gui w technologii html/css/js, jest dość przyjemny do tworzenia, obliczenia można zrobić optymalniej i wystawić interface do jsa, a obliczenia w c++/java.
TS
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 5 godzin
  • Postów:853
1

Czy można coś z tym zrobić?

Nauczyć się z tym żyć i poprawiać rzeczy tam gdzie mamy na to wpływ.

SW
  • Rejestracja:około 5 lat
  • Ostatnio:3 miesiące
  • Postów:250
0

Ten temat był już kilkukrotnie wałkowany na tym forum. W skrócie - optymalizuje się tam, gdzie się to opłaca. Wychodzą kolejne iteracje frameworków, mają mniejsze zużycie RAM, obsługują więcej requestów na sekundę, więc teoretycznie można na tym oszczędzić ileś $$$. Na backendzie decyduje głównie aspekt biznesowy, jeżeli optymalizacja przyniesie zysk lub zmniejszy wydatki w znaczący sposób, uwzględniając nakład pracy i testy regresji, to możliwe że do optymalizacji dojdzie. Jeśli nie, to strona biznesowa może nie zrozumieć potrzeby optymalizacji, jeżeli nie przełoży się to na pieniądze.

A na froncie, u klienta końcowego, nikt się tym zbytnio nie przejmuje. Użytkownik korzysta z usługi i płaci za usługę, aplikacja kliencka to tylko UI do poklikania i konsumowania treści. Dopóki zarabia i użytkownicy nie odchodzą z tego powodu, to nic się w takim modelu biznesowym nie zmieni. Samodzielne, instalowane na urządzeniach programy, te "szybsze i ciekawsze", o których zapewne mowa, to głównie licencjonowane programy narzędziowe, które jednak wyciskają wiele ze sprzętu.

CZ
  • Rejestracja:ponad 8 lat
  • Ostatnio:około miesiąc
  • Postów:2284
2

Oszczędzanie na pensji i zatrudnianie juniorów oraz ludzi co umieją programować w łatwych niewydajnych językach i chęć wypuszczenia czegoś jak najszybciej.

edytowany 1x, ostatnio: Czitels
LukeJL
łatwych, a nie prostych. Proste języki (np. assembler) zwykle są szybkie
CZ
W sumie racja, poprawiłem
TheWypierdzisty
TheWypierdzisty
Assembler jest nieporęczny do programowania, ja pisałem sobie taki projekt w asm i w python, c++, fpga(do skończenia mam), w kernelu i wyszło, że w czystym asm miałem ponad 500 instrukcji, kernel koło ~100, z uwagi że nie można korzystać ze zwykłych bibliotek/struktur dostępnych w userspace, a reszta 10-20 instrukcji tylko. Assembler jest tak samo trudny jak każdy język, ale jest wysokokontekstowy, trzeba dużo rzeczy pamiętać.
Miang
  • Rejestracja:prawie 7 lat
  • Ostatnio:minuta
  • Postów:1659
2

"Dostajemy za tego misia, jako konsultanci 20% ogólnej sumy kosztów i już" więc jak się za firmowe pieniędze kupuje to trzeba kupic najdrozszy sprzęt , a żeby to usprawiedliwic to sie zatrudnia takich programistów co za cholerę nie zoptymalizują czegokolwiek i najlepiej żeby znali tylko jeden język, to nie dobierą go do problemu tylko wszystko wepchną w znane sobie ściezki;)


dzisiaj programiści uwielbiają przepisywać kod z jednego języka do drugiego, tylko po to by z projektem nadal stać w miejscu ale na nowej technologii
edytowany 1x, ostatnio: Miang
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:około 4 godziny
  • Postów:8398
0
snakeomeister napisał(a):

Czy można coś z tym zrobić?

Myślę, że jest w tym kasa do zarobienia.

Zrobić produkt, który będzie konkurencyjny przez to, że będzie działać szybciej.
Np. IDE/edytor kodu, który będzie śmigał, a potem sprzedawać jako komercyjny produkt. Taki edytor rozwiązałby bolączki wielu osób zawiedzionych szybkością działania VSCode czy IntelliJ (teoretycznie jest szybkie Sublime, ale ono jakoś słabo się nadaje do pisania kodu w 2023)

Tyle, że:

  • zrobienie czegoś takiego będzie trudne samo w sobie
  • zrobienie czegoś takiego na poziomie produkcyjnym (żeby konkurowało ficzerami/jakością wykonania z innymi edytorami) będzie jeszcze trudniejsze, bo to są setki ficzerów, które mogą się wydawać głupie, ale dla kogoś wydają się "must have" i bez tego nie przesiądą się na twój edytor.
  • kolejna rzecz to działania marketingowe, żeby rozpromować taki edytor, a to też trudne, żeby skłonić ludzi do zmiany edytora

Więc to w zasadzie ciężka sprawa (chociaż chodzi mi po głowie coś takiego, kiedyś coś takiego chcę zrobić, dlatego mam rozkminy już na ten temat).

Inna możliwość to stać się specem od optymalizacji, czy to etatowo-konsultingowym, czy to na zasadzie bycia influencerem i nagrywanie jakichś poradników o wydajności, gadania na konferencjach itp. i też zbieranie z tego hajsu. No bo to jest problem, że byle stronka dzisiaj zamula w cholerę i optymalizacja tego to realne zyski dla firm, bo np. więcej osób zostanie na stronie.


edytowany 7x, ostatnio: LukeJL
Haskell
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:4700
0

Optymalizację robi się tam gdzie to się opłaca. Jeżeli program działa na akceptowalnej większości obecnie istniejących urządzeń, to nie podejmuje się tematu optymalizacji. Natomiast, jeżeli optymalizacja może znacząco zwiększyć zysk lub przynieść oszczędność, to jak najbardziej się to robi.

Z własnych doświadczeń mogę się podzielić, że optymalizacja jest dużą częścią mojej pracy. Przetwarzanie dużych ilości danych pociąga za sobą koszt użycia maszyn i czasu ich pracy. W związku z tym często optymalizuję kod i doskonalę w tym swój warsztat, ponieważ to może przynieść spektakularne oszczędności czasu i pieniędzy dla moich klientów.


Zaglądali do kufrów, zaglądali do waliz, nie zajrzeli do d**y - tam miałem socjalizm. Czesław Miłosz
obscurity
  • Rejestracja:około 6 lat
  • Ostatnio:około 2 godziny
0

Mam podobne odczucia, niestety wszystko opiera się na ludzkiej cierpliwości, jeśli user jest w stanie poczekać 5 sekund to tyle dokładnie poczeka. Czy teraz czy 30 lat temu timeouty na operacje się praktycznie nie zmieniły - 30 sekund brzmi zawsze ok.
Jeszcze do problemu trzeba dołożyć fakt że developerzy pracują zazwyczaj na maszynie z najwyższej półki, znacznie szybszej niż przeciętnego użytkownika i nie widzą problemu z wydajnością dopóki userzy nie zaczną się żalić.
Plusem tego jest chociaż to że oprogramowanie tworzy się znacznie szybciej nie przejmując się takimi rzeczami. Robiąc apkę masz do wyboru - spędzić godziny lub dnie robiąc ładny layout i proste animacje w nim, albo zrobić apkę opartą o javascript i css i mieć lepszy efekt wizualny w parę minut. Z punktu widzenia usera to drugie jest ładniejsze i nie jest zauważalnie wolniejsze; hello world z gui zajmuje 150MB zamiast 60kB ale to nie problem bo dyski i internet też znacznie przyspieszyły.
Ale choć współcześnie komputery muszą wykonać tysiące lub miliony razy operacji więcej żeby uzyskać to samo to chociaż energii zazwyczaj zużywają na to tyle samo lub nawet mniej niż komputery dziesiąt lat temu.

Nie ma się więc czym przejmować, trzeba tylko pogodzić się ze smutnym faktem - oprogramowanie nigdy nie będzie szybsze.


"A car won't take your job, another horse driving a car will." - Horse influencer, 1910
edytowany 4x, ostatnio: obscurity
tajny_agent
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad rok
  • Postów:1340
3
snakeomeister napisał(a):

Czy ktoś ma może podobne spostrzeżenia?

Tak.

Czy można coś z tym zrobić?

Edukować.
Problemem nie jest to, że komuś się nie chce zoptymalizować kawałka kodu. Problemem jest to, że ważniejsze od wydajności jest zgodność z wszelkiego rodzaju pięknymi teoriami/wzorcami/itp. Starsze pokolenia miały optymalizację we krwi(na każdej płaszczyźnie, bo PRL jaki był to wiadomo), młodsze mają wszystko podstawione pod nos i i taki jest efekt.

To jest absurd, że przy 16GB RAM i 3.4GHz taki Notepad++ dławi się na pliku 300MiB.


"I love C++. It's the best language in the world right now for me to write the code that i need and want to write"
~ Herb Sutter
PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 6 godzin
  • Postów:3866
1

Czekaj, bo walisz hipotezy bez kontekstu. Ja jestem z tych dinozaurów co internet poznawali jeszcze na Netscape...

Jeżeli chcesz przymierzać to co było 20, 30 lat temu do czasów obecnych to zadaj sobie trud i np. zobacz co strony o internetowe oferowały w latach 90 i teraz. Mam na myśli wygląd, funkcjonalność itd. Pomyśl ile w tych 90 latach użytkownik instalował programów aby dostroić komputer pod swoje potrzeby ile tego instaluje dzisiaj...

Mój pierwszy PC miał 16 MB RAM (nie, nie pomyliłem M z G).

Co do zasady zgadzam się z tobą. Z mojej obserwacji wynika, że nikt się nie przejmuje zasobami bo te łatwo rozbudować. Z drugiej strony pomijalny jest fakt, że najbardziej ogranicza nas przeglądarka, która najczęściej stanowi podstawę interface'u. To po prostu kompromis na który wszyscy się godzimy

edytowany 1x, ostatnio: Panczo
obscurity
16MB? luksusy. Ja zaczynałem od 4
PA
Miałem jeszcze pc z DOS i on miał RAM liczony w KB. Ale mało na nim robiłem poza graniem.
K8
po prostu ja podchodze do tego tak ze w 1998 komputery byly inne niz obecnie
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
3
snakeomeister napisał(a):

Mam ostatnio takie przemyślenie, że rozwój programów komputerowych idzie w złym kierunku. Aktualnie komputery mają wielokrotnie większą moc obliczeniową niż 10, 20 czy 30 lat temu, jednak ta moc pozostaje w dużym stopniu niewykorzystana.

Dziwne. Bo ja wykorzystuje na maks.

Zamiast tworzyć coraz szybsze i ciekawsze programy wyciskające z komputerów wszystko co się da, tworzonych jest cała masa programów, które mogłyby spokojnie działać na o wiele słabszym komputerze jednak ze względu na to w jaki sposób są napisane są bardzo pamięciożerne. Nikt nie przejmuje się optymalizacją (jest na to nawet termin tzw. premature optimisation) dopóki coś nie wybuchnie na produkcji,

Dziwne, bo jestem jednym z wielu performance engieneerów i moim zadaniem jest dbanie o to, żeby nie wybuchło na produkcji.

ale nawet wtedy szybciej jest dołożyć kilka kolejnych node-ów niż naprawić niewydajny kod w 10 miejscach. Mamy coraz szybsze komputery, ale cały wzrost ich wydajności nie jest pożytkowany przez coraz szybciej działające aplikacje, lecz przez coraz bardziej pamięciożerne frameworki. Często proste aplikacje zajmują GB danych.

Jak komputery nie miały GB RAM to nie było tylu frameworków, które z tego RAMu potrafiły skorzystać oczywiste.

Czy ktoś ma może podobne spostrzeżenia?

Zapewne. Wiekszość licealistów.

Czy można coś z tym zrobić?

Tak. Ogarnąć się.
Wydajność nie polega na:
image

Zanim nauczyłem się programować to przez lata pisałem w ASM i C - jak inni lamerzy.
I wbrew pozorom wcale to nie było wydajne - to była wydajność na poziomie jakim się Jasiowi z liceum wydaje: że jak zamieni i++ na ++i to się świat naprawia.
(fakt, że na badziewnych kompilatorach z początku lat 90-tych to czasem była prawda).


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
CZ
Jakbyś pisał w c++ to kod od razu byłby szybszy :P
several
Argumentujesz ekstremami gdy autor w moim odczuciu rozpoczął dość normalną dyskusję bez pokazywania palcem na konkretne technologie. Jego wypowiedź można skrócić do ale cały wzrost ich wydajności nie jest pożytkowany przez coraz szybciej działające aplikacje czemu ciężko odmówić racji, co Ty zbyłeś tekstem, parafrazując, u mnie działa lub ogarnij się. Może się zmuszę do normalnej odpowiedzi postem później.
FR
  • Rejestracja:około 11 lat
  • Ostatnio:około 8 godzin
  • Postów:924
0

Większość rzeczy na świecie nie jest wykorzystywana w 100%, bo tak się po prostu nie da. Warto jednak dążyć do złotego środka.

Ale jak ktoś zaczyna chcieć optymalizować takie rzeczy, to zaczynasz się burzyć, że to spisek np. że ograniczanie śladu węglowego to bujda. Zdecyduj się.

K8
  • Rejestracja:ponad 10 lat
  • Ostatnio:2 miesiące
  • Lokalizacja:Małopolska
  • Postów:643
0

po prostu ja podchodze do tego tak ze w 1998 komputery byly inne niz obecnie

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Wrocław
2
krzychu82a napisał(a):

po prostu ja podchodze do tego tak ze w 1998 komputery byly inne niz obecnie

Owszem,wtedy wszystkie były szare, a teraz są czarne, na dodatek połowa ma przezroczystą szybę z jednego boku.


Po dopracowaniu rozwiązania każdy będzie mógł założyć własny drzewiasty wątek.
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:4 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
0
somekind napisał(a):
krzychu82a napisał(a):

po prostu ja podchodze do tego tak ze w 1998 komputery byly inne niz obecnie

Owszem,wtedy wszystkie były szare, a teraz są czarne, na dodatek połowa ma przezroczystą szybę z jednego boku.

A ja już od dawna nie widziałem komputera takiego jak kiedyś. Nawet w czarnej obudowie. Tylko wszędzie laptopy i notebooki


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
somekind
Proszę, ostatni wątek z forum na ten temat: Nowa stacjonarka Są zdjęcia!
Z2
  • Rejestracja:prawie 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:22
1

@snakeomeister Masz problem, bo mylisz rozwój z biznesem.

Analogicznie moglibyśmy rozpatrzeć sytuację z restauracji. Klient zamawia 2 razy to samo danie, i w sumie tu pojawia się pytanie czemu z automatu nie dostanie upustu, bo przecież mniej gazu / prądu na to pójdzie, a nawet obsługa będzie miała łatwiej, bo ma mniej zróżnicowanych dań do przygotowania na raz.

Lepszym pytaniem raczej jest to: co nas ogranicza, że nie piszemy jeszcze wolniejszych programów?

Przecież można zrobić apkę, która wyczerpuje baterię szybciej, a dopiero po kupnie upgrade oszczędza telefon. Jak dla mnie to połowa stron z darmową treścią, jak nie większość powinna dać alert, a po akceptacji, kopać kryptowaluty na Twojej maszynie.

Ja się dziwie, że tego jeszcze się nie stosuje, tym bardziej, że w pizzerii jak zjesz to pić się chce, własnego picia nie można wnieść, a jak kupujesz szklankę coli to płacisz jak za 2 litry.

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