comparison OctConf2012/what-is-octave.tex @ 4:0a1567794b40

[mq]: folder_reorganization
author Carlo de Falco <cdf@users.sourceforge.net>
date Thu, 08 Nov 2012 09:55:34 +0100
parents what-is-octave.tex@8e32f52a1888
children
comparison
equal deleted inserted replaced
3:acc25d26e9e5 4:0a1567794b40
1 \documentclass[12pt]{beamer}
2
3
4 \usetheme{Octave}
5 \usepackage{thumbpdf}
6 \usepackage{wasysym}
7 \usepackage{ucs}
8 \usepackage[utf8]{inputenc}
9 \usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps,pgfshade}
10 \usepackage{verbatim}
11
12 \pdfinfo
13 {
14 /Title (What is Octave?)
15 /Creator (TeX)
16 /Author (Jordi GutiƩrrez Hermoso)
17 }
18
19
20 \title{What is Octave?}
21 \author{Jordi GutiƩrrez Hermoso}
22 % \date{September 6th 2006}
23
24 \begin{document}
25
26 \frame{\titlepage}
27
28 \section*{}
29 \begin{frame}
30 \frametitle{Outline}
31 \tableofcontents[section=1,hidesubsections]
32 \end{frame}
33
34 \AtBeginSection[]
35 {
36 \frame<handout:0>
37 {
38 \frametitle{Outline}
39 \tableofcontents[currentsection,hideallsubsections]
40 }
41 }
42
43 \AtBeginSubsection[]
44 {
45 \frame<handout:0>
46 {
47 \frametitle{Outline}
48 \tableofcontents[sectionstyle=show/hide,subsectionstyle=show/shaded/hide]
49 }
50 }
51
52 \newcommand<>{\highlighton}[1]{%
53 \alt#2{\structure{#1}}{{#1}}
54 }
55
56 \newcommand{\icon}[1]{\pgfimage[height=1em]{#1}}
57
58
59
60 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61 %%%%%%%%%% Content starts here %%%%%%%%%%
62 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
63
64 \section{What is it?}
65 \begin{frame}
66 \frametitle{What is Octave?}
67 \begin{block}{Our motto}
68 \begin{quote}
69 \Huge A free numerical environment mostly compatible with \sc{Matlab}
70 \end{quote}
71 \end{block}
72 \end{frame}
73
74 \begin{frame}
75 \frametitle{What is Octave?}
76 \begin{block}{What is compatibility?}
77 \begin{itemize}
78 \item A point of much debate...
79 \pause
80 \item My personal viewpoint, shared by some: if it works in
81 {\sc{Matlab}}, it should work in Octave. If it works in Octave, it can
82 break in {\sc{Matlab}}.
83 \pause
84 \item Does this also mean it has to look exactly like {\sc{Matlab}}? Can
85 we deviate at all?
86 \pause
87 \item The perils of ``compatibility flags''
88 \end{itemize}
89 \end{block}
90 \end{frame}
91
92 \begin{frame}
93 \frametitle{The interface}
94 \begin{itemize}
95 \item Primarily a CLI interface (BYOTE)
96 \pause
97 \item Most requested feature: GUI! (we're finally listening)
98 \pause
99 \item Tons of existing GUIs, though.
100 \end{itemize}
101 \end{frame}
102
103 \begin{frame}
104 \frametitle{Lines of code}
105 The stuff Octave is made of...
106 \pause
107 \begin{block}{Core}
108 \begin{itemize}
109 \item About 600,000 lines of C++
110 \item About 100,000 lines of m-scripts
111 \item About 50,000 lines of Fortran
112 \end{itemize}
113 \end{block}
114 \pause
115 \begin{block}{Octave-Forge}
116 \begin{itemize}
117 \item About 200,000 lines of C++
118 \item About 330,000 lines of m-scripts
119 \item About 50,000 lines of Fortran
120 \end{itemize}
121 \end{block}
122 \end{frame}
123
124 \begin{frame}
125 \frametitle{Features}
126 \begin{block}{Current features}
127 \begin{itemize}
128 \item N-d arrays, linear algebra, sparse matrices
129 \item Nonlinear equations
130 \item Differential equations
131 \item Image processing
132 \item Signal processing
133 \item Statistics
134 \item Control theory
135 \item Special functions
136 \pause
137 \item Many more...
138 \end{itemize}
139 \end{block}
140 \end{frame}
141
142 \begin{frame}
143 \frametitle{Features}
144 \begin{block}{Features in development}
145 \begin{itemize}
146 \item JIT compiling
147 \item classdef OOP
148 \item GUI
149 \item Least squares spectral analysis
150 \end{itemize}
151 \end{block}
152 \end{frame}
153
154 \section{History}
155
156 \begin{frame}
157 \frametitle{In the beginning... }
158
159
160 \begin{itemize}
161 \item Chemical reactor textbook needed companion software
162 \item John W. Eaton (hereafter, jwe) started coding in 1993
163 \end{itemize}
164 \pause
165
166 \begin{block}{Rawlings said...}
167 \begin{quote}
168 \center
169 \huge Why don't you call it ``Octave''?
170 \end{quote}
171 \end{block}
172
173 \end{frame}
174
175 \begin{frame}
176 \frametitle{jwe is a lone wolf...}
177
178 jwe works almost completely alone for first four or five years.
179
180 \pause
181
182 \begin{block}{In the very beginning...}
183 \begin{itemize}
184 \item No mailing lists
185 \item No widespread announcements
186 \item No VCS (these were dark times)
187 \end{itemize}
188 \end{block}
189 \end{frame}
190
191 \begin{frame}
192 \frametitle{Contributions slowly trickle in}
193 \begin{block}{Timeline}
194 \begin{itemize}
195 \item[1989] Planning stages
196 \item[1992] Development begins
197 \item[1993] First public announcement
198 \item[1994] Version 1.0
199 \item[1996] Version 2.0
200 \item[1998] Version 2.1 development
201 \item[2004] Version 2.9 in preparation for 3.0 release
202 \item[2007] Version 3.0 major upgrade
203 \item[2010] Version 3.2.4, last before using hg branchily
204 \item[2011] Version 3.4.0
205 \item[2012] Version 3.6.0
206 \end{itemize}
207 \end{block}
208 \end{frame}
209
210 \begin{frame}
211 \frametitle{Contributions slowly trickle in}
212 \begin{block}{Milestones}
213 \begin{itemize}
214 \item[1994] Most of the current basic functionality already in.
215 (Much was written during its first two years!)
216 \pause
217 \item[1995] Structs, {\sc{Matlab}}-style plot() command.
218 \item[1998] Original sparse matrix implementation
219 \item[2001] Octave-Forge's first commit
220 \item[2006] MEX interface in core
221 \item[2007] Implementation of handle graphics
222 \item[2009] OpenGL plotting
223 \item[2010] -forge option for pkg.m
224 \item[2012?] Nested functions
225 \pause
226 \item[2013?] GUI? JIT compiling?
227 \end{itemize}
228 \end{block}
229 \end{frame}
230
231
232 \section{Community dynamics}
233
234 \begin{frame}
235 \frametitle{Communication}
236 \begin{block}{Casual users}
237 \begin{itemize}
238 \item Mailing lists
239 \item \#octave channel in Freenode
240 \item Octave wiki
241 \item Savannah bug tracker
242 \end{itemize}
243 \end{block}
244 \pause
245 \begin{block}{Developers}
246 \begin{itemize}
247 \item All of the above
248 \item Mercurial and svn repositories
249 \item Octave-Forge list
250 \end{itemize}
251 \end{block}
252 \end{frame}
253
254 \begin{frame}
255 \frametitle{Social structure}
256 \begin{itemize}
257 \item Like all free projects, every user is a potential developer.
258 \pause
259 \item Tiny minority of users are responsible for almost all of the
260 code (but does this reflect true involvement...?)
261 \pause
262 \item 12 current core developers (with write access to repo)
263 \pause
264 \item 296 total contributors over all time
265 \pause
266 \item How many users? Thousands? Millions?
267 \end{itemize}
268 \end{frame}
269
270 \begin{frame}
271 \frametitle{From user to developer}
272 This is a FAQ
273 \pause
274 \begin{block}{How can I contribute?}
275 \begin{itemize}
276 \item code (obviously)
277 \pause
278 \item Documentation (especially examples)
279 \item Wiki maintenance
280 \item Help in the mailing list
281 \item Bug reporting
282 \end{itemize}
283 \end{block}
284 \pause
285 Stick around this conference if you want to learn more about how to get involved!
286 \end{frame}
287
288 \end{document}