Re: [racket-dev] Latex files

2011-02-19 Thread Robby Findler
On Fri, Feb 18, 2011 at 9:44 PM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote:
 On Fri, Feb 18, 2011 at 9:42 PM, Robby Findler
 ro...@eecs.northwestern.edu wrote:
 It wouldn't hurt to include a little script that downloads the correct
 versions of the files from racket-lang.org somewhere and puts them
 where they are currently, tho, no?

 At least for the JFP file, it's pretty clearly a copyright violation
 for us to distribute the file at all -- on the web page or elsewhere.
 We'd have to download it from the CUP site.

Is there more to the license than what Eli quoted? I don't see a
violation of that part, at least.

But I'm starting to think that Matthew's solution is easiest. Lets just punt.

Robby
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Latex files

2011-02-19 Thread Matthew Flatt
At Fri, 18 Feb 2011 22:44:54 -0500, Sam Tobin-Hochstadt wrote:
 At least for the JFP file, it's pretty clearly a copyright violation
 for us to distribute the file at all -- on the web page or elsewhere.
 We'd have to download it from the CUP site.

 For the ACM file, I emailed the contact email for the style file about
 the license.

Did you e-mail anyone at JFP, yet?

Looking again, I can imagine reading the jfp.cls file Robby's way.
The intent of use may be produce a document, and the overall intent
might permit redistribution of jfp.cls to others who are producing
JFP documents. 

Or maybe not, but I now think it's worth asking, and I'll ask if you
haven't already.

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Latex files

2011-02-19 Thread Robby Findler
On Sat, Feb 19, 2011 at 7:25 AM, Neil Van Dyke n...@neilvandyke.org wrote:
 Robby Findler wrote at 02/19/2011 08:00 AM:

 But I'm starting to think that Matthew's solution is easiest. Lets just
 punt.


 FWIW, I see additional reasons to, as Matthew suggested, *not* bundle
 third-party La/TeX class/style files in with Racket:

 * If user needs a different version of the file, avoid headache of getting
 LaTeX to pick up the desired version when there's a name conflict.

For some of the things that scribble generates, new versions of the
file will break scribble (this is why I originally thought it worth
the work to try to have scribble download it from a known place).

 * If user needs a different version of the file, avoid accidentally getting
 the Racket-bundled version without knowing.

This shouldn't happen. The user says

  #lang scribble/jfp

which is its own, well-documented thing that does not adjust anyone's
TEXINPUT paths or anything like that. It only uses jfp's style to help
the final paper be something that jfp finds suitable for publishing.

 * For each paper, user should probably be archiving the exact class/style
 files used for the paper anyway, for future reproducibility.  So, if they
 care about versions, they probably shouldn't be relying on whatever version
 of Racket is installed.

This means that they probably shoudln't be writing their papers in
Scribble, then! (And, of course, if they don't do that, then I think
that there are no issues.)

Robby

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Re: [racket-dev] Latex files

2011-02-19 Thread Sam Tobin-Hochstadt
On Sat, Feb 19, 2011 at 8:22 AM, Matthew Flatt mfl...@cs.utah.edu wrote:
 At Fri, 18 Feb 2011 22:44:54 -0500, Sam Tobin-Hochstadt wrote:
 At least for the JFP file, it's pretty clearly a copyright violation
 for us to distribute the file at all -- on the web page or elsewhere.
 We'd have to download it from the CUP site.

 For the ACM file, I emailed the contact email for the style file about
 the license.

 Did you e-mail anyone at JFP, yet?

I have not, although one of the JFP editors is on this list :)

 Looking again, I can imagine reading the jfp.cls file Robby's way.
 The intent of use may be produce a document, and the overall intent
 might permit redistribution of jfp.cls to others who are producing
 JFP documents.

That's certainly possible, but redistributing the file requires the
permission of the copyright holder, and the tone of the notice
suggests that they aren't very flexible about these things.
-- 
sam th
sa...@ccs.neu.edu
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Latex files

2011-02-19 Thread Robby Findler
Does it seem okay to provide a script that downloads the .cls file
from the jfp website and tuck it into the (already installed)
distribution (presumably in a user-specific place)?

If so, then we can at least set up a drdr test that does that and
checks to see if scribble produces exactly the same .pdf file for some
well known scribble input file, so we get notified problems when they
move the url or make a new version of the file or something.

