RacketCon schedule.

This commit is contained in:
Vincent St-Amour 2014-08-25 17:42:32 -04:00
parent 32ae3f8308
commit 986b5c39cd
2 changed files with 92 additions and 27 deletions

View File

@ -18,11 +18,35 @@
(define hotel @a[href: "http://www.stlunionstationhotel.com/"]{Union Station DoubleTree}) (define hotel @a[href: "http://www.stlunionstationhotel.com/"]{Union Station DoubleTree})
(define fogus @name["http://www.fogus.me/"]{Michael Fogus})
(define stchang @name["http://www.ccs.neu.edu/home/stchang/"]{Stephen Chang})
(define brianm @name["http://brian.mastenbrook.net/"]{Brian Mastenbrook})
(define danprager @name["https://www.youpatch.com/"]{Daniel Prager})
(define davidv @name["https://github.com/david-vanderson/"]{David Vanderson})
(define (speaker->title s)
(define talks
`((,fogus . "Extracting a Goose from a Klein Bottle")
(,mbutterick . "Like a Blind Squirrel in a Ferrari")
(,stchang . "A Boost-Inspired Graph Library for Racket")
(,jbc . "Stumbling around in the dark: failure partially averted")
(,mflatt . "Carry on Making that Racket")
(,tonyg . "Minimart: Organizing Squabbling Actors")
(,gregh . "Emacs à la mode DrRacket")
(,jay . "Get Bonus! Infinite Functional Entertainment at 60 FPS!")
(,brianm . "Racket in Production")
(,danprager . "YouPatch: A Racket-powered startup")
(,ntoronto . "Purely Functional 3D in Typed Racket")
(,davidv . "Racket for a networked multiplayer game")))
(dict-ref talks s))
(define (speaker-slot s) @slot[#f s]{@(speaker->title s)})
(define (session time title chair)
@slot[time #f]{@p{@title} Chair: @chair})
(define speaker-info (define speaker-info
(list (list
(list (list
"Michael Fogus" "http://www.fogus.me/" fogus
"Extracting a Goose from a Klein Bottle"
@p*{Racket is the most amazing language that no one's ever heard of. This @p*{Racket is the most amazing language that no one's ever heard of. This
seemingly harsh assessment is prelude to a discussion on programming seemingly harsh assessment is prelude to a discussion on programming
language development, innovation, marketing, open source, research, language development, innovation, marketing, open source, research,
@ -38,8 +62,7 @@
@em{Functional JavaScript} and the upcoming release @em{The Art of @em{Functional JavaScript} and the upcoming release @em{The Art of
Chupacabra Husbandry}.}) Chupacabra Husbandry}.})
(list (list
"Matthew Butterick" "http://practicaltypography.com/" mbutterick
"Like a Blind Squirrel in a Ferrari"
@p*{At RacketCon last year, I talked about Pollen, a web-publishing system @p*{At RacketCon last year, I talked about Pollen, a web-publishing system
I wrote in Racket. This year, I'll recap what I've learned since then I wrote in Racket. This year, I'll recap what I've learned since then
about typesetting in Racket, by redesigning Racket's documentation, about typesetting in Racket, by redesigning Racket's documentation,
@ -49,8 +72,7 @@
is the author of @em{Typography for Lawyers} and the creator of is the author of @em{Typography for Lawyers} and the creator of
@a[href: "practicaltypography.com"]{practicaltypography.com}.}) @a[href: "practicaltypography.com"]{practicaltypography.com}.})
(list (list
"Stephen Chang" "http://www.ccs.neu.edu/home/stchang/" stchang
"A Boost-Inspired Graph Library for Racket"
@p*{The Boost Graph Library (BGL) introduces many novel abstraction @p*{The Boost Graph Library (BGL) introduces many novel abstraction
patterns for graph processing. I borrowed many of the BGL's ideas in patterns for graph processing. I borrowed many of the BGL's ideas in
implementing a graph library for Racket. This talk will show how the implementing a graph library for Racket. This talk will show how the
@ -62,8 +84,7 @@
to study programming languages and has been hacking in Racket ever to study programming languages and has been hacking in Racket ever
since.}) since.})
(list (list
"John Clements" "http://www.brinckerhoff.org/JBCsite/index.html" jbc
"Stumbling around in the dark: failure partially averted"
@p*{Cal Poly includes a 10-week team-based domain-specific course for @p*{Cal Poly includes a 10-week team-based domain-specific course for
incoming freshmen. I teach this course using Racket, in the domain of incoming freshmen. I teach this course using Racket, in the domain of
Music. The challenge is to allow students with no programming Music. The challenge is to allow students with no programming
@ -75,8 +96,7 @@
San Luis Obispo. He is the author of DrRackets Stepper, and the RSound San Luis Obispo. He is the author of DrRackets Stepper, and the RSound
library, and this paragraph.}) library, and this paragraph.})
(list (list
"Matthew Flatt" "https://www.cs.utah.edu/~mflatt/" mflatt
"Carry on Making that Racket"
@p*{This talk will provide a brief introduction to Racket and Racketeers, @p*{This talk will provide a brief introduction to Racket and Racketeers,
a report on recent and current developments, and predictions for the a report on recent and current developments, and predictions for the
future. Bring your questions, and I'll bring my Magic 8 Ball.} future. Bring your questions, and I'll bring my Magic 8 Ball.}
@ -85,8 +105,7 @@
system, compiler, macro system, build system, package system, system, compiler, macro system, build system, package system,
documentation language, and graphics/GUI libraries.}) documentation language, and graphics/GUI libraries.})
(list (list
"Tony Garnock-Jones" "http://homepages.kcbbs.gen.nz/tonyg/" tonyg
"Minimart: Organizing Squabbling Actors"
@p*{Actors are a great model for managing concurrency and communication @p*{Actors are a great model for managing concurrency and communication
within programs. The Minimart #lang adds Actors to Racket; but Actors within programs. The Minimart #lang adds Actors to Racket; but Actors
alone are not enough. Programmers using Actors are often left to solve alone are not enough. Programmers using Actors are often left to solve
@ -101,8 +120,7 @@
Programming Research Laboratory, working on applying lessons from Programming Research Laboratory, working on applying lessons from
distributed systems to programming language design.}) distributed systems to programming language design.})
(list (list
"Greg Hendershott" "http://www.greghendershott.com/" gregh
"Emacs à la mode DrRacket"
@p*{DrRacket is wonderful for both newcomers and Racket pros. @p*{DrRacket is wonderful for both newcomers and Racket pros.
Some people do like to use Emacs, especially when working with a wide Some people do like to use Emacs, especially when working with a wide
variety of file types and languages. Racket-mode brings some of the variety of file types and languages. Racket-mode brings some of the
@ -114,8 +132,7 @@
advisor to technology companies such as Roland and JamHub. Soon after advisor to technology companies such as Roland and JamHub. Soon after
RacketCon he is joining the autumn batch at Hacker School.}) RacketCon he is joining the autumn batch at Hacker School.})
(list (list
"Jay McCarthy" "http://jeapostrophe.github.io" jay
"Get Bonus! Infinite Functional Entertainment at 60 FPS!"
@p*{Hard real-time embedded systems with tight operating @p*{Hard real-time embedded systems with tight operating
environments, a.k.a. console video games, are an exciting and environments, a.k.a. console video games, are an exciting and
challenging place to program functionally. The Get Bonus project is challenging place to program functionally. The Get Bonus project is
@ -127,8 +144,7 @@
Racket's Web server, package system, networking libraries, and Racket's Web server, package system, networking libraries, and
special projects, like DrDr.}) special projects, like DrDr.})
(list (list
"Brian Mastenbrook" "http://brian.mastenbrook.net/" brianm
"Racket in Production"
@p*{When electronic products come off the manufacturing line, they @p*{When electronic products come off the manufacturing line, they
go through a multi-step program and test process to become sellable go through a multi-step program and test process to become sellable
products. Wearable has been using Racket to automate this process for products. Wearable has been using Racket to automate this process for
@ -146,8 +162,7 @@
Motorola on code generators in Common Lisp for five-nines Motorola on code generators in Common Lisp for five-nines
telecommunication systems (among other things).}) telecommunication systems (among other things).})
(list (list
"Daniel Prager" "https://www.youpatch.com/" danprager
"YouPatch: A Racket-powered startup"
@p*{@a[href: "youpatch.com"]{youpatch.com} began as a hack in Racket to @p*{@a[href: "youpatch.com"]{youpatch.com} began as a hack in Racket to
save my wife PatchAndi 10 or so hours of effort to turn an image of save my wife PatchAndi 10 or so hours of effort to turn an image of
Groucho Marx into the design for a patchwork quilt, and evolved into Groucho Marx into the design for a patchwork quilt, and evolved into
@ -169,8 +184,7 @@
between Agile/Lean coaching and more entrepreneurial endeavours, between Agile/Lean coaching and more entrepreneurial endeavours,
including YouPatch!}) including YouPatch!})
(list (list
"Neil Toronto" "http://students.cs.byu.edu/~ntoronto/" ntoronto
"Purely Functional 3D in Typed Racket"
@p*{Efficient 3D engines use scene databases to quickly answer queries @p*{Efficient 3D engines use scene databases to quickly answer queries
such as "What must be drawn if the viewer is here and looking this such as "What must be drawn if the viewer is here and looking this
direction?" and "Return all non-opaque triangles in back-to-front direction?" and "Return all non-opaque triangles in back-to-front
@ -188,8 +202,7 @@
computation at University of Maryland, College Park. He writes computation at University of Maryland, College Park. He writes
programs to draw pretty pictures in his nonexistent spare time.}) programs to draw pretty pictures in his nonexistent spare time.})
(list (list
"David Vanderson" "https://github.com/david-vanderson/" davidv
"Racket for a networked multiplayer game"
@p*{I'll talk about using Racket features like easy serialization, @p*{I'll talk about using Racket features like easy serialization,
threads, and eventspaces to smoothly go from a toy prototype to a threads, and eventspaces to smoothly go from a toy prototype to a
playable networked game.} playable networked game.}
@ -218,11 +231,40 @@
@p{@nbsp} @p{@nbsp}
@p{@b{Schedule (talk summaries below) :}}
@session-sched[
@slot["9:30" #f]{Welcome}
@slot["9:30-10:30" #f]{Keynote}
@(speaker-slot fogus)
@slot["10:30-10:50" #f]{Break}
@(session "10:50-11:50" "Racketeering Essentials" "Matthias Felleisen")
@(speaker-slot mflatt)
@(speaker-slot danprager)
@slot["11:50-13:40" #f]{Lunch}
@(session "13:40-14:40" "Games and Graphics" "Robby Findler")
@(speaker-slot davidv)
@(speaker-slot jay)
@(speaker-slot ntoronto)
@slot["14:40-15:00" #f]{Break}
@(session "15:00-16:00" "Actors and Musicians" "Sam Tobin-Hochstadt")
@(speaker-slot brianm)
@(speaker-slot tonyg)
@(speaker-slot jbc)
@slot["16:00-16:20" #f]{Break}
@(session "16:20-17:20" "Libraries and Tools" "Claire Alvis")
@(speaker-slot mbutterick)
@(speaker-slot gregh)
@(speaker-slot stchang)
@slot["17:20" #f]{Closing Remarks}
]
@p{@nbsp}
@p{@b{Talks:}} @p{@b{Talks:}}
@(apply ul @(apply ul
(for/list ([speaker (in-list speaker-info)]) (for/list ([speaker (in-list speaker-info)])
(match-define (list name web-page title abstract bio) speaker) (match-define (list name abstract bio) speaker)
@li{@p*{@a[href: web-page]{@name} @(or title "TBA")} @li{@p*{@name @(or (speaker->title name) "TBA")}
@(or abstract "") @(or abstract "")
@(or bio "") @(or bio "")
@hr{}}))} @hr{}}))}

View File

@ -32,7 +32,7 @@
(define samth @name["http://www.ccs.neu.edu/~samth"]{Sam Tobin-Hochstadt}) (define samth @name["http://www.ccs.neu.edu/~samth"]{Sam Tobin-Hochstadt})
(define sk @name["http://www.cs.brown.edu/~sk"]{Shriram Krishnamurthi}) (define sk @name["http://www.cs.brown.edu/~sk"]{Shriram Krishnamurthi})
(define jpolitz @name["http://jpolitz.github.com/"]{Joe Gibbs Politz}) (define jpolitz @name["http://jpolitz.github.com/"]{Joe Gibbs Politz})
(define jay @name["http://faculty.cs.byu.edu/~jay/home/"]{Jay McCarthy}) (define jay @name["http://jeapostrophe.github.io"]{Jay McCarthy})
(define rbf @name["http://www.eecs.northwestern.edu/~robby"]{Robby Findler}) (define rbf @name["http://www.eecs.northwestern.edu/~robby"]{Robby Findler})
(define jbc @name["http://www.brinckerhoff.org/clements/"]{John Clements}) (define jbc @name["http://www.brinckerhoff.org/clements/"]{John Clements})
(define dyoo @name["http://hashcollision.org/"]{Danny Yoo}) (define dyoo @name["http://hashcollision.org/"]{Danny Yoo})
@ -115,6 +115,29 @@
@span[style: "text-align: right"]{ @span[style: "text-align: right"]{
@slides-elem @code-elem @video-elem}}}))) @slides-elem @code-elem @video-elem}}})))
;; like sched, but with talks grouped in sessions, and only session headers
;; have times listed
;; the interface could be prettier
(define (session-sched . slots)
(table class: 'sched width: "100%" frame: 'hsides
cellspacing: 0 cellpadding: "3px"
(for/list ([sl (in-list slots)])
(match-define (slot* t speaker slides code video title) sl)
(define time
;; "figure space" for alignment
(and t
(cons (and (regexp-match? #rx"^.:" t) (entity #x2007))
(add-between (regexp-split #rx"-" t) ndash))))
(define slides-elem (and slides @a[href: slides]{[slides]}))
(define code-elem (and code @a[href: code]{[code]}))
(define video-elem (and video @a[href: video]{[video]}))
@tr[valign: 'top bgcolor: (if speaker "#ffffff" "#e8e8e8")]{
@td[width: "30%"]{@(or time speaker)}
@td[width: "70%"]{
@title
@span[style: "text-align: right"]{
@slides-elem @code-elem @video-elem}}})))
;; Refer to a file that has been manually uploaded ;; Refer to a file that has been manually uploaded
;; (relative to its referring page): ;; (relative to its referring page):
(define (F p) p) (define (F p) p)