<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Jupyter notebook
Sposoby interakcji z programem komputerowym
Step1:  widgets
Step2:  Notebook magics
Komórki zaczynające się od 
"%" - line magics
"%%" - cell magics
Line magics - przykład
Step3:  Widget callback przykład
<ASSISTANT_TASK:>
Python Code:
for i in range(4):
    print(i)
%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
X = np.linspace(-np.pi, np.pi, 656)
F = np.sin(1/(X**2+0.07))
plt.plot(X,F)
Explanation: Jupyter notebook
Sposoby interakcji z programem komputerowym:
terminal tekstowy
GUI
notatnik (NEW!)
Jupyter
Środowisko typu "notatnik"
<img src="http://jupyter.org/assets/main-logo.svg" width="20%" align="right">
Notatnik:
Dokument
Środowisko
Aplikacja "sieciowa"
Jupyterhub
<img src="http://jupyter.org/assets/hublogo.svg" width="50%" align="right">
Jupyterhub
<img src="figs/what_is_jupyterhub.png"  align='center'>
* http://www.slideshare.net/willingc/jupyterhub-a-thing-explainer-overview-66104290 *
alfa - jupyterhub @ UŚ
<img src="http://jupyter.org/assets/hublogo.svg" width='120px' align='right'>
adres: http://alfa.smcebi.us.edu.pl
Wymaga współczesnej przeglądarki internetowej.
Informacje:
Admin: Mirosław Ziółkowski
strona www: http://www.smcebi.us.edu.pl/infrastruktura-it/
                        smcebi.edu.pl
zmiana hasła
Jupyter notebook
komórki tekstowe (markdown cells) - przykład
komórki z kodem (code cells)
kernel - czyli jądro obsługuje komórki z kodem
lista kerneli (jąder) jest długa....
system $\LaTeX$:
\begin{align}
  \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \
  \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \
  \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \
  \nabla \cdot \vec{\mathbf{B}} & = 0
\end{align}
Markdown
asdfa sdfa sdf adf df
asdf asfd s
asdf asdf
asd fas f
asd fa
a dsfa
asd fa
sadf asd
End of explanation
from ipywidgets import interact
def f(x):
    print(x)
interact(f, x=10);
from ipywidgets import widgets
w = widgets.IntSlider(min=0,max=10,value=3,step=1,width="430px")
w
w.value
w.value = 4
Explanation: widgets
End of explanation
from  math import sin,cos
%timeit sin(cos(sin(1.23))) 
import numpy as np 
%timeit np.sum(np.sin(np.random.randn(int(1e6))))
%timeit np.sum(np.sin(np.random.randn(int(1e6))))
%time np.sum(np.sin(np.random.randn(int(1e6))))
%%sh
pwd
for i in `ls`
do
 echo Plik: $i
done
Explanation: Notebook magics
Komórki zaczynające się od 
"%" - line magics
"%%" - cell magics
Line magics - przykład
End of explanation
from ipywidgets import widgets
w = widgets.Text()
w
def mojcallback(w):
    
    print("OK ----",w.value)
    
w.on_submit(mojcallback)
w.value = "dads"
Explanation: Widget callback przykład
End of explanation
<END_TASK>