Robby

On Sat, Feb 19, 2011 at 8:46 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote:
 On Sat, Feb 19, 2011 at 8:22 AM, Matthew Flatt mfl...@cs.utah.edu wrote:
 At Fri, 18 Feb 2011 22:44:54 -0500, Sam Tobin-Hochstadt wrote:
 At least for the JFP file, it's pretty clearly a copyright violation
 for us to distribute the file at all -- on the web page or elsewhere.
 We'd have to download it from the CUP site.

 For the ACM file, I emailed the contact email for the style file about
 the license.

 Did you e-mail anyone at JFP, yet?

 I have not, although one of the JFP editors is on this list :)

 Looking again, I can imagine reading the jfp.cls file Robby's way.
 The intent of use may be produce a document, and the overall intent
 might permit redistribution of jfp.cls to others who are producing
 JFP documents.

 That's certainly possible, but redistributing the file requires the
 permission of the copyright holder, and the tone of the notice
 suggests that they aren't very flexible about these things.
 --
 sam th
 sa...@ccs.neu.edu

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Latex files

2011-02-19 Thread Sam Tobin-Hochstadt
On Sat, Feb 19, 2011 at 9:50 AM, Robby Findler
ro...@eecs.northwestern.edu wrote:
 Does it seem okay to provide a script that downloads the .cls file
 from the jfp website and tuck it into the (already installed)
 distribution (presumably in a user-specific place)?

Yes, this is a well-known workaround in these sorts of situations.
It's used for packages that install Flash on lots of Linux
distributions, for example.

I think it would probably be sufficient to provide a .cls file that
errors with a message indicating where to go to get the file, although
the script you describe would certainly be a helpful addition.

 If so, then we can at least set up a drdr test that does that and
 checks to see if scribble produces exactly the same .pdf file for some
 well known scribble input file, so we get notified problems when they
 move the url or make a new version of the file or something.

 Robby

 On Sat, Feb 19, 2011 at 8:46 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu 
 wrote:
 On Sat, Feb 19, 2011 at 8:22 AM, Matthew Flatt mfl...@cs.utah.edu wrote:
 At Fri, 18 Feb 2011 22:44:54 -0500, Sam Tobin-Hochstadt wrote:
 At least for the JFP file, it's pretty clearly a copyright violation
 for us to distribute the file at all -- on the web page or elsewhere.
 We'd have to download it from the CUP site.

 For the ACM file, I emailed the contact email for the style file about
 the license.

 Did you e-mail anyone at JFP, yet?

 I have not, although one of the JFP editors is on this list :)

 Looking again, I can imagine reading the jfp.cls file Robby's way.
 The intent of use may be produce a document, and the overall intent
 might permit redistribution of jfp.cls to others who are producing
 JFP documents.

 That's certainly possible, but redistributing the file requires the
 permission of the copyright holder, and the tone of the notice
 suggests that they aren't very flexible about these things.
 --
 sam th
 sa...@ccs.neu.edu





-- 
sam th
sa...@ccs.neu.edu
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Latex files

2011-02-19 Thread Robby Findler
On Sat, Feb 19, 2011 at 8:58 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu wrote:
 On Sat, Feb 19, 2011 at 9:50 AM, Robby Findler
 ro...@eecs.northwestern.edu wrote:
 Does it seem okay to provide a script that downloads the .cls file
 from the jfp website and tuck it into the (already installed)
 distribution (presumably in a user-specific place)?

 Yes, this is a well-known workaround in these sorts of situations.
 It's used for packages that install Flash on lots of Linux
 distributions, for example.

 I think it would probably be sufficient to provide a .cls file that
 errors with a message indicating where to go to get the file, although
 the script you describe would certainly be a helpful addition.

I guess it depends how much we are worried they will produce backwards
incompatible .cls files.

Robby
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Packaging

2011-02-19 Thread Jay McCarthy
I've batch my responses to yesterday's questions together.

As a general note, I'd like to have my document be an accurate
reflection of what I should do when I start coding, so if you think I
should update it to clarify the answers to these questions, please let
me know. I'm blinded a bit by my intentions when I read it.

