{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Uporaba oblačnega računanja z Jupytrom\n", "\n", "

Vedno bolj popularna je uporaba oblačnih storitev (Cloud computing) za izračune in izrise. Ne samo v pedagoške namene, tudi v raziskovalne in poslovne. To področje se hitro razvija, zato bodo lahko opisane storitve čez nekaj let popolnoma drugačne. Pa vendar, zanima nas trenutno (2019) stanje na tem področju. 

\n", "

Osredotočil se bom le na možnosti uporabe oblačnih storitev za programski jezik Python, čeprav mnoge spletne strani omogočajo tudi uporabo drugih programskih jezikov. Načeloma lahko Python kodo napišemo v poljubnem urejevalniku (editorju), vendar je za pedagoške (in tudi druge namene) zanimiva izdelava Python zvezka (Jupyter Notebook), ki poleg kode lahko vključuje tudi tekst in slike. Za tiste, ki bi želeli kreirati Python zvezke na svojem računalniku, je morda najlažje naložiti Python in ostala potrebna orodja z aplikacijo Anaconda. Za pisanje enačb v zvezku je potrebno uporabiti sintakso Latex, ki je tudi sicer zanimiva alternativa Wordu za izdelavo seminarjev, diplom, učbenikov, doktoratov J. Trenutno je popularna uporaba oblačne storitve Overleaf, ki omogoča tudi skupinsko delo.

\n", "

 

\n", "

Bralnik Nbviewer

\n", "

Obstaja več spletnih portalov, ki omogočajo branje, urejanje in zaganjanje Pythonovih zvezkov. Najbolj enostaven je bralnik nbviewer (https://nbviewer.jupyter.org/). 

\n", "

Omogoča sicer le ogled Jupyter zvezkov, ne more pa se jih z njim urejati.

\n", "

 

\n", "\n", "

\"image001\"

\n", "\n", "\n", "

Se pa lahko stran shrani ali pa s klikom zažene v portalu Binder (https://mybinder.org/), ki pa omogoča tudi urejanje in shranjevanje zvezkov. Na primer, na githubu je shranjen Jupyter zvezek oe1_Q_i.ipnb s polnim naslovom https://github.com/osnove/Dodatno/blob/master/oe1_Q_i.ipynb .To povezavo se lahko vpiše na strani nbviewer; odpre se Jupyter zvezek, ki se ga lahko pregleduje, ne more pa se ga spreminjati. 

\n", "

 

\n", "

\"Slika

\n", "

Binder

\n", "

S klikom na tri krogce v bralniku Nbviewer desno zgoraj, se bo zvezek odprl v okolju Binder, ki omogoča tako izvajanje, kot tudi urejanje in shranjevanje. Druga možnost je, da se na strani mybinder.org vpiše naslov osnovne mape, kjer so shranjeni Jupyter zvezki (https://github.com/osnove/Dodatno) in zažene (Launch) Binder. Ali pa se zažene direktno s klikom na povezavo, ki jo predlaga Binder glede na vpisan git naslov.

\n", "

\"Binder\"

\n", "

 V konkretnem primeru je to https://mybinder.org/v2/gh/osnove/Dodatno/master.  Nato je potrebno malo potrpljenja, da Binder pripravi vse potrebno za delo. Za tiste, ki bi radi sami ustvarili svoje gite, velja opozoriti, da je potrebno znotraj mape kreirati datoteko requirements.txt, v katero se vpiše module, ki jih mora naložiti Binder, da bo Jupyter pravilno konfiguriran.  

\n", "

  

\n", "\n", "

Google Colaboratory 

\n", "

Podobno se da izvajati Jupyter zvezke v Googlovi oblačni storitvi Colaboratory.  V Colabu lahko izvajate Jupyter zvezke le, če imate odprt Googlov račun (gmail), saj se zvezek naloži v Gdrive na vašem računu. Ena možnost zagona zvezka v okolju Colab je, da se poda dikretno povezavo na zvezek v Gdrive-u, klikni primer

\n", "

\"slika

\n", "

Za lažje delo je dobro imeti naložen vtičnik (extension) “Open in Colab”, ki omogoča zaganjanje zvezkov neposredno iz GDrivea.    Lahko pa se odpre spletno stran Colaboratory in se izbere File/Open Notebook in nato Github ali Gdrive naslov. Lahko pa se zažene zvezek neposredno v Colabu.  Naslov je sestavljen iz naslova spletne strani Colaba 

\n", "

https://colab.research.google.com/ z dodatkom naslova Git datoteke npr. github/osnove/Dodatno/blob/master/oe1_Q_i.ipynb . Povezava je sestavljena iz naslova Colaba in Gita. Colab omogoča uporabo več knjižnic. Nekaj primerov uporabe je tu. Bistvena prednost Colaba v primerjavi z Binderjem je v hitrosti nalaganja Jupyter zvezka, saj Colab mnogo hitreje odpre zvezek in omogoča delo z njim. Vendar trenutno kaže, da Colab ne omogoča vseh interaktivnih možnosti, kot jih omogoča Binder. 

\n", "

  

\n", "\n", "

Obstajajo tudi druge spletne strani, ki omogočajo “oblačno” delo z Jupyter zvezki. Za primerjavo različnih platform si preberite to stran.

\n", "\n", "\n", "

 

\n", "

Super na kratko o urejanju Jypter zvezkov

\n", "

Še par besed o delu z Jupyter zvezki: zvezek je sestavljen iz posameznih celic, ki so lahko tekstovne  ali pa računalniška koda. S klikom na posamezno celico se jo lahko ureja. Zažene se lahko celoten zvezek z Runtime→Run all ali pa posamezno celico s Ctrl Enter.  Zvezek se lahko shrani lokalno, na gdrive ali na github; lahko se odpre novega , praznega, itd.  \n", " \"Slika

\n", "

Na spletu lahko najdete več informacij, za začetek npr. na tej strani.

" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(20+6.280000000000001j)\n", "navidezna moč je (90+28.260000000000005j)\n" ] } ], "source": [ "# To je tipična celica s kodo\n", "\n", "import numpy as np # vnos modula numpy\n", "L=100e-3\n", "R=20\n", "f=10\n", "I=3\n", "\n", "omega=2*3.14*f\n", "Z=R+1j*omega*L # izračun impedance, 1j je imaginarno število\n", "print(Z) # izpis impedance\n", "\n", "S=I*I*Z/2 # izračun moči\n", "print('navidezna moč je',S)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" }, "nbTranslate": { "displayLangs": [ "*" ], "hotkey": "alt-t", "langInMainMenu": true, "sourceLang": "en", "targetLang": "fr", "useGoogleTranslate": true }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Kazalo", "title_sidebar": "Kazalo", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }