Re: [racket-users] Anyone successfully filtering Italian spam?

2021-12-01 Thread Aidan Gauland
I am on Fastmail, which uses SpamAssassin (their methodology is detailed 
here 
), 
and after many many months of training it on this loon's spam messages, 
it is finally /mostly/ filtering correctly.  Very few legitimate 
messages are getting sent to the spam bin now. (This is across multiple 
OSS mailing-lists.)


I hope this information helps somewhat.

On 1/12/21 12:57 am, Stephen De Gabrielle wrote:
I’m using gmail for racket-users, but the normally reliable spam 
filtering fails - despite numerous attempts to train - it still 
classifies real mail as spam and the spam as real.

S.


On Tue, 30 Nov 2021 at 03:38, George Neuner > wrote:



On 11/29/2021 6:45 PM, Nathaniel Griswold wrote:
> It’s getting through my filters, neither rspamd or my local
client can catch on to it.
>
> Is there a good simple filter?
>
> Nate

Something has changed very recently because until this last week I
rarely saw it (even marked AS spam) ... maybe a few times this whole
year.  But in the last week I have gotten one or more copies in my
inbox
every day.

I use Thunderbird for email - which has a built-in learning junk
filter
- but I assumed my provider was filtering it because - sans a
specific
rule - Thunderbird would have just put in the Junk folder. I just
wasn't
seeing it.

???
George



--
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/5c749dfc-a519-818b-2a00-e1c7e36e8a9e%40fastmail.net.


[racket-users] Retro 3D maze with Pict?

2020-04-19 Thread Aidan Gauland
Would it be feasible to use Pict to create a very simplistic rendering 
of a first-person perspective of a 2D maze, in the style of Scarab of Ra 
 for the old 
B&W Macs?


--
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/530da872-90f5-6ce6-309c-9211d53ee3ec%40fastmail.net.


Re: [racket-users] Re: Alternative UI toolkits

2019-08-06 Thread Aidan Gauland
That would be Electron , for which I think
Racket would be a /really/ awkward fit, but if anyone has a crack at it,
I'd be very interested to see the result.

On 6/08/19 9:06 AM, Stephen De Gabrielle wrote:
> Sorry, I meant whatever is used to make Visual Studio Code, and
> whatever the Mozilla equivalent is.
>
> s.
>
> On Monday, August 5, 2019 at 6:07:34 PM UTC+1, Neil Van Dyke wrote:
>
> XUL itself is deprecated/dead.  There might be an interesting (but
> niche) Racket opportunity with WebExtensions, and you might want
> to wait
> to see how they decide WASM fits into that, and what Racket's WASM
> story
> becomes.
>
> Also, bit of gut-feel speculation... There's some odd
> noises/rumblings
> going on with browser extensions (and PR of same) in recent
> months, and
> a few I noticed in the last week.  Anyone contemplating a new project
> based on browser extensions should consider that the rules might be
> changing soon, more likely than in the past.  (Beyond Chrome
> anti-ad-blocking moves, which also was a gift to Mozilla when they
> needed it.  But possibly other restrictions, such as in what else
> extensions can do, and on who can effectively publish what
> extensions. 
> And maybe an improved or new monetization option.)
>
> -- 
> 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/c22cff90-2db7-401d-8965-4f093921222d%40googlegroups.com
> .

-- 
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/ee6cda7d-5371-b609-bbc7-4bdf31747b37%40fastmail.net.


Re: [racket-users] Re: SQL DB tooling

2019-03-25 Thread Aidan Gauland
That looks like exactly what I want.  Thanks!

On 23/03/19 8:04 PM, Alex Harsanyi wrote:
>
> The package is called "north" and you can find it here:
>
> https://pkgs.racket-lang.org/package/north
>
> There is also the announcement on Reddit:
>
> https://www.reddit.com/r/Racket/comments/akob56/ann_north_database_migrations/
>
> Alex.
>
>
> On Saturday, March 23, 2019 at 12:40:48 PM UTC+8, Aidan Gauland wrote:
>
> I see that Racket has a couple of nice libraries for talking to SQL
> databases <https://docs.racket-lang.org/db/
> <https://docs.racket-lang.org/db/>> and
> <https://docs.racket-lang.org/sql/
> <https://docs.racket-lang.org/sql/>>, but I have been unable to
> find any
> equivalent to the so-called "migrations" capability of DB
> libraries from
> other languages (see
> <http://sequel.jeremyevans.net/rdoc/files/doc/migration_rdoc.html
> <http://sequel.jeremyevans.net/rdoc/files/doc/migration_rdoc.html>>
> and
> <https://hexdocs.pm/phoenix/ecto.html
> <https://hexdocs.pm/phoenix/ecto.html>>  for examples).  Is there
> anything like this for Racket, or even some language-agnostic, CLI
> tool
> that does the same thing?
>
> Thanks,
> Aidan Gauland
>
> -- 
> 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
> <mailto:racket-users+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout.

-- 
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] SQL DB tooling

