]> git.cworth.org Git - cworth.org/blob - src/talks.mdwn
10c7d28654381ee22d2718ba800f2ec5f71848bd
[cworth.org] / src / talks.mdwn
1 [[meta title="Talks presented by Carl Worth"]]
2
3 # [Co-maintaining cairo: cool community, cool code](guadec_2007)
4
5 A retrospective on the development of the cairo code and community
6 over its 5 year history. Co-presented with Behdad Esfahbod at GUADEC
7 2007 in Birmingham, United Kingdom.
8
9 # [Designing a Library that's Easy to Use](/~cworth/papers/guadec_2006)
10
11 This is something of a case study on the design of the cairo graphics
12 library API with some hint on things to keep in mind or to avoid while
13 doing API design. Presented at GUADEC 2006 in Vilanova i la Geltru,
14 Spain.
15
16 # [An Insider's Guide to cairo](/~cworth/papers/cairo_ddc2005)
17
18 I present details of the internals of the cairo graphics library. The
19 algorithms and components presented include:
20
21   * Stroking a cubic Bézier spline with a circular pen,
22     (Minkowski sums and the convolution of polygonal tracings).
23
24   * Robust, (and efficient) tessellation in the face of
25     limited-precision arithmetic.
26
27   * Careful rasterization algorithms suitable for incremental
28     rendering with no seams, (describing our failed
29     coverage-calculating approach as well as our new point-sampling
30     approach).
31
32   * Compositing (why pre-multiplied alpha is the one true way).
33
34 Presented at the <a href="http://www.desktopcon.org/2005/">Desktop
35 Developers' Conference</a> on 2005-07-19.
36
37 # [Cairo: Making Graphics Easy to Print](/~cworth/papers/cairo_lca2005)
38
39 Free software operating systems have often been accused of having
40 pessimal printing support. Recent infrastructure improvements have
41 largely solved the plumbing problem. But adding print support to
42 applications is still painful. Generally, rendering code must be
43 duplicated which often leads to inconsistencies between display and
44 print output.
45
46 The cairo graphics library is designed to provide high-quality print
47 output with the same API used for rendering to a display. The initial
48 approach toward implementing printing support was to prioritize output
49 fidelity over memory or bandwidth requirements yielding an
50 implementation that achieves consistent print quality through reuse of
51 image-based rendering code. Or we were just lazy and it was easy that
52 way. Either way, it was a pig.
53
54 This paper will discuss recent progress in cairo's printing backends
55 as they develop into first-class citizens. Generating efficient,
56 high-quality print output is complicated because PostScript has an
57 imaging model fundamentally more limited than that of cairo. This and
58 other challenges will be presented along with our solutions.
59
60 Presented at <a href="http://lca2005.linux.org.au/">linux.conf.au
61 2005</a> on 2005-04-22.
62
63 # [On-demand Linux for Power-aware Embedded Sensors](/~cworth/papers/pasta_ols2004)
64
65 We introduce a distributed sensor architecture which enables
66 high-performance 32-bit Linux capabilities to be embedded in a sensor
67 which operates at the average power overhead of a small
68 microcontroller. Adapting Linux to this architecture places increased
69 emphasis on the performance of the Linux power-up/shutdown and
70 suspend/resume cycles.
71
72 Our reference hardware implementation is described in detail. An
73 acoustic beamforming application demonstrates a 4X power improvement
74 over a centralized architecture.
75
76 Presented at the <a href="http://www.linuxsymposium.org/2004">2004
77 Ottawa Linux Symposium</a> in July, 2004.
78
79 # [Cairo: Cross-device Rendering for Vector Graphics](/~cworth/papers/xr_ols2003)
80
81 Cairo provides a vector-based rendering API with output support for
82 the X Window System and local image buffers.  Cairo provides a
83 stateful user-level API with support for the PDF 1.4 imaging
84 model. Cairo provides operations including stroking and filling
85 B&#233;zier cubic splines, transforming and compositing translucent
86 images, and antialiased text rendering.  </p> <p> Cairo, (formerly
87 known as Xr), is available from <a
88 href="http://cairographics.org">http://cairographics.org</a>
89
90 Presented at the <a href="http://www.linuxsymposium.org/2003">2003
91 Ottawa Linux Symposium</a> in July, 2003.
92
93 # [xstroke: Full-screen Gesture Recognition for X](/~cworth/papers/xstroke)
94
95 Some of the challenges in developing a gesture recognition program
96 with a full-screen user-interface. xstroke has been incorporated into
97 the <a href="http://www.handhelds.org">handhelds.org</a> distribution.
98
99 Presented at the <a href="http://www.usenix.org/events/usenix03/">2003
100 Usenix Annual Technical Conference</a> in San Antonio, Texas, June
101 2003.
102
103 # [Synthesizing RTL Hardware from Java Byte Codes](/~cworth/papers/java_synthesis)
104
105 This paper came out of the work I did on my Master's thesis at <a
106 href="http://www.byu.edu">BYU</a>'s <a
107 href="http://splish.ee.byu.edu">Configurable Computing
108 Laboratory</a>. The implementation adds experimental support for
109 synthesis to <a href="http://www.jhdl.org">JHDL</a>.