-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgroup102.tex
241 lines (203 loc) · 6.42 KB
/
group102.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
\documentclass{beamer}
%\usetheme{Darmstadt}
%\usefonttheme[onlylarge]{structurebold}
%\setbeamerfont*{frametitle}{size=\normalsize,series=\bfseries}
%\setbeamertemplate{navigation symbols}{}
\usepackage{listings}
% Standard packages
% Author, Title, etc.
\title
{%
Exaile Media Player:\\
An Open Source Introspection....?? %
}
\author
{
Abhishek ``G'' Mukherjee \and
Roy Wellington
}
% The main document
\begin{document}
\lstset{language=Python}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}{Outline}
\tableofcontents
\end{frame}
\section{Introduction}
\subsection{Exaile}
\begin{frame}{Wotsit do?}
\begin{quote}
Exaile is a music manager and player for GTK+ written in Python.
\end{quote}
\begin{figure}
\includegraphics[height=60mm]{images/exaile}
\caption{The Program}
\end{figure}
\end{frame}
\begin{frame}{Project Statistics}
Code statistics for Exaile (as of -r2699)
\begin{itemize}
\item 24079 lines of Python
\item $\sim$5000 lines of XML
\item $\sim$166.5k lines of translations
\item 724 lines of test (that don't work)
\item Plugin code:
\begin{itemize}
\item 21916 lines of Python (plugins)
\item 4286 lines of XML (plugins)
\item 2329 lines of C (plugins)
\item 581 lines of tests (plugins)
\end{itemize}
\end{itemize}
\end{frame}
\section{Features}
\subsection{Selection Randomization}
\begin{frame}{Feature: Selection randomization}
\begin{itemize}
\item Exaile originally only allows randomization of an entire playlist
\item Our change allows a user to randomize a selected part of a playlist.
\end{itemize}
\end{frame}
\begin{frame}{Why randomize?}
Many people ask why not just use shuffle.
\begin{itemize}
\item Shuffle doesn't allow you to see what's next/previous.
\item Shuffle doesn't allow you to custom order a subset of the playlist.
\end{itemize}
\end{frame}
\subsubsection{The Old Way}
\begin{frame}{The Old Way}
\begin{itemize}
\item Select this from the menu:
\includegraphics[keepaspectratio]{images/tools-menu}
\item And the entire playlist is randomized.
\item What if we only want to randomize a subset of the playlist?
\end{itemize}
\end{frame}
\subsubsection{The New Way}
\begin{frame}{The New Way}
\begin{itemize}
\item Select several things in your playlist:
\item Right click, then use this menu-item:
\includegraphics[keepaspectratio]{images/randomize-menu-item}
\item The selected items are randomized.
\end{itemize}
\end{frame}
\subsection{Unified Engine}
\begin{frame}{Feature: Unified engine}
\begin{itemize}
\item Exaile has two engines: "Normal" and "Unified"
\item The normal engine is boring.
\item The unified engine is shiny.
\end{itemize}
\end{frame}
\subsubsection{The Old Way}
\begin{frame}{The Old Way}
\begin{itemize}
\item The normal engine just plays one song at a time.
\item The unified engine allows us to:
\begin{itemize}
\item Crossfade
\item Gapless playback
\item \textit{(insert other potentially shiny here)}
\end{itemize}
\item It doesn't work. Playback randomly skips, buggy.
\end{itemize}
\end{frame}
\subsubsection{The\ldots\ not New Way}
\begin{frame}{The\ldots\ not New Way}
\begin{itemize}
\item Fix/rewrite of the unified engine didn't happen.
\item Engine turned out to be complex:
\item \textgreater 1500 lines of code. (And not simple GUI stuff.)
\end{itemize}
\end{frame}
\subsection{Awn Integration}
\begin{frame}{Feature: Awn Integration}
Exaile used to have a plugin (before the massive rewrite in 0.3) to interface
with awn properly. This no longer worked and had to be rewritten for the new
architecture
\end{frame}
\begin{frame}{What's Awn}
\begin{itemize}
\item Awn is a COMPLETELY original task bar/manager
\item Also has notification area and is very extensible
\end{itemize}
\begin{figure}
\centering
\includegraphics[width=100mm]{images/awn}
\caption{Completely original task bar}
\end{figure}
\end{frame}
\subsubsection{The Old Way}
\begin{frame}{The Old Way}
\begin{figure}
\centering
\includegraphics[width=100mm]{images/awn}
\caption{Same example of completely original task bar}
\end{figure}
\end{frame}
\subsubsection{The New Way}
\begin{frame}{The New Way}
\begin{figure}
\centering
\includegraphics[width=100mm]{images/awn-new}
\caption{New and improved task bar}
\end{figure}
\end{frame}
\subsection{Planned features}
\begin{frame}{Planned feature}
\begin{itemize}
\item There were a few features that we were not able to implement but
were in the process of discussing and coding
\item Those features were:
\begin{itemize}
\item Stabilize Unified Playback engine
\item Reduce memory footprint
\item Fix tests (G's wanted to do this for a while, but there's a
\emph{lot} wrong with them)
\item Kill all \lstinline!except:!'s (Considered bad form in python)
\item Migrate current installation system (GNU Makefiles) to
Distribute\footnote{Spiritual successor for setuptools, an advanced
package management tool for Python. Not maintained by a ``lunatic''}
\end{itemize}
\end{itemize}
All of these features have been discussed with the lead devs and approved.
The work for them just has to be done.
\end{frame}
\section{Community Integration}
\begin{frame}{G's experience}
\begin{itemize}
\item Pretty easy
\begin{enumerate}
\item Decided I was going to write a plugin for Exaile (MPRIS plugin)
\item Wrote the plugin
\item Talked with reacocard (one of the three creators) about it.
\item Got more acquainted with the people in the room, began picking
up bugs in the bug tracker
\end{enumerate}
\item At this point it's more along the lines of:
\begin{verse}
$<$G$>$ reacocard, I'm implementing feature X
$<$reacocard$>$ G, Yea, we've needed that
\end{verse}
\end{itemize}
\end{frame}
\begin{frame}{Roy's experience}
\begin{quote}
Roy Wellington: who's reacocard, do you know?
Roy Wellington: I've just been stalking the channel thus far, and I got:
Roy Wellington: 19:33 * reacocard wonders if deathanatos is ever going to say anything :)
\end{quote}
\end{frame}
\begin{frame}{Roy's experience}
\begin{itemize}
\item First time I've ever gotten that while stalking in IRC.
\item Community welcomes those who want to help.
\item Contact is easy, project seems alive and well.
\end{itemize}
\end{frame}
\end{document} %
% vim:ts=2 sw=2 et: