-
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?
Conversation
Jeżeli jest taka możliwość to prosiłbym o zaakceptowanie tych zmian. Kurs wisi online i jest trochę mylący - sam straciłem dość dużo czasu próbując przez niego przebrnąć pomagając aspirującemu olimpijczykowi z rodziny (na co dzień w ogóle nie używam Windowsa). CC @lduraj @tonowak |
@blazejosinski dzięki za uwagi, zerkniemy na to wkrótce. |
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.
W myśl utrzymywania otwartej dyskusji dodałem trochę komentarzy czemu konkretnie uczepiłem się tam gdzie się uczepiłem.
Nie jestem przywiązany do konkretnych sformułowań które napisałem - tak jak zauważyłeś @greg19, sporo z nich jest zbyt skomplikowanych.
Natomiast chętnie dowiedziałbym się co myślisz na temat tych komentarzy.
|
||
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). |
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.
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`. | ||
|
||
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 comment
The 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 comment
The 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ść.
|
||
Alternatywnie, można zainstalować kompilator MinGW do C++, ale wymaga to więcej kroków instalacyjnych. | ||
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 comment
The 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 comment
The 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.
|
||
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 comment
The 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 comment
The 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.
|
||
# 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 comment
The 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 comment
The 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.
|
||
## 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 comment
The 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 comment
The 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 comment
The 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 comment
The 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.
Program `g++` jest wersją kompilatora [GCC](https://gcc.gnu.org/) używającą C++ jako domyślny język. | ||
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 comment
The 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 comment
The 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/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 comment
The 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 comment
The reason will be displayed to describe this comment to others. Learn more.
Ditto
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.
Ja bym poklasyfikował czytelników tej lekcji na dwie grupy: taką która coś już sama programowała i taką, która nie.
Pierwsza grupa potrzebuje jak najprostszego wytłumaczenia – trudne słowa takie jak "maszyna wirtualna" albo "terminal" będą ich odstraszać. Taka osoba – która wchodzi na pierwszą lekcję programowania celem napisania Hello World – może się czuć że jest głupia, jeżeli nie będzie rozumieć 30% objętości tekstu. Dla niektórych może to być nawet na tyle zniechęcające, że pomyślą że programowanie nie jest dla nich i zrezygnują z takiej ścieżki kariery – nawet jeżeli są to nieliczne przypadki, nadal warto o nich myśleć.
Druga grupa (jeżeli w ogóle będzie przechodzić przez ten tutorial) pewnie będzie bardziej ogarnięta technologicznie, więc nie potrzebuje jakiś obszernych wyjaśnień. Jak będą potrzebować, to raczej będą w stanie sami znaleźć odpowiedź na swoje problemy.
Jeżeli tutorial będzie napisany jak dla osoby mniej ogarniętej niż ta która faktycznie go czyta, to nic się nie stanie. Jak będzie na odwrót, to już może mieć negatywne skutki. W związku z tym uważam że akurat ta część kursu powinna być szczególnie jak najprostsza.
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`. | ||
|
||
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 comment
The 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ść.
|
||
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 comment
The 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 uname
– są zbyt straszne. Wpisywanie wsl
w prompt też brzmi jak coś co nie będzie przydatne piętnastolatkowi.
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.
|
||
## 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 comment
The 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 comment
The 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.
<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 comment
The reason will be displayed to describe this comment to others. Learn more.
Ditto
Program `g++` jest wersją kompilatora [GCC](https://gcc.gnu.org/) używającą C++ jako domyślny język. | ||
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 comment
The reason will be displayed to describe this comment to others. Learn more.
Myślę że same komendy to dobry pomysł, żeby nie musieć przepisywać.
|
||
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 comment
The 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.
|
||
Alternatywnie, można zainstalować kompilator MinGW do C++, ale wymaga to więcej kroków instalacyjnych. | ||
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 comment
The 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.
|
||
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). |
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.
|
||
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 comment
The reason will be displayed to describe this comment to others. Learn more.
Zbyt techniczne
Trochę moich sugestii jak można rozwinąć sekcję o WSLu. Chociaż im więcej przy tym dłubię tym więcej zastanawiam się czy to jest faktycznie najlepsze podejście. Możliwe że warto byłoby dokładniej opisać różne alternatywy.
Nagrania są do lekkiej korekty, trzeba by też sprawdzić instrukcje na świeżym Windowsie.