Re: [racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds

2021-10-27 Thread 'Joel Dueck' via Racket Users
On Tuesday, October 26, 2021 at 1:39:21 PM UTC-5 zepp...@gmail.com wrote:

> To the extent that validation is a concern, gregor is (despite the 
> `tz/c` issue) much better, on the whole, than racket/base's `date` and 
> `date*` structs, which will happily let you construct things like "the 
> 31st of February." 
>

I fully agree with that. ...Didn't you mention on Slack while back that you 
had a replacement for gregor on a shelf somewhere? ;) 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/77f80d13-2aa3-4b88-b175-6c39f2ce2ef7n%40googlegroups.com.


Re: [racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds

2021-10-26 Thread 'Joel Dueck' via Racket Users


On Tuesday, October 26, 2021 at 12:30:59 PM UTC-5 Sage Gerard wrote:

> Yes, but I'm talking about code we were asked to give feedback on. I focus 
> on `tz/c` because it is documented as a flat contract that checks for "an 
> identifier from the IANA tz database ", 
> but it does not parse the timezone name to check correctness.
>
> My feedback says no validation occurs for the timezone name in a parameter 
> for Splitflap. Joel indicated that parameter will go away below, and I'm 
> glad to know of the tzinfo package. But if a limitation in gregor's 
> contracts would oblige you to use tzinfo for validation, then I'd want to 
> know that so that I can assess how much of gregor I really need. It still 
> seems like the timezone data is the hard part, so use a timezone dependency 
> instead of a dependency that misleads the user into incomplete validation
>
It does seem odd that tz/c uses string? instead of tzid-exists? I’m 
wondering if that could be changed without breaking a lot of stuff. If not, 
then it *might* be worth keeping my own feed-timezone parameter that allows 
only (integer-in -64800 64800). On the other hand, it is also true that if 
an invalid time zone is supplied anywhere along the way to building the 
feed data, an exception is going to occur before the feed is generated, 
which is what I care about for the most part.

In general I appreciate feedback like Sage’s from people who think a lot 
more carefully than I do about dependencies. I like knowing that if someone 
has differing time zones for different items within a feed, or cares about 
gap/overlap resolution, etc, I can let them use gregor to handle it. It's 
not something I ever encountered in building CMSs or publishing podcasts, 
but also you never know what a feed will be used for. I will probably 
experiment with reducing the dependency down to tzinfo/tzdata and using 
Racket’s native date structs.


-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/ea7090cc-1ebf-40a3-a7e6-0634d038602en%40googlegroups.com.


Re: [racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds

2021-10-26 Thread 'Joel Dueck' via Racket Users
On Tuesday, October 26, 2021 at 11:01:38 AM UTC-5 Sage Gerard wrote:

>
>- Assuming I have the right repository link, gregor's tz/c contract is 
>only (or/c string? (integer-in -64800 64800)) [1]. I can set the 
>feed-timezone parameter in Splitflap to an arbitrary string and the guard 
>won't stop me.
>
> Yep — I left feed-timezone out of the docs because I plan to remove it. 
Unless I'm missing something? in the end I think it's redundant to tzinfo's 
current-timezone parameter. 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/d202c537-0173-42fd-b75f-082275c57426n%40googlegroups.com.


Re: [racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds

2021-10-26 Thread 'Joel Dueck' via Racket Users


On Tuesday, October 26, 2021 at 6:51:56 AM UTC-5 Philip McGrath wrote:

> I'm not totally clear about all of the different sets of requirements 
> (RSS, Atom, and, de facto, Apple), but I thought there were more language 
> codes permitted than ISO 639-1 (e.g. 
> https://www.rssboard.org/rss-language-codes points to ISO 639-2, and 
> https://validator.w3.org/feed/docs/rfc4287.html#rfc.section.4.2.7.4 for 
> Atom points to RFC 3066. These standards also allow for the assignment of 
> new codes (and, at least for ISO 639-3, deprecation). I hope the right set 
> of codes might be in the one of the CLDR packages (also used by Gregor): if 
> so, I'd recommend getting it from there.
>

We could probably open it up to more codes for generic feeds, for sure. 
Podcast feeds are limited to ISO 639-1 by Apple. Also, system language 
detection would probably always be limited to ISO 639-1 for the foreseeable 
future, unless I find out that my existing method might encounter (and 
mis-handle) codes from other lists in some circumstances.
 

> On a different topic, for the XML stuff, is there a requirement that 
> embedded HTML be represented with the CDATA lexical syntax? 
>

I’m using CDATA for the traditional reason: it allowed me to punt on 
validating the internal content. If I didn’t use CDATA, I’d probably want 
to start handling strings and tagged xexprs differently. Strings would go 
in as `` and an exception should probably be raised if 
it can be determined (how?) that the string is actually a string of HTML. 
Tagged X-exprs would go in as `` with escaped HTML as 
you suggest. Or perhaps only tagged x-expressions should be allowed. Or 
perhaps strings should be coerced to a txexpr (by, e.g. putting them inside 
a 'div).
 

> everyone manipulating these feeds in Racket 
>

Although I make this possible, the design intent is that once you put stuff 
into a food-like struct, that’s the last step before generating the final 
feed (thus keeping all the guarantees of validation intact). I would hope 
that *content* in particular would not need more manipulation between the 
creation of a feed-item struct and the final output.
 

> (Tangentially, AIUI the convention is to use `#f` for the start and stop 
> fields when creating cdata and p-i structures in code, though apparently the 
> docs for `source` 
> 
>  
> say something about symbols.)
>

Indeed, since the structures returned by xexpr->xml use 'racket for those 
fields, I though mine ought to match.
 

> rather than using an ad-hoc encoding scheme for the entities Apple has odd 
> rules about, you can just replace them with symbols or `valid-char?`s and 
> let the library take care of everything. Well, my example code for that has 
> grown complete enough that I'll just make a PR shortly :)
>

Sounds good! Just bear in mind that Apple is not only picky about the 
characters it wants replaced but also about what you replace them with. 
E.g.  and not  for the copyright symbol. 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/5b83ad5f-3be1-4bd7-a876-0184dafadbddn%40googlegroups.com.


Re: [racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds

2021-10-25 Thread 'Joel Dueck' via Racket Users
Great feedback, thank you. I like all your suggestions.

   - Boolean arguments: great point, will do
   - MIME types: Yes, I should use/add a more complete extension→type 
   mapping, though I probably will continue not to validate MIME types against 
   the IANA list. (My somewhat erroneous note in the docs notwithstanding, it 
   turns out having a non-IANA MIME type or a valid but mismatched type in an 
   enclosure doesn’t actually cause feed validation errors.)
   - language-codes: yes this should be a value, not a procedure. Will 
   change it.
   - Contract boundaries: yes! switching to contract-out is on my list
   - Removing dependencies: yes, I see the appeal. I’m really not eager to 
   reimplement all the timezone handling and temporal comparison stuff in 
   gregor, though.

Joel

On Monday, October 25, 2021 at 6:36:30 PM UTC-5 Sage Gerard wrote:

> Thank you for this!!
>
> Feedback
>
>- I like your podcast-specific entries 
>- The validation logic is refreshing to see 
>- Re: boolean arguments, I'd stick to keyword arguments and ask for 
>any/c, not boolean?, in contracts. That way forms like (and ... (member 
>...)) won't bug users about a non-threatening contract violation, and it's 
>trivial to cast the value yourself. 
>- Unsure what licenses are compatible with Blue Oak. If you want more 
>licensing options re: IANA media type to extension mappings, here are some.
>- MIT: https://github.com/mime-types/mime-types-data 
>   - Apache 2.0 (From the horse's mouth): 
>   https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
>   - CC-BY-SA: Scrape MDN's table using the console on 
>   
> https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
>  
>- I normally don't use functions like splitflap-version because I 
>can't assume that a package will define one. I'd use a program that 
> returns 
>a version of a given package. 
>- Why is language-codes a procedure? 
>- You have a lot of local contract boundaries, so values may get 
>checked more than necessary. 
>- Prefer example.com so you don't have to leak your URLs or make up 
>email addresses that actually go to an inbox. 
>- txexpr, gregor, and web-server dependencies don't look terribly 
>difficult to remove
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/cb2927c7-3d21-41c3-89c7-d6b73a9e53f9n%40googlegroups.com.


[racket-users] [ANN] Splitflap: generating valid Atom and RSS feeds

2021-10-25 Thread 'Joel Dueck' via Racket Users
This is a beta release of *splitflap*, a Racket library for generating 
valid Atom and RSS feeds, including podcast feeds.

   - Source: https://github.com/otherjoel/splitflap
   - Documentation (with quick tutorial): 
   https://docs.racket-lang.org/splitflap/index.html

The docs are substantially complete but I’m still working on them! Feedback 
welcome.

Joel

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/55a4e6de-1e08-4219-9675-31e5c598a38dn%40googlegroups.com.


Re: [racket-users] Weird test failures

2021-10-24 Thread 'Joel Dueck' via Racket Users
Dang it, I think you’re right. Known gotcha it is, and a rookie one at 
that. Thanks for taking time to look at it!

On Sunday, October 24, 2021 at 1:04:03 PM UTC-5 Sage Gerard wrote:

> I got all tests to pass by updating the first clause of pre-escape to use 
> equal?
>
> > (and (txexpr? x) (equal? "text" (attr-ref x 'type #f)))
>
> My hypothesis is that when you didn't have bytecode, the reference to the 
> literal string "text" just *happened* to be eq?. I couldn't say why.
> On 10/24/21 12:09 PM, 'Joel Dueck' via Racket Users wrote:
>
> This is driving me a little batty. I have a package on the package server, 
> and the package server shows that it is failing some tests[1]. 
>
> Here is the first test that fails:
>
> FAILURE
> name:   check-equal?
> location:   dust.rkt:101:2
> actual:
>   '(div (div ((type "text"))
>  "Judy's friend \"George\""
>  (div "Judy's friend \"George\"")))
> expected:
>   '(div (div ((type "text"))
>  "Judy%amp%apos;s friend %amp%quot;George%amp%quot;"
>  (div "Judy's friend \"George\"")))
>
> The check in question can be seen in dust.rkt on the Github repo [2]. 
>
> Here’s the weird part. This check does not fail on my local machine 
> (Racket 8.2 CS on Mac OS 11.6). Well…not true! It *usually* doesn’t fail on 
> my computer BUT sometimes checks in my tests.rkt which are dependent on 
> this one will start failing. When that happens, all I need to do is re-save 
> dust.rkt with no changes (to invalidate the compile cache) and re-run 
> tests.rkt and the checks all pass again.
>
> Of what known gotcha have I run afoul here? Or is it an unknown gotcha?
>
> The function which is the subject of the test is not complicated:
>
> ;; Recursively pre-escape any string entities in an x-expression that
> ;; are direct children of an element whose ‘type’ attribute is “text”
> (define (pre-escape x)
>   (cond 
> [(and (txexpr? x) (eq? "text" (attr-ref x 'type #f)))
>  (txexpr
>   (car x)
>   (get-attrs x)
>   (map (λ (c) (if (string? c) (pre-escape-entities c) (pre-escape c))) 
> (get-elements x)))]
> [(txexpr? x) (txexpr (car x) (get-attrs x) (map pre-escape 
> (get-elements x)))]
> [else x]))
>
> [1]: 
> https://pkg-build.racket-lang.org/server/built/test-fail/splitflap-lib.txt
> [2]: 
> https://github.com/otherjoel/splitflap/blob/11ddfebb96d13b4905d428939ba3bd9bd39e1caa/splitflap-lib/private/dust.rkt#L101-L102
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/racket-users/10b7621b-c366-4c78-ac86-f011d46a954fn%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/racket-users/10b7621b-c366-4c78-ac86-f011d46a954fn%40googlegroups.com?utm_medium=email_source=footer>
> .
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/8ab8cf09-e226-4c62-a3bd-2c4dc898bfeen%40googlegroups.com.


[racket-users] Weird test failures

2021-10-24 Thread 'Joel Dueck' via Racket Users
This is driving me a little batty. I have a package on the package server, 
and the package server shows that it is failing some tests[1].

Here is the first test that fails:

FAILURE
name:   check-equal?
location:   dust.rkt:101:2
actual:
  '(div (div ((type "text"))
 "Judy's friend \"George\""
 (div "Judy's friend \"George\"")))
expected:
  '(div (div ((type "text"))
 "Judy%amp%apos;s friend %amp%quot;George%amp%quot;"
 (div "Judy's friend \"George\"")))

The check in question can be seen in dust.rkt on the Github repo [2]. 

Here’s the weird part. This check does not fail on my local machine (Racket 
8.2 CS on Mac OS 11.6). Well…not true! It *usually* doesn’t fail on my 
computer BUT sometimes checks in my tests.rkt which are dependent on this 
one will start failing. When that happens, all I need to do is re-save 
dust.rkt with no changes (to invalidate the compile cache) and re-run 
tests.rkt and the checks all pass again.

Of what known gotcha have I run afoul here? Or is it an unknown gotcha?

The function which is the subject of the test is not complicated:

;; Recursively pre-escape any string entities in an x-expression that
;; are direct children of an element whose ‘type’ attribute is “text”
(define (pre-escape x)
  (cond 
[(and (txexpr? x) (eq? "text" (attr-ref x 'type #f)))
 (txexpr
  (car x)
  (get-attrs x)
  (map (λ (c) (if (string? c) (pre-escape-entities c) (pre-escape c))) 
(get-elements x)))]
[(txexpr? x) (txexpr (car x) (get-attrs x) (map pre-escape 
(get-elements x)))]
[else x]))

[1]: https://pkg-build.racket-lang.org/server/built/test-fail/splitflap-lib.txt
[2]: 
https://github.com/otherjoel/splitflap/blob/11ddfebb96d13b4905d428939ba3bd9bd39e1caa/splitflap-lib/private/dust.rkt#L101-L102

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/10b7621b-c366-4c78-ac86-f011d46a954fn%40googlegroups.com.


Re: [racket-users] Rationale for package structure

2021-10-09 Thread 'Joel Dueck' via Racket Users
Ah I see! So is there some heuristic for when you should try to play nice 
with Minimal Racket? Is it, ideally, “always”? Or is it mainly if you’re 
likely to be using the package on a server, CI, etc?

On Saturday, October 9, 2021 at 1:58:33 PM UTC-5 sorawe...@gmail.com wrote:

> I think it's so that `raco pkg install mypkg-lib` won't install 
> `racket-doc` if you use Minimal Racket?
>
> If you don't split `mypkg` to `mypkg-lib` and `mypkg-doc`, but specify 
> `deps` and `build-deps` correctly, `raco pkg install --binary mypkg` won't 
> pull in `racket-doc` either. I don't know when this feature was added 
> though. Perhaps, it could be that the package splitting convention predates 
> the feature, and the convention persists.
>
> On Sat, Oct 9, 2021 at 10:58 AM 'Joel Dueck' via Racket Users <
> racket...@googlegroups.com> wrote:
>
>> I’ve always used the single collection format [1] in my packages.
>>
>> However, I see a lot of package authors will use a multi-collection 
>> format and split the library, documentation and maybe tests out into 
>> separate collections.
>>
>> What are the benefits of splitting the main library and its documentation 
>> into separate collections?
>>
>> [1]: 
>> https://docs.racket-lang.org/pkg/Package_Concepts.html#%28part._concept~3amulti-collection%29
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Racket Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to racket-users...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/racket-users/6ea9f50e-0d4f-4800-bc17-d31979a614cfn%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/racket-users/6ea9f50e-0d4f-4800-bc17-d31979a614cfn%40googlegroups.com?utm_medium=email_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/8c79a2bc-ab1a-4183-9f75-f52f37316f62n%40googlegroups.com.


[racket-users] Rationale for package structure

2021-10-09 Thread 'Joel Dueck' via Racket Users
I’ve always used the single collection format [1] in my packages.

However, I see a lot of package authors will use a multi-collection format 
and split the library, documentation and maybe tests out into separate 
collections.

What are the benefits of splitting the main library and its documentation 
into separate collections?

[1]: 
https://docs.racket-lang.org/pkg/Package_Concepts.html#%28part._concept~3amulti-collection%29

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/6ea9f50e-0d4f-4800-bc17-d31979a614cfn%40googlegroups.com.


[racket-users] Re: [ANNOUNCE] Xiden is now in beta

2021-03-20 Thread 'Joel Dueck' via Racket Users
Racket’s existing package system doesn’t pose any felt problems for me, but 
I still find this project very interesting. 

On some future day when Xiden is out of beta, what are authors of “normal” 
Racket packages doing to make their packages available to Xiden users? For 
example, are we zipping, hashing and signing every “release” and uploading 
it somewhere (our own web server or a 3rd party catalog)? Or is the typical 
Xiden user manually creating their own catalogs and packages from others’ 
code after a thorough vetting? (Maybe if I were more familiar with Guix I 
would already know the answer to this)

On Friday, March 19, 2021 at 3:56:18 PM UTC-5 Sage Gerard wrote:

> Hi folks,
>
> About a year, 1384 commits, 489 tests, ~10k LOC, and 2" on my waistline 
> later, Xiden is in beta. An update is pending on the default catalog.
>
> https://github.com/zyrolasting/xiden
>
> Xiden is a dependency manager I wrote to support use cases that I could 
> not get working with `raco pkg`.
>
> Dependency management is hard, so Xiden was something I originally didn't 
> want to make. However, it ended up becoming one of my most aspirational 
> projects, and I'm proud of how it ended up. If you could take the time to 
> read a longer email, I'd like to share a bit about how it might be helpful 
> to you.
>
> ***
> Like Guix, Xiden supports deterministic and atomic installations. Unlike 
> Guix, Xiden is cross-platform.
>
> The Racket programs I write no longer have to assume that code comes in 
> collections (outside of the built-in ones).
>
> You can force dependencies of different versions to resolve to the same 
> data to avoid issues with non-eq? bindings [multiver].
>
> Dependencies are accessed by symbolic links with names defined by the 
> dependent. So if two packages are called "uri", you can still install them 
> both under names that are meaningful to you. Dependencies are fulfilled the 
> same way, regardless if the dependent is a human or more software.
>
> Explicit, affirmative consent is fundamental to Xiden's workings. The 
> default configuration is zero-trust (a.k.a. "Deny All"). Trust in 
> cryptographic hash functions and public keys (or any bytes lacking either) 
> *must* be declared to authenticate bytes from *any* source (even hard 
> coded!). Not doing so will cause Xiden to reject data, but print an error 
> that helpfully instructs you how to consent to the scenario. For those 
> wanting convenience, there are "blanket" configuration options to consent 
> to every instance of those scenarios. This makes Xiden a way to educate 
> users on the exact shape and nature of the risks they accept with something 
> from the Internet. In this sense, Xiden does not invent anything new with 
> security. It only aims to get ahead of the "Allow Some" arms-race in other 
> dependency managers like NPM.
>
> Customization comes from a plugin module. You can use a plugin to 
> integrate GPG, use a different archive format, or otherwise fill in gaps in 
> Xiden's functionality. Xiden keeps authentication and integrity checking 
> decoupled in this way so that users can transition on their own in the 
> event a smart person finds a collision in a CHF, or cracks a cipher. 
> Similarly, Xiden's data sources are any data type declared with a path to 
> an input port, including queries to a catalog. A neat effect of this is 
> that you can configure your own syntax for data sources in your command 
> lines.
>
> Even though I call Xiden a dependency manager, it is generalized enough to 
> be useful as a component for a CI system, as a self-hosted OS development 
> environment, or even as a back-end for a more specialized dependency 
> manager. 
>
> If this is something that interests you, please consider trying the 
> examples with the guide [ex][guide]. Like all software, Xiden is not 
> perfect, so I depend on your feedback to make Xiden better for you, and to 
> decide what interfaces should be declared stable.
>
> [ex]: https://github.com/zyrolasting/xiden/tree/master/examples
> [guide]: https://docs.racket-lang.org/xiden-guide@xiden/index.html
> [ethos]: 
> https://groups.google.com/g/racket-users/c/4iI-SanIbzk/m/sGHYijLPAAAJ
> [multiver]: 
> https://github.com/zyrolasting/xiden/tree/master/examples/01-differing-versions
>
> --
> ~slg
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/932af4c4-3713-4305-970b-e608e434a71en%40googlegroups.com.


Re: [racket-users] Strange performance behavior

2020-08-07 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 5, 2020 at 10:44:21 AM UTC-5 Sam Tobin-Hochstadt wrote:

> Here's a benchmark of your two functions that takes long enough to run 
> that it avoids some of these issues, and also runs a GC before 
> benchmarking: https://gist.github.com/7cb4645308d8572e2250833ef7b90b7c 
>

What is the reason for calling `collect-garbage` twice consecutively? 

Also, the docs are unclear on this, but is `(collect-garbage)` equivalent 
to `(collect-garbage 'major)` ?

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/6dbc0daf-7236-471e-9a4f-35164a33ca6fn%40googlegroups.com.


[racket-users] Re: Racket v7.8

2020-08-04 Thread 'Joel Dueck' via Racket Users
I'm very interested in the prop:struct-field-info property. Is there any 
documentation on it? I notice docs.racket-lang.org still says 7.7 up at the 
top.

Thanks to everyone for this release!

On Monday, August 3, 2020 at 12:19:57 PM UTC-5 johnbclements wrote:

> This release announcement mistakenly omitted two important contributors: 
> Tim Brown, and Dionna Amalie Glaze. Many thanks for their help!
>
> John Clements
>
> > On Aug 3, 2020, at 09:35, John Clements  
> wrote:
> > 
> > Racket version 7.8 is now available from
> > 
> > https://racket-lang.org/
> > 
> > 
> > * Racket CS may become the default Racket implementation in the next
> > release. With the improvements in this release, Racket CS provides all
> > of the functionality of Racket BC (the current default
> > implementation). If, between this release and the next, no bugs are
> > discovered in Racket CS that are more serious than those typically
> > discovered in Racket BC, then Racket CS will become the default for
> > the next release.
> > 
> > * Racket CS supports AArch32 and AArch64, including places and
> > futures. The implementation should be considered experimental in this
> > initial release.
> > 
> > * Racket CS supports an "incremental" garbage-collection mode that can
> > eliminate long GC pauses for some applications, such as animations and
> > interactive games.
> > 
> > * Racket CS unboxes local floating-point arithmetic (like Racket BC).
> > 
> > * DrRacket's spell check features lower overhead and has fewer bugs.
> > 
> > * Web Server performance under high concurrency is [better by up to an
> > order of magnitude](https://github.com/racket/web-server/pull/94/).
> > The Web Server is also more resistant to clients attempting to use
> > unconstrained resources.
> > 
> > * The math library includes the Kronecker product.
> > 
> > * Windows supports finer granularity for `sleep` when sleeping for short
> > periods of time, improving performance in animation.
> > 
> > * The new prop:struct-field-info property provides static information
> > about field names.
> > 
> > * Debugging context in Racket CS is limited to 64,000 frames
> > (approximately the same as Racket BC). This reduces the time taken to
> > handle out-of-memory failures.
> > 
> > * In `plot`, the legend font and the plot font can be controlled
> > independently, and error-bars have an `#:invert?` option.
> > 
> > * The plot and math libraries have new maintainers: Alex Harsányi for
> > plot and Pavel Pancheka and Jens Axel Søgaard for math.
> > 
> > 
> > The following people contributed to this release:
> > 
> > Alex Harsányi, Alex Knauth, Alexander Shopov, Alexis King, Andrew Kent,
> > Andrew Mauer-Oats, Atharva Raykar, Ben Greenman, Benjamin Yeung, Bert De
> > Ketelaere, Bogdan Popa, David Christiansen, David Florness, Diego
> > Crespo, Fred Fu, Gary Baumgartner, Georges Dupéron, Gustavo Massaccesi,
> > J. Ian Johnson, Jack Firth, Jay McCarthy, Jens Axel Søgaard, Jesse
> > Alama, John Clements, Laurent Orseau, Leif Andersen, Luka Hadži-Đokić,
> > Marc, Matthew Butterick, Matthew Flatt, Matthew Parris, Matthew Turland,
> > Matthias Felleisen, Michael Ballantyne, Mike Sperber, Noah W M, Paulo
> > Matos, Pavel Panchekha, Philip McGrath, Raphael Das Gupta, Reuben
> > Thomas, Ricardo Herdt, Robby Findler, Ryan Culpepper, Sam
> > Tobin-Hochstadt, Sancho McCann, Sorawee Porncharoenwase, Spencer
> > Florence, Stephen De Gabrielle, Syntacticlosure, frogbird, kryptine,
> > rsiddharth, and yurkobb
> > 
> > Feedback Welcome
> > 
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/c5c0ad1d-d8d5-43c3-bceb-228d89e1d16fn%40googlegroups.com.


Re: [racket-users] Creating links to Racket docs for functions in user-scope packages

2020-07-29 Thread 'Joel Dueck' via Racket Users
On Friday, July 24, 2020 at 11:15:54 AM UTC-5 Matthew Flatt wrote:

> A solution might use something like `path->pkg+subpath+collect+scope`, 
> where a 'user result for the scope triggers a different path 
> calculation.


For my application, I was able to use this info to make a function that 
*seems* reliable for user-scope packages (at least, the ones I have tested 
with so far):

https://github.com/otherjoel/cookbook-pollen/compare/f5a07f237c...92bbd9d616

I will attempt something more robust (along the lines of your suggestion) 
for the pull request though.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/57b618d3-8894-4081-87e2-bf36880d5fcbn%40googlegroups.com.


Re: [racket-users] Creating links to Racket docs for functions in user-scope packages

2020-07-21 Thread 'Joel Dueck' via Racket Users
It looks like the problem might be in this function 

 
where it always constructs a path that is relative to (find-doc-dir).

Would it make sense instead to have it check the dest against all the paths 
returned by (get-doc-search-dirs) and just use the first one that matches? 
If so maybe I’ll try doing a pull request to that effect.

Sorry I’m tiptoeing here, I haven’t contributed to Scribble before.

On Monday, July 13, 2020 at 11:02:17 AM UTC-5 Joel Dueck wrote:

>
> On Monday, July 13, 2020 at 8:37:52 AM UTC-5, Matthew Flatt wrote:
>>
>> It might end up being about the same implementation effort to improve the
>> error message or to make the function work on user-scope packages
>>
>
> That was my sense as well...I will try taking a look at this, maybe I can 
> contribute.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/f9e4366b-0db3-45b6-9a59-04292d3edcf1n%40googlegroups.com.


Re: [racket-users] Creating links to Racket docs for functions in user-scope packages

2020-07-13 Thread 'Joel Dueck' via Racket Users

On Monday, July 13, 2020 at 8:37:52 AM UTC-5, Matthew Flatt wrote:
>
> It might end up being about the same implementation effort to improve the
> error message or to make the function work on user-scope packages
>

That was my sense as well...I will try taking a look at this, maybe I can 
contribute.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/79eb227e-7fb8-40af-82ea-fee0d5bc2617o%40googlegroups.com.


[racket-users] Creating links to Racket docs for functions in user-scope packages

2020-07-12 Thread 'Joel Dueck' via Racket Users
Trying to generate URLs for linking into the Racket docs. I get the error 
below, but only when the package/identifier combo in question are installed 
in user scope, and only when using the `#:external-root-url` keyword 
argument:

> (define x (xref-binding->definition-tag (load-collections-xref) 
'(deta/query lookup) 0))
> x
'(def ((lib "deta/query.rkt") lookup))

;; works good:
> (xref-tag->path+anchor (load-collections-xref) x)
#
"(def._((lib._deta/query..rkt)._lookup))"

> (xref-tag->path+anchor (load-collections-xref) x #:external-root-url 
"http://docs.racket-lang.org/;)
. . ../../../../../../Applications/Racket 
v7.7/collects/racket/private/kw.rkt:1393:47: path-element->string: contract 
violation
expected: path?
given: 'up

Is this a bug? Or is there a way to make this work for user-scope packages 
as well?

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/71d95883-84a8-4ad2-b4b5-e04c1e11c42co%40googlegroups.com.


Re: [racket-users] Limiting consecutive identical elements with match

2019-12-04 Thread 'Joel Dueck' via Racket Users
I feel stupid too!

I like the trick of using list* to match _ on any number of trailing 
elements. The grammar given in the docs doesn't seem to include it; I'm 
curious by what rule is it "allowed" as a pattern?

On Wednesday, December 4, 2019 at 5:02:48 PM UTC-6, Sorawee Porncharoenwase 
wrote:
>
> This is super cool indeed. Now I feel stupid.
>
> On Wed, Dec 4, 2019 at 2:56 PM Matthew Butterick  > wrote:
>
>>
>> On Dec 4, 2019, at 2:39 PM, 'Joel Dueck' via Racket Users <
>> racket...@googlegroups.com > wrote:
>>
>> So it seems easy to match "*at least *N identical elements".
>> But is there a method for matching "*no more than *N identical elements"?
>>
>>
>> ?
>>
>>
>> #lang racket
>> (require rackunit)
>>
>> (define (super-cool? lst)
>>   (match lst
>> [(and (list* _ ... a a _)
>>   (not (list* _ ... a a a _))) #t]
>> [_ #f]))
>>
>> (check-true (super-cool? '(1 1 4)))
>> (check-false (super-cool? '(1 1 1 4)))
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Racket Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to racket...@googlegroups.com .
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/racket-users/1734093C-0C39-4289-9747-41CAFB35851F%40mbtype.com
>>  
>> <https://groups.google.com/d/msgid/racket-users/1734093C-0C39-4289-9747-41CAFB35851F%40mbtype.com?utm_medium=email_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/bde135bd-a69a-4c8d-8093-dbea6c9c93b9%40googlegroups.com.


[racket-users] Limiting consecutive identical elements with match

2019-12-04 Thread 'Joel Dueck' via Racket Users
(This is related to the problem for this year’s Advent of Code day 4, 
so...SPOILERS.)
(I did solve both parts of today's problem, so this is more for my own 
edification.)

The problem involves finding lists of numbers, one of the criteria for 
which is that the list has at least two consecutive identical numbers. I 
was able to solve this part of the problem easily with `match`:

(define (cool? lst)
  (match lst
[(list _ ... a a _ ...) #t]
[_ #f]))

> (cool? '(1 2 3 4 5 6))
#f
> (cool? '(1 2 1 4 5 6))
#f
> (cool? '(1 1 1 4 5 6))
#t

The second part (SPOILER) involves finding lists containing **exactly two** 
consecutive identical numbers.
I was trying to find a way to use pattern matching for this problem and 
could not.

As a simple case:
 
(define (super-cool? lst)
  (match lst
[(list a b b c) #t]
[_ #f]))

> (super-cool? '(1 1 1 4))
#t   ; I want it to be #f!

Using `b b` in the middle of the pattern allows me to require that those 
two elements be identical. But there is no requirement that the outside 
elements be *not* identical despite my giving them different ids. I also 
can't do (list (not a) a a (not a)) because, as the docs say[1], "*instances 
of an `id` in different `or` and `not` sub-patterns are independent. The 
binding for `id` is not available in other parts of the same pattern.*"

So it seems easy to match "*at least *N identical elements".
But is there a method for matching "*no more than *N identical elements"?

[1]: https://docs.racket-lang.org/reference/match.html

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/5225f7e3-4e96-4366-9978-63375995a5fb%40googlegroups.com.


[racket-users] Re: typo in manual

2019-11-22 Thread 'Joel Dueck' via Racket Users
Documentation for individual packages is maintained by the package authors.

Clicking on the "package" link at the top brings you to 
https://pkgs.racket-lang.org/package/colors which says the Git repo is at 
https://github.com/florence/colors/tree/master/scribblings

I can submit a pull request there, unless you would prefer to.

On Friday, November 22, 2019 at 10:39:34 AM UTC-6, Hendrik Boom wrote:
>
> In https://docs.racket-lang.org/colors/index.html 
> section 4 presents a function set-brigthness 
> and then proceeds to discuss how it affects brighness 
>
> Perhaps the function name and the discussion should involve brightness 
> instead. 
>
> -- hendrik 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/b5dcbaa8-c3ad-47a8-bc54-4c48171d73ce%40googlegroups.com.


[racket-users] Re: reading code

2019-10-24 Thread 'Joel Dueck' via Racket Users
On Thursday, October 24, 2019 at 10:46:15 AM UTC-5, Hendrik Boom wrote:
>
> If DrRacket already does this, I haven't found it.  It does lovely 
> graphics do show bindings, but I don't see how to follow those lines 
> even to parts of the same file that happen to be out of the window 
> area, let alone to other files. 
>

If the arrows/lines lead off the window area, I will often right-click→“
*Jump to *
*Binding Occurrence*”. If that jump leads to a `require`, I right-click the 
module
name→“Open module.rkt”, maybe do a Ctrl+F in that file and continue from 
there.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/5b0d0633-f9b7-42ce-bd14-e876435d36d2%40googlegroups.com.


Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-29 Thread 'Joel Dueck' via Racket Users
On Thursday, August 29, 2019 at 11:27:41 AM UTC-5, Sam Tobin-Hochstadt 
wrote:
>
> Thanks for volunteering! I'll follow-up off-list. 
>
> Sam
>

Sure thing. Just minutes ago I dug up the Relicensing Permission issue on 
GitHub
and found you have made significant progress. Not looking to wrest this out 
of any-
one's hands, just to donate a chunk of spare cycles if it will help push 
this thing over
the top.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/32e751d1-5ef8-4011-b007-fb4e099e1682%40googlegroups.com.


Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-29 Thread 'Joel Dueck' via Racket Users
On Thursday, August 29, 2019 at 10:45:33 AM UTC-5, Matthew Flatt wrote:
>
>
> A pulse and keyboard is a good start, but the task requires significant 
> initiative to work with the Conservancy to get guidance and make sure 
> things move along. The process may possibly involve contacting 
> individual contributors (again) and helping them figure out who needs 
> to be contacted at their respective institutions, and then making sure 
> that communication actually happens. It's not rocket science, but it's 
> actual work. 
>
>
Understood. If you or someone can get me up to speed — perhaps some
email introductions, a list of contributors, a rough indication of the 
current
state, I can commit to pushing this cart consistently, say through the end
of the year. Then we can review and go from there. If anyone else would
rather do it, or would prefer it be someone else, that’s obviously fine too.

(To clarify, I didn't mean by “pulse and keyboard” to imply anything 
derisive about the work that needs to be done or the people who 
had been doing it. I just wanted to know if any special domain 
expertise was needed or if a prole like me could do it. I'm pretty familiar
with software licensing issues, but have only been in Racket’s orbit
for the past few years or so.) 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/a42134cc-888b-48e3-a2b8-c6aef42933bf%40googlegroups.com.


Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-29 Thread 'Joel Dueck' via Racket Users


On Thursday, August 29, 2019 at 9:01:51 AM UTC-5, Matthew Flatt wrote:

> > Lingering elsewhere: the relicensing project that commenced more than 
> > 2.5 years ago [5] — not clear whether under the SFC this effort is 
> > alive, dead, or what. Of course, Galaxy's Edge took 3 yrs to build, 
> > so maybe I'm being unreasonably impatient. 
>
> Clearly, we could use some help. 
>
>
 What are the tasks that we could take off your hands? Are there 
requirements for doing these tasks besides having a pulse and a keyboard?

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/1a3e1917-3818-4e56-bd75-dce21e81cae9%40googlegroups.com.


Re: [racket-users] Would it help to call racket2 something else?

2019-08-28 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 28, 2019 at 4:14:40 PM UTC-5, David Storrs wrote:

> On Wed, Aug 28, 2019 at 5:08 PM Daniel Prager  wrote:
>
>> I reckon *#lang retack* would at least make an apt working title. ;-)
>>
>
> Hang on, 'tack' means to change direction across the wind, so shouldn't 
> 'retack' mean to change direction and then change direction again such that 
> you're back to your original course?  I'm not sure how apropos that would 
> be in this case...  ;>
>

I concur with David!

 I think something more like `#lang tacker` 
— as in the actor-noun form of the nautical ‘tack’, 
“to change the course of a sailing vessel by bringing the head into the wind
   [and then causing it to fall off on the other side]” 
or more simply, “to run obliquely against the wind” 
or, “to follow a zig-zag course”
 — feels right for the kind of effort being undertaken. :)
 
Besides, it also provides a pleasing phonetic symmetry with `#lang racket`. 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/6f38ba64-2f84-4cc9-a571-a5e3ce721f68%40googlegroups.com.


Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-28 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 28, 2019 at 11:54:42 AM UTC-5, Neil Van Dyke wrote:
>
> If someone violates (their non-lawyer interpretation of) the Racket 
> license, in a conspicuous manner like you suggest, would they not expect 
> the SFC to send them a nastygram -- perhaps if only for the SFC to show 
> that they defend the copyright, if not for other reasons? 
>
> Racket core doesn't necessarily even have to be in the loop: 
>
> https://www.itworld.com/article/2732025/gpl-enforcement-sparks-community-flames.html
>  
>


Here’s Karen Sandler, Executive Director of the SFC, responding to Matthew 
Butterick on racket-dev last year[1]:

Apparently, much of the SFC's advocacy and energy goes into GPL / 
>> copyleft issues. But last I checked, Racket is migrating away from GPL 
>> / copyleft. [3] What is the SFC's position on the MIT license? Do 
>> member projects that are not GPL / copyleft have the same standing 
>>  within SFC? 
>>
>
> Conservancy is license agnostic as an organization. We have many 
> projects that are non-copyleft, and they are just as important to us. 
>
> *We only undertake copyleft enforcement for our member projects that ask 
> us to do it.* The vast majority of our work is not related to copyleft at 
> all - it's sending developers to conferences, hiring contractors to work 
> on free software, helping to run conferences and helping with various 
> random things that projects need. 
>

This seems consistent with the twisty maze of events described in the 
article you linked to. I suppose that, taken together, this means that any 
single contributor/copyright holder might be able to have SFC sick their 
lawyers on me.

There’s also, as Matthew Butterick mentioned earlier [2], the open question 
of whether the SFC itself now has ownership of Racket’s trademark and 
copyrights.

[1]: https://groups.google.com/d/msg/racket-dev/QeYN6uZBWBc/TgWA8sx0BAAJ
[2]: https://groups.google.com/d/msg/racket-users/qyBcm77-hCE/nEY_spNYDwAJ

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/b18322c1-6c50-4849-b73a-91c53132537c%40googlegroups.com.


Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-28 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 28, 2019 at 12:10:56 AM UTC-5, Alex Harsanyi wrote:
>
> I am curious to know how you plan to comply with section 4.d of the LGPL, 
> which states that the users of your application must be able to replace the 
> LGPL "library" with a modified version of their own -- this means all the 
> racket packages that you use in your application (even the ones shipped 
> with Racket):
>

Excellent question. I don’t intend to comply with the LGPL.

My reasoning is as follows:

We know that a couple of years ago, Racket’s caretakers took steps to try 
to change Racket from LGPL to MIT+Apache.
We know that effort has effectively stalled out, with no definite 
explanation given as to why (as far as I know).

So either 
  a) Racket's caretakers have changed their minds and no longer agree that 
the license should be changed, OR
  b) Racket's caretakers have been unable to get all of the original 
copyright-holding contributors to sign off on the change, because of an 
inability to get a response or because some contributors have refused, or 
because the caretakers themselves haven't had time to finish the process, OR
  c) The whole process has been placed on hold because of external factors 
(such as deference to SFC standards/timing), OR
  d) The process is on track but we haven't been told yet. (Perhaps it’s 
very nearly done, perhaps it's being worked on mostly by people who don’t 
know we’re having this discussion, etc.)

I have ruled out (a) since in that case we would expect them to say the 
change is off and put the matter to rest.

If (b) or (c) or (d) is the case, then it remains that *most* of Racket’s 
key contributors still believe in, and fully intend to effect, a switch to 
a more permissive license. Which in turn means that an enforcement action 
(against a developer doing something that would be allowed under those more 
permissive terms) is vanishingly unlikely. The worst case would be a (b) 
situation where some contributors are refusing; even in that case, unless 
the contributors are themselves lawyers, the practical threat of an action 
would (I think?) be small.

Perhaps naively (IANAL), I am willing to be the guinea pig who will put 
these assumptions to the test by violating the terms of Racket’s current 
license. I’ve decided to make the test more interesting by announcing my 
intent here. I will let you all know if I receive any lawyer letters after 
release day. Any such letters would flush out who the recalcitrant 
contributors are and help us identify which portions of Racket need to be 
rewritten to allow the license change to proceed.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/f243943c-32ab-4fa7-877a-679444c95fe9%40googlegroups.com.


Re: [racket-users] Is it possible to sell commercial use rights to an open source Racket package?

2019-08-27 Thread 'Joel Dueck' via Racket Users
On Friday, August 23, 2019 at 10:40:13 AM UTC-5, Alexis King wrote:
>
> Distributing a closed-source, non-LGPL Racket application without 
> violating Racket’s licensing terms is likely to be very difficult or 
> impossible, pending the still-ongoing MIT + Apache 2 relicensing effort. 
>
>
This was startling for me to read, as I have been contemplating doing that 
very thing.

After some consideration, I hereby announce my intent to distribute a 
closed source non-LGPL Racket application sometime within the next year. If 
anyone with standing has a problem with that, please let me know.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/6862cbb2-8ca1-442b-9295-a8d82a071fe5%40googlegroups.com.


Re: [racket-users] Re: Racket v7.4

2019-08-14 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 14, 2019 at 12:18:30 PM UTC-5, Sam Tobin-Hochstadt 
wrote:
>
> Thanks, that's helpful. Looking at the source, it seems that 
> `navigator.appVersion` is what's being looked at. What does 
> `navigator.userAgent` return for your two browsers? 
>

Win10 / Firefox:

  > navigator.userAgent 
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 
Firefox/68.0" 

Win10 / Chrome:

  > navigator.userAgent
  "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 
like Gecko) Chrome/76.0.3809.100 Safari/537.36"


-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/ca2c21e2-8517-4734-a606-8ed69c80f2fd%40googlegroups.com.


Re: [racket-users] Re: Racket v7.4

2019-08-14 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 14, 2019 at 11:54:03 AM UTC-5, Sam Tobin-Hochstadt 
wrote:
>
> Just to confirm this, what does 
> https://www.whatismybrowser.com/detect/what-is-my-user-agent report 
> for both of your browsers? 
>
>
On Win10 / FF that website says: Mozilla/5.0 (Windows NT 10.0; Win64; x64; 
rv:68.0) Gecko/20100101 Firefox/68.0
On Win10 / Chrome it says: Mozilla/5.0 (Windows NT 10.0; Win64; x64) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36

I notice the website adds "This page shows you what your web browser is 
sending in the "User-Agent" header for your HTTP requests."
I don't think the Racket download page is looking at actual HTTP headers.

But I think you are onto something because...

If I fetch navigator.platform manually on Win 10 / Firefox's Javascript 
console:

> navigator.platform
"Win32" 
> navigator.appVersion 
"5.0 (Windows)"

On Chrome console I get:

> navigator.platform
"Win32"
> navigator.appVersion
"5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like 
Gecko) Chrome/76.0.3809.100 Safari/537.36"

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/9779b124-f285-4756-973e-fb2f79c64eb5%40googlegroups.com.


Re: [racket-users] Re: Racket v7.4

2019-08-14 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 14, 2019 at 7:24:25 AM UTC-5, johnbclements wrote:
>
> What distribution and platform do you have selected? The “variant” menu 
> will only appear for certain choices of distribution and platform. 
>
> That was it…In Win/FF the platform selector defaults to the Windows x86_32 
(despite my OS being x86_64). In Win/Chrome it correctly defaults to 
x86_64. Missed that somehow.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/9ba1ce33-19a5-49cc-b1bb-dd48b02f3e3c%40googlegroups.com.


[racket-users] Re: Racket v7.4

2019-08-09 Thread 'Joel Dueck' via Racket Users
On Win10 / Firefox the "variant" selector does not appear for me, I'm not 
sure why yet. I don't have any errors in the console.

I can see it just fine on Win10 / Chrome, macOS / Safari, and macOS / 
Firefox.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/dfe730fb-b3a5-4e94-badb-875749324362%40googlegroups.com.


[racket-users] Re: pict superimpose documentation

2019-08-06 Thread 'Joel Dueck' via Racket Users
The example code using the blue circle and the red rectangle makes it 
pretty clear. Each pict gets covered up by the one to its right in the 
argument list.

On Saturday, August 3, 2019 at 6:14:13 PM UTC-5, Hendrik Boom wrote:
>
> The documentation in 
> https://docs.racket-lang.org/pict/Pict_Combiners.html for the various 
> superpose combiers does not specify with argument picts cover which 
> other argument picts. 
>
> -- hendrik 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/79d32cbf-bf8a-413a-b443-50c7a0c7%40googlegroups.com.


[racket-users] Re: evaluating Scribble for prose

2019-08-02 Thread 'Joel Dueck' via Racket Users
On Thursday, August 1, 2019 at 10:14:09 AM UTC-5, David Storrs wrote:
>
>
> A) Could conditionally include sections depending on environment variables 
> or command-line switches
> B) Could seamlessly generate PDF, MOBI, EPUB, and clean and valid HTML 
> that either inlines the CSS or links to a specified CSS file as specified 
> at publication time.  (The inline option is important for when publishing 
> on Amazon.)
> C) Handles UTF-8 correctly
>
>
>
I’m not going to just come in here and scream “POLLEN!”

But, I think Pollen is ideal for this.

It does HTML very well and puts you a lot closer to the HTML/CSS "metal" 
than Scribble does. Your HTML/CSS output can look and be structured pretty 
much however you want. The “downside” is that there are no prepackaged 
templates, you have to be able to do HTML and CSS yourself. But that’s not 
an issue for you!

It doesn’t come with PDF or ebook support “built in”. But the fact that 
adding it is so conceptually straightforward is kind of why I ended up 
learning Racket. I’ve published books to both HTML and print-ready PDF from 
the same set of Pollen source files. MOBI and EPUB are (IIRC) mostly weird 
subsets of HTML/CSS so supporting them would mainly be a matter of some 
wrapper code in the corresponding template to package everything correctly.

And of course it’s UTF-8 friendly.

Scribble is great for Racket docs. But its document model is extremely 
heavy and opinionated for simple works of prose.

And talking of separating content from presentation, Pollen is kind of the 
ultimate framework for this. You decide what markup you want and don’t 
want, and you decide exactly what that markup will produce for your 
different output targets. This can be different for each project. Each of 
your Pollen projects has its own custom “markup engine” sitting right there 
alongside the prose sources. If you decide you want one of your tags to 
produce different output than before, you update your pollen.rkt file and 
may not even need to touch your prose sources. So your markup can be as 
light or as heavy as you wish, and as separate from any particular output 
format as you wish.

(This post seeems like it may have been specially designed to trigger me 
into blurting out the stock Pollen elevator pitch. If so, it worked!)

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/f7e805c1-c400-403c-9962-2bef31787e76%40googlegroups.com.


[racket-users] Re: Calling function with Scribble text as argument(s)

2019-07-30 Thread 'Joel Dueck' via Racket Users
On Tuesday, July 30, 2019 at 12:02:02 PM UTC-5, Hendrik Boom wrote:
>
> For example, to make a function has the colour red built in, 
> I tried 
>
> @(define (redtext text) (colorize #:color "red" text)) 
>
> which did not work. 
>

When you say "which did not work" — what didn't work exactly? If I 
concatenate this `@define` with your top example and add

@redtext{WARNING AGAIN}

…I get the expected output in DrRacket, no errors.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/4d4ff032-c410-41f0-823c-dcf596ecbe5b%40googlegroups.com.


[racket-users] Re: Distributing executables with homebrew

2019-06-09 Thread 'Joel Dueck' via Racket Users
I’m no expert, but since no one else has chimed in: if you’re distributing 
a program (vs a library) and you want it to work regardless of whether 
Racket is installed, what you probably want is to compile your program 
using raco distribute (https://docs.racket-lang.org/raco/exe-dist.html). 
Then distribute the resulting binary. This will be faster for your users.

I haven’t done much with Homebrew, but maybe this would be a good place to 
start: http://octavore.com/posts/2016/02/15/distributing-go-apps-os-x 

On Friday, June 7, 2019 at 3:59:21 AM UTC-5, james.geddes wrote:
>
> Dear All, 
>
> Does anyone have experience sharing a Racket program using homebrew, for 
> users who may or may not have the Racket distribution installed? (Homebrew 
> is a popular package management system for the Mac.) 
>
> In particular, I'd like to ensure that a certain Racket package (gregor) 
> is available but without necessarily changing the user's installation of 
> Racket if they already have one. 
>
> (It doesn’t help that I have very little experience in distributing any 
> kind of program with homebrew.) 
>
> If anyone has a homebrew “formula” that you would be willing to share, I’d 
> greatly appreciate taking a look! 
>
> Many thanks, 
>
> James 
>
>   
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/06889ecc-cf38-4037-9678-413169c8d5e2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] HN: "The Siren Song of Little Languages"

2019-03-26 Thread 'Joel Dueck' via Racket Users
This is a blog post / discussion that seems like it could use a little 
clarity and evangelism from the Racket world: 

https://news.ycombinator.com/item?id=19481789

I’m struggling to understand exactly what problem the blogger sees with 
"little" languages. 

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: Licence guidance

2019-03-12 Thread 'Joel Dueck' via Racket Users
Most of my projects are like Stephen's (a) scenario. 
I typically want a non-copyleft/permissive license for these.
In such cases I have usually followed the FSF's advice and used Apache 2.0. 
However...

Recently I read the following blog post by Kyle Mitchell, a practicing IP 
lawyer: 
  Deprecation Notice: MIT and BSD. 
https://writing.kemitchell.com/2019/03/09/Deprecation-Notice.html

Kyle and a few other coding/IP-law types recently formed Blue Oak Council 
to provide guidance specifically on permissive (non-copyleft) open source 
licenses.
As part of this they have designed their own "model" permissive open source 
license: 
  https://blueoakcouncil.org/license/1.0.0

I know it's extremely new, but (though not a lawyer myself) I find the 
rationale behind their plain-English model license appealing.
I'll be strongly considering it in the future. I thought it was worth 
including in this thread.

It was discussed on HN a few days ago, with some additional comments from 
the author:
  https://news.ycombinator.com/item?id=19347797

On Monday, September 24, 2018 at 5:04:10 AM UTC-5, Stephen De Gabrielle 
wrote:
>
> Hi,
>
> I sometimes see Racket packages on PLaneT or Github, but lack a licence. 
>
> I don’t feel I can redistribute or fork abandoned code if it lacks a 
> licence. (I can give an example of an 11yo abandoned project that I’d love 
> to fork but can’t because it lacks a licence)
>
> With that in mind- what licences should be used when making code available 
> on the package repository/github in the following situations:
>
> a) general purpose library that I am happy for the broader community of 
> evelopers to use without restraint - but is unlikely to ever meet to be 
> included in Racket e.g. I have an number checksum validator (UK NHS ID 
> number) 
> - is dual licence Apache/MIT appropriate? or is it completely up to me.
>
> b) library, tool or DrRacket plugin that may(or may not) become part of 
> the Racket distribution
> - is dual licence Apache/MIT appropriate or should it also be LGPL?
>
> c) anything else?
>
> Kind regards,
>
> Stephen
>
>
> -- 
> Kind regards,
> Stephen
> --
> Ealing (London), UK
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: Scribble wraps @verbatim? Also, comments on Scribble

2019-02-27 Thread 'Joel Dueck' via Racket Users

On Wednesday, February 27, 2019 at 11:03:46 AM UTC-6, David K. Storrs wrote:

> Also, it would be really spiffy if the generated HTML was 
> pretty-printed.  Having it minified seems unnecessary and 
> disadvantageous. 
>
>
On occasions where I’ve wanted to go spelunking in Scribble-generated HTML, 
I used the HTML Tidy utility: http://www.html-tidy.org/

I've also used tidy to clean up generated HTML as a separate build step in 
the makefile in some of my projects. It does a great job.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Re: Beginning of the end for googlegroups?

2019-01-29 Thread 'Joel Dueck' via Racket Users
A possible alternative to Google would be to host this group as a forum on 
a public Fossil repository. 

Fossil is a source control system similar to Git. But unlike Git, a fossil 
repo can include its own forum (as well as wiki and issue tracking), and it 
has a built-in web interface. A Fossil repo is contained in a single SQLite 
database file, so there's no separate DB engine to monitor, and 
backups/migrations are dead simple.

The Fossil project itself uses a forum-only repo to host its own forum, you 
can see it here: https://fossil-scm.org/forum/forum

Fossil can send email updates (per-message or daily digest) to users. The 
only thing we would lose by this arrangement is the ability to reply to a 
post by email.

It seems to me this would be a good, simple way to both enable and archive 
Racket discussions in a permanently usable format.

On Friday, January 25, 2019 at 6:01:21 PM UTC-6, Paulo Matos wrote:
>
> Apologies for message unrelated to racket, but it might affect us. 
>
> Just read this: 
>
> https://groups.google.com/a/isocpp.org/forum/m/#!msg/sg14/FZEWCOSyFlk/MFUXyq1YDAAJ
>  
>
> Not sure of the size of the mailing list but I wonder if this is the 
> beginning of the end and we should have instead a plan B. 
>
> -- 
> Paulo Matos 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[racket-users] Modify Scribble HTML for integration with site

2018-08-13 Thread 'Joel Dueck' via Racket Users
I would like to include some scribble/manual docs as part of a larger web 
site, and would like to provide some extra navigation links for the reader 
so they can see “how to get back out again”.

Is there a facility within Scribble for augmenting the HTML just after the 
beginning of the  tag?

I see there are ways to supplement the CSS and the content of . I can 
also specify a prefix file but when targeting HTML it seems this is only 
used for the doctype and nothing else. I've done a bunch of searching, 
can’t see that this has ever come up before!

If nothing else I have the option of displaying the Scribble pages within 
an iframe, but I'd prefer not to do this.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [racket-users] Some Scribble links not redirecting to docs.racket-lang.org

2018-08-01 Thread 'Joel Dueck' via Racket Users
On Wednesday, August 1, 2018 at 8:15:58 AM UTC-5, Matthew Flatt wrote:
>
> Are the other packages installed in installation scope or user scope? 
>

That was indeed the problem. I was able to find out the installed packages’ 
scope through the Package Manager in DrRacket. 

Removing the packages, changing the default scope from user to 
installation, and reinstalling then fixed the problem. It looks like I 
can't migrate packages from older versions of Racket when they aren’t in 
user scope, which is sad. But that isn’t often needed, and I’ll probably be 
sticking with 6.12 for a while anyway.

Thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.