Skip to content

Commit 2304547

Browse files
authored
Merge pull request #91 from gopherdata/update-for-jos
Add JOSS paper data
2 parents b0aca77 + 9ef841f commit 2304547

File tree

3 files changed

+107
-0
lines changed

3 files changed

+107
-0
lines changed

codemeta.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld",
3+
"@type": "Code",
4+
"author": [
5+
6+
],
7+
"identifier": "",
8+
"codeRepository": "https://github.com/gopherdata/gophernotes",
9+
"datePublished": "2017-12-13",
10+
"dateModified": "2017-12-13",
11+
"dateCreated": "2017-12-13",
12+
"description": "The Go kernel for Jupyter notebooks and nteract. ",
13+
"keywords": "go, jupyter, nteract, golang, data science",
14+
"license": "GPL v3.0",
15+
"title": "gophernotes",
16+
"version": "v1.0.0-RC"
17+
}

paper/paper.bib

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
@Software{Gophernotes,
2+
title = "Gophernotes",
3+
booktitle = "Gophernotes",
4+
author = "Whitenack, Daniel L.",
5+
howpublished = "\url{https://github.com/gopherdata/gophernotes}",
6+
note = "Accessed: 2017-12-13"
7+
}
8+
9+
10+
@BOOK{Jupyter_Notebooks,
11+
title = "Jupyter Notebooks – a publishing format for reproducible computational workflows",
12+
author = "Thomas Kluyver, Benjamin Ragan-Kelley, Fernando Pérez, Brian Granger,
13+
Matthias Bussonnier, Jonathan Frederic, Kyle Kelley, Jessica Hamrick,
14+
Jason Grout, Sylvain Corlay, Paul Ivanov, Damián Avila, Safia Abdalla,
15+
Carol Willing, Jupyter Development Team"
16+
publisher = "IOS Press Ebooks",
17+
series = "Positioning and Power in Academic Publishing: Players, Agents and Agendas",
18+
year = 2016
19+
}
20+
21+
@Software{Nteract,
22+
title = "nteract",
23+
booktitle = "nteract",
24+
author = "nteract",
25+
howpublished = "\url{https://github.com/nteract/nteract}",
26+
note = "Accessed: 2017-12-13"
27+
}
28+
29+
@Software{Go,
30+
title = "Go",
31+
booktitle = "Go",
32+
author = "golang.org",
33+
howpublished = "\url{https://golang.org/}",
34+
note = "Accessed: 2017-12-13"
35+
}
36+
37+
@Software{Gomacro,
38+
title = "gomacro",
39+
booktitle = "gomacro",
40+
author = "Ghilardi, Massimiliano",
41+
howpublished = "\url{https://github.com/cosmos72/gomacro}",
42+
note = "Accessed: 2017-12-13"
43+
}
44+
45+
@Software{ZeroMQ,
46+
title = "ZeroMQ",
47+
booktitle = "ZeroMQ",
48+
author = ""iMatix Corporation,
49+
howpublished = "\url{http://zeromq.org/}",
50+
note = "Accessed: 2017-12-13"
51+
}
52+

paper/paper.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
title: 'Gophernotes: the Go kernel for Jupyter and nteract'
3+
tags:
4+
- go
5+
- golang
6+
- jupyter
7+
- nteract
8+
- data science
9+
authors:
10+
- name: Daniel L Whitenack
11+
orcid: 0000-0003-1155-8889
12+
affiliation: "1" # (Multiple affiliations must be quoted)
13+
affiliations:
14+
- name: Pachyderm
15+
index: 1
16+
date: 13 December 2017
17+
bibliography: paper.bib
18+
---
19+
20+
# Summary
21+
22+
Gophernotes [@Gophernotes] is a Go [@Go] kernel for Jupyter notebooks [@Jupyter_Notebooks] and nteract [@Nteract]. It lets you use Go interactively in a browser-based notebook or desktop application. Use gophernotes to create and share documents that contain live Go code, equations, visualizations and explanatory text. These notebooks, with the live Go code, can then be shared with others via email, Dropbox, GitHub and the Jupyter Notebook Viewer.
23+
24+
## Functionality
25+
26+
To enable the use of Go in notebooks, one needs to build the gophernotes binary and ensure that this is available in the user's local PATH. A JSON configuration file is then placed in the user's local Jupyter configuration directory. This configuration file references the gophernotes binary and names the kernel `Go`.
27+
28+
Assuming the above steps have been completed, the `Go` kernel should be recognized by Jupyter or nteract when a Jupyter server or the nteract destop application, respectively, is launched. When a new `Go` notebook is generated in one of those systems, Jupyter or nteract will communicate with gophernotes via ZeroMQ [@ZeroMQ]. In particular, these systems will pass cells of code to the gophernotes kernel. Gophernotes will evaluate these and then pass the result(s) back, which is then displayed on the frontend.
29+
30+
## Ongoing Research and Use
31+
32+
Gophernotes is currently being used by the author to teach concurrency, streaming data analysis, and machine learning techniques with O'Reilly media. Gophernotes has also been made available to students and researchers at Purdue University through JupyterHub.
33+
34+
# Acknowledgements
35+
36+
This project utilizes a Go interpreter called gomacro [@Gomacro] under the hood to evaluate Go code interactively. The gophernotes logo was designed by the brilliant Marcus Olsson and was inspired by Renee French's original Go Gopher design. The author thanks Spencer Park for all his very helpful input and contributions.
37+
38+
# References

0 commit comments

Comments
 (0)