JuliaKurs23/nb/entwicklungsumgebungen.ipynb
2023-05-12 20:12:56 +02:00

168 lines
6.3 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "1cb64ccb",
"metadata": {},
"source": [
"# Entwicklungsumgebungen\n",
"\n",
"Für diesen Kurs werden wir die webbasierte Entwicklungsumgebung [Jupyterhub](https://de.wikipedia.org/wiki/Project_Jupyter) verwenden. Sie steht allen Teilnehmerïnnen für die Dauer des Kurses zur Verfügung. \n",
"\n",
"Für langfristiges Arbeiten empfiehlt sich eine eigene Installation. \n",
"\n",
"\n",
"## Installation auf eigenem Rechner (Linux/MacOS/MS Windows)\n",
"\n",
"1. Julia mit dem Installations- und Update-Manager **juliaup** installieren: <https://github.com/JuliaLang/juliaup/>\n",
"2. als Editor/IDE **Visual Studio Code** installieren: <https://code.visualstudio.com/>\n",
"3. im VS Code Editor die **Julia language extension** installieren: <https://www.julia-vscode.org/docs/stable/gettingstarted/>\n",
"\n",
"Einstieg:\n",
"\n",
"- In VS Code eine neue Datei mit der Endung `.jl` anlegen\n",
"- Julia-Code schreiben\n",
"- {{< kbd Shift-Enter >}} oder {{< kbd Ctrl-Enter >}} am Ende einer Anweisung oder eines Blocks startet ein Julia-REPL, Code wird ins REPL kopiert und ausgeführt \n",
"- [Tastenbelegungen für VS Code](https://code.visualstudio.com/docs/getstarted/keybindings#_keyboard-shortcuts-reference)\n",
"und [Julia in VS Code](https://www.julia-vscode.org/docs/stable/userguide/keybindings/)\n",
"\n",
"\n",
"\n",
"## Arbeiten auf dem [Jupyterhub-Webserver](https://misun103.mathematik.uni-leipzig.de/)\n",
"\n",
"### Jupyterhub & Jupyter\n",
"\n",
"- [Jupyterhub](https://de.wikipedia.org/wiki/Project_Jupyter) ist ein Multi-User-Server für Jupyter.\n",
"- Jupyter ist eine web-basierte interaktive Programmierumgebung, die\n",
"- ursprünglich in und für Python geschrieben, inzwischen eine\n",
" Vielzahl von Programmiersprachen nutzen kann.\n",
"- In Jupyter bearbeitet man sogenannte *notebooks*. Das sind strukturiere Textdateien (JSON), erkennbar an der Dateiendung \n",
" `*.ipynb`.\n",
"\n",
"Unser Jupyterhub-Server: <https://misun103.mathematik.uni-leipzig.de/>\n",
"\n",
"Nach dem Einloggen in Jupyterhub erscheint ein Dateimanager:\n",
"\n",
"![Jupyterhub Dateimanager](../images/notebook001.png)\n",
"\n",
"Mit diesem kann man:\n",
"\n",
"- vorhandene *notebooks* öffnen,\n",
"- neue *notebooks* anlegen,\n",
"- Dateien, z.B. *notebooks*, vom lokalen Rechner hochladen,\n",
"- die Sitzung mit `Logout` beenden (bitte nicht vergessen!). \n",
"\n",
"### Jupyter notebooks\n",
"\n",
"![Jupyter Notebook](../images/notebook003.png)\n",
"\n",
"\n",
"*Notebooks* bestehen aus Zellen. Zellen können \n",
"\n",
"- Code oder \n",
"- Text/Dokumentation (Markdown) \n",
"\n",
"enthalten. In Textzellen können mit die Auszeichnungssprache [Markdown](https://de.wikipedia.org/wiki/Markdown) zur Formatierung und LaTeX für mathematische Gleichungen verwendet werden. \n",
"\n",
"Es sei empfohlen, die Punkte `User Interface Tour` und `Keyboard Shortcuts` im `Help`-Menü anzuschauen. Die Zelle, die man gerade bearbeitet, kann im `command mode` oder `edit mode` sein. \n",
"\n",
"\n",
"\n",
"```{html}\n",
"<table>\n",
" <caption>Einige Kommandos</caption>\n",
" <thead>\n",
" <tr>\n",
" <th></th><th>command mode</th><th>edit mode</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr> \n",
" <td>Mode aktivieren</td><td>ESC</td>\n",
" </tr>\n",
" </tbody> \n",
"</table>\n",
"```\n",
"\n",
"\n",
"\n",
"| | *command mode* | *edit mode* |\n",
"|:-------|:---------------:|:-----------:|\n",
"| Mode aktivieren | `ESC` | Doppelklick oder `Enter` in Zelle |\n",
"| neue Zelle | `b` | `Alt-Enter` |\n",
"| Zelle löschen | `dd` | |\n",
"| Notebook speichern | `s` | `Ctrl-s` |\n",
"\n",
"\n",
"\n",
"- Notebook speichern:\n",
"\n",
" - `Ctrl-s` in Edit Mode\n",
" - `s` in Command mode\n",
" - `Menu -> File -> Save & Checkpoint`\n",
" - `Menu -> File -> Rename`: Umbenennen (falls es noch\n",
" \\\"Untitled1\\\" heißt) `<br>`{=html}`<br>`{=html}\n",
"\n",
"- Notebook schließen:\n",
"\n",
" - `Menu -> File -> Close & Halt` `<br>`{=html}`<br>`{=html}\n",
"\n",
"- Ausführen von Julia:\n",
"\n",
" - `Ctrl-Enter`: Run cell\n",
" - `Shift-Enter`: Run cell, move to next cell\n",
" - `Alt-Enter`: run cell, insert new cell below\n",
"\n",
"\n",
"\n",
"bla backslash\n",
"\n",
"![](../images/notebook002.png)\n",
"\n",
"bla backslash\n",
"\n",
"\n",
"------------------------------------------------------------------------\n",
"\n",
"Wenn eine Zelle \\\"arbeitet\\\", wird ihre Zellen-Nummer zu einem `*` und\n",
"die `kernel busy`-Anzeige (Voller schwarzer Punkt oben rechts neben der\n",
"Julia-Version) erscheint. Falls das zu lange dauert (ein *infinite loop*\n",
"ist schnell programmiert), dann\n",
"\n",
"- `Menu -> Kernel -> Interrupt` anklicken; falls das wirkungslos ist,\n",
"- `Menu -> Kernel -> Restart` anklicken.\n",
"\n",
"Danach müssen alle Zellen, die weiterhin benötigte Definitionen,\n",
"`using`-Anweisungen etc enthalten, wieder ausgeführt werden!\n",
"\n",
"------------------------------------------------------------------------\n",
"\n",
"**Am Ende der Arbeit bitte immer:**\n",
"\n",
"- `Menu -> File -> Save & Checkpoint`\n",
"- `Menu -> File -> Close & Halt`\n",
"- `Logout`\n",
":::\n",
"\n",
"::: {#73820119 .cell .markdown}\n",
"#### Markdown-Zellen\n",
"\n",
"neben den üblichen Markdown-Elementen können auch diese auch\n",
"`HTML`-Anweisungen und Mathematische Formeln in LaTeX-Form enthalten.\n",
"LaTeX-Formeln werden in `$...$` oder `$$...$$` (Display-Form)\n",
"eingeschlossen.\n",
":::\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.8.5",
"language": "julia",
"name": "julia-1.8"
}
},
"nbformat": 4,
"nbformat_minor": 5
}