RacketCon schedule.
This commit is contained in:
parent
32ae3f8308
commit
986b5c39cd
|
@ -18,11 +18,35 @@
|
|||
|
||||
(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
|
||||
(list
|
||||
(list
|
||||
"Michael Fogus" "http://www.fogus.me/"
|
||||
"Extracting a Goose from a Klein Bottle"
|
||||
fogus
|
||||
@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
|
||||
language development, innovation, marketing, open source, research,
|
||||
|
@ -38,8 +62,7 @@
|
|||
@em{Functional JavaScript} and the upcoming release @em{The Art of
|
||||
Chupacabra Husbandry}.})
|
||||
(list
|
||||
"Matthew Butterick" "http://practicaltypography.com/"
|
||||
"Like a Blind Squirrel in a Ferrari"
|
||||
mbutterick
|
||||
@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
|
||||
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
|
||||
@a[href: "practicaltypography.com"]{practicaltypography.com}.})
|
||||
(list
|
||||
"Stephen Chang" "http://www.ccs.neu.edu/home/stchang/"
|
||||
"A Boost-Inspired Graph Library for Racket"
|
||||
stchang
|
||||
@p*{The Boost Graph Library (BGL) introduces many novel abstraction
|
||||
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
|
||||
|
@ -62,8 +84,7 @@
|
|||
to study programming languages and has been hacking in Racket ever
|
||||
since.})
|
||||
(list
|
||||
"John Clements" "http://www.brinckerhoff.org/JBCsite/index.html"
|
||||
"Stumbling around in the dark: failure partially averted"
|
||||
jbc
|
||||
@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
|
||||
Music. The challenge is to allow students with no programming
|
||||
|
@ -75,8 +96,7 @@
|
|||
San Luis Obispo. He is the author of DrRacket’s Stepper, and the RSound
|
||||
library, and this paragraph.})
|
||||
(list
|
||||
"Matthew Flatt" "https://www.cs.utah.edu/~mflatt/"
|
||||
"Carry on Making that Racket"
|
||||
mflatt
|
||||
@p*{This talk will provide a brief introduction to Racket and Racketeers,
|
||||
a report on recent and current developments, and predictions for the
|
||||
future. Bring your questions, and I'll bring my Magic 8 Ball.}
|
||||
|
@ -85,8 +105,7 @@
|
|||
system, compiler, macro system, build system, package system,
|
||||
documentation language, and graphics/GUI libraries.})
|
||||
(list
|
||||
"Tony Garnock-Jones" "http://homepages.kcbbs.gen.nz/tonyg/"
|
||||
"Minimart: Organizing Squabbling Actors"
|
||||
tonyg
|
||||
@p*{Actors are a great model for managing concurrency and communication
|
||||
within programs. The Minimart #lang adds Actors to Racket; but Actors
|
||||
alone are not enough. Programmers using Actors are often left to solve
|
||||
|
@ -101,8 +120,7 @@
|
|||
Programming Research Laboratory, working on applying lessons from
|
||||
distributed systems to programming language design.})
|
||||
(list
|
||||
"Greg Hendershott" "http://www.greghendershott.com/"
|
||||
"Emacs à la mode DrRacket"
|
||||
gregh
|
||||
@p*{DrRacket is wonderful for both newcomers and Racket pros.
|
||||
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
|
||||
|
@ -114,8 +132,7 @@
|
|||
advisor to technology companies such as Roland and JamHub. Soon after
|
||||
RacketCon he is joining the autumn batch at Hacker School.})
|
||||
(list
|
||||
"Jay McCarthy" "http://jeapostrophe.github.io"
|
||||
"Get Bonus! Infinite Functional Entertainment at 60 FPS!"
|
||||
jay
|
||||
@p*{Hard real-time embedded systems with tight operating
|
||||
environments, a.k.a. console video games, are an exciting and
|
||||
challenging place to program functionally. The Get Bonus project is
|
||||
|
@ -127,8 +144,7 @@
|
|||
Racket's Web server, package system, networking libraries, and
|
||||
special projects, like DrDr.})
|
||||
(list
|
||||
"Brian Mastenbrook" "http://brian.mastenbrook.net/"
|
||||
"Racket in Production"
|
||||
brianm
|
||||
@p*{When electronic products come off the manufacturing line, they
|
||||
go through a multi-step program and test process to become sellable
|
||||
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
|
||||
telecommunication systems (among other things).})
|
||||
(list
|
||||
"Daniel Prager" "https://www.youpatch.com/"
|
||||
"YouPatch: A Racket-powered startup"
|
||||
danprager
|
||||
@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
|
||||
Groucho Marx into the design for a patchwork quilt, and evolved into
|
||||
|
@ -169,8 +184,7 @@
|
|||
between Agile/Lean coaching and more entrepreneurial endeavours,
|
||||
including YouPatch!})
|
||||
(list
|
||||
"Neil Toronto" "http://students.cs.byu.edu/~ntoronto/"
|
||||
"Purely Functional 3D in Typed Racket"
|
||||
ntoronto
|
||||
@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
|
||||
direction?" and "Return all non-opaque triangles in back-to-front
|
||||
|
@ -188,8 +202,7 @@
|
|||
computation at University of Maryland, College Park. He writes
|
||||
programs to draw pretty pictures in his nonexistent spare time.})
|
||||
(list
|
||||
"David Vanderson" "https://github.com/david-vanderson/"
|
||||
"Racket for a networked multiplayer game"
|
||||
davidv
|
||||
@p*{I'll talk about using Racket features like easy serialization,
|
||||
threads, and eventspaces to smoothly go from a toy prototype to a
|
||||
playable networked game.}
|
||||
|
@ -218,11 +231,40 @@
|
|||
|
||||
@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:}}
|
||||
@(apply ul
|
||||
(for/list ([speaker (in-list speaker-info)])
|
||||
(match-define (list name web-page title abstract bio) speaker)
|
||||
@li{@p*{@a[href: web-page]{@name} — @(or title "TBA")}
|
||||
(match-define (list name abstract bio) speaker)
|
||||
@li{@p*{@name — @(or (speaker->title name) "TBA")}
|
||||
@(or abstract "")
|
||||
@(or bio "")
|
||||
@hr{}}))}
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
(define samth @name["http://www.ccs.neu.edu/~samth"]{Sam Tobin-Hochstadt})
|
||||
(define sk @name["http://www.cs.brown.edu/~sk"]{Shriram Krishnamurthi})
|
||||
(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 jbc @name["http://www.brinckerhoff.org/clements/"]{John Clements})
|
||||
(define dyoo @name["http://hashcollision.org/"]{Danny Yoo})
|
||||
|
@ -115,6 +115,29 @@
|
|||
@span[style: "text-align: right"]{
|
||||
@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
|
||||
;; (relative to its referring page):
|
||||
(define (F p) p)
|
||||
|
|
Loading…
Reference in New Issue
Block a user