Skip to content

Commit c82cab3

Browse files
author
AlvarBer
committed
Release v0.5-beta
First beta release! Code * Real interface now implemented * Blocks can be dragged, connected, reconnected and executed * The whole blackboard can be moved and zoomed Documentation * Expanded sections * Added appendix * Added algorithms graphs
2 parents 8e19890 + d29a17f commit c82cab3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+1608
-405
lines changed

.gitignore

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,25 @@
66

77
# TeX aux files
88
*.aux
9+
*.log
10+
*.tex
11+
12+
# Except graphs
13+
!docs/graphs/*.tex
914

1015
# Vim Backup files
1116
*.swp
1217
*~
1318

1419
# Python cache folders
15-
__pycache__
20+
__pycache__/
21+
22+
# PyInstaller folders
23+
build/
24+
dist/
25+
26+
# Egg info
27+
*.egg-info/
28+
29+
# CSV Files
30+
*.csv

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ script: true # No Testing
1111

1212
after_success: # Build binaries and documentation
1313
- cd docs # Time to do documentation
14-
- sudo apt-get install -y --no-install-recommends pandoc pandoc-citeproc texlive-base texlive-latex-base texlive-generic-recommended texlive-fonts-recommended texlive-fonts-extra texlive-extra-utils texlive-latex-recommended texlive-latex-extra texlive-xetex lmodern pgf
14+
- sudo apt-get install -y --no-install-recommends pandoc pandoc-citeproc texlive-base texlive-latex-base texlive-generic-recommended texlive-fonts-recommended texlive-fonts-extra texlive-extra-utils texlive-latex-recommended texlive-latex-extra texlive-xetex lmodern pgf texlive-science
1515
- make travis
1616
- cd ..
1717

docs/Makefile

Lines changed: 81 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,104 @@
11
PDF := persimmon.pdf # PDF Main Target
2-
MARKDOWN := introduction.md state_of_the_art.md workflow.md objectives.md \
3-
risk_analysis.md implementation.md postmortem.md # Markdown files
4-
BODY := body.tex # Markdown files will be converted to this intermediate step
5-
#APPENDICES := appendixX.md # Markdown Appendices
6-
#APPENDIX := appendix.tex # And appendices to this intermediate step
7-
#METADATA := metadata.yaml # Metadata files (Author, Date, Title, etc..)
2+
MARKDOWN := introduction.md state_of_the_art.md workflow.md milestones.md \
3+
risk_analysis.md interface.md implementation.md type_checking.md \
4+
postmortem.md # Markdown files
5+
MARKDOWN_COMPLUTENSE := introduction.md focus.md state_of_the_art.md \
6+
workflow.md milestones.md risk_analysis.md interface.md implementation.md \
7+
type_checking.md postmortem.md
8+
APPENDICES := appendixA.md appendixB.md # Appendix after bibliography
9+
METADATA := metadata.yaml # Metadata files (Author, Date, Title, etc..)
810
BIBLIOGRAPHY := persimmon.bib # BibLaTeX bibliography
911
CSL := emerald-harvard.csl # CSL file used for citations
1012
TEMPLATE := template.tex # LaTeX template for producing PDF
1113

14+
# Add src prefix to markdown files
15+
MARKDOWN := $(addprefix src/, $(MARKDOWN))
16+
MARKDOWN_COMPLUTENSE := $(addprefix src/, $(MARKDOWN_COMPLUTENSE))
17+
APPENDICES := $(addprefix src/, $(APPENDICES))
18+
1219
GRAPHS := $(wildcard graphs/*.tex) # Latex diagrams
1320
IMAGES := $(wildcard images/*.png) # .png images
14-
IMAGES += $(addprefix images/, $(notdir $(GRAPHS:.tex=.pdf))) # Generated PDF Images
21+
# Generated PDF Images
22+
IMAGES += $(addprefix images/, $(notdir $(GRAPHS:.tex=.pdf)))
1523

16-
all: $(PDF)
24+
# Intermediate tex files required for appending after bibliography
25+
BODY := body.tex
26+
APPENDIX := appendices.tex
27+
BODY_COMPLUTENSE := body_complutense.tex
1728

29+
all: $(PDF)
1830

19-
$(PDF): $(BODY) $(APPENDIX) $(TEMPLATE) $(IMAGES) # TODO: Add abstract
20-
pandoc --smart --standalone --latex-engine xelatex --template $(TEMPLATE) \
21-
--metadata author:"Álvaro Bermejo" \
22-
--metadata date:"$(shell date +"%d/%m/%Y") ($(shell git describe --abbrev=0 --tags))" \
23-
--metadata title:Persimmon --metadata fontsize:12pt --toc \
24-
--metadata subtitle:"A sklearn visual programming interface" \
25-
--metadata mainlang:English --metada keywords:"Machine Learning","Visual Programming" \
26-
--metadata papersize:A4 --metadata sansfont:"Helvetica Neue LT Com" \
27-
--metadata colorlinks --metadata documentclass:scrreprt \
28-
--top-level-division chapter $(BODY) $(APPENDIX) -o $@
29-
30-
travis: $(BODY) $(APPENDIX) $(TEMPLATE) $(IMAGES)
31+
$(PDF): $(BODY) $(APPENDIX) $(TEMPLATE) $(IMAGES)
3132
pandoc --smart --standalone --latex-engine xelatex --template $(TEMPLATE) \
32-
--metadata author:"Álvaro Bermejo" --metadata papersize:A4 \
33-
--metadata date:"$(shell date +"%d/%m/%Y") ($(shell git describe --abbrev=0 --tags))" \
34-
--metadata title:Persimmon --metadata fontsize:12pt --toc \
35-
--metadata subtitle:"A sklearn visual programming interface" \
36-
--metadata mainlang:English --metada keywords:"Machine Learning","Visual Programming" \
37-
--metadata colorlinks --metadata documentclass:scrreprt \
38-
--chapters $(BODY) $(APPENDIX) -o $(PDF)
39-
40-
complutense: $(BODY) $(APPENDIX) $(TEMPLATE) $(IMAGES)
41-
pandoc --smart --standalone --latex-engine xelatex --template $(TEMPLATE) \
42-
--metadata author:"Álvaro Bermejo" --metadata date:"Director: Pablo Moreno Ger" \
43-
--metadata title:Persimmon --metadata fontsize:12pt --toc \
44-
--metadata subtitle:"A scikitlearn visual programming interface" \
45-
--metadata mainlang:English --metadata colorlinks --metadata titlepic:images/fdi.png \
46-
--metadata papersize:A4 --metadata sansfont:"Helvetica Neue LT Com" \
47-
--metadata documentclass:scrreprt --metadata institute:"Universidad Complutense" \
48-
--metada keywords:"Machine Learning","Visual Programming","Serious Games" \
49-
--top-level-division chapter $(BODY) $(APPENDIX) -o $(PDF)
50-
51-
twocol: $(BODY) $(APPENDIX) $(TEMPLATE) $(IMAGES) # Adjust Spacing with geometry
33+
--table-of-contents --top-level-division chapter \
34+
--metadata author:"Álvaro Bermejo García" --metadata title:Persimmon \
35+
--metadata subtitle:"A visual programming interface for machine learning" \
36+
--metadata date:"$(shell date +%Y/%m/%d)" --metadata documentclass:scrreprt \
37+
--metadata sansfont:"Helvetica Neue LT Com" --metadata colorlinks \
38+
--metadata lof --metadata papersize:A4 --metadata fontsize:12pt \
39+
--metadata mainlang:English \
40+
--metadata keywords:"Dataflow Programming","Machine Learning","Visual Programming","Compilers" \
41+
--metadata abstract:"Persimmon is a visual programming interface that leverages scikit-learn to provide\
42+
a drag and drop interface for creating Machine Learning pipelines." \
43+
$(BODY) $(APPENDIX) -o $@
44+
45+
46+
complutense: $(BODY_COMPLUTENSE) $(APPENDIX) $(TEMPLATE) $(IMAGES)
5247
pandoc --smart --standalone --latex-engine xelatex --template $(TEMPLATE) \
53-
--metadata author:"Álvaro Bermejo" --metadata colorlinks \
54-
--metadata date:"$(shell date +"%d/%m/%Y") ($(shell git describe --abbrev=0 --tags))" \
55-
--metadata title:Persimmon --metadata fontsize:12p --toc \
56-
--metadata subtitle:"A sklearn visual programming interface" \
57-
--metadata mainlang:English --metada keywords:"Machine Learning","Visual Programming" \
58-
--metadata papersize:A4 --metadata classoption:twocolumn \
59-
--metadata sansfont:"Helvetica Neue LT Com" --metadata documentclass:scrreprt \
60-
--top-level-division chapter $(BODY) $(APPENDIX) -o $(PDF)
48+
--table-of-contents --top-level-division chapter \
49+
--metadata author:"Álvaro Bermejo García" \
50+
--metadata title:"A scikit-learn visual programming interface" \
51+
--metadata date:"Director:Manuel Freire Moran, Codirector: Pablo Moreno Ger" \
52+
--metadata documentclass:scrreprt \
53+
--metadata sansfont:"Helvetica Neue LT Com" --metadata colorlinks \
54+
--metadata lof --metadata papersize:A4 --metadata fontsize:12pt \
55+
--metadata mainlang:English \
56+
--metadata keywords:"Serious Learning","Machine Learning","Visual Programming" \
57+
--metadata titlepic:images/fdi.png $(BODY_COMPLUTENSE) $(APPENDIX) \
58+
-o $(PDF)
59+
6160

6261
# For standalone images
6362
images/%.pdf: graphs/%.tex
64-
xelatex $< > /dev/null # TODO: actually output in graphs directory
63+
xelatex $< > /dev/null
6564
mv $*.pdf images/
65+
rm -f $*.log $*.aux
6666

67-
# Body and Appendices Middle Steps creation
6867
$(BODY): $(MARKDOWN) $(BIBLIOGRAPHY) $(CSL)
69-
pandoc --no-tex-ligatures --bibliography $(BIBLIOGRAPHY) --csl $(CSL) \
70-
metadata.yaml $(MARKDOWN) -o $@
68+
pandoc --no-tex-ligatures --top-level-division chapter \
69+
--bibliography $(BIBLIOGRAPHY) --csl $(CSL) $(MARKDOWN) -o $@
70+
71+
72+
$(BODY_COMPLUTENSE): $(MARKDOWN_COMPLUTENSE) $(BIBLIOGRAPHY) $(CSL)
73+
pandoc --no-tex-ligatures --top-level-division chapter --table -of-contents \
74+
--bibliography $(BIBLIOGRAPHY) --csl $(CSL) $(MARKDOWN_COMPLUTENSE) \
75+
-o $@
7176

7277
$(APPENDIX): $(APPENDICES)
73-
pandoc --no-tex-ligatures $(APPENDICES) -o $@
78+
pandoc --no-tex-ligatures --top-level-division chapter $(APPENDICES) -o $@
79+
80+
# Travis generation, only necessary because travis version of pandoc is old.
81+
BODY_TRAVIS := body_travis.tex
82+
83+
travis: $(BODY_TRAVIS) $(APPENDIX_TRAVIS) $(TEMPLATE) $(IMAGES)
84+
pandoc --smart --standalone --latex-engine xelatex --template $(TEMPLATE) \
85+
--table-of-contents --chapters \
86+
--metadata author:"Álvaro Bermejo García" --metadata title:Persimmon \
87+
--metadata subtitle:"A scikit-learn visual programming interface" \
88+
--metadata date:2017-02-18 --metadata documentclass:scrreprt \
89+
--metadata colorlinks --metadata lof --metadata papersize:A4 \
90+
--metadata fontsize:12pt --metadata mainlang:English \
91+
--metadata keywords:"Machine Learning","Visual Programming" \
92+
$(BODY_TRAVIS) $(APPENDIX_TRAVIS) -o $(PDF)
93+
94+
$(BODY_TRAVIS): $(MARKDOWN) $(BIBLIOGRAPHY) $(CSL)
95+
pandoc --no-tex-ligatures --chapters --bibliography $(BIBLIOGRAPHY) --csl \
96+
$(CSL) $(MARKDOWN) -o $@
97+
98+
$(APPENDIX_TRAVIS): $(APPENDICES)
99+
pandoc --no-tex-ligatures --chapters $(APPENDICES) -o $@
100+
74101

75102
clean:
76-
rm -f $(BODY) $(APPENDIX) images/*.pdf *.pdf *.log *.aux
103+
rm -f images/*.pdf $(PDF) *.log *.aux $(BODY) $(APPENDIX)
77104

78-
test:
79-
@echo $(GRAPHS)
80-
@echo $(IMAGES)

docs/graphs/graph_execution.tex

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
\documentclass[12pt, varwidth=20cm]{standalone}
2+
3+
\usepackage[noend]{algpseudocode}
4+
5+
\begin{document}
6+
\begin{algorithmic}[1]
7+
\Require G is a Directed Acyclic Graph that does not break
8+
type safety on all the relationships.
9+
\Function{execute}{$G: Graph$}
10+
\State $queue \gets Queue()$
11+
\State $seen \gets Map()$
12+
\State $queue.put(G.get\_input\_blocks())$ \Comment {We can start in a random vertex}
13+
\While {$\neg queue.empty()$}
14+
\State $queue$, $seen \gets$ \Call {explore}{queue.get(), queue, seen}
15+
\EndWhile
16+
\EndFunction
17+
\\
18+
\Function{explore}{$current: Vertex,$ $queue: Queue, seen: Map$}{ $\to$ $Queue,$ $Map$}
19+
\ForAll {$in\_pin \in current.get\_in\_pins()$}
20+
\State $corresponding \gets in\_pin.origin.uid$
21+
\If {$\neg seen.has(corresponding)$}
22+
\State $dependency \gets corresponding.block$
23+
\If {$dependency \in queue$} \Comment {Remove if already in queue}
24+
\State $queue.remove(dependency)$
25+
\EndIf
26+
\State $queue$, $seen \gets$ \Call {explore}{dependency, queue, seen}
27+
\EndIf
28+
\State $in\_pin.value \gets seen.get(corresponding)$
29+
\EndFor
30+
\State $current.function()$ \Comment {function uses in\_pins and sets out\_pins}
31+
\ForAll {$out\_pin \in current.get\_out\_pins()$}
32+
\State $seen.put(out\_pin, out\_pin.value)$
33+
\EndFor
34+
\State \Return $queue$, $seen$
35+
\EndFunction
36+
\end{algorithmic}
37+
\end{document}

docs/graphs/packages.tex

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
\documentclass{standalone}
2+
3+
\usepackage{tikz}
4+
5+
\begin{document}
6+
\begin{tikzpicture}[sibling distance=10em,
7+
every node/.style = {shape=rectangle,
8+
draw, align=center}]
9+
\node {persimmon}
10+
child { node {backend} }
11+
child { node {view}
12+
child { node {blocks} }
13+
child { node {util} } };
14+
\end{tikzpicture}
15+
\end{document}

docs/images/azureML.jpg

183 KB
Loading

docs/images/sketch_1.png

482 KB
Loading

docs/images/sketch_2.png

504 KB
Loading

docs/images/unreal.png

378 KB
Loading

0 commit comments

Comments
 (0)