{"id":18189881,"url":"https://github.com/bmedicke/amalthea","last_synced_at":"2026-04-05T21:32:14.820Z","repository":{"id":141460183,"uuid":"365425719","full_name":"bmedicke/amalthea","owner":"bmedicke","description":"collection of 🎉 Jupyter Notebooks 🐐   for JupyterLab, creative coding (voronoi diagrams, perlin noise, chaos game), small demos and tutorials","archived":false,"fork":false,"pushed_at":"2022-08-05T09:29:57.000Z","size":8473,"stargazers_count":1,"open_issues_count":10,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T14:49:30.695Z","etag":null,"topics":["data-science","frequency-analysis","jupyter-notebook","jupyterlab","matplotlib","mqtt","paho","pandas","perlin-noise","python","python3","scipy","seaborn"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bmedicke.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-08T05:19:37.000Z","updated_at":"2024-09-03T02:40:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"00b5956c-0935-4857-9a9b-82ed87f81b22","html_url":"https://github.com/bmedicke/amalthea","commit_stats":{"total_commits":62,"total_committers":1,"mean_commits":62.0,"dds":0.0,"last_synced_commit":"a8c86c301e01144e3a025bec2e0051cd4d67bf6c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bmedicke/amalthea","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmedicke%2Famalthea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmedicke%2Famalthea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmedicke%2Famalthea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmedicke%2Famalthea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bmedicke","download_url":"https://codeload.github.com/bmedicke/amalthea/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmedicke%2Famalthea/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31451438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"ssl_error","status_checked_at":"2026-04-05T21:22:51.943Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-science","frequency-analysis","jupyter-notebook","jupyterlab","matplotlib","mqtt","paho","pandas","perlin-noise","python","python3","scipy","seaborn"],"created_at":"2024-11-03T04:04:24.318Z","updated_at":"2026-04-05T21:32:14.756Z","avatar_url":"https://github.com/bmedicke.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"![amalthea logo](samples/amalthea-logo.png)\n# Amalthea - notebooks for JupyterLab\n\n## table of contents\n\n\u003c!-- vim-markdown-toc GFM --\u003e\n\n* [the notebooks](#the-notebooks)\n  * [creative coding](#creative-coding)\n    * [perlin-noise](#perlin-noise)\n  * [demos](#demos)\n    * [mqtt-publisher \u0026 mqtt-subscriber](#mqtt-publisher--mqtt-subscriber)\n    * [frequency-analysis-caesar-cipher](#frequency-analysis-caesar-cipher)\n    * [euclidean-algorithm](#euclidean-algorithm)\n    * [pomodoro](#pomodoro)\n    * [speedtest](#speedtest)\n  * [tutorials](#tutorials)\n* [setup \u0026 development](#setup--development)\n  * [venv](#venv)\n  * [custom shortcuts and settings for JupyterLab](#custom-shortcuts-and-settings-for-jupyterlab)\n  * [custom shortcuts and settings for Jupyter Notebook](#custom-shortcuts-and-settings-for-jupyter-notebook)\n  * [requirement management](#requirement-management)\n* [used libraries](#used-libraries)\n\n\u003c!-- vim-markdown-toc --\u003e\n\n## the notebooks\n\n### creative coding\n\n#### perlin-noise\n\n![perlin noise example 3](samples/perlin-noise-03.svg)\n![perlin noise example 0](samples/perlin-noise-00.svg)\n![perlin noise example 4](samples/perlin-noise-04.svg)\n![perlin noise example 2](samples/perlin-noise-02.svg)\n![perlin noise example 1](samples/perlin-noise-01.svg)\n![perlin noise example 5](samples/perlin-noise-05.svg)\n\n### demos\n\n#### mqtt-publisher \u0026 mqtt-subscriber\n\nCross-notebook communication via MQTT. For a practical example see [bmedicke/quantum_cryptography](https://github.com/bmedicke/quantum_cryptography).\n\nPublishing a message:\n![mqtt pubisher sample](samples/mqtt-publisher.png)\n\nReceiving a message from a subscribed topci:\n![mqtt subscriber sample](samples/mqtt-subscriber.png)\n\n#### frequency-analysis-caesar-cipher\n\nBreaking a caesar ciphre by using a frequency analysis to calculate the key.\n\n![frequency-analysis sample](samples/frequency-analysis.png)\n![caesar-cipher sample](samples/caesar-cipher.png)\n\n#### euclidean-algorithm\n\nThis notebooks calculates the greatest common divisor and colors numbers\nto make it easier to keep track of the steps.\n\n![euclidean-algorithm sample](samples/euclidean-algorithm.png)\n\n#### pomodoro\n\nAn image showing the current status in a Pomodoro cycle is displayed (via Markdown output). The data is read from an csv file and automatically updates when it changes.\n\n![pomodoro_working](samples/pomodoro.gif)\n\n#### speedtest\n\nThis notebook analysis a csv file created by a script running speedtest-cli to compare internet provider speeds.\n\n![speedtest sample 0](samples/speedtest00.png)\n![speedtest sample 1](samples/speedtest01.png)\n\n### tutorials\n\nA series of tutorials covering Jupyter and useful libraries.\n\n## setup \u0026 development\n\n### venv\n\n```sh\n# initial setup:\ngit clone https://github.com/bmedicke/amalthea.git\ncd amalthea\npython3 -m venv env\nsource env/bin/activate\npip install -r requirements.txt\n\n# subsequent starts:\nsource env/bin/activate # if not active.\njupyter notebook notebooks/\n\n# if you don't want your browser to open add the flag: --no-browser\n# to access the notebook from another device add: --ip=0.0.0.0\n```\n\n### custom shortcuts and settings for JupyterLab\n\n```json\n{\n  \"shortcuts\": [\n    {\n      \"command\": \"notebook:run-cell\",\n      \"keys\": [ \";\" ],\n      \"selector\": \".jp-Notebook:focus\"\n    },\n      {\n      \"command\": \"kernelmenu:restart-and-clear\",\n           \"keys\": [ \"Ctrl L\" ],\n          \"selector\": \".jp-Notebook:focus\"\n      },\n            {\n      \"command\": \"notebook:restart-run-all\",\n           \"keys\": [ \"Ctrl Shift R\" ],\n          \"selector\": \".jp-Notebook:focus\"\n      }\n  ]\n}\n```\n\n* list of commands: https://jupyterlab.readthedocs.io/en/latest/user/commands.html\n\n### custom shortcuts and settings for Jupyter Notebook\n\nEdit the file: `~/.jupyter/nbconfig/notebook.json`.\n\n```json\n{\n  \"Cell\": {\n    \"cm_config\": {\n      \"lineNumbers\": true\n    }\n  },\n  \"keys\": {\n    \"command\": {\n      \"bind\": {\n        \";\": \"jupyter-notebook:run-cell\",\n        \"?\": \"jupyter-notebook:show-keyboard-shortcuts\",\n        \"ctrl-l\": \"jupyter-notebook:clear-cell-output\",\n        \"g,c\": \"jupyter-notebook:restart-kernel-and-clear-output\",\n        \"g,i\": \"jupyter-notebook:interrupt-kernel\",\n        \"g,r\": \"jupyter-notebook:restart-kernel-and-run-all-cells\",\n        \"g,s\": \"jupyter-notebook:shutdown-kernel\",\n        \"h\": \"jupyter-notebook:scroll-notebook-up\",\n        \"i\": \"jupyter-notebook:enter-edit-mode\",\n        \"l\": \"jupyter-notebook:scroll-notebook-down\",\n        \"s\": \"jupyter-notebook:split-cell-at-cursor\",\n        \"shift-/\": \"jupyter-notebook:show-keyboard-shortcuts\",\n        \"cmd-c\": \"jupyter-notebook:copy-cell\",\n        \"ctrl-v\": \"jupyter-notebook:paste-cell-replace\",\n        \"shift-j\": \"jupyter-notebook:extend-selection-below\",\n        \"shift-k\": \"jupyter-notebook:extend-selection-above\",\n        \"ctrl-j\": \"jupyter-notebook:move-cell-down\",\n        \"ctrl-k\": \"jupyter-notebook:move-cell-up\"\n      },\n      \"unbind\": [\n        \"l\",\n        \"h\",\n        \"i,i\",\n        \"s\"\n      ]\n    }\n  },\n  \"Notebook\": {\n    \"Header\": true,\n    \"Toolbar\": true\n  }\n}\n```\n\n### requirement management\n\n**installing libraries from git repos that are not on PyPi**\n\n```sh\npip install -e git+https://github.com/pvigier/perlin-numpy#egg=perlin-numpy\n```\n\n**updating the `requirements.txt` file after adding or updating libs**\n\n```sh\npip freeze \u003e requirements.txt\n```\n\n## used libraries\n\nMost of these are in the PyPi and thus can be installed with `pip`. For the rest the pip-egg command will be listed.\n\n* [ipympl](https://github.com/matplotlib/ipympl)\n  * for `%matplotlib widget`\n* [matplotlib](https://github.com/matplotlib/matplotlib)\n* [paho-mqtt](https://github.com/eclipse/paho.mqtt.python)\n* [pandas](https://github.com/pandas-dev/pandas)\n* [perlin-numpy](https://github.com/pvigier/perlin-numpy)\n  * `pip install -e git+https://github.com/pvigier/perlin-numpy#egg=perlin-numpy`\n* [scipy](https://github.com/scipy/scipy)\n* [seaborn](https://github.com/mwaskom/seaborn)\n* [termcolor](https://pypi.org/project/termcolor/)\n* [ipywidgets](https://github.com/jupyter-widgets/ipywidgets)\n\n---\n\nInstallation without using `requirements.txt`:\n\n```sh\npip install matplotlib paho-mqtt pandas scipy seaborn termcolor ipympl jupyterlab\\\n    -e git+https://github.com/pvigier/perlin-numpy#egg=perlin-numpy\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmedicke%2Famalthea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbmedicke%2Famalthea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmedicke%2Famalthea/lists"}