-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Poprawki sekcji o WSL #8
base: master
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -28,12 +28,24 @@ Istnieje wiele środowisk programistycznych, a żeby ułatwić wybór, pokażemy | |
- Visual Studio Code - na tę chwilę najpopularniejsze środowisko programistyczne, które wspiera wiele języków programowania, w tym C++ oraz Python. | ||
- Geany - bardzo lekki edytor tekstu z minimalnym interfejsem do skompilowania i uruchamiania kodu. | ||
|
||
# Krok 1: Instalacja WSL oraz g++ | ||
# Krok 1: Instalacja WSL | ||
|
||
Na tę chwilę, najłatwiej jest zainstalować kompilator C++ na systemach Windows poprzez *Windows Subsystem for Linux (WSL)*. | ||
To tak naprawdę sposób uruchomienia *Linux*a, w którym łatwo się instaluje narzędzia dla programistów (z tego też powodu wiele zaawansowanych programistów korzysta z Linuxa zamiast Windowsa). | ||
Na moment powstawania kursu, najprostszym sposobem instalacji kompilatora C++ na systemach Windows jest skorzystanie z *Windows Subsystem for Linux (WSL)*. | ||
Jest to tak naprawdę *maszyna wirtualna* z Linuxem, uruchomiona wewnątrz Windowsa, i dobrze zintegrowana z Windowsowym systemem plików i wyświetlaniem okienek. Dzięki temu rozwiązaniu mamy wygodny dostęp do pełnoprawnego Linuxa, jednocześnie nadal używając Windowsa jako głównego systemu operacyjnego. Wielu programistów korzysta w ten lub inny sposób z Linuxa, między innymi właśnie dlatego, że łatwo instaluje się w nim narzędzia programistyczne. | ||
|
||
Alternatywnie, można zainstalować kompilator MinGW do C++, ale wymaga to więcej kroków instalacyjnych. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "kompilator mingw" (co jest trochę mylnym nadużyciem, ale faktycznie ciężko to lepiej opisać bez wchodzenia w detale techniczne) jest zaskakująco trudny do zainstalowania - to zdanie jest zupełnie nieprzydatne dla początkujących (zobacz komentarz poniżej). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Myślę że podobnej długości zdanie powinno się znaleźć w sekcji "alternatywy". W moim odczuciu targetuje ono osoby które są bardziej ogarnięte i z jakiegoś powodu nie chcą korzystać z WSL. Oni potrzebują jedynie jakiegoś punktu zaczepienia, żeby wiedzieć co googlować, a nie konkretnych instrukcji. Tych mniej ogarniętych według mnie należy przekonywać do WSL. |
||
WSL jest oficjalnym oprogramowaniem od Microsoftu. Jego instalacja na nowszych komputerach jest bardzo prosta: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instalacja WSL jednak ingeruje w system trochę bardziej niż zwykłego software'u - warto co najmniej wspomnieć, że nie instalujemy jakiegoś dziwnego czegoś od nie wiadomo kogo. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Myślę że osób które podążają za tym tutorialem raczej nie obchodzi to jak bardzo coś ingeruje w ich komputer. Patrz instalowanie sobie rootkita żeby pograć w LoLa. Samo pierwsze zdanie jest na tyle krótkie że uważam że można zostawić, tylko może tam wyżej gdzie jest pierwsza wzmianka o WSL. |
||
|
||
1. Uruchamiamy wiersz poleceń (`cmd`) lub `PowerShell` jako administrator, klikając prawym przyciskiem myszy -> "Uruchom jako Administrator". | ||
|
||
2. Wpisujemy polecenie `wsl --install` i zatwierdzamy enterem. | ||
|
||
Po zainstalowaniu powinniśmy zostać zapytani o utworzenie nazwy użytkownika i hasła - należy je zapamiętać, bo będą potrzebne do instalowania dodatkowych programów wewnątrz Linuxa. | ||
|
||
Z WSLa korzystamy najpierw uruchamiając go skrótem `WSL` lub `Ubuntu`. Zadziała także polecenie `wsl` w oknie `cmd` lub `PowerShell`. Powinien uruchomić się *terminal* Linuxa, którego poprawne działanie można potwierdzić poleceniem `uname` - powinno ono wypisać `Linux`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Na pewno nie używałbym słów "terminal" i nie wspominał o Co do wspomnieniu o samym odpaleniu terminala, my pokazujemy setup w którym nie jest to potrzebne. Dociekliwy czytelnik, który chce zrobić coś więcej niż w naszych filmikach, raczej ogarnie że to się tak robi i nie trzeba tym nieogarniętym dodawać dodatkowego tekstu do sparsowania. |
||
|
||
Bardziej szczegółową instrukcję instalacji można znaleźć na stronie [learn.microsoft.com/windows/wsl/install](https://learn.microsoft.com/windows/wsl/install). | ||
Jeśli powyższa metoda nie powiedzie się, należy spróbować starszego sposobu instalacji krok po kroku opisanego na stronie [learn.microsoft.com/windows/wsl/install-manual](https://learn.microsoft.com/en-us/windows/wsl/install-manual). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Myślę że jakieś odniesienie do oficjalnych instrukcji troubleshootingu jednak powinno się tu znaleźć. Zawsze znajdzie się ktoś komu nie zadziała, nawet jeśli nie będzie to przydatne dla potencjalnego uczestnika to może będzie jeśli poprosi kogoś o pomoc. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Link do oficjalnej instrukcji brzmi git (ten pierwszy). Jednak nie jestem przekonany że osobie której nie uda się przejść przez pierwszy link uda się przejść przez drugi. Z tym linkiem do troubleshootingu mam podobne odczucie, ale może rzeczywiście jest w nim jakaś wartość. |
||
Pomocna może być także sekcja o rozwiązywaniu błędów na stronie [learn.microsoft/com/windows/wsl/troubleshooting#installation-issues](https://learn.microsoft.com/en-us/windows/wsl/troubleshooting#installation-issues), lub samodzielne wyszukanie problemu w internecie. | ||
|
||
<style> | ||
iframe { | ||
|
@@ -42,19 +54,46 @@ aspect-ratio: 16 / 9; | |
} | ||
</style> | ||
|
||
<!-- TODO: należy te materiały dostosować do oficjalnej metody instalacji | ||
|
||
<iframe src="https://www.youtube.com/embed/euA_T1Ll6ZM?si=hUyOGDeo274rVrLi" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> | ||
--> | ||
|
||
## Alternatywy | ||
|
||
Jeśli instalacja WSL nie powiedzie się, alternatywnie można zainstalować kompilator GCC w wersji Windowsowej, na przykład dostarczony przez projekt [MinGW-w64](https://www.mingw-w64.org/). Nie istnieje jednak jedna poprawna, sugerowana metoda instalacji, zatem wymaga to wiedzy co dokładnie jest nam potrzebne. Można także skorzystać z darmowej wersji [kompilatora MSVC od Microsoftu](https://code.visualstudio.com/docs/cpp/config-msvc), dostępnego tylko na Windowsie. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Tutaj jest widoczny problem z MinGW - raz że trzeba wiedzieć który projekt jest aktualny, dwa że trzeba wiedzieć co dokładnie zainstalować. Polecam spróbować przejść samodzielnie przez ten proces, żeby przekonać się jak bardzo nieoczywiste to jest. Można by oczywiście ustalić jakąś konkretną opcję do zasugerowania uczestnikom. Kiedyś instalowało się Code::Blocks który był zpaczkowany z MinGW i nie było takich problemów. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nie jestem przekonany, że osobie której nie uda się zainstalować WSL uda się przejść przez ten proces. Myślę że jeżeli "instalacja WSL się nie powiedzie" to należy spróbować ponownie/inaczej, a nie zaczynać od nowa czegoś jeszcze trudniejszego. |
||
|
||
W ostateczności jeśli zawiodą wszystkie inne opcje, można skorzystać ze środowiska online, na przykład [ide.usaco.guide](https://ide.usaco.guide/). Zalecamy jednak unikanie tej opcji o ile jest to możliwe, ponieważ oczywiście nie jest ona dostępna na egzaminach ani olimpiadach, a także będzie później niewystarczająca - na przykład do testowania losowego rozwiązań. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. To jest świetna opcja która powinna pojawić się w kursie, co najmniej pod kątem osób które nie mają możliwości instalacj software'u w swoim komputerze. Z doświadczenia powiem że bardzo dużo początkujących osób korzysta faktycznie ze środowisk online - często ze sporo gorszych niż usaco. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Wspomnienie o kompilatorach online brzmi jak dobry pomysł. Chociaż nie używałbym w tym momencie kursu słów "testowanie losowego rozwiązania". Wywaliłbym drugie zdanie. Pierwsze zdanie i tak zaczyna się od "w ostateczności", więc widać że nie polecamy tej opcji. |
||
|
||
# Krok 2: Instalacja kompilatora GCC w WSL | ||
|
||
W uruchomionym terminalu WSL wpisujemy kolejno polecenia, potwierdzone enterem. | ||
|
||
1. `sudo apt update` | ||
2. `sudo apt install g++` | ||
|
||
instalację trzeba dodatkowo zatwierdzić wpisując `yes` lub `y` i wciskając enter. | ||
|
||
Program `g++` jest wersją kompilatora [GCC](https://gcc.gnu.org/) używającą C++ jako domyślny język. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Zbyt techniczne |
||
Programy skompilowane przez `g++` zainstalowane wewnątrz Linuxa będą możliwe do uruchomienia tylko w Linuxie, jednak skonfigurujemy nasze środowisko programistyczne żeby zarówno kompilowało, jak i uruchamiało je za pomocą WSL. | ||
|
||
<!-- TODO: poprawić na uruchamianie przez skrót, lub polecenie `wsl` | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Poprawiony filmik wygląda super. Apeluję jednak żeby instrukcje zawrzeć także w formie tekstowej - jeśli przeszkadza wam "ściana tekstu" to można spróbować zrobić rozwijalną sekcję. Dzieci mają obecnie bardzo krótki attention span i filmiki w tutorialach potrafią bardzo odstraszać. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Myślę że same komendy to dobry pomysł, żeby nie musieć przepisywać. |
||
<iframe src="https://www.youtube.com/embed/ArDf2yqbVaw?si=R2TzQUWXvhL2V4Hc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> | ||
--> | ||
|
||
# Krok 2a: Instalacja Visual Studio Code | ||
|
||
VSCode należy skonfigurować tak, żeby [połączył się z WSLem i używał go do kompilowania i uruchamiania programów w C++](https://code.visualstudio.com/docs/remote/wsl). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Uważam że jednak warto powiedzieć po co instalowaliśmy WSL i dlaczego to działa ze środowiskiem na windowsie. Moja wzmianka o tym że "zastanawiam się czy to jest faktycznie najlepsze podejście" dotyczyła konkretnie tego punktu - skoro i tak korzystamy z IDE na windowsie to może zamiast instalować WSL na siłę to lepiej faktycznie pokierować jak zainstalować MinGW. WSL jest szalenie użyteczny, ale może jest to zbyt dużo za szybko. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Według mnie sekcje "Wstęp" i "Środowisko programistyczne C++" już wystarczająco dobrze wyjaśniają o co chodzi. |
||
|
||
<iframe src="https://www.youtube.com/embed/maE3cigf1uA?si=Mva2LzQ4yROK3BlB" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> | ||
|
||
# Krok 2b: Instalacja Geany | ||
|
||
Instalator `geany-2.0_setup.exe` można pobrać ze strony [geany.org](https://www.geany.org/download/releases/). | ||
Kroki instalacyjne są prostsze, niż te dla Visual Studio Code. | ||
|
||
Geany należy skonfigurować tak, by kompilował i uruchamiał programy poprzez wywołanie polecenia `wsl`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Jak wyżej do VSCode - co ustawiamy i po co? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ditto |
||
|
||
<iframe src="https://www.youtube.com/embed/SnsaP3msEBQ?si=EcmGdGHOrwR6CZm_" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe> | ||
|
||
# Krok 3: Napisanie programu | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Spotkałem się wielokrotnie z komentarzami dotyczącymi "czy instalacja Linuxa nie popsuje mojego Windowsa" - jakaś wzmianka na ten temat jednak powinna się tu znaleźć
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Może wystarczy dodać "sposób uruchomienia Linuxa na Windowsie", albo coś w tym stylu.
Nie używałbym słów "maszyna wirtualna" i "system plików" – są zbyt straszne. Cały fragment "i dobrze zintegrowana z Windowsowym systemem plików i wyświetlaniem okienek" według mnie nie jest potrzebny. Zdanie "Dzięki temu..." też na razie wygląda mi niepotrzebnie, myślę że można się obejść bez niego i dodać tylko kilka słów przy definicji WSL.
Tutaj można wspomnieć że WSL jest oficjalnym oprogramowaniem od Microsoft.