Shortly after I declare that Racket is not a cult, Racket goes and
issues a manifesto.
Neil V.
--
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
What Jay said. If you want to keep things simpler, and are only going
to have a few simultaneous requests at a time, you can have Racket serve
all the HTTP directly. But I almost always decide an obvious first
thing to do is to push off static file serving to Apache (or nginx, or
lighttpd),
There are some semi-new media skills for reading this kind of online forum.
Which skills an individual reader employs depends on their goal in
reading the forum (e.g., seek out particular information you suspect
might be there, skimming for anything that looks interesting/relevant,
idle
Carmack is a legendary programmer, and has many fans.
I expect this mention to bring us some more smart people, curious to try
out Racket.
Neil V.
Racket Users list:
http://lists.racket-lang.org/users
Welcome!
John Carmack wrote on 03/18/2015 02:59 PM:
I would be interested in hearing any guidance for high performance servers
written in Racket. GC delays in the tens of milliseconds will be problematic
for at least part of this application, but I could split that part off into a
separate
Robby Findler wrote on 03/14/2015 03:06 PM:
I could certainly change that use a doc subdirectories if people think
that's the right thing.
I don't know, but (especially if the current default changes), we should
be able to force the target directory from the command line and the
API. (Tools
John Clements wrote on 03/11/2015 01:38 AM:
Maybe simpler: why not just treat the mouse like a joystick? That is,
if you press the mouse down and move it a little to the right and hold
it there, the camera continues to move smoothly until you release.
Firefox autoscroll is one popular example
Matthew Butterick wrote on 03/01/2015 08:07 PM:
As a still newish user of Racket, I have learned to try it Their Way
before insisting on having it My Way (or looking for other options
farther up the Highway).
Yes, a newbie should usually try doing things the Racket Way first.
This guidance
Matthew Butterick wrote on 02/28/2015 06:49 PM:
If the latter, then you may find that using native Racket data
structures (esp. the X-expression) and native XML-friendly functions
(like `match`) is more convenient.
Either SXML or X-expressions are OK for most purposes.
But, IMHO, SXML is
DJ wrote on 02/28/2015 11:49 AM:
I have spent a half hour searching for info on how to run xslt
transforms in racket. All that I can find is a mention that sxml /used
to have/ xslt but doesn't any more. I would prefer native racket
rather than some kind of ffi solution if possible.
I don't
Matthew Butterick wrote on 02/28/2015 11:19 PM:
Caught on with everyone else? When I looked into SXML a couple years
ago, it seemed like it was already somewhere between dying and dead. [1]
No, SXML is alive and well. One paragraph... And I was speaking of
when Scheme people went one
Floyd Arguello wrote on 02/26/2015 05:58 PM:
I like the idea of saving programs through a Google account,
That might be fine for particular users of this particular app... but,
as a general comment, for people doing other Web-based apps, using the
cloud in this way is actually a really bad
If you want to learn hardcore pure functional programming specifically
(not just a Lisp dialect in general), then I recommend a textbook that
uses Haskell, which is not a Lisp dialect.
For all other uses of Lisp dialects, I recommend some learning approach
that uses Racket. Go to
Jens Axel Søgaard wrote on 02/24/2015 05:01 PM:
I see that the standard way of embedding Racket is via a dynamic library.
Unfortunately, I wouldn't risk an important app to this Racket embedding
approach without a *lot* of prior validation by someone else. (Seems
like it might be begging
I'm sure that defining idiomatic Racket would be a lively discussion,
but, for purposes of the original discussion, I'll just weaken my
original assertion:
* A good Racket programmer can, acting selflessly, without regard to
his/her personal comfort, draw upon some of his/her Racket
A solid Racket VM and GUI for Android and iOS apps would be awesome.
In the interim, two reasons why a solution using an R5RS Scheme might
work well for a lot of Racket people:
* Lots of code written in Racket can actually be written in R5RS almost
as well. (Example: say that the secret
BTW, until someone ports DivaScheme to Racket 6.x...
I think DivaScheme was inspired by Taylor Campbell's `paredit.el` for Emacs:
http://emacswiki.org/emacs/ParEdit
If you want to try out the general approach to sexp-oriented editing, or
just see a video demonstration, you might want to look at
I always build it to put all of Racket into a single directory tree, by
adding an argument like `--prefix=/usr/local/racket-6.1.1` when I do the
./configure part of the build.
One of my clients simply copies one of these install trees around to
many servers (running the same GNU/Linux distro
George Neuner wrote on 02/04/2015 10:28 PM:
Do you just 'make install' and tar the /usr/... directory or do you
use DESTDIR=something and tar that? I don't suppose it really makes
a difference.
Just the `--prefix`; no `DESTDIR`.
Racket Users list:
IMHO, a Racket way would more likely be to avoid bad hygiene, by one of:
* Just doing it as a procedure that takes closures for the `yes`and `no`
arguments (with the `yes` one taking arguments for `head` and `tail`).
* Doing it as syntax, but having the user of the extension define the .
Neil Toronto wrote on 01/17/2015 07:57 PM:
Ubuntu has had ASLR enabled by default since 10.04 (about five years).
During that time, in my experience, it's never affected Racket.
I do have to use setarch i686 -R to disable ASLR to run Maxima,
which is written in Common Lisp. So it's a
George Neuner wrote on 01/17/2015 04:58 PM:
On 1/17/2015 1:26 AM, Neil Van Dyke wrote:
Finally, cross your fingers, and test it on target VM.
It's the cross you fingers part that worries me. I'd be happier if
I knew others already had done it successfully. I've never worked
with CentOS
If you want to do this without the additional work to create CentOS
packages... I suspect you'd get the best results by building Racket on a
different machine/VM that mimics the target VM, then just copy files to
the target VM.
Specifically, set up a beefier CentOS install (on a spare machine
wrote on 01/08/2015 05:20 PM:
On Thu, Jan 8, 2015 at 10:49 PM, Neil Van Dyke n...@neilvandyke.org wrote:
I generally recommend against using non-ASCII characters in Racket source
code.
Besides the human readability question (and the searchability question),
non-ASCII still presents a significant
I generally recommend against using non-ASCII characters in Racket
source code.
Besides the human readability question (and the searchability question),
non-ASCII still presents a significant risk of your characters getting
corrupted in transmission. Especially with all the Web sites and
Pierpaolo Bernardi wrote on 01/08/2015 05:20 PM:
Unicode is here to stay, you can't sweep it under the rug. The more
we use it, the sooner people will get annoyed with broken services and
protocols and the sooner the brokenness will go away.
And in addition to cute symbols, there are also
Thomas Lynch wrote on 01/01/2015 10:32 AM:
I don't know if there is an issue that caused the package to be
distributed with these config settings so I will go with the #:socket
`guess approach until I have a better understanding.
The Debian default settings for PG access are OK to start
Thomas Lynch wrote on 01/01/2015 03:30 AM:
I am having difficulty connecting to the postgres server from Racket.
It asks for a password, but role and authentication is set up so that
the logged in local user does not need one.
Is `psql` is using a Unix domain socket to talk to PG,
Consider implementing it from scratch, in an application-specific way.
Implementing the writing is pretty simple and straightforward (easier
than the reading).
Just be careful that your boundary string does not occur in any part
(which is a weakness of the protocol, IMHO): you can either
Hopefully others who've had this or related problems speak up too!
Maybe someone who has the problem could use JMeter (or ab, or similar)
to pound the server and reproduce the failure quickly, under debugging
conditions?
Neil V.
Racket Users list:
BTW, general tip: anyone comparing these kinds of files might want to
use a diff program that does highlighting of a second diff between
diffing blocks. For example, the Ediff feature of Emacs:
http://postimg.org/image/ef0zjh1sh/
Neil V.
Racket Users list:
I think you have some of the right ideas.
Two additional ideas to consider...
* Usually you will have some data representation of objects that will be
drawn and manipulated. This might be as simple as a list of structs or
Racket objects, and (in an OOPL way). If you're making a simple
A few ideas not specific to Racket (pardon if you already thought of these):
* Does the Linux kernel have the files in cache, but Windows does not?
* Are other processes using lots of CPU or disk on Windows?
* Is the Windows system swapping to disk, but Linux one not?
Neil V.
Offhand, I don't know why you're seeing such a big difference, then.
Regarding various ways that filesystem is cached in RAM, I consistently
see a big improvement in Racket startup times when there's caching.
Maybe you're using SSD? This is typical for my setup:
[~] time racket -e '(void)'
Thanks, Matthew.
Neil V.
Matthew Flatt wrote on 12/18/2014 11:20 AM:
I've pushed a repair for the next version. Unfortunately, I don't see
a better workaround in the current version than running `raco setup`.
Racket Users list:
http://lists.racket-lang.org/users
Did how `raco` commands are added change in Racket 6.1?
When the following two commands are run under Racket 6.0 or 6.0.1, they
show a `raco mcfly` command has been added. But when run under 6.1 or
6.1.1, the `raco mcfly` command has not been added.
racket -e '(require (planet
Two questions, for the documentation of a single-collection package in
`.zip` format (in the new package system)...
* Given that the package is named `mypackage`, must the Scribble file be
named `mypackage.scrbl`, or will things work just as well if the file is
named `doc.scrbl`?
*
Anyone have comments on how they'd like to embed API documentation
within Racket module source code?
I've done in two ways so far, and am about to write a new tool for this,
so I have a chance to rethink it. The earlier two ways;
* The first way I did it, for generic Scheme, was in Funcelit
This doesn't help with selects and joins, but
http://www.neilvandyke.org/racket-csv/ will get most CSV files into
Racket data.
Some pure-functional query operators for Racket data, or for Racket
sequences, would be nice.
I could add to the `csv` package a fold operator and/or support for
John Clements wrote on 12/10/2014 02:56 PM:
Possibly related: the last time I checked, there was no widely adopted
schema system for JSON, which is completely appalling. That is, it’s
not possible to document an HTTP call as “returning a JSON object with
field “timestamp” which is an integer
Did you see this tutorial? http://docs.racket-lang.org/continue/index.html
I have used that same package (Jay's `web-server`) in the past, to
rapidly implement a research data tool (a Web-based tool for tagging
objects in a large corpus, and doing queries on the tags). `web-server`
is good to
Antony Blakey wrote on 12/03/2014 10:09 PM:
I'm responsible for the Native LF for VisualWorks Smalltalk (which is entirely
synthetic), and it's a big deal for many of our customers. Even on Windows.
Very glad to see a VisualWorks person here!
(Not everyone knows, but VisualWorks began
Am I doing something wrong? `raco pkg create --binary` is including
source files (and other non-`compiled` files), which seems inconsistent
with its documentation. This is in Racket 6.1.1.
Side question: Is `raco pkg create` supposed to use the `MANIFEST`
file? (It didn't look like it was
Can I do `require` forms like this?
(require http://code_man.cybnet.ch/racket/3d-model.zip)
(require git://github.com/samth/abnf)
Neil V.
Racket Users list:
http://lists.racket-lang.org/users
Is there already a way to greatly reduce the number of files that
Scribble creates for a small one-page manual (like is used for the
documentation of a package)?
In Racket 6.1, Scribble creates 18 files, in 2 directories. Before this
change, Scribble created only 5 files, in 1 directory, for
This version of package `scgi` should remove the dependency on package
`html-template`:
(require (planet neil/scgi:2:3))
I'll add in the Unix domain sockets support once it's Racket's support
is moved out of `unstable/socket`.
(The package documentation on my Web site is still for
Thanks, Matthew. I have to rework McFly and my package release setup
for the new package system soon, and I plan to work around the 18 files
then.
I don't know that my plan is relevant to anyone else, but here it is:
* Make distributions (and packages?) include the documentation files
. (`+` is problematic
in URLs, due to historical kludges of some URL libraries converting it
to a space character, but that can be worked around.)
Neil V.
Neil Van Dyke wrote on 11/23/2014 10:28 PM:
Thanks, Matthew. I have to rework McFly and my package release setup
for the new package system soon, and I plan
Matt Gushee wrote on 11/21/2014 02:42 AM:
* I was surprised at the number of dependencies pulled in when I
installed the scgi package. It looks like most of them are there to
support the template processor which is required by the example code.
It's not a big deal, of course, but I wonder if
Any plans to promote the `unstable/socket` module to non-unstable?
Or to otherwise officially support Unix domain sockets in core Racket?
Neil V.
Racket Users list:
http://lists.racket-lang.org/users
That pure-Racket SCGI module is used successfully for a large
workstation-ish Web app, and for several Web services (including data
interchange and an offline mobile app backend).
Before I implemented SCGI, I implemented most of a pure-Racket (well,
pure PLT Scheme) FastCGI interface. But,
J Arcane wrote on 11/18/2014 05:58 AM:
If Heresy becomes a proper teaching tool
I thought Socratic method was a teaching tool, Heresy was a political
misstep, and Hemlock was the result.
Neil V.
Racket Users list:
http://lists.racket-lang.org/users
SaharaBig wrote on 11/16/2014 12:44 PM:
I want to render some chars, ascii to the terminal, any module or
package helps?
If you're on a Unix-like system: http://www.neilvandyke.org/racket-charterm/
Neil V.
Racket Users list:
http://lists.racket-lang.org/users
I think someone from the Felleisen extended family of researchers will
have something to say on types (both theory and practice) when they get
a chance.
Two very general comments, IMHO:
* Type checking (static, runtime, mixed, other) is one of many
mechanisms and disciplines that can
If you're not already using DrRacket's awesome Macro Stepper, give it a
try, to see how your examples expand.
Neil V.
Racket Users list:
http://lists.racket-lang.org/users
Small comment: In addition to discoverability, try to have this go
direct to *understanding* of howwhen to use errortrace.
(Multiple times over the years, I have been doing crucial performance
optimizations to server code, and remnants of various versions of
errortrace kept getting added back
I had privately pointed him to the URL to unsubscribe himself, but he
says it didn't work. It appears that tensions have escalated. :)
Neil V.
Racket Users list:
http://lists.racket-lang.org/users
You can check your IP addr against the list at
http://gmane.org/denied.php;.
Neil V.
Racket Users list:
http://lists.racket-lang.org/users
Amir Ansari wrote at 09/22/2014 02:28 AM:
Have you tried Xvfb (http://en.wikipedia.org/wiki/Xvfb), a virtual X server? It
runs headlessly, sidesteps the whole issue of having to fork the code...
I have no idea whether xvfb is the best way without looking closely at
a particular case, but
J Arcane wrote at 09/22/2014 02:54 AM:
I had not actually heard of Xvfb before now, but that could be a good
solution. I balk at using full X11 with only 512MB of RAM, but that
could be enough to satisfy the original code's expectations. I will
have to experiment with it.
Side comment: I
I'm helping a colleague hire a smart junior-level Racket developer.
The job spec is still being ironed-out, but a top candidate would be
someone smart and responsible, and who has some experience with all of
Racket, Java, and Python.
More important than any particular languages/tools is the
If you don't find exactly the solution you want, possible measures:
* If the concern is security, create the files in a directory on which
you've set sufficiently restrictive permissions. (Even if you always
set the file permissions immediately after opening the file for writing,
there could
Is there any low-hanging fruit for making the command-line Racket detect
more cases in which some of the compiled files are out-of-date?
Details...
I have run into a few instances of undetected out-of-date compiled
Racket code a few times in the last year.
For example, today, after
What all have people done with using Racket with GnuCash?
I know that John B. Clements wrote a package for doing reports from the
.gnucash file.
(My immediate motivation is that I'd like to be able to use my
html-template Racket package to do reports that are integrated into
the GnuCash
Hendrik Boom wrote at 09/06/2014 08:56 PM:
I gather that the current gnucash developer(s) have decided that
they would like to distance themselves from guile. But it is still
alive and well as its report generator.
I was using Guile back when GnuCash was being developed in it. Guile
seemed
Gilbert Martinez wrote at 09/03/2014 12:01 PM:
I run the code above and execute the following in the interactions pane:
Welcome to DrRacket, version 6.1.0.5--2014-08-25(32ae3f8/a) [3m].
Language: racket [custom].
12
(for ((byte (in-bytes (port-bytes c-in
(printf ~x
FWIW, I just tried Racket 6.1 installing PLaneT neil/csv:1:7, and two
observations:
* I don't immediately know why, but my Racket 6.1 (command-line
racket, and DrRacket) doesn't build the documentation when installing
the PLaneT package. I can't look into this right now.
* The performance
Has anyone written a faster Base64 decode than in the net/base64 module?
(base64-decode-stream is suffering when tens of MB are run through
it. Perhaps due in part to whatever overhead the input port has. The
code looks pretty good. I'd probably have to try using block reads to
reduce calls
If you haven't already, you can try the following to disable any port
buffering within Racket, but that doesn't help you if the OS (Windows
and Posix-ish console stuff it's doing from the console window) isn't
giving Racket raw, unbuffered access to keyboard input through stdin:
Adam Emanon wrote at 07/28/2014 12:35 PM:
Is there a way to sign up for a weekly digest? Several emails per day
is too much for me. If not, I'll have to unsubscribe for now.
I don't see one right now (just a daily digest), but the list can also
be viewed through a few different Web
Henry Lenzi wrote at 08/03/2014 11:52 PM:
What I'm sensing is that you seem to be concerned about bugs with
Racket Scheme's EVAL. Is that it?
I do not understand what the problem with EVAL is. Would you please
state clearly what the problems are?
Eval is one of the issues. Sorry I have to be
Matthew Flatt wrote at 08/04/2014 02:40 AM:
While he didn't say so explicitly, I don't think that Neil is worried
about the implementation of `eval` within Racket. After all, `eval` is
at the heart of the implementation, and any program that you give to
Racket is going through `eval` whether or
Henry Lenzi wrote at 08/04/2014 07:21 PM:
I was just wondering, Neil. what your experience in production for
pharmaceutical prescriptions/labeling/instructions software would be.
I'd be glad to read some stuff you've published or other software
solutions, if it's not proprietary software. If it
Henry Lenzi wrote at 08/04/2014 07:43 PM:
By the way, if you guys had any idea of the buggy stuff people sell to
the health sector. The atrocious VB, MFC C++, Java... I'm not even
goint to mention security..
Heh. I have seen some of that, and actually suggested to one of my
consulting
I can see how someone might want to do tricks like this, to use the REPL
as user interface, for tinkering, and that could be very interesting or
clever.
However, just to be clear to students and professionals who might
stumble upon this thread... If I were actually doing this in production
-in-dynamic-languages-generally.html
Vincent
At Sun, 27 Jul 2014 16:16:52 -0400,
Neil Van Dyke wrote:
Maybe there should be a periodic public service announcement about not
using eval. This time I will communicate in FAQ format:
Q: How do I use eval?
A: Don't use eval.
Q: But don't so many
style, The
Essayist style, etc). Wanna do it :-)
-- Matthias
On Jul 27, 2014, at 3:16 PM, Neil Van Dyke wrote:
Maybe there should be a periodic public service announcement about not using
eval. This time I will communicate in FAQ format:
Q: How do I use eval?
A: Don't use eval.
Q
Maybe there should be a periodic public service announcement about not
using eval. This time I will communicate in FAQ format:
Q: How do I use eval?
A: Don't use eval.
Q: But don't so many academic books feature eval prominently, so doesn't
that mean I should use try to eval?
A: Those books
Matthias Felleisen wrote at 07/21/2014 09:10 AM:
call-by-value/pass-by-worth
Especially since Pascal was the first place that I was exposed to
different kinds of calling conventions, I've been waiting for this
thread to mention some version of the Niklaus Wirth joke:
Whereas Europeans
Short answer: For production use thus far, I usually use string-date,
something custom for the app, using regexps, my old simple
http://www.neilvandyke.org/rfc3339-scheme/;, or the SRFI-19 implementation.
BTW, I try to limit my uses of datetime as much as possible, since none
of the libraries
Has anyone using Quack with Emacs 24 found what the fix is for the
problem that most of the usual syntax coloring doesn't happen? (The
parentheses aren't red, for example.)
When this problem occurs, there will be the following message in the
*Messages* buffer:
Quack Warning:
Complementary to the suggestions that Matthias and Jens Axel made, also
remember that Racket has a very different evaluation model than Haskell.
Consider reworking the use of the and form and everything within it:
instead, test r and c for integer?, and then use = and = to
determine whether
Brian Adkins wrote at 07/12/2014 04:19 PM:
Thanks for the advice Neil. I'm a little confused by your Racket is an imperative
language statement though - it seems quite functional to me, which was one of the
attractions.
[...]
Racket can be used as a functional language, so long as one
Dmitry Pavlov wrote at 07/09/2014 04:50 AM:
I have to do a simple spreadsheet editor and I wonder
whether Racket suits my needs. The main challenge
is that the spreadsheet editor should be able to edit
tables as big as 1000x1000 or 1x100 cells.
For a million cells like that, when using any
Brian Adkins wrote at 07/08/2014 09:01 PM:
If Neil is on this list, are you planning on migrating to the new package
repository?
Yes, eventually.
My tools and ways of doing things are built around PLaneT and particular
ways it works that the new package system does not. Before I can
/dispatch-lift or even just
grabs connection-o-port itself and writes raw.
That documentation, btw, is not private internals. It's designed for
people to write their own custom Web servers.
Jay
On Fri, Jul 4, 2014 at 7:25 PM, Neil Van Dyke n...@neilvandyke.org wrote:
In Racket 5.3.4
I think how you do it depends on your exact needs, but I generally
recommend not doing this unless and until you need to.
I maintained most of my code in portable R4RS/R5RS plus minimal SRFIs
for years, before deciding that Racket did almost everything I needed,
and that keeping the
An alternative in Firefox is to make a Quicksearch bookmark. I
currently have one like this:
Name: Racket 6.0 Documentation Quicksearch
Location: file:///home/user/.racket/6.0/doc/search/index.html?q=%s
Keyword: r
So, to get the Racket docs for foo, I get a new tab or browser, and
type r foo
In Racket 5.3.4, is there a way to use the barebones HTTP-serving
functionality of the Racket Web Server code, without getting any of the
``Stateful'' or ``Stateless'' stuff, nor any trickiness that it does
with the callback code to support the continuations?
I just want each request to
In addition to various ways of running a Racket VM on Android/iOS/etc.
devices, another way to use Racket in mobile device app development is
to target HTML5 offline apps. This means dynamic HTML+CSS UI, offline
application cache and updating, persistent local storage, etc.
A client of mine
With the racket/engine module, is the engine procedure supposed to
capture the Racket parameter values that will be used for the proc when
engine-run is applied? Rather than the parameters coming from the
dynamic extent in which engine-run is applied?
The example below shows that parameters
Steve, welcome to Racket.
Regarding your Scheme questions... Unless you have an unusual reason
that you need to use some Scheme dialect, rather than Racket[*]... then
I strongly suspect that you want to just learn Racket for now, without
everyone getting confused, talking about the various
This might still be optimizable in pure Racket; otherwise, mixing Racket
with R might not be a bad idea for this and other reasons.
Details...
I played with this briefly late last night after emails with Ryan,
without finding a substantially faster way that still looked elegant as
Racket
Have you tried doing read repeatedly on the file, once per number (and
not doing the huge allocations)?
Neil V.
Racket Users list:
http://lists.racket-lang.org/users
These graphs (not graphics) are mathematical abstractions. You will
hear about some of these graphs when you study compilers.
(Separately, there can also be diagrams (or graphics) to visualize these
graphs. But that's probably not what you're looking for.)
I think your code security
Roman, this looks good.
I think one good test of your abstractions would be to parse JPEG Exif
with some MakerNotes. IIRC, you have to things like read a value that
is an offset from some other position (from top of file, start of
header, current position...), to follow linked lists, and to
Looks like their entry-level account (http://sdf.org/?join;) has a
200MB disk quota, which probably is not enough for a full Racket install
(my Racket 6.0 GNU/Linux install takes 525MB). But their VPS accounts
(http://sdf1.org/index.cgi?vps;) could handle that disk space. Or,
maybe stripping
I would pick something very physical like robots, music, graphics, 3D
printing...
Maybe combine the above with a Rasberry Pi or other exposed computer, so
that the educational demo is not judged by the slick standards of some
rather impressive laptops/tablets/smartphones/gameconsoles that
I think you need to characterize the kinds of vulnerabilities you're
looking for, and then relate that characterization to the semantics of
the language about which you're reasoning.
I suspect that what you're doing is actually a research area for people
who understand both vulnerabilities
If Apple ever rediscovers parentheses, we're done for? :)
http://en.wikipedia.org/wiki/Dylan_%28programming_language%29
Neil V.
Racket Users list:
http://lists.racket-lang.org/users
1 - 100 of 815 matches
Mail list logo