2011/2/18 Robby Findler ro...@eecs.northwestern.edu:
 Minor comment: why encourage names like libgtk and libgtk2 instead
 of a major and minor version number (ala PLaneT)? Don't we want those
 two libraries to be associated somehow (at least loosely)?

I think having libgtk and libgtk2 alleviates a confusion with the
most recent version policy. For example, I write my package when
there is only libgtk and I don't specify which version I want, because
any will do. Later libgtk gets upgraded and its second major version
is not fully backwards compatible. I don't think it is plausible for
the reader of my package metadata to know that I didn't know about the
new version and SHOULD have written a major version 1 requirement,
but didn't.

By having a strict separation between major versions, I think it is
kinder to less specific package metadata. (If you look around PLaneT,
very few packages actually specify their dependencies with much
detail.)

As a slight social engineering, this policy also makes it easier to
provide alternatives to dead packages, because upgrading to an
alternative vendor is no harder than upgrading to the official
version. Also, it may discourage new major versions and therefore
encourage more compatibility.

 Also, it also isn't clear which of the complaints with PLaneT you're
 actually dealing with. I don't see anything about security for example
 or the discovery issue.

By moving package dependencies outside of modules and allowing a
system-wide installation, I attack the second-class-nes of PLaneT. By
a different default policy, I attack the upgrade path. By having a
more exposed directory structure and looser package hosting
constraints, I attack the improvement problem. On the social site by
having reputation, reviews, and tags, I hope to solve the discovery
problem. By allowing any URL (without a custom server) as a package
source, I hope to solve the centralization problem. By making the
packaging system more capable, I hope to decrease the size of the
core. Once that happens, those packages can be independently
upgraded. On the security defaults, by using URLs, we can use HTTPS
to get slightly better security. I mention having checksums on package
files to ensure the right file was got. By allowing private
repositories, you can ensure that you control your security destiny. I
solve the unintended installation problem by making package
installation separate from the runtime, where we could provide an
apt-get style of these are the other packages that will be
installed. I solve the module privacy with the linking directories.

I have no solution for expensive installations (indeed in my final
open problems I mention how we would store compiled code at the
server.) The other part of installation---documentation---could be
solved the same way we do now (explicit option to not build) and have
better searching on the package site.

My solution for untrustworth packages is a rather weak black balling.
I think sandboxing compilation is outside the short-term scope of this project.

 And one fairly abstract worry: can I end up in a situation where I had
 a working system with dependencies between packages being obvious
 but install a new package and fall out of the obvious realm in some
 potentially confusing way?

I think this is the most confusing situation:

- Install package A that requires B
- Develop a packageless program that uses B
- Upgrade to a new provider of B's features... B2

Your packageless program uses B2, but A still uses B, even though
you may think of them as the same package. I think the alternative
behavior, that A starts using a different provider, is worse though.

2011/2/18 Jos Koot jos.k...@telefonica.net:
 I read your contribution with great interest. One problem that is not
 addressed, as far as I have seen, is that any idiot, like me, can install
 his/her contributions (modules/collections/packages or whatever)

 For a simple windows 7 user as I it is rather difficult to use command line
 instructions. I plead for an easy to use gui for making
 contributions.

I think this is orthogonal to the project, but I do mention how
important it is to have an easy way of getting packages
post-installation. I was imagining that this would be a separate GUI
tool that was auto-launched on Windows installation and suggested on
first launch of DrRacket.

 I
 also plead for an option to delete contributions that have never been
 dowloaded by anyone else than the contributor (would that be possible?) I
 once contributed a module wrongly. I am sure it has never been dowloaded,
 but I have no option to correct my silly mistake. All I could do is to
 upload 

Re: [racket-dev] Packaging

