diff --git a/collects/meta/web/common/extras.rkt b/collects/meta/web/common/extras.rkt index 77945514d3..db9d6c571c 100644 --- a/collects/meta/web/common/extras.rkt +++ b/collects/meta/web/common/extras.rkt @@ -65,7 +65,7 @@ [chunks (if (null? (car chunks)) (cdr chunks) chunks)] [body (for/list ([text (in-list chunks)] [tag (in-cycle (in-list tags))]) - (tag text))] + (apply tag text))] [body (if nls? (add-newlines body) body)]) (wrapper body))) (define p* (make-separated-tag values p)) diff --git a/collects/meta/web/minis/lists.rkt b/collects/meta/web/minis/lists.rkt index f37356e977..5172440337 100644 --- a/collects/meta/web/minis/lists.rkt +++ b/collects/meta/web/minis/lists.rkt @@ -14,7 +14,7 @@ @text{A low-volume, moderated list for announcements, only.}) (ML "dev" "devel" #f @text{A mailing list for Racket development, for people who want to - see how the sausages are made @mdash and help make them.}))) + see how the sausages are made — and help make them.}))) (define lists @page[#:title "Mailing Lists" #:file "" #:part-of 'community @@ -99,7 +99,7 @@ @br @span[style: "white-space: nowrap;"]{ Search: @input[type: 'text name: 'q value: "" size: 20].}} - @td{@small{@|mdash|none@mdash}})] + @td{@small{—none—}})] [(mail-archive-cell) @form-cell["http://www.mail-archive.com/search"]{ @input[type: 'hidden name: 'l value: email] diff --git a/collects/meta/web/stubs/git.rkt b/collects/meta/web/stubs/git.rkt index e78e2310b8..d50ed5c16c 100644 --- a/collects/meta/web/stubs/git.rkt +++ b/collects/meta/web/stubs/git.rkt @@ -128,7 +128,8 @@ ;; xhtml strict doesn't allow lists inside

, so fake our own paragraphs ;; using divs: -(define p* (make-separated-tag values (lambda (text) (div class: 'p text)))) +(define p* + (make-separated-tag values (lambda text (apply div class: 'p text)))) @page[#:title "git intro" #:extra-headers style]{ diff --git a/collects/meta/web/stubs/pre.rkt b/collects/meta/web/stubs/pre.rkt index b3bb506c90..f551d071fe 100644 --- a/collects/meta/web/stubs/pre.rkt +++ b/collects/meta/web/stubs/pre.rkt @@ -225,8 +225,8 @@ builds (eg, after a minor version change).} @h3{A note about defensive scripting:} @p{Writing scripts that work for you is easy. Making them robust enough to - be usable by others or by site-wide setups can be a delicate job @mdash - you have to plan for bad @tt{PATH} setting (for example, a cron job is + be usable by others or by site-wide setups can be a delicate job — you + have to plan for bad @tt{PATH} setting (for example, a cron job is started in a pretty much bare environment), errors that happen in one command etc. The following is just like the above script, modified to be more robust in the following way: diff --git a/collects/meta/web/www/community.rkt b/collects/meta/web/www/community.rkt index 38892e4143..61402a143e 100644 --- a/collects/meta/web/www/community.rkt +++ b/collects/meta/web/www/community.rkt @@ -11,8 +11,8 @@ @mailing-lists-quick @irc-quick @parlist[@strong{PLT Scheme Inc.} - @text{@blog @mdash announcements, helpful hints, and thoughtful rants.} - @text{@people @mdash the people behind Racket.}] + @text{@blog — announcements, helpful hints, and thoughtful rants.} + @text{@people — the people behind Racket.}] @parlist[@strong{Development} @text{@git (also available on @a[href: "http://github.com/plt/racket/"]{GitHub})} diff --git a/collects/meta/web/www/index.rkt b/collects/meta/web/www/index.rkt index adb077825d..cd38d4eccc 100644 --- a/collects/meta/web/www/index.rkt +++ b/collects/meta/web/www/index.rkt @@ -154,7 +154,7 @@ (apply string-append (filter string? l))) (tog (list 5 "hello " 1/2 "world" (sqrt -1)))} @desc{Racket's type system is designed to let you add types after you've - worked for a while in untyped mode @|ndash| even if your untyped program + worked for a while in untyped mode — even if your untyped program wouldn't fit nicely in a conventional type system.}) (scribble-example ; -------------------------------------- @code|{#lang scribble/base diff --git a/collects/meta/web/www/irc.rkt b/collects/meta/web/www/irc.rkt index 80b3fafdc7..966bf9f11d 100644 --- a/collects/meta/web/www/irc.rkt +++ b/collects/meta/web/www/irc.rkt @@ -16,6 +16,6 @@ (define (irc-quick) @parlist[@strong{Discussion Channel} @text{@irc-chat{Chat on IRC} in the @TT{@big{@strong{#racket}}} channel on - @a[href: "http://freenode.net"]{@tt{freenode.net}} @mdash an informal + @a[href: "http://freenode.net"]{@tt{freenode.net}} — an informal discussion channel for all things related to Racket. @irc-logs{Browse the logs}.}]) diff --git a/collects/meta/web/www/learning.rkt b/collects/meta/web/www/learning.rkt index 56427131fe..cad67f3b79 100644 --- a/collects/meta/web/www/learning.rkt +++ b/collects/meta/web/www/learning.rkt @@ -18,18 +18,16 @@ @page{ @parlist[@strong{Resources for Learning} (apply parlist @text{Documentation for getting started:} intros) - @text{@-cookbook @mdash useful recipes, many of which apply to Racket.} - @text{@-htdp @mdash a textbook for introductory programming, but also - worthwhile for experience programmers who are new to @|ldquo|functional - programming.@|rdquo|} - @text{@-plai @mdash a textbook on programming languages.} - @text{@-teachscheme @mdash a workshop to train teachers using @-htdp in - the classroom.}] + @text{@-cookbook — useful recipes, many of which apply to Racket.} + @text{@-htdp — a textbook for introductory programming, but also + worthwhile for experience programmers who are new to “functional + programming.”} + @text{@-plai — a textbook on programming languages.}] @parlist[ @strong{Outreach} - @text{@-teachscheme @mdash a workshop to train teachers using @-htdp in - the classroom.} - @text{@-bootstrap @mdash a curriculum for middle-school students.}] + @text{@-teachscheme — a workshop to train teachers using @-htdp in the + classroom.} + @text{@-bootstrap — a curriculum for middle-school students.}] @parlist[@strong{Publications} techreports brown-pubs nwu-pubs neu-pubs utah-pubs] @parlist[@strong{Graduate Study} @@ -44,44 +42,45 @@ @h1{Graduate Study with PLT} @p{An open letter to graduate applicants:} @div[style: (box-style 3 "#ddd")]{ - @p{Dear Prospective Graduate Student, - @br{}@br{} - Thank you for your interest in working with PLT. We get several - inquiries every year from students interested in working with one or - more of us. We're flattered and, of course, interested in your - applications. Because you are more interested in PLT than in our - specific institutions, we have created the following common - application form. By filling it in once, you can automatically apply - to all current PLT institutions.} - @p[style: (box-style 1 "#bbb")]{ - Yes, we know you don't like Boston/Chicago/Providence/Provo/Salt Lake - City/San Luis Obispo/Worcester (circle those applicable). But we like - them, or we wouldn't be living there. Think about the message you're - sending by rejecting our choices. Moreover, we think very highly of - our colleagues@|mdash|more highly than we think of your judgment in - this matter@|mdash|so for your own good, we're going to forward your - application to them anyway.} - @p{How many years have you programmed in Scheme?} - @p{How many years have you programmed in PLT Scheme?} - @p{If the two numbers above are not identical, justify.} - @p{How many PLT Scheme Web applications have you written?} - @p{What problems did you find with the PLT Scheme Web server in the - process? Please list bug report numbers.} - @p{Which wheels did you inadvertently reinvent?} - @p{Do you prefer your calculi Classic or Featherweight?} - @p{Should types be intervals or ideals?} - @p{In your opinion, which Barendregt proof has the highest hours spent - understanding-to-symbols ratio?} - @p{Which is your favorite combinator?} - @p{Thank you for your interest. Don't be a cat squandering the popcorn.} - @p[align: 'right]{@|mdash|Shriram, Outreach Coordinator, PLT}} - @p{Seriously, we @em{do} enjoy working with graduate students. If you - are inspired by the PLT project and want to drive the next generation of + @p*{ + Dear Prospective Graduate Student, + @|br br| + Thank you for your interest in working with PLT. We get several + inquiries every year from students interested in working with one or more + of us. We're flattered and, of course, interested in your applications. + Because you are more interested in PLT than in our specific institutions, + we have created the following common application form. By filling it in + once, you can automatically apply to all current PLT institutions. + @~ @|style: (box-style 1 "#bbb")|@; + Yes, we know you don't like Boston/Chicago/Providence/Provo/Salt Lake + City/San Luis Obispo/Worcester (circle those applicable). But we like + them, or we wouldn't be living there. Think about the message you're + sending by rejecting our choices. Moreover, we think very highly of our + colleagues—more highly than we think of your judgment in this matter—so + for your own good, we're going to forward your application to them + anyway. + @~ How many years have you programmed in Scheme? + @~ How many years have you programmed in PLT Scheme? + @~ If the two numbers above are not identical, justify. + @~ How many PLT Scheme Web applications have you written? + @~ What problems did you find with the PLT Scheme Web server in the + process? Please list bug report numbers. + @~ Which wheels did you inadvertently reinvent? + @~ Do you prefer your calculi Classic or Featherweight? + @~ Should types be intervals or ideals? + @~ In your opinion, which Barendregt proof has the highest hours spent + understanding-to-symbols ratio? + @~ Which is your favorite combinator? + @~ Thank you for your interest. Don't be a cat squandering the popcorn. + @~ @|align: 'right| + —Shriram, Outreach Coordinator, PLT}} + @p{Seriously, we @em{do} enjoy working with graduate students. If you are + inspired by the PLT project and want to drive the next generation of innovation, you should strongly consider graduate study with us. We look forward to hearing from you. All of us, no matter where we may live.} @p[align: 'right]{ - @|mdash|@; + —@; @a[href: "http://www.ccs.neu.edu/home/matthias/"]{Matthias}, @a[href: "http://www.eecs.northwestern.edu/~robby/"]{Robby}, @a[href: "http://www.cs.wpi.edu/~kfisler/"]{Kathi}, diff --git a/collects/meta/web/www/new-name.rkt b/collects/meta/web/www/new-name.rkt index 8a594d33f7..76377173cd 100644 --- a/collects/meta/web/www/new-name.rkt +++ b/collects/meta/web/www/new-name.rkt @@ -4,24 +4,6 @@ (define (url str) (tt (a href: str str))) -;;TODO: this should be done with some common function, together with -;;translating "``" etc. -(define (split-to-paras xs) - (let loop ([cur #f] [paras '()] [xs xs]) - (cond - [(null? xs) (map p (reverse (if cur (cons (reverse cur) paras) paras)))] - [cur (if (and (equal? "\n" (car xs)) - (pair? (cdr xs)) (equal? "\n" (cadr xs))) - (loop #f (cons (reverse cur) paras) (cdr xs)) - (loop (cons (car xs) cur) paras (cdr xs)))] - [else (loop (if (equal? "\n" (car xs)) cur (list (car xs))) - paras (cdr xs))]))) - -(define ((FAQ tag . ques) . answer) - @div[class: 'faqentry]{ - @div[class: 'faqques]{@a[name: tag]{@ques}} - @div[class: 'faqans]{@@(split-to-paras answer)}}) - (define styles @style/inline{ .nestedheading { @@ -51,141 +33,137 @@ margin-left: 1em; }}) +(define ((FAQ tag . ques) . answer) + @div[class: 'faqentry]{ + @div[class: 'faqques]{@a[name: tag]{@ques}} + @div[class: 'faqans]{@answer}}) + +(define (heading . text) + (apply div class: 'nestedheading text)) +(define (nested . text) + (apply div class: 'nested text)) + (define new-name @page[#:title "From PLT Scheme to Racket"]{ @styles - @div[class: 'nestedheading]{PLT Scheme is a Racket} + @heading{PLT Scheme is a Racket} - @div[class: 'nested]{Sure, it has parentheses, uses the keyword - @tt{lambda}, provides lexical scope, and emphasizes macros @|ndash| but - don't be fooled. PLT Scheme is no minimalist embodiment of 1930s math or - 1970s technology. PLT Scheme is a cover for a gang of academic hackers - who want to fuse cutting-edge programming-language research with everyday - programming. They draw you in with the promise of a simple and polite - little Scheme, but soon you'll find yourself using modules, contracts, - keyword arguments, classes, static types, and even curly braces.} + @nested{Sure, it has parentheses, uses the keyword @tt{lambda}, provides + lexical scope, and emphasizes macros — but don't be fooled. PLT Scheme + is no minimalist embodiment of 1930s math or 1970s technology. PLT + Scheme is a cover for a gang of academic hackers who want to fuse + cutting-edge programming-language research with everyday programming. + They draw you in with the promise of a simple and polite little Scheme, + but soon you'll find yourself using modules, contracts, keyword + arguments, classes, static types, and even curly braces.} - @div[class: 'nestedheading]{Racket is a Scheme} + @heading{Racket is a Scheme} - @div[class: 'nested]{Racket is still a dialect of Lisp and a descendant of - Scheme. The tools developed by PLT will continue to support R5RS, R6RS, - the old @tt{mzscheme} environment, Typed Scheme, and more. At the same - time, instead of having to say @|ldquo|PLT's main variant of - Scheme,@|rdquo| programmers can now simply say @|ldquo|Racket@|rdquo| to - refer to the specific descendant of Scheme that powers PLT's languages - and libraries.} + @nested{Racket is still a dialect of Lisp and a descendant of Scheme. The + tools developed by PLT will continue to support R5RS, R6RS, the old + @tt{mzscheme} environment, Typed Scheme, and more. At the same time, + instead of having to say “PLT's main variant of Scheme,” programmers can + now simply say “Racket” to refer to the specific descendant of Scheme + that powers PLT's languages and libraries.} @div[class: 'faqsection]{ - @div[class: 'nestedheading]{Anticipated Questions} + @heading{Anticipated Questions} - @@FAQ["why"]{ - Why change the name? - }{ - + @@FAQ['why]{Why change the name?}{ + @p*{ The @name{Scheme} part of the name @name{PLT Scheme} is misleading, and it is often an obstacle to explaining and promoting PLT research and tools. - - For example, when you type @|ldquo|scheme@|rdquo| into Google, the - first hit is a Wikipedia entry written from an R5RS perspective. - That's appropriate for a Wikipedia page on Scheme, but it's not a good - introduction to PLT Scheme. As long as we call our language - @name{Scheme}, we struggle to explain our language, and we are usually - forced to start the explanation with a disclaimer. At the same time, - to the degree that the PLT community has defined @name{Scheme} though - market share, publications, and educational outreach, we interfere with - everyone else's ability to define @name{Scheme} @|ndash| and many have - a valid claim to that ability. - - By switching to @name{Racket}, we expect to resolve this - communication problem.} + @~ + For example, when you type “scheme” into Google, the first hit is a + Wikipedia entry written from an R5RS perspective. That's appropriate + for a Wikipedia page on Scheme, but it's not a good introduction to PLT + Scheme. As long as we call our language @name{Scheme}, we struggle to + explain our language, and we are usually forced to start the + explanation with a disclaimer. At the same time, to the degree that + the PLT community has defined @name{Scheme} though market share, + publications, and educational outreach, we interfere with everyone + else's ability to define @name{Scheme} — and many have a valid claim to + that ability. + @~ + By switching to @name{Racket}, we expect to resolve this communication + problem.}} - @@FAQ["what"]{What will the change look like? - }{ - + @@FAQ['what]{What will the change look like?}{ + @p*{ @name{DrScheme} becomes @name{DrRacket}. The @tt{mzscheme} executable becomes @tt{racket}, and @tt{mred} becomes @tt{gracket} (following a - common convention for @|ldquo|GUI @tt{racket}@|rdquo|). We change each - @tt{#lang scheme} to @tt{#lang racket} in the Racket distribution, - although @tt{#lang scheme} will be supported for backward - compatibility. The @url{http://plt-scheme.org} site will be replaced by + common convention for “GUI @tt{racket}”). We change each @tt{#lang + scheme} to @tt{#lang racket} in the Racket distribution, although + @tt{#lang scheme} will be supported for backward compatibility. The + @url{http://plt-scheme.org} site will be replaced by @url{http://racket-lang.org}. The @tt{plt-scheme} mailing list becomes - the @tt{racket} mailing list (@tt{users@"@"racket-lang.org}). - + the @tt{racket} mailing list (@tt|{users@racket-lang.org}|). + @~ The Racket site and documentation will note that Racket is a descendant - of Scheme, but most current uses of the word @|ldquo|Scheme@|rdquo| - (which implicitly mean PLT Scheme) will be replaced by - @|ldquo|Racket.@|rdquo| - - Racket programmers are @name{Racketeers}, of course.} + of Scheme, but most current uses of the word “Scheme” (which implicitly + mean PLT Scheme) will be replaced by “Racket.” + @~ + Racket programmers are @name{Racketeers}, of course.}} - @@FAQ["scheme"]{ - Does this mean that PLT will no longer implement Scheme? - }{ - + @@FAQ['scheme]{Does this mean that PLT will no longer implement Scheme?}{ + @p*{ There will be little difference between the current @tt{#lang scheme} - and the new @tt{#lang racket}, but the latter will become the - preferred form. - - In addition, PLT will continue to support standards such as R5RS - and R6RS. The transition from/to various Scheme languages to/from - Racket will be as easy/difficult as before.} + and the new @tt{#lang racket}, but the latter will become the preferred + form. + @~ + In addition, PLT will continue to support standards such as R5RS and + R6RS. The transition from/to various Scheme languages to/from Racket + will be as easy/difficult as before.}} - @@FAQ["transition"]{What happens to all of the old programs, scripts, - address books, bookmarks, papers, etc. that refer to @name{PLT - Scheme} instead of @name{Racket}?}{ + @@FAQ['transition]{What happens to all of the old programs, scripts, + address books, bookmarks, papers, etc. that refer to @name{PLT Scheme} + instead of @name{Racket}?}{ + @p*{ Old executables, web sites, mailing addresses, and module names will forward to the new ones. We will work to make the transition as painless as possible and to preserve old references for as long as - possible.} - - @@FAQ["edu"]{ - How can I tell my department that we should teach with Racket - instead of Scheme? They've never heard of @name{Racket}. - }{ + possible.}} + @@FAQ['edu]{How can I tell my department that we should teach with Racket + instead of Scheme? They've never heard of @name{Racket}.}{ + @p*{ If you felt comfortable claiming that PLT Scheme was Scheme before, then you can still say that you want to teach with Scheme, even if the environment is called @name{DrRacket}. Racket is a descendant of - Scheme, just like PLT Scheme was.} + Scheme, just like PLT Scheme was.}} - @@FAQ["brand"]{ - Aren't you worried that you will lose brand recognition by switching - from the name @name{Scheme} to @name{Racket}? - }{ - + @@FAQ['brand]{Aren't you worried that you will lose brand recognition by + switching from the name @name{Scheme} to @name{Racket}?}{ + @p*{ Yes. Nevertheless, we think the long-term benefit of a new name will - outweigh the short-term difficulties of changing.} + outweigh the short-term difficulties of changing.}} - @@FAQ["plt"]{ - Instead of picking a new name, why not just call the language - @name{PLT}? - }{ - + @@FAQ['plt]{Instead of picking a new name, why not just call the language + @name{PLT}?}{ + @p*{ Some of us tried that, informally. It felt awkward, because we use @name{PLT} to refer to a group of people, and because we have used @name{PLT} as a modifier for @name{Scheme} and other nouns. Switching the language name from one noun to another sounds better, it's clearer, - and it's easier to explain.} + and it's easier to explain.}} - @@FAQ["suggestions"]{ - Couldn't you find a better name? - @name{[Insert name here]} would be better. - }{ - + @@FAQ['suggestions]{Couldn't you find a better name? + @name{[Insert name here]} would be better.}{ + @p*{ Thank you for the suggestion. The name @name{Racket} meets some basic criteria: it isn't used already, it's easy to pronounce and spell, and - it has a vague connection to the word @|ldquo|scheme.@|rdquo| Mostly, - though, we just like it.} + it has a vague connection to the word “scheme.” Mostly, though, we + just like it.}} }}) diff --git a/collects/meta/web/www/people.rkt b/collects/meta/web/www/people.rkt index 3463c76a83..2be8349c21 100644 --- a/collects/meta/web/www/people.rkt +++ b/collects/meta/web/www/people.rkt @@ -38,18 +38,17 @@ (provide people) (define people @page[#:part-of 'community]{ - @p{@|ldquo|PLT@|rdquo| refers to the group that is the core of the Racket - development team. PLT consists of numerous people distributed across - several different universities in the USA: @places} + @p{“PLT” refers to the group that is the core of the Racket development + team. PLT consists of numerous people distributed across several + different universities in the USA: @places} @h4{Affiliates} @p{We work with - @ul{@li{The crew at @a[href: "http://untyped.com"]{Untyped}} - @li{Dorai Sitaram, GTE Labs} - @li{Mike Sperber, Universität Tübingen}} + @ul*{@~ The crew at @a[href: "http://untyped.com"]{Untyped} + @~ Dorai Sitaram, GTE Labs + @~ Mike Sperber, Universität Tübingen} In particular, please check out the Racket-related work being done at @|-schematics|.} @h4{And ...} @p{Finally, Racket is supported by an band of volunteers who contribute not - only code and documentation but also infectious enthusiasm@|mdash|too - many to name but whose help and encouragement make this fun and - worthwhile.}}) + only code and documentation but also infectious enthusiasm—too many to + name but whose help and encouragement make this fun and worthwhile.}})