2019-03-22 Thread Aidan Gauland
I see that Racket has a couple of nice libraries for talking to SQL
databases <https://docs.racket-lang.org/db/> and
<https://docs.racket-lang.org/sql/>, but I have been unable to find any
equivalent to the so-called "migrations" capability of DB libraries from
other languages (see
<http://sequel.jeremyevans.net/rdoc/files/doc/migration_rdoc.html> and
<https://hexdocs.pm/phoenix/ecto.html>  for examples).  Is there
anything like this for Racket, or even some language-agnostic, CLI tool
that does the same thing?

Thanks,
Aidan Gauland

-- 
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] lexer-parser approach in Racket [was the list of languages made with racket [Hacker News]]

2019-03-01 Thread Aidan Gauland
On 2/03/19 3:27 AM, Matthias Felleisen wrote:
>> On Mar 1, 2019, at 2:15 AM, Aidan Gauland  wrote:
>>
>> On 24/02/19 12:08 PM, Matthias Felleisen wrote:
>>> 2. The means of implementation in Racket are radically different from a 
>>> lexer-parser approach.
>> Wait, does this mean that the Beautiful Racket book is leading me down the 
>> wrong path?  I'm in the middle of the bf chapter 
>> <https://beautifulracket.com/bf/>, which (if I am understanding it 
>> correctly, is using a lexer and a parser.
> Please read this comment in context. This line is a response to a particular 
> point raised in the Reddit link of the original post. On this Reddit thread, 
> someone seems to confuse creating DSLs with writing new syntax for 
> more-or-less standard semantic concepts. For such people, it matters to find 
> a conventional Lex-Yacc (replace with modern words) tool chain plus perhaps 
> some support for backend creation.
>
> [snip]

I apologise for missing the context; I did take a look at the thread,
but I still misunderstood your remark initially.  Thanks for the
clarification.

Regards,
Aidan Gauland

-- 
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] lexer-parser approach in Racket [was the list of languages made with racket [Hacker News]]

2019-02-28 Thread Aidan Gauland
On 24/02/19 12:08 PM, Matthias Felleisen wrote:
> 2. The means of implementation in Racket are radically different from a 
> lexer-parser approach.

Wait, does this mean that the /Beautiful Racket/ book is leading me down
the wrong path?  I'm in the middle of the bf chapter
, which (if I am understanding it
correctly, is using a lexer and a parser.

-- 
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: FrTime basics

2015-08-14 Thread Aidan Gauland
On 13/08/15 22:55, Aidan Gauland wrote:
> Are there any non-graphical FrTime demos?  I'm trying to figure out how
> to define your own behaviors, and just going by the manual
> <http://docs.racket-lang.org/frtime/>, it seems rather imperative in
> nature, which is not what I understood it to be from reading the
> whitepaper.
> <https://cs.brown.edu/people/sk/Publications/Papers/Published/ck-frtime/paper.pdf>
> [snip]

Something seemed to click in my head last night after my original post,
and it occurred to me to try this (in DrRacket).

Welcome to DrRacket, version 6.2 [3m].
Language: FrTime; memory limit: 128 MB.
> (define rx (event-receiver))
> (define foo (+ 3 (hold rx)))
> foo

> (send-event rx 5)
;; The  magically changes to 8.
>

So I think I've got it now.  I suspect I'll have to pick Greg Cooper's
brain about FrTime's innards and undocumented public procedures, once
I've been using it (the documented part of it, anyway) for a while.

--Aidan

-- 
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] FrTime basics