2011-02-19 Thread Robby Findler
On Sat, Feb 19, 2011 at 9:39 AM, Jay McCarthy jay.mccar...@gmail.com wrote:
 I've batch my responses to yesterday's questions together.

 As a general note, I'd like to have my document be an accurate
 reflection of what I should do when I start coding, so if you think I
 should update it to clarify the answers to these questions, please let
 me know. I'm blinded a bit by my intentions when I read it.

 2011/2/18 Robby Findler ro...@eecs.northwestern.edu:
 Minor comment: why encourage names like libgtk and libgtk2 instead
 of a major and minor version number (ala PLaneT)? Don't we want those
 two libraries to be associated somehow (at least loosely)?

 I think having libgtk and libgtk2 alleviates a confusion with the
 most recent version policy. For example, I write my package when
 there is only libgtk and I don't specify which version I want, because
 any will do. Later libgtk gets upgraded and its second major version
 is not fully backwards compatible. I don't think it is plausible for
 the reader of my package metadata to know that I didn't know about the
 new version and SHOULD have written a major version 1 requirement,
 but didn't.

 By having a strict separation between major versions, I think it is
 kinder to less specific package metadata. (If you look around PLaneT,
 very few packages actually specify their dependencies with much
 detail.)

 As a slight social engineering, this policy also makes it easier to
 provide alternatives to dead packages, because upgrading to an
 alternative vendor is no harder than upgrading to the official
 version.

It looks to me like you there is relevant, important metadata that
you're making someone fold into an implicit place instead of an
explicit one.

Will you have a convention for these? What if I decide to call mine
libgtk2.0 and someone else calls theirs somepackage-2? That
doesn't seem good fo

 Also, it may discourage new major versions and therefore
 encourage more compatibility.

This doesn't seem to follow. :)

 Also, it also isn't clear which of the complaints with PLaneT you're
 actually dealing with. I don't see anything about security for example
 or the discovery issue.

 By moving package dependencies outside of modules and allowing a
 system-wide installation, I attack the second-class-nes of PLaneT. By
 a different default policy, I attack the upgrade path. By having a
 more exposed directory structure and looser package hosting
 constraints, I attack the improvement problem. On the social site by
 having reputation, reviews, and tags, I hope to solve the discovery
 problem. By allowing any URL (without a custom server) as a package
 source, I hope to solve the centralization problem. By making the
 packaging system more capable, I hope to decrease the size of the
 core. Once that happens, those packages can be independently
 upgraded. On the security defaults, by using URLs, we can use HTTPS
 to get slightly better security. I mention having checksums on package
 files to ensure the right file was got. By allowing private
 repositories, you can ensure that you control your security destiny. I
 solve the unintended installation problem by making package
 installation separate from the runtime, where we could provide an
 apt-get style of these are the other packages that will be
 installed. I solve the module privacy with the linking directories.

 I have no solution for expensive installations (indeed in my final
 open problems I mention how we would store compiled code at the
 server.) The other part of installation---documentation---could be
 solved the same way we do now (explicit option to not build) and have
 better searching on the package site.

 My solution for untrustworth packages is a rather weak black balling.
 I think sandboxing compilation is outside the short-term scope of this 
 project.

