This is Fine
This post is a dumb rant, but I needed to vent.
This post is a dumb rant, but I needed to vent.
Some of the feedback I’ve received on Franz so far has been that folks need support for more compression and serialization formats. In that vein, here are some Racket libraries I’ve released in the past couple of weeks:
I’ve been playing with embedding Racket CS in desktop apps off and on for a while and today I recorded a little screencast demoing some of the stuff I’ve been working on. Here it is on YouTube:
Racket provides support for concurrency via lightweight threads, which the web server leverages to handle requests, spawning one such thread per incoming request. At the runtime level, these threads run concurrently but not in parallel (i.e., only one thread is active at any one time). Parallelism is available in Racket via Places: distinct instances of the Racket runtime running in separate OS threads that communicate via message passing.
The web server doesn’t do anything with places, so, by default, all Racket web servers run in a single OS thread. That isn’t a big deal since you can run one web server process per core and place a reverse proxy like Nginx in front to load balance between the processes. But what if you don’t want to do that? Is there a way to use the web server in conjunction with places despite the web server lacking explicit support for them?
I recently ran across Matthew D. Miller’s “Survey of the State of GUI
Programming in Lisp” series on implementing a small GUI
application across various LISP implementations. The first
article in that series uses racket/gui
, so I figured I’d
take a stab at porting that implementation to gui-easy. You can
find my port here.