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
|
<h4>projects i've worked on</h4>
<h5>Termcast</h5>
<ul>
<li><a href="https://github.com/doy/python-termcast-server">Server Github page</a></li>
<li><a href="https://github.com/doy/python-termcast-client">Python client Github page</a></li>
<li><a href="https://github.com/doy/app-termcast">Perl client Github page</a></li>
<li><a href="https://metacpan.org/release/App-Termcast">Perl client CPAN page</a></li>
</ul>
<p>
Termcast is a program which allows users to stream the contents of
terminal-based programs to a central server, and allow other people to
watch them. It is useful for remote pair programming, as well as things
like spectating on terminal-based games. I have written a client which
allows users to broadcast, as well as a server which allows users to watch
the broadcasters either over an SSH connection or through a website.
</p>
<h5>libvt100</h5>
<ul>
<li><a href="https://github.com/doy/libvt100">Github page</a></li>
</ul>
<p>
I am the author of libvt100, a terminal parsing library written in C and
Lex. I am currently using it in the Termcast server and in Runes, a
terminal emulator.
</p>
<h5>Dungeon Crawl Stone Soup</h5>
<ul>
<li><a href="http://crawl.develz.org/">Website</a></li>
<li><a href="https://gitorious.org/crawl/crawl/">Gitorious repository</a></li>
</ul>
<p>
I am a member of the development team for Dungeon Crawl Stone Soup, a
roguelike game written in C++ and Lua. I contributed several features
throughout the game, and I was also the release manager for the 0.6
release.
</p>
<h5>Reply</h5>
<ul>
<li><a href="https://github.com/doy/reply">Github repository</a></li>
<li><a href="https://metacpan.org/release/Reply">CPAN page</a></li>
</ul>
<p>
I am the author of Reply, a customizable and lightweight REPL for Perl.
It provides features like pluggable tab completion, automatic class
loading and refreshing, history support, and (through the Carp::Reply
module) automatically launching a REPL when an exception is thrown. It
can be easily extended through a powerful plugin system.
</p>
<h5>Plack</h5>
<ul>
<li><a href="http://plackperl.org/">Website</a></li>
<li><a href="https://github.com/plack/Plack">Github repository</a></li>
<li><a href="https://metacpan.org/release/Plack">CPAN page</a></li>
</ul>
<p>
I am a member of the core development team for Plack, the reference
implementation of the PSGI specification for Perl web server/application
interaction (similar to Python's WSGI and Ruby's Rack). I have also
contributed to the design of PSGI.
</p>
<h5>Perl</h5>
<ul>
<li><a href="http://www.perl.org/">Website</a></li>
<li><a href="http://perl5.git.perl.org/perl.git">Git repository</a></li>
</ul>
<p>
I was the release manager for the 5.17.1 development release of Perl, and I
have also contributed many bug fixes to the Perl core. In addition, I have
been a lead developer on the p5-mop project, a prototype of a new object
system for Perl, including features like a meta-object protocol.
</p>
<h5>Moose</h5>
<ul>
<li><a href="http://moose.perl.org/">Website</a></li>
<li><a href="https://github.com/moose/Moose">Github page</a></li>
<li><a href="https://metacpan.org/release/Moose">CPAN page</a></li>
</ul>
<p>
I am a member of the development team for Moose, a module which provides
advanced object orientation capabilities for Perl. I was also the release
manager from 2011 – 2012. I am also the maintainer of several widely
used Moose extensions, such as MooseX::NonMoose and MooseX::Aliases.
</p>
<h5>Spreadsheet::ParseXLSX</h5>
<ul>
<li><a href="https://github.com/doy/spreadsheet-parsexlsx">Github page</a></li>
<li><a href="https://metacpan.org/release/Spreadsheet-ParseXLSX">CPAN page</a></li>
</ul>
<p>
Spreadsheet::ParseXLSX is a Perl module which can read .xlsx files (as
generated by new versions of Microsoft Excel). It handles reading both the
data and formatting from these files.
</p>
<h5>Text::Handlebars</h5>
<ul>
<li><a href="https://github.com/doy/text-handlebars">Github page</a></li>
<li><a href="https://metacpan.org/release/Text-Handlebars">CPAN page</a></li>
</ul>
<p>
Text::Handlebars is a port of the Handlebars.js templating language to
Perl. It uses a custom parser on top of the Xslate template engine
framework. It supports nearly the entire feature set of the JavaScript
implementation, and we used it at Infinity Interactive to ease the
transition of one of our large web applications from client side templates
to server side templates.
</p>
<h5>OX</h5>
<ul>
<li><a href="https://github.com/iinteractive/OX">Github page</a></li>
<li><a href="https://metacpan.org/release/OX">CPAN page</a></li>
<li><a href="http://ox.iinteractive.com/advent/">Advent calendar</a></li>
</ul>
<p>
OX is a web framework for Perl based on the PSGI specification, which uses
the Bread::Board dependency injection system to manage application
components. We used it internally at Infinity Interactive for many client
projects.
</p>
<h5>TAEB</h5>
<ul>
<li><a href="http://taeb.github.io/">Website</a></li>
<li><a href="https://github.com/TAEB/TAEB">Github page for the framework</a></li>
<li><a href="https://github.com/TAEB/TAEB-AI-Behavioral">Github page for the "Behavioral" AI</a></li>
</ul>
<p>
I am one of the lead framework developers for TAEB, a Perl framework for
programmatic interaction with NetHack. I am also the primary developer for
the leading AI written for TAEB.
</p>
|