2015-08-13 Thread Aidan Gauland
Are there any non-graphical FrTime demos?  I'm trying to figure out how
to define your own behaviors, and just going by the manual
<http://docs.racket-lang.org/frtime/>, it seems rather imperative in
nature, which is not what I understood it to be from reading the
whitepaper.
<https://cs.brown.edu/people/sk/Publications/Papers/Published/ck-frtime/paper.pdf>

I see that the definition of 'seconds' is using set-signal-thunk! and
set-signal-value!, which are not exported by the library (in other
words, not part of the language).

Have I completely misunderstood how FrTime is meant to be used?  Have I
hit its limitations, still being in the early states?  Or have I simply
been tripped up by gaps in the documentation?

Regards,
Aidan Gauland

-- 
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: Defining contracts sanely

2015-06-27 Thread Aidan Gauland
On 23/06/15 00:00, Robby Findler wrote:
> On Mon, Jun 22, 2015 at 2:43 AM, Aidan Gauland:
>>> If this does what you want, it’s fine, but the define/contract is probably 
>>> unnecessary, and
>>> (define fish-freshness/c
>>>   (flat-named-contract ‘fish-freshness/c
>>> (lambda (x)
>>>   (not (eq? ….)
>>> Should do what you want.
>>
>> So are contracts on contracts generally unnecessary?
> 
> No, the right generalization to draw here is that contracts aren't
> necessary when it is "obvious" that they can never signal blame. As
> another example, this:
> 
>   (define/contract (f x) (-> integer?) 3)
> 
> isn't really a helpful contract.
> 
> The reason why the other generalization isn't right has to do with the
> fact that contracts are themselves code and, like all code, can be
> buggy.

That makes more sense.  So far the only contracts I've looked at or
written have been trivial.  And thanks for pointing me at some complex
contracts for comparison.

--Aidan

-- 
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: Defining contracts sanely

2015-06-22 Thread Aidan Gauland
On 22/06/15 04:26, Alexander D. Knauth wrote:
> 
> On Jun 21, 2015, at 5:41 AM, Aidan Gauland wrote:
> 
>> Say I want to define a flat contract for the "freshness" field of my
>> fish class, so I define a contract for it like so:
>>
>> (define/contract fish-freshness/c
>>  (-> any/c
>>  boolean?)
>>  (flat-named-contract 'fish-freshness/c
>>(lambda (x)
>>  (not (eq? #f (member x '(fresh frozen edible rotten)))
>>
>> Am I barking up the wrong tree here, or is this perfectly sensible?
> 
> If this does what you want, it’s fine, but the define/contract is probably 
> unnecessary, and
> (define fish-freshness/c
>   (flat-named-contract ‘fish-freshness/c
> (lambda (x)
>   (not (eq? ….)
> Should do what you want.

So are contracts on contracts generally unnecessary?

> The flat-named-contract is also probably unnecessary (though it can be useful 
> if the name isn’t just a symbol), so
> (define (fish-freshness/c x)
>   (not (eq? ….)))
> Will also do what you want.

This just defines a procedure, not a `flat-contract' type.  (Although I
admit I am unclear on what is special about a flat-contract.)

> And finally, another way of doing this would be:
> (define fish-freshness/c (or/c ‘fresh ‘frozen ‘edible ‘rotten))
> 
> Or if you prefer giving the contract a better name for error messages:
> (define fish-freshness/c
>   (flat-named-contract ‘fish-freshness/c (or/c ‘fresh ‘frozen ‘edible 
> ‘rotten)))

Ah, I didn't realise that or/c could be used like this.  That's much
simpler when the condition is simply "is one of these symbols".

> Any one of these is “sane” as long as they work, and it depends on which one 
> you think looks more readable, makes you’re intent clear, and gives error 
> messages that make sense.

I suppose "cleanly" would have been a better word for the thread
subject, since I would have to be really clueless to be unsure whether
my code is sane. :P

> I just finished this when I saw Matthias Felleisen’s reply.  I’m sending it 
> anyway.

I appreciate it.  His solution was taking my toy example a little too
seriously, although I may have to steal it for my fish client/server. ;)
 I see he uses one-of/c, which is deprecated in favour of or/c
(according to the Racket 6.1.1 Reference).

-- 
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] Defining contracts sanely

2015-06-21 Thread Aidan Gauland
Say I want to define a flat contract for the "freshness" field of my
fish class, so I define a contract for it like so:

(define/contract fish-freshness/c
  (-> any/c
  boolean?)
  (flat-named-contract 'fish-freshness/c
(lambda (x)
  (not (eq? #f (member x '(fresh frozen edible rotten)))

Am I barking up the wrong tree here, or is this perfectly sensible?

Regards,
Aidan Gauland

-- 
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] Inheritance problem with private methods

2015-04-23 Thread Aidan Gauland
Ah, yes, I even knew this because I have another private method that I
call like this.  In the same class even, staring me right in the face.
Ah, well.  Thanks for your help!

On 23/04/15 22:40, Alexander D. Knauth wrote:
> If you do this, it works:
> (define/override (a-method)
>   (displayln "Hello from sub class")
>   (another-method))
> Because `another-method` is a private method, send doesn’t know about it (I 
> think; I haven’t used private methods much).  
> 
> On Apr 23, 2015, at 5:41 AM, Aidan Gauland  wrote:
> 
>> I get a method-lookup failure when I try to call, from a method
>> override, a method defined in the overriding class.  (See attached
>> program source.)  What do I need to be doing differently for this to work?
>>
>> Thanks,
>> Aidan


-- 
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] Inheritance problem with private methods

2015-04-23 Thread Aidan Gauland
I get a method-lookup failure when I try to call, from a method
override, a method defined in the overriding class.  (See attached
program source.)  What do I need to be doing differently for this to work?

Thanks,
Aidan

-- 
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.
#lang racket

(define top-class%
  (class object%
(super-new)

(define/public (a-method)
  (displayln "Hello from top class"

(define sub-class%
  (class top-class%
(super-new)

(define/private (another-method)
  (displayln "Hello from another method"))

(define/override (a-method)
  (displayln "Hello from sub class")
  (send this another-method

(send (new sub-class%) a-method)


Re: [racket] Hierarchical loggers

2014-07-12 Thread Aidan Gauland
Matthew Flatt  writes:
> Every once in a while, I find that option 2 works well with the pattern
>
>  foo.rkt:
>#lang racket
>(define-logger foo) ; uses `(current-logger)`
>
>  bar.rkt:
>#lang racket
>(define-logger bar) ; uses `(current-logger)`
>
>  main.rkt:
>#lang racket
>(require "foo.rkt"
> "bar.rkt")
>
>(module configure-runtime racket/base
>  (define-logger main)
>  (current-logger main-logger) ; sets `(current-logger)` early
>  )
>
>(require (submod "." configure-runtime))
>
> The `configure-runtime` submodule name is special: when "main.rkt" is
> run as a program, then `configure-runtime` is loaded and instantiated
> first --- before the result of "main.rkt", and before the imported
> "foo.rkt" and "bar.rkt" modules.
>
> This strategy only makes sense for configuration that is especially
> main-like, though. It doesn't compose for larger things that are built
> on "main.rkt".

Excellent, thanks!  This will work well for part of my program.  I
recently discovered submodules, but did not know about
configure-runtime.  One thing is missing from the pattern above:
(provide main-logger).

Thanks,
Aidan

  Racket Users list:
  http://lists.racket-lang.org/users


[racket] struct constructors

2014-05-28 Thread Aidan Gauland
Hello fellow racketeers,

What's the nearest equivalent for a struct to constructors for class
instances?  Say I have a struct with a field that should be initialised
to a three-element vector.  Right now, I'm just defining a wrapper
make-blah.

(struct blah (a b c v))

(define (make-blah)
  (blah 0 0 0 #(0 0 0))

This seems fine, but I see that there's a keyword argument to the
`struct' procedure #:constructor-name and I can't quite make sense of
what that does.  Is it a low-level thing, or is it exactly what I want?

Thanks,
Aidan Gauland


  Racket Users list:
  http://lists.racket-lang.org/users


[racket] struct constructors

2014-05-27 Thread Aidan Gauland
Hello fellow racketeers,

What's the nearest equivalent for a struct to constructors for class
instances?  Say I have a struct with a field that should be initialised
to a three-element vector.  Right now, I'm just defining a wrapper
make-blah.

(struct blah (a b c v))

(define (make-blah)
  (blah 0 0 0 #(0 0 0))

This seems fine, but I see that there's a keyword argument to the
`struct' procedure #:constructor-name and I can't quite make sense of
what that does.  Is it a low-level thing, or is it exactly what I want?

Thanks,
Aidan Gauland



  Racket Users list:
  http://lists.racket-lang.org/users