1
Fork 0
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:
Steffo 2021-11-16 04:50:53 +01:00
parent 0ee01a0b43
commit ae6a5b63cc
Signed by: steffo
GPG key ID: 6965406171929D01
7 changed files with 84 additions and 46 deletions

View file

@ -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" />

View file

@ -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

Binary file not shown.

View file

@ -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.

View file

@ -1,3 +1,14 @@
********* *********
Appendice Appendice
********* *********
.. only:: html
.. rubric:: Bibliografia
.. todo::
Capire perchè i label della bibliografia vengono ignorati.
.. bibliography::
:all:

View file

@ -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

View file

@ -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},
}