mirror of
https://github.com/Steffo99/sophon.git
synced 2024-12-22 06:44:21 +00:00
🎓 Complete the presentation?
This commit is contained in:
parent
0ee01a0b43
commit
ae6a5b63cc
7 changed files with 84 additions and 46 deletions
|
@ -1,6 +1,7 @@
|
||||||
<component name="InspectionProjectProfileManager">
|
<component name="InspectionProjectProfileManager">
|
||||||
<profile version="1.0">
|
<profile version="1.0">
|
||||||
<option name="myName" value="Project Default" />
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="BibtexUnusedEntry" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="CssUnresolvedCustomProperty" enabled="false" level="ERROR" enabled_by_default="false" />
|
<inspection_tool class="CssUnresolvedCustomProperty" enabled="false" level="ERROR" enabled_by_default="false" />
|
||||||
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||||
<inspection_tool class="ES6ConvertVarToLetConst" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
<inspection_tool class="ES6ConvertVarToLetConst" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
||||||
|
|
|
@ -164,3 +164,4 @@ todo_link_only = False
|
||||||
bibtex_bibfiles = [
|
bibtex_bibfiles = [
|
||||||
"refs.bib",
|
"refs.bib",
|
||||||
]
|
]
|
||||||
|
bibtex_reference_style = "super"
|
||||||
|
|
BIN
thesis/source/docs/3_presentazione/hist_example.png
(Stored with Git LFS)
Normal file
BIN
thesis/source/docs/3_presentazione/hist_example.png
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -5,20 +5,27 @@
|
||||||
Presentazione
|
Presentazione
|
||||||
*************
|
*************
|
||||||
|
|
||||||
.. todo::
|
Nelle scienze, sia teoriche, sia sperimentali, si verifica spesso la necessità di dover prendere appunti e condividere appunti sulla ricerca effettuata.
|
||||||
|
|
||||||
Scrivere questa sezione.
|
Mentre in passato a tale scopo venivano utilizzati quaderni di carta (detti anche *"blocchi note laboratoriali"* :cite:`enwiki:993314047`), con la nascita dell'informatica si iniziarono ad utilizzare strumenti digitali, più comodi ed efficienti: inizialmente, semplici word processor come *Microsoft Word*, arrivando poi negli ultimi anni ai più avanzati e interattivi `notebook computazionali <Notebook computazionali>`.
|
||||||
|
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: notebook computazionali
|
single: notebook computazionale
|
||||||
|
single: celle
|
||||||
|
|
||||||
Notebook computazionali
|
Notebook computazionali
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
.. todo::
|
I *notebook computazionali* sono documenti interattivi frequentemente utilizzati nel mondo della ricerca, in quanto permettono di documentare l'analisi di dati con feedback grafico immediato.
|
||||||
|
|
||||||
Scrivere questa sezione.
|
Tipicamente, sono composti da tante **celle** contenenti codice in un qualche linguaggio di programmazione, le quali sono eseguite e il cui output è mostrato all'utente sotto forma di testo, equazioni, immagini, grafici, o anche widget interattivi come slider o aree di input testo.
|
||||||
|
|
||||||
|
Alcuni esempi di software per la scrittura di notebook computazionali sono `Jupyter`, `Wolfram Mathematica <https://www.wolfram.com/mathematica/>`_, `MATLAB Live Editor <https://it.mathworks.com/products/matlab/live-editor.html>`_...
|
||||||
|
|
||||||
|
.. figure:: hist_example.png
|
||||||
|
|
||||||
|
Un esempio di notebook `Jupyter` con una cella di testo e una cella di Python che emette un grafico. :cite:`matplotlib:histograms`
|
||||||
|
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
|
@ -29,43 +36,29 @@ Jupyter
|
||||||
|
|
||||||
*Jupyter* è un'applicazione che permette la scrittura e la visualizzazione di `notebook computazionali <Notebook computazionali>`.
|
*Jupyter* è un'applicazione che permette la scrittura e la visualizzazione di `notebook computazionali <Notebook computazionali>`.
|
||||||
|
|
||||||
È composta da (almeno) 3 parti:
|
È composta da 3 (o più) parti:
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: Jupyter; kernel
|
single: Jupyter; kernel
|
||||||
|
single: IPython
|
||||||
|
|
||||||
- un **kernel** per ogni linguaggio di programmazione che si desidera utilizzare nel notebook;
|
- | Un **kernel** per il linguaggio di programmazione che si desidera utilizzare nel notebook (o, se si desidera più linguaggi, un kernel per ciascun linguaggio).
|
||||||
|
| Il kernel si occupa di eseguire su richiesta le celle del notebook, e di rispondere alla richiesta con i risultati dell'esecuzione.
|
||||||
.. note::
|
| Il kernel predefinito di Jupyter è `IPython <https://ipython.org/>`_, che permette di utilizzare il linguaggio di programmazione `Python <https://www.python.org/>`_.
|
||||||
|
|
||||||
.. index::
|
|
||||||
|
|
||||||
single: IPython
|
|
||||||
|
|
||||||
Ad esempio, `IPython <https://ipython.org/>`_ è un kernel Jupyter per il linguaggio di programmazione `Python <https://www.python.org/>`_.
|
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: Jupyter; server
|
single: Jupyter; server
|
||||||
|
|
||||||
- un **server** che gestisce le richieste dell'utente di modifica del notebook, salvandole sul file system, e di valutazione celle, inoltrando la richiesta al kernel corrispondente;
|
- | Un **server** che gestisce le richieste dell'utente di interazione con il notebook, inoltrandole a un kernel se necessario.
|
||||||
|
| Il server ufficiale di Jupyter è `Jupyter Server <https://github.com/jupyter-server/jupyter_server>`_.
|
||||||
.. note::
|
|
||||||
|
|
||||||
Attualmente, l'unico server Jupyter esistente è `Jupyter Server <https://github.com/jupyter-server/jupyter_server>`_.
|
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: Jupyter; client
|
single: Jupyter; client
|
||||||
|
single: Jupyter; Notebook
|
||||||
|
single: Jupyter; Lab
|
||||||
|
|
||||||
- un **client** che mostra in un formato user-friendly il contenuto del notebook e gli permette di modificarlo con facilità, connettendosi al relativo server.
|
- | un **client** che mostra in un formato user-friendly il contenuto del notebook e gli permette di modificarlo con facilità, connettendosi al relativo server.
|
||||||
|
| Esistono due client ufficiali per Jupyter: il client di vecchia generazione `Jupyter Notebook <https://github.com/jupyter/notebook>`_ e il client di nuova generazione `JupyterLab <https://github.com/jupyterlab>`_.
|
||||||
.. note::
|
|
||||||
|
|
||||||
.. index::
|
|
||||||
|
|
||||||
single: Jupyter; Notebook
|
|
||||||
single: Jupyter; Lab
|
|
||||||
|
|
||||||
Esistono due client per Jupyter: il client di vecchia generazione `Jupyter Notebook <https://github.com/jupyter/notebook>`_ e il client di nuova generazione `JupyterLab <https://github.com/jupyterlab>`_.
|
|
||||||
|
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
|
@ -74,7 +67,8 @@ Jupyter
|
||||||
Hosting di Jupyter
|
Hosting di Jupyter
|
||||||
==================
|
==================
|
||||||
|
|
||||||
È possibile effettuare l'hosting di `Jupyter` in vari modi, in base a come esso verrà utilizzato.
|
È possibile utilizzare `Jupyter` in diversi modi, ciascuno con alcuni vantaggi e svantaggi.
|
||||||
|
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: Jupyter; hosting locale
|
single: Jupyter; hosting locale
|
||||||
|
@ -86,11 +80,9 @@ Hosting locale
|
||||||
|
|
||||||
Così facendo, le celle verranno eseguite con le risorse del proprio computer, e il notebook sarà accessibile solo dal computer che sta eseguendo il server.
|
Così facendo, le celle verranno eseguite con le risorse del proprio computer, e il notebook sarà accessibile solo dal computer che sta eseguendo il server.
|
||||||
|
|
||||||
È il modo più facile per usare Jupyter, ma rende impossibile la collaborazione e rende impossibile eseguire alcune operazioni, in quanto le risorse del proprio computer potrebbero non essere sufficienti.
|
È un ottimo modo per lavorare su progetti personali, in quanto offre la massima personalizzazione dell'ambiente, e per lavorare offline, in quanto è in grado di funzionare senza alcuna connessione ad Internet.
|
||||||
|
|
||||||
.. todo::
|
In base al proprio sistema operativo, però, potrebbe risultare difficile da installare, e in base alla propria configurazione di rete, collaborare su un progetto potrebbe essere impossibile (senza appoggiarsi a strumenti esterni di scambio file, come email, o sistemi di controllo versione).
|
||||||
|
|
||||||
Rivedere vantaggi e svantaggi.
|
|
||||||
|
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
|
@ -105,11 +97,9 @@ Come software-as-a-service
|
||||||
|
|
||||||
Alcuni esempi di cloud provider che forniscono questo servizio sono Google, con `Google Colaboratory <https://colab.research.google.com/#>`_ e Amazon, con `SageMaker Notebook <https://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html>`_.
|
Alcuni esempi di cloud provider che forniscono questo servizio sono Google, con `Google Colaboratory <https://colab.research.google.com/#>`_ e Amazon, con `SageMaker Notebook <https://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html>`_.
|
||||||
|
|
||||||
Entrambe le opzioni sono un ottimo modo per utilizzare Jupyter, anche in collaborazione con più persone, ma hanno il difetto di essere costose o poco personalizzabili.
|
Generalmente, il modello software-as-a-service è il modo più semplice per usare Jupyter, in quanto non richiede di effettuare alcuna installazione sul proprio computer, e in genere permette la collaborazione online con altri utenti.
|
||||||
|
|
||||||
.. todo::
|
Purtroppo, però, offre poche opzioni per personalizzare l'ambiente, e, se si necessitano più risorse di quelle offerte gratuitamente dai provider, il costo cresce molto rapidamente.
|
||||||
|
|
||||||
Rivedere vantaggi e svantaggi.
|
|
||||||
|
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
|
@ -119,12 +109,10 @@ Entrambe le opzioni sono un ottimo modo per utilizzare Jupyter, anche in collabo
|
||||||
Hosting on-premises
|
Hosting on-premises
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
È possibile configurare un server della propria istituzione in modo tale che ospiti uno o più server Jupyter a cui si connetteranno i suoi utenti.
|
È possibile configurare un server della propria istituzione in modo tale che esegua uno o più server Jupyter a cui si connetteranno gli utenti.
|
||||||
|
|
||||||
A tale scopo, è disponibile il progetto `JupyterHub <https://jupyter.org/hub>`_, in grado di gestire oltre centinaia di utenti e notebook.
|
A tale scopo, è disponibile il progetto `JupyterHub <https://jupyter.org/hub>`_, in grado di gestire migliaia di utenti simultanei :cite:`jupyter:ifaq`, ciascuno con il proprio notebook.
|
||||||
|
|
||||||
È complesso da installare, ma performante ed efficace; è però molto essenziale, in quanto è un progetto parecchio recente, e carente in certe funzionalità, come collaborazione simultanea e autenticazione esterna.
|
È performante ed efficace, e lascia completa libertà agli utenti di personalizzare il loro ambiente di lavoro.
|
||||||
|
|
||||||
.. todo::
|
L'interfaccia di gestione utenti e notebook è però ancora molto essenziale, essendo un progetto piuttosto nuovo, e non supporta nativamente la collaborazione multiutente su un singolo notebook, preferendo il modello *"tanti server Jupyter da utente singolo"* :cite:`jupyter:hub`.
|
||||||
|
|
||||||
Rivedere vantaggi e svantaggi.
|
|
||||||
|
|
|
@ -1,3 +1,14 @@
|
||||||
*********
|
*********
|
||||||
Appendice
|
Appendice
|
||||||
*********
|
*********
|
||||||
|
|
||||||
|
.. only:: html
|
||||||
|
|
||||||
|
.. rubric:: Bibliografia
|
||||||
|
|
||||||
|
.. todo::
|
||||||
|
|
||||||
|
Capire perchè i label della bibliografia vengono ignorati.
|
||||||
|
|
||||||
|
.. bibliography::
|
||||||
|
:all:
|
||||||
|
|
|
@ -10,12 +10,14 @@ Progettazione e sviluppo di Sophon, applicativo cloud a supporto della ricerca
|
||||||
docs/1_sinossi/index
|
docs/1_sinossi/index
|
||||||
docs/2_introduzione/index
|
docs/2_introduzione/index
|
||||||
docs/3_presentazione/index
|
docs/3_presentazione/index
|
||||||
|
|
||||||
|
docs/9_appendice/index
|
||||||
|
|
||||||
.. docs/4_requisiti/index
|
.. docs/4_requisiti/index
|
||||||
.. docs/5_progetto/index
|
.. docs/5_progetto/index
|
||||||
.. docs/6_implementazione/index
|
.. docs/6_implementazione/index
|
||||||
.. docs/7_applicazione/index
|
.. docs/7_applicazione/index
|
||||||
.. docs/8_conclusione/index
|
.. docs/8_conclusione/index
|
||||||
.. docs/9_appendice/index
|
|
||||||
|
|
||||||
.. only:: html
|
.. only:: html
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
@misc{
|
||||||
|
matplotlib:histograms,
|
||||||
|
author = {Matplotlib},
|
||||||
|
title = {Histograms},
|
||||||
|
howpublished = {https://web.archive.org/web/20210815080710/https://matplotlib.org/stable/gallery/statistics/hist.html},
|
||||||
|
note = {Accessed: 2021-11-15},
|
||||||
|
}
|
||||||
|
|
||||||
|
@misc{
|
||||||
|
jupyter:ifaq,
|
||||||
|
author = {Project Jupyter},
|
||||||
|
title = {Institutional FAQ},
|
||||||
|
howpublished = {https://web.archive.org/web/20200317115530/https://jupyterhub.readthedocs.io/en/stable/getting-started/institutional-faq.html},
|
||||||
|
note = {Accessed: 2021-11-15},
|
||||||
|
}
|
||||||
|
|
||||||
|
@misc{
|
||||||
|
jupyter:hub,
|
||||||
|
author = {Project Jupyter},
|
||||||
|
title = {JupyterHub},
|
||||||
|
howpublished = {https://jupyterhub.readthedocs.io/en/stable/},
|
||||||
|
note = {value},
|
||||||
|
}
|
||||||
|
|
||||||
|
@misc{
|
||||||
|
enwiki:993314047,
|
||||||
|
author = {Wikipedia},
|
||||||
|
title = {Electronic lab notebook --- {Wikipedia}{,} The Free Encyclopedia},
|
||||||
|
year = {2020},
|
||||||
|
howpublished = {https://en.wikipedia.org/w/index.php?title=Electronic_lab_notebook&oldid=993314047},
|
||||||
|
note = {Accessed 2021-11-15},
|
||||||
|
}
|
Loading…
Reference in a new issue