{ "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: \n", "2. als Editor/IDE **Visual Studio Code** installieren: \n", "3. im VS Code Editor die **Julia language extension** installieren: \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: \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", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Einige Kommandos
command modeedit mode
Mode aktivierenESC
\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) `
`{=html}`
`{=html}\n", "\n", "- Notebook schließen:\n", "\n", " - `Menu -> File -> Close & Halt` `
`{=html}`
`{=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 }