-
Notifications
You must be signed in to change notification settings - Fork 41
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Code: * Rewritten contributions by previous team member. * Added icon file chooser Documentation: * Added book version with some academic requirements * Date and version automatically get inputted on document * Added implementation section * Expanded previous chapters
- Loading branch information
Showing
21 changed files
with
298 additions
and
124 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,9 @@ | ||
# PDF files | ||
|
||
# Word files | ||
*.docx | ||
|
||
# TeX files | ||
*.tex | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,48 +1,69 @@ | ||
PDF := persimmon.pdf # PDF Main Target | ||
MARKDOWN := introduction.md state_of_the_art.md objectives.md risk_analysis.md \ | ||
implementation.md postmortem.md # Markdown files | ||
BODY := body.tex # Markdown files will be converted to this intermediate step | ||
#APPENDICES := appendixX.md # Markdown Appendices | ||
#APPENDIX := appendix.tex # And appendices to this intermediate step | ||
# METADATA := metadata.yaml # Metadata files (Author, Date, Title, etc..) | ||
BIBLIOGRAPHY := persimmon.bib # BibLaTeX bibliography | ||
CSL := emerald-harvard.csl # CSL file used for citations | ||
TEMPLATE := template.tex # LaTeX template for producing PDF | ||
BIBLIOGRAPHY := persimmon.bib # BibLaTeX bibliography | ||
MARKDOWN := chapter0.md chapter1.md chapter2.md chapter3.md # Markdown files | ||
GRAPHS := $(wildcard graphs/*.tex) | ||
IMAGES := $(GRAPHS:.tex=.pdf) | ||
IMAGES += $(wildcard graphs/*.png) # Standalone pictures to be inserted | ||
LATEXHEADERS := latexheaders.tex # Additional LaTeX headers | ||
METADATA := metadata.yaml # Metadata files (Author, Date, Title, etc..) | ||
|
||
all: pdf | ||
|
||
pdf: $(MARKDOWN) $(BIBLIOGRAPHY) $(CSL) $(TEMPLATE) $(IMAGES) $(METADATA) | ||
pandoc --standalone --smart --latex-engine xelatex --template $(TEMPLATE) \ | ||
--top-level-division chapter --bibliography $(BIBLIOGRAPHY) --csl $(CSL) \ | ||
--include-in-header $(LATEXHEADERS) $(METADATA) $(MARKDOWN) -o $(PDF) | ||
|
||
travis: $(IMAGES) | ||
pandoc --standalone --smart --latex-engine xelatex --template $(TEMPLATE) \ | ||
--chapters --bibliography $(BIBLIOGRAPHY) --csl $(CSL) \ | ||
--include-in-header $(LATEXHEADERS) $(METADATA) $(MARKDOWN) -o $(PDF) | ||
|
||
# For standalone images (Not used) | ||
|
||
GRAPHS := $(wildcard graphs/*.tex) # Latex diagrams | ||
IMAGES := $(wildcard graphs/*.png) # .png images | ||
IMAGES += $(GRAPHS:.tex=.pdf) # Generated PDF Images | ||
|
||
all: $(PDF) | ||
|
||
# Main PDF, travis ci and book to print version | ||
$(PDF): $(BODY) $(TEMPLATE) $(IMAGES) # TODO: Add abstract | ||
pandoc --smart --standalone --latex-engine xelatex --template $(TEMPLATE) \ | ||
--metadata author:"Álvaro Bermejo" \ | ||
--metadata date:"$(shell date +"%d/%m/%Y") ($(shell git describe --abbrev=0 --tags))" \ | ||
--metadata title:"Persimmon" --metadata fontsize:"12pt" --toc \ | ||
--metadata subtitle:"A scikitlearn visual programming interface" \ | ||
--metadata mainlang:"English" --metada keywords:"Machine Learning","Visual Programming" \ | ||
--metadata papersize:"A4" --metadata sansfont:"Helvetica Neue LT Com" \ | ||
--metadata colorlinks --metadata documentclass:"scrreprt" \ | ||
--top-level-division chapter $(BODY) -o $@ | ||
|
||
# Main PDF, travis ci and book to print version | ||
travis: $(BODY) $(APPENDIX) $(TEMPLATE) $(IMAGES) | ||
pandoc --smart --standalone --latex-engine xelatex --template $(TEMPLATE) \ | ||
--metadata author:"Álvaro Bermejo" \ | ||
--metadata date:"$(shell date +"%d/%m/%Y") ($(shell git describe --abbrev=0 --tags))" \ | ||
--metadata title:"Persimmon" --metadata fontsize:"12pt" --toc \ | ||
--metadata subtitle:"A sklearn visual programming interface" \ | ||
--metadata mainlang:"English" --metada keywords:"Machine Learning","Visual Programming" \ | ||
--metadata papersize:"A4" \ | ||
--metadata colorlinks --metadata documentclass:"scrreprt" \ | ||
--chapters $(BODY) $(APPENDIX) -o $(PDF) | ||
|
||
|
||
book_complu: $(BODY) $(APPENDIX) $(TEMPLATE) $(IMAGES) | ||
pandoc --smart --standalone --latex-engine xelatex --template $(TEMPLATE) \ | ||
--metadata author:"Álvaro Bermejo" --metadata date:"Director: Pablo Moreno Ger" \ | ||
--metadata title:"Persimmon" --metadata fontsize:"12pt" --toc \ | ||
--metadata subtitle:"A scikitlearn visual programming interface" \ | ||
--metadata mainlang:"English" \ | ||
--metadata papersize:"A4" --metadata sansfont:"Helvetica Neue LT Com" \ | ||
--metadata documentclass:"scrbook" --metadata institute:"Universidad Complutense" \ | ||
--top-level-division chapter $(BODY) $(APPENDIX) -o bool_$(PDF) | ||
|
||
|
||
# For standalone images | ||
graphs/%.pdf: graphs/%.tex | ||
xelatex $< | ||
|
||
## Splitted creation (Not currently working) | ||
#CHAPTERS := $(MARKDOWN:.md=.tex) # LaTeX Chapters | ||
#GRAPHS := $(wildcard graphs/*.tex) | ||
#IMAGES += $(GRAPHS:.tex=.pdf) | ||
# | ||
##splitted: $(CHAPTERS) $(BIBLIOGRAPHY) $(CSL) $(TEMPLATE) | ||
# pandoc --standalone --smart --latex-engine xelatex --template $(TEMPLATE) \ | ||
# --top-level-division chapter --bibliography $(BIBLIOGRAPHY) --csl $(CSL) \ | ||
# $(CHAPTERS) -o $(PDF) | ||
# | ||
#%.tex: metadata.yaml %.md | ||
# pandoc --no-tex-ligatures metadata.yaml $*.md -o $@ | ||
# | ||
## For standalone images (Not used) | ||
#graphs/%.pdf: graphs/%.tex | ||
# xelatex $< | ||
# | ||
xelatex $< > /dev/null # TODO: actually output in graphs directory | ||
mv $*.pdf graphs/ | ||
|
||
# Body and Appendices Middle Steps creation | ||
$(BODY): $(MARKDOWN) | ||
pandoc --no-tex-ligatures --bibliography $(BIBLIOGRAPHY) --csl $(CSL) \ | ||
metadata.yaml $(MARKDOWN) -o $@ | ||
|
||
$(APPENDIX): $(APPENDICES) | ||
pandoc --no-tex-ligatures $(APPENDICES) -o $@ | ||
|
||
clean: | ||
rm -f *.pdf chapter?.tex *.log *.aux *.png | ||
rm -f $(BODY) $(APPENDIX) graphs/*.pdf *.pdf *.log *.aux | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
Appendix X: How was this document made? | ||
======================================= | ||
|
||
This document was written on Markdown, and converted to PDF | ||
using Pandoc. | ||
|
||
Process | ||
------- | ||
Document is written on Pandoc's extended Markdown, and can be broken amongst | ||
different files. Images are inserted with regular Markdown syntax for images. | ||
A YAML file with metadata information is passed to pandoc, containing things | ||
such as Author, Title, font, etc... The use of this information depends on | ||
what output we are creating and the template/reference we are using. | ||
|
||
|
||
Diagrams | ||
-------- | ||
Diagrams are were created with LaTeX packages such as tikz or pgfgantt, they | ||
can be inserted directly as PDF, but if we desire to output to formats other | ||
than LaTeX is more convenient to convert them to .png filesi with tools such | ||
as `pdftoppm`. | ||
|
||
|
||
References | ||
------------ | ||
References are handled by pandoc-citeproc, we can write our bibliography in | ||
a myriad of different formats: bibTeX, bibLaTeX, JSON, YAML, etc..., then | ||
we reference in our markdown, and that reference works for multiple formats | ||
|
||
|
This file was deleted.
Oops, something went wrong.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
Implementation | ||
============== | ||
|
||
First Iteration | ||
--------------- | ||
|
||
![Early "static" interface](graphs/early_interface.png) | ||
|
||
![File chooser](graphs/filechooser.png) | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
Introduction | ||
============ | ||
|
||
Description | ||
----------- | ||
Persimmon is a visual programming interface for sklearn. | ||
|
||
This projects involves a variety of Computer Science topics, such as User | ||
Experience (Main topic as the project is driven by the users feedback and | ||
engagement with the project), Machine Learning (We don't write the algorithms, | ||
but need extensive knowledge of them to surface all their options) Software | ||
Engineering (We have to interact with already built software, using interfaces | ||
and organizing code through object-oriented techniques), Compilers (Language | ||
parsing and transpilers) and a number of tangentially related topics such as | ||
Machine Learning, I/O, preprocessing of data, etc. | ||
|
||
Motivation | ||
---------- | ||
After learning about Machine Learning on university last year I was able to get | ||
an internship working for a company on the algorithmic trading sector.. | ||
|
||
There, amongst other duties, I aided with moving the codebase from MATLAB to | ||
Python, and during that process I realised many of my co-workers struggled with | ||
the switch. All of the were not computer scientists, but instead came from a | ||
variety of backgrounds such as Maths, Physics, Electric Engineering, | ||
Statistics or Aerospacial Engineering. | ||
|
||
Yet they were the whole of the department, their work requires a very high | ||
level of theoretical maths knowledge, and so happens that these experts from | ||
these fields tend to not have a lot of general programming skills, they mostly | ||
work with specialized languages, tailored to these tasks such as MATLAB, R, | ||
Julia, etc, and moving to a general purpose language such as Python involves | ||
learning about a plethora of additional topics, such as Object Oriented | ||
Programming, custom complex Datastructures or CPU cache optimization. | ||
|
||
The situation is even more complicated for newcomers to Machine Learning, as | ||
they not only have the programming barrier but also have to overcome the | ||
difficulties of the algorithms themselves, something Computer Scientists also | ||
struggle with (In many cases even more because their weaker maths skills). | ||
|
||
So this project serves a double purpose, it helps with the programming barrier, | ||
and it aids with the Machine Learning process as it allows the learner to focus | ||
on the connections, intuitions and mathematical basis and not on the | ||
implementation details and the quirks of the concrete language. | ||
|
||
This hypothesis that visual learning can improve understanding is supported by | ||
numerous sources such as [@fry2007visualizing] and [@principles]. | ||
|
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,18 @@ | ||
|
||
--- | ||
author: "Álvaro Bermejo" | ||
author: Álvaro Bermejo | ||
date: 2017-01-01 | ||
title: "Persimmon: a visual interface for sklearn" | ||
papersize: "A4" | ||
fontsize: "12pt" | ||
mainlang: "English" | ||
toc: yes | ||
subtitle: A scikit-learn visual prgramming interface | ||
version: 0.2 | ||
sansfont: Helvetica Neue LT Com | ||
colorlinks: True | ||
documentclass: scrreprt | ||
institute: Universidad Complutense and University of Hertforshire | ||
papersize: A4 | ||
fontsize: 12pt | ||
mainlang: English | ||
toc: True | ||
top-level-division: chapter | ||
--- | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
Postmortem | ||
========== | ||
|
||
Bibliography | ||
============ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.