From 986b5c39cd3aa5748e1a920a62e934153a891e5c Mon Sep 17 00:00:00 2001 From: Vincent St-Amour Date: Mon, 25 Aug 2014 17:42:32 -0400 Subject: [PATCH] RacketCon schedule. --- pkgs/plt-services/meta/new-web/rcon/all.rkt | 94 ++++++++++++++----- pkgs/plt-services/meta/new-web/rcon/utils.rkt | 25 ++++- 2 files changed, 92 insertions(+), 27 deletions(-) diff --git a/pkgs/plt-services/meta/new-web/rcon/all.rkt b/pkgs/plt-services/meta/new-web/rcon/all.rkt index 5fc5bd48f6..a2070c3c0f 100644 --- a/pkgs/plt-services/meta/new-web/rcon/all.rkt +++ b/pkgs/plt-services/meta/new-web/rcon/all.rkt @@ -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{}}))} diff --git a/pkgs/plt-services/meta/new-web/rcon/utils.rkt b/pkgs/plt-services/meta/new-web/rcon/utils.rkt index e8345031c2..9886e0c396 100644 --- a/pkgs/plt-services/meta/new-web/rcon/utils.rkt +++ b/pkgs/plt-services/meta/new-web/rcon/utils.rkt @@ -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)