These seem reasonable, but I did not get a clear connection when
reading your essay. My comment is probably a presentation one, then.
In general, the essay seems long on problem descriptions and short on
solution descriptions, relying on the reader to be familiar with
low-level details of Racket and having to be able to synthesize from
them how things will interact. I suspect that a high-level description
of the solution you're imagining (and possibly some more specific uses
cases) will make your essay more readable (as you may have noticed,
most of the replies don't actually say anything about your proposed
solution in any detail; probably because we can't understand it).

 And one fairly abstract worry: can I end up in a situation where I had
 a working system with dependencies between packages being obvious
 but install a new package and fall out of the obvious realm in some
 potentially confusing way?

 I think this is the most confusing situation:

 - Install package A that requires B
 - Develop a packageless program that uses B
 - Upgrade to a new provider of B's features... B2

 Your packageless program uses B2, but A still uses B, 

Re: [racket-dev] Packaging

2011-02-19 Thread Robby Findler
On Sat, Feb 19, 2011 at 10:18 AM, Robby Findler
ro...@eecs.northwestern.edu wrote:
 It looks to me like you there is relevant, important metadata that
 you're making someone fold into an implicit place instead of an
 explicit one.

 Will you have a convention for these? What if I decide to call mine
 libgtk2.0 and someone else calls theirs somepackage-2? That
 doesn't seem good fo

[ Sorry; got distracted here and forgot to come back. ]

That doesn't seem good for users who are trying to find packages.
Especially if I were to call mine 2-somepackage (you may think this
far fetched, but if you look you should find an example of this in our
current collection tree)

Robby
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Latex files

2011-02-19 Thread Eli Barzilay
An hour and a half ago, Robby Findler wrote:
 On Sat, Feb 19, 2011 at 8:58 AM, Sam Tobin-Hochstadt sa...@ccs.neu.edu 
 wrote:
  On Sat, Feb 19, 2011 at 9:50 AM, Robby Findler
  ro...@eecs.northwestern.edu wrote:
  Does it seem okay to provide a script that downloads the .cls file
  from the jfp website and tuck it into the (already installed)
  distribution (presumably in a user-specific place)?
 
  Yes, this is a well-known workaround in these sorts of situations.
  It's used for packages that install Flash on lots of Linux
  distributions, for example.
 
  I think it would probably be sufficient to provide a .cls file that
  errors with a message indicating where to go to get the file, although
  the script you describe would certainly be a helpful addition.

I completely agree with that -- what's the best links for the two
files?


 I guess it depends how much we are worried they will produce backwards
 incompatible .cls files.

I don't think that this is a problem.  These files do two things --
they change the layout etc (so there's no additional commands to use),
and much less frequently they add commands.  I think that if there's a
new version that *breaks* some existing command, then it's likely
something different enough that you'd want to use it anyway.  That's
on top of the fact that the first kind of change is frequent enough
that I think that people are likely to end up using the updated
version anyway.

-- 
  ((lambda (x) (x x)) (lambda (x) (x x)))  Eli Barzilay:
http://barzilay.org/   Maze is Life!
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Latex files

2011-02-19 Thread Matthias Felleisen

On Feb 19, 2011, at 9:46 AM, Sam Tobin-Hochstadt wrote:

 I have not, although one of the JFP editors is on this list :)


I have routinely provided the JFP style file from my own web page, 
and I am pretty sure JFP knows that I do so. 

Of course, I am the content EiC not the commercial editor. I'll ask. 

;; --- 

For SIGPLAN I will say that I routinely have to change the 'latest'
download that students use for their drafts so that I get one-column
versions of the papers that I can extensively edit. I would really 
prefer scribble to provide the option of installing my own and not
requiring a fixed file. 

-- Matthias

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Latex files

2011-02-19 Thread Robby Findler
On Sat, Feb 19, 2011 at 11:19 AM, Matthias Felleisen
matth...@ccs.neu.edu wrote:
 For SIGPLAN I will say that I routinely have to change the 'latest'
 download that students use for their drafts so that I get one-column
 versions of the papers that I can extensively edit. I would really
 prefer scribble to provide the option of installing my own and not
 requiring a fixed file.

This particular option seems incredibly useful and perhaps one that
scribble should provide support for directly.

Robby
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] Packaging

2011-02-19 Thread Robby Findler
I think that the versioning problem is an important and hard one, and
the obvious first place to turn this infrastructure work into a
research result. Racket gives you a significant opportunity that
others would not have (for a certain class of solutions, at least).
Even better, we have significant experience with one end of the
spectrum and, of course, there are lots of other attempts out there
that we should also be able to extract experience from if we dig into
linux distros and their communities, etc.

Robby

On Sat, Feb 19, 2011 at 3:53 PM, Jay McCarthy jay.mccar...@gmail.com wrote:
 Eli, you have a lot of very good points that I will try to respond to
 individually later.

 I think the highest bit issue you bring up is conflicts. (Multiple
 versions are a special case of conflicts between packages.)

 I see three options

 1. Totally disallow conflicts
 2. Make conflicting installations irregular
 3. Make conflicting installations normal

 I think (1) is epitomized by a single location that packages get
 copied into as they are installed.

 I think (2) is epitomized by something like (1) with a secret place on
 the side for conflicts to be stored.

 I think my proposal is (3).

 I think the way I proposed to deal with conflicts dovetails nicely
 into dealing with module privacy. I like the way that keeping things
 in separate directories always makes it easy to deal with version
 control. I also like the decoupling of package names and the modules
 they provide.

 I'd like to know where our community stands on this issue, because if
 most are happy with (1), then I think the packaging system could be
 much simpler. I personally think (2) is more complicated than (3).

 Jay

 --
 Jay McCarthy j...@cs.byu.edu
 Assistant Professor / Brigham Young University
 http://faculty.cs.byu.edu/~jay

 The glory of God is Intelligence - DC 93
 _
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev