Jak przygotować prezentację o Javie?

Jeżeli śledzisz na bieżąco to, co się dzieje na moim blogu, to wiesz, że w ubiegłym tygodniu prowadziłem webinar o adnotacjach w Javie. Temat już był poruszany na moim blogu, ale bardzo mi miło jeżeli mimo to zdecydowałeś się wziąć udział w mojej prezentacji. Przed webinarem w moich mediach społecznościowych zadałem pytanie o to, jak przygotować prezentację z demonstracją działania prostych programów. Dziękuję Dominice, Piotrkowi i Krzyśkowi za komentarze. Nie skorzystałem z ich propozycji i zrobiłem po swojemu. Niestety obiektywnie nie mogę się wypowiedzieć, czy mój webinar zyskał na tym, czy też nie. W najbliższym czasie film zostanie opublikowany na kanale mojego pracodawcy w serwisie YouTube i każdy czytelnik mojego bloga będzie miał okazję przekonać się na własne oczy.

W skrócie mogę napisać, że skorzystałem z narzędzie Jupyter Notebook z kilkoma doinstalowanymi dodatkami. W niniejszym wpisie opiszę co powinieneś zainstalować, aby być w stanie przygotować podobną prezentację.

WSL – Windows Subsystem for Linux

Prezentację przygotowałem w Ubuntu, które zainstalowałem wewnątrz mojego Windowsa 10. Jak pewnie dobrze pamiętasz, w artykule w ubiegłym roku narzekałem na te rozwiązanie. Ale tym razem dałem mu jeszcze jedną szansę. Nie wiem, czy to aktualizacja rozwiązania WSL z wersji 1.0 do 2.0, ale muszę przyznać, że byłem bardzo pozytywnie zaskoczony.

Dlaczego właśnie Linux? Jupyter jest narzędziem, które instaluje się przy użyciu Pythona. A ja nie lubię korzystać z Pythona pod Windowsem. Zatem zanim przejdziemy do przygotowania prezentacji kodów źródłowych i działania programów napisanych w Javie pozwolę sobie przedstawić krótki tutorial, jak zainstalować WSL w Windows 10.

Zaczynamy od uruchomienia programu Microsoft Store:

W okienku wyszukiwania w prawym górnym rogu wpisz „ubuntu”:

I wybierz pierwszą opcję (tę bez numeru):

Gdy klikniesz przycisk Pobierz (niebieski w górnym prawym rogu):

rozpocznie się proces pobierania aplikacji. Po dość krótkiej chwili Ubuntu będzie zainstalowane i gotowe do uruchomienia:

Po uruchomieniu aplikacji zobaczysz okienko:

Dalsza część instalacji chwilę jeszcze potrwa. Po dłuższym czasie instalator zapyta nas o nazwę użytkownika

i jego hasło:

Ja oczywiście sugeruję wykonać operację aktualizacji systemu przez wykonanie polecenia:

$ sudo apt update

i następnie

$ sudo apt upgrade

Nasz Linux w Windowsie jest już gotowy do użycia.

Jupyter Notebook

Zanim opiszę proces instalacji i uruchomienia oprogramowania Jupyter to może napiszę, czym w ogóle jest to oprogramowanie. Cały projekt Jupyter składa się z kilku komponentów. Na stronie twórców znajdziemy opis:

Project Jupyter exists to develop open-source software, open-standards, and services for interactive computing across dozens of programming languages.

I rzeczywiście tak jest. Cały projekt dostarcza narzędzi do wykonywania interaktywnych plików zawierający kod źródłowy, który można z łatwością wykonać. Narzędzie to poznałem dzięki Kolegom z Uczelni, którzy zajmują się Pythonem i nauczaniem maszynowym. Po dość krótkim przeszukaniu internetu udało mi się zaadaptować to rozwiązanie do języka Java. Ja używam programu Jupyter Notebook (zdaję sobie sprawę, że jest jeszcze JupyterLab, który jest dużo nowszy, ale ze względu na niedobór czasu zdecydowałem się wykorzystać znany mi produkt), który (zgodnie ze stroną twórców) jest:

The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.

Instalacja

Instalacja tego oprogramowania na komputerze z zainstalowanym Linuksem polega na wykonaniu kilku poleceń w terminalu. Całość zaczynamy od instalacji Pythona:

Oprócz samego Pythona zainstalowałem narzędzie venv, które pozwala nam tworzenie wirtualnego środowiska Pythona – czyli kopii lokalnej całego środowiska, w którym możemy instalować potrzebne pakiety bez zaśmiecania globalnej instalacji Pythona. Przydaje się to szczególnie jeżeli na jednym komputerze pracuje się nad wieloma projektami Pythona, z których każdy korzysta z różnych wersji jakiejś biblioteki. Znów możesz mi zarzucić, że korzystam z przestarzałych technologii, ale po pierwsze jestem programistą Javy, a po drugie napisz mi o tym w komentarzu, chętnie się dokształcę.

Kolejnym narzędziem, które zainstalowałem jest pip, czyli narzędzie, które pozwala zainstalować dodatkowe pakiety do Pythona – w głównej instalacji (wtedy są potrzebne prawa administratora) lub w środowisku wirtualnym (wtedy uprawnienia administratora nie są potrzebne).

Po instalacji Pythona wykonałem kilka sprawdzeń:

Przede wszystkim zwróć uwagę, że polecenie python nie jest rozpoznawane przez system, ale za to polecenie python3 już jak najbardziej. Podobnie jest z poleceniami pip i pip3. Dlaczego zwracam na to uwagę? Ponieważ w czasach, gdy jeszcze Python 2.x był rozwijany, polecenie python (podobnie jak pip) dotyczyło Pythona w wersji 2. Wynikało z tego wiele nieporozumień i błędów (przynajmniej w moim przypadku). Poza tym, chcę pokazać jak działa środowisko wirtualne. Po jego stworzeniu (poleceniem python3 -m venv presentation-venv) i jego aktywacji (polceniem source presentation-venv/bin/activate)

Polecenia python i pip są rozpoznawane jako programy powiązane ze środowiskiem wirtualnym. To oznacza, że pip będzie instalował pakiety w środowisku wirtualnym, a polecenie python uruchomi interpreter Pythona z pakietami zainstalowanymi w tym środowisku wirtualnym. O tym, że środowisko wirtualne jest aktywowane świadczy początek linii (przed znakiem zachęty).

Gdy mamy już aktywowane środowisko wirtualne, możemy przejść do instalacji potrzebnych pakietów.

Są to:

  • wheel – pakiet potrzebny do poprawnej instalacji pakietów
  • jupyter – pakiet dostarczający funkcjonalność jupytera
  • RISE – pakiet, który pozwala w wygodny sposób uruchamiać prezentację na podstawie dokumentu jupytera

W tym momencie moglibyśmy już po prostu uruchomić jupytera, ale dostalibyśmy błąd wykonania skryptu. Wynika to z tego, że jupyter domyślnie uruchamia przeglądarkę otwartą na właściwej stronie (która przedstawia zawartość katalogu, z którego uruchamiamy program), a nasze Ubuntu nie ma zainstalowanej przeglądarki. Żeby wyłączyć tę opcję musimy najpierw wygenerować domyślny plik konfiguracyjny:

jupyter notebook --generate-config

i następnie go edytować. Można to zrobić za pomocą dowolnego edytora tekstu, lub za pomocą programu sed:

sed -i 's/# c.NotebookApp.open_browser = True/c.NotebookApp.open_browser = False/g' .jupyter/jupyter_notebook_config.py

Teraz możemy zainstalować rozszerzenie programu jupter, które pozwala włączyć prezentację jednym przyciskiem:

Po instalacji musimy jeszcze włączyć rozszerzenie:

Uruchomienie

Teraz już jesteśmy gotowi uruchomić program jupyter, za pomocą komendy:

jupyter notebook

Teraz wystarczy wkleić adres url w pasek adresu w przeglądarce. Otworzy się ekran główny programu jupyter, który (jak wspomniałem wcześniej) zawiera zawartość katalogu domowego, bo właśnie w tym katalogu uruchomiłem ten program.

Po naciśnięciu przycisku New mamy następujące możliwości:

Wybieramy opcję Notebook Python 3:

Komórki domyślnie służą do wpisywania kodu źródłowego Pythona. Kombinacja klawiszy Shift + Enter interpretuje kod. Gdy w komórce wpiszemy magiczną instrukcję (to rzeczywiście tak właśnie się nazywa!) %%bash to kod z tej komórki zostanie wykonany w linii poleceń systemu operacyjnego:

Możemy włączyć tryb prezentacji View -> Cell Toolbar -> Slideshow:

Wtedy w prawym górnym rogu pojawi się drop lista, z której możemy wybrać typ komórki:

Zaraz omówię część z nich. Ale zacznijmy od zdefiniowania obu komórek jako Slide:

Gdy naciśniesz przycisk z wykresem kolumnowym (na prawo od drop listy z napisem Code) włączy się tryb prezentacji (właśnie po to instalowałem rozszerzenie RISE):

W prawym dolnym rogu są przyciski, które pozwalają na nawigację po prezentacji. Po naciśnięciu strzałki w prawo przeskoczymy do kolejnego slajdu:

Przycisk z X w lewym górnym rogu wyłącza tryb prezentacji. Trzecią komórkę oznaczamy jako zawierającą Markdown (uproszczony język znaczników, który pozwala formatować tekst – krótki wstęp do tej techniki możesz znaleźć tutaj)

