Mercurial > hg > what-is-octave
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} |