Skip to content

Commit 2a68657

Browse files
Start with some placeholder slides for discussion.
1 parent 80bbcfe commit 2a68657

5 files changed

Lines changed: 457 additions & 0 deletions

File tree

slides/01_intro.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
---
2+
jupyter:
3+
jupytext:
4+
text_representation:
5+
extension: .md
6+
format_name: markdown
7+
format_version: '1.2'
8+
jupytext_version: 1.3.2
9+
kernelspec:
10+
display_name: Python 3
11+
language: python
12+
name: python3
13+
---
14+
15+
<!-- #region slideshow={"slide_type": "slide"} -->
16+
## Sharing scientific tools: script to desktop application
17+
18+
**Jonathan Rocher, Siddhant Wahal, Jason Chambless, Prabhu Ramachandran**
19+
20+
**SciPy 2022**
21+
22+
<!-- #endregion -->
23+
24+
25+
<!-- #region slideshow={"slide_type": "slide"} -->
26+
## Motivation
27+
28+
- Some tasks are easier with a GUI
29+
- Seeing a lot of information in one shot
30+
- Easier for non-programmers
31+
- Easier to share
32+
33+
<!-- #endregion -->
34+
35+
<!-- #region slideshow={"slide_type": "slide"} -->
36+
## Why ETS?
37+
38+
- Mature
39+
- Easy to use
40+
- Design promotes reusable code
41+
- Largely declarative UI
42+
- PyQt/PySide and wxPython support
43+
44+
<!-- #endregion -->
45+
46+
<!-- #region slideshow={"slide_type": "slide"} -->
47+
## What is ETS?
48+
49+
- Enthought Tool Suite: https://docs.enthought.com/ets
50+
- Open Source
51+
- Packages
52+
- Traits: Python object attributes on steroids
53+
- TraitsUI: Easy GUI-building
54+
- PyFace: Low-level GUI components
55+
- Envisage: plug-in application framework
56+
- Chaco: interactive plotting library
57+
- Mayavi: 3D plotting
58+
- And others
59+
60+
<!-- #endregion -->
61+
62+
<!-- #region slideshow={"slide_type": "slide"} -->
63+
## Layered package design
64+
65+
<center>
66+
<img src="images/layers.png" height="90%" align="center"/>
67+
</center>
68+
69+
<!-- #endregion -->
70+
71+
72+
<!-- #region slideshow={"slide_type": "slide"} -->
73+
## Sample screenshots
74+
75+
76+
<!-- #endregion -->
77+
78+
79+
<!-- #region slideshow={"slide_type": "slide"} -->
80+
## Goals
81+
82+
- Start with simple Python script
83+
- Detect faces
84+
- Extract Image metadata
85+
86+
- Build a full-fledged desktop application
87+
- Easy to use UI
88+
- Learn a little MVC
89+
- Design application to scale
90+
- Share the application with others
91+
92+
<!-- #endregion -->
93+
94+
<!-- #region slideshow={"slide_type": "slide"} -->
95+
## Result
96+
97+
XXX Screenshot of initial application
98+
XXX Screenshot of final application
99+
100+
<img src="src" height="90%" width="90%" align="center"/>
101+
102+
<!-- #endregion -->
103+
104+
<!-- #region slideshow={"slide_type": "slide"} -->
105+
## Schedule
106+
107+
- Step 0: Python script
108+
- Step 1: Using Traits.
109+
- Step 2: Basic GUI using TraitsUI
110+
- Step 3: PyFace application: tree navigator
111+
- Step 4: More features
112+
- Step 5: Installer
113+
114+
115+
<!-- #endregion -->
116+
117+
<!-- #region slideshow={"slide_type": "slide"} -->
118+
## Basic Python script
119+
120+
- Uses: `PIL`, `skimage`, and `matplotlib`
121+
- Detects faces in a given image
122+
- Look inside ...
123+
124+
<!-- #endregion -->
125+
126+
<!-- #region slideshow={"slide_type": "slide"} -->
127+
## Next steps
128+
129+
- Learn more about traits
130+
- Build a clean model for our task with traits
131+
- Learn why models are useful
132+
133+
<!-- #endregion -->

0 commit comments

Comments
 (0)