Wpisujemy w niej przykładowy kod Markdown:

Kombinacja klawiszy Shift + Enter generuje sformatowany tekst:

Komórkę tę oznaczmy jako Sub-Slide. W prezentacji ten slajd będzie widoczny poniżej slajdu numer dwa:

Widzisz strzałkę w dół:

Dodajmy jeszcze jedną komórkę do dokumentu i oznaczmy ją jako Fragment:

Ta komórka będzie wyświetlała się jako część poprzedniego slajdu, po naciśnięciu strzałki w dół:

Jest dostępne kilka schematów kolorystycznych dla prezentacji (z różnymi czcionkami). Możemy wybrać ten schemat przez edycję metadanych dokumentu:

Które są opisane za pomocą dokumentu JSON:

Zwróć uwagę na ostatnią sekcję, ona zawiera informację o schemacie. Teraz prezentacja wygląda zupełnie inaczej:

Lista schematów do wyboru jest dostępna pod adresem:

Java

Teraz jesteśmy gotowi dodać obsługę Javy w programie jupyter. Zacznijmy od instalacji JDK w Ubuntu:

Po dłuższej chwili mamy zainstalowane JDK:

Po instalacji JDK możemy przejść do instalacji dodatku IJava:

Na podlinkowanej stronie githuba jest dokładna instrukcja jak zainstalować ten dodatek. Najpierw pobieramy archiwum ZIP (za pomocą programu wget):

Następnie rozpakowujemy pobrane archiwum (poleceniem uznip – domyślnie ten program nie jest zainstalowany w Ubuntu)

Po rozpakowaniu tej paczki ZIP mamy katalog java i plik install.py:

Uruchamiamy ten plik install.py za pomocą Pythona ze środowiska wirtualnego:

Polecenie

jupter kernelspec list

drukuje wszystkie dostępne kernele – czyli w jakich językach możemy programować przy użyciu juptera. Teraz możemy już utworzyć notebook dla Javy:

W którym komórki pozwalają na uruchamianie kodu Javy:

WSL + GUI

Dzisiejszy artykuł chciałbym zakończyć opisaniem głównego powodu, dla którego przeprosiłem się z WSL. Jest to program MobaXterm. Twórcy na stronie projektu reklamują ten program jako klienta SSH i wiele więcej. I to wiele więcej jest dla mnie najbardziej atrakcyjne. Pozwala on na uruchamianie programu z graficznym interfejsem użytkownika zainstalowanego w Ubuntu. Instalacja jest dość prosta, ale przejdźmy przez nią wspólnie. Na stronie głównej projektu:

Klikamy przycisk GET MOBAXTERM NOW!

Używam tego programu od dość dawna, ale jeszcze nie potrzebowałem żadnej funkcjonalności, której nie ma w wersji darmowej.

Nie przeszkadza mi instalowanie oprogramowania, więc wybrałem wersję z instalatorem. Po kliknięciu zielonego przycisku rozpocznie się pobieranie paczki ZIP:

Po rozpakowaniu widzimy instalator:

Sam instalator jest dość prosty:

Licencja:

Katalog do zainstalowania:

I tyle:

Po chwili:

Po uruchomieniu aplikacji widzimy ekran główny:

W zakładce Sessions w lewej części ekranu mamy do wyboru WSL. Po wyborze pierwszej z nich (tej bez numeru wersji) widzimy terminal Ubuntu:

Zanim przejdziemy dalej, zmieńmy jedną opcję w ustawieniach. W oknie ustawień:

wybierz opcję X11. I w niej, w opcji X11 remote access wybierz full.

Po zaakceptowaniu nowego ustawienia pojawi się ostrzeżenie o konieczności restartu serwera X11

Po restarcie w terminalu instalujemy pakiet vim-gtk3:

I po uruchomieniu aplikacji gvim (vim w wersji z okienkiem, czyli program który zainstalowaliśmy przed chwilą) pojawi się okienko:

Podsumowanie

Dziękuję, że doczytałeś ten artykuł do końca. Mam nadzieję, że Ci się podobało. Daj znać w komentarzu co o nim sądzisz. W dzisiejszym wpisie dowiedziałeś, jak zainstalować Ubuntu w Windowsie 10. Jak zainstalować Jupytera i jak go wykorzystać do stworzenia prezentacji zawierającego kod Javy. Na sam koniec poznałeś moje odkrycie związane z uruchamianiem aplikacji okienkowych zainstalowanych w Ubuntu.

Zachęcam do śledzenia mnie w mediach społecznościowych, kolejne artykuły już niedługo.

I jeszcze jedna rzecz, prezentacja jest dostępna na githubie.

Aspirujący twórca internetowy, który zna się na programowaniu i chce się dzielić wiedzą

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Scroll to top