summaryrefslogtreecommitdiffstats
path: root/root/template/projects.tt
blob: 7eee79bd0205959519926d0268b2b4bd011fc3b0 (plain) (blame)
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
<h4>projects i've worked on</h4>
<ul>
<li>
    Termcast (<a href="https://github.com/doy/python-termcast-server">https://github.com/doy/python-termcast-server</a>)
    <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>
</li>
<li>
    libvt100 (<a href="https://github.com/doy/libvt100">https://github.com/doy/libvt100</a>)
    <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>
</li>
<li>
    Text::Handlebars (<a href="https://github.com/doy/text-handlebars">https://github.com/doy/text-handlebars</a>)
    <p>
        I am the author of Text::Handlebars, 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>
</li>
<li>
    Reply (<a href="https://github.com/doy/reply">https://github.com/doy/reply</a>)
    <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>
</li>
<li>
    Plack (<a href="http://plackperl.org/">http://plackperl.org/</a>)
    <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 contributed to the design of PSGI, as well as
        implementing my own PSGI-based web framework called OX.
    </p>
</li>
<li>
    Perl (<a href="http://www.perl.org/">http://www.perl.org/</a>)
    <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>
</li>
<li>
    OX (<a href="https://github.com/iinteractive/OX">https://github.com/iinteractive/OX</a>)
    <p>
        I am the lead author of OX, a web framework for Perl based on the PSGI
        specification, which uses the Bread::Board dependency injection system
        to manage application components. We have used it internally at
        Infinity Interactive for many client projects. In addition to writing
        most of the framework itself, I also wrote a series of advent calendar
        posts documenting it, which can be seen at
        \url{http://ox.iinteractive.com/advent/}.
    </p>
</li>
<li>
    Moose (<a href="http://moose.perl.org/">http://moose.perl.org/</a>)
    <p>
        I am a member of the lead development team for Moose, a module which
        provides advanced object orientation capabilities for Perl. I was also
        the release manager from 2011--2012. I wrote several extensions for
        Moose, including MooseX::NonMoose, which allows classes built with
        Moose to easily interoperate with other types of classes, and
        MooseX::Aliases, which allows Moose attributes to be referred to by
        different names.
    </p>
</li>
<li>
    TAEB (<a href="http://taeb.github.io/">http://taeb.github.io/</a>)
    <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. I developed several
        standalone Perl modules, including Graph::Implicit, which implements
        several useful graph algorithms, and IO::Pty::Easy, which provides a
        simple read/write interface for interacting with pseudo terminals.
    </p>
</li>
<li>
    Dungeon Crawl Stone Soup (<a href="http://crawl.develz.org/">http://crawl.develz.org/</a>)
    <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>
</li>
</ul>