Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Pleasantly surprised to see this on HN! This is an old (and incomplete) project of mine to reformat Structure and Interpretation of Computer Programs into a browser-friendly format, with a built-in code editor and interpreter.
I think today, you can use Racket in its special SICP mode to get a much better experience. But maybe the HTML (Bootstrap) formatting is a little nicer to read (and with the bonus that it probably works on phones).
The interpreter was incomplete and written from scratch, as a learning project. This was done in the pre-WebAssembly days, so I couldn't just recompile, say, a Scheme written in C for use in the browser.
If I recall correctly, I took the SICP source files, ran a bunch of regular expressions on them to convert the content into XML, and then used XSLT to generate the web pages. I was really into XSLT at the time :)
Anyway, hope people find this useful!
Source code links:
HTML generator: https://github.com/jaredkrinke/learn-scheme
SICP-to-XML converter: https://github.com/jaredkrinke/sicp-reformatter
Interpreter: https://github.com/jaredkrinke/jslisp
Pleasantly surprised to see this on HN! This is an old (and incomplete) project of mine to reformat Structure and Interpretation of Computer Programs into a browser-friendly format, with a built-in code editor and interpreter.
I think today, you can use Racket in its special SICP mode to get a much better experience. But maybe the HTML (Bootstrap) formatting is a little nicer to read (and with the bonus that it probably works on phones).
The interpreter was incomplete and written from scratch, as a learning project. This was done in the pre-WebAssembly days, so I couldn't just recompile, say, a Scheme written in C for use in the browser.
If I recall correctly, I took the SICP source files, ran a bunch of regular expressions on them to convert the content into XML, and then used XSLT to generate the web pages. I was really into XSLT at the time :)
Anyway, hope people find this useful!
Source code links:
HTML generator: https://github.com/jaredkrinke/learn-scheme
SICP-to-XML converter: https://github.com/jaredkrinke/sicp-reformatter
Interpreter: https://github.com/jaredkrinke/jslisp
Pleasantly surprised to see this on HN! This is an old (and incomplete) project of mine to reformat Structure and Interpretation of Computer Programs into a browser-friendly format, with a built-in code editor and interpreter.
I think today, you can use Racket in its special SICP mode to get a much better experience. But maybe the HTML (Bootstrap) formatting is a little nicer to read (and with the bonus that it probably works on phones).
The interpreter was incomplete and written from scratch, as a learning project. This was done in the pre-WebAssembly days, so I couldn't just recompile, say, a Scheme written in C for use in the browser.
If I recall correctly, I took the SICP source files, ran a bunch of regular expressions on them to convert the content into XML, and then used XSLT to generate the web pages. I was really into XSLT at the time :)
Anyway, hope people find this useful!
Source code links:
HTML generator: https://github.com/jaredkrinke/learn-scheme
SICP-to-XML converter: https://github.com/jaredkrinke/sicp-reformatter
Interpreter: https://github.com/jaredkrinke/jslisp
A cool hack was presented at the 13th Racket Con yesterday, showing how to run PB (the Chez Scheme bytecode interpreter) on Wasm.
Racket with Wasm-PB Chunk, https://github.com/adamperlin/racket
Videos should be posted here shortly, https://www.youtube.com/@racketlang/videos
https://con.racket-lang.org/
Sweet, I'll have to give that a go :)
Another option in browser land is lips[0], which exclusively targets a js backend.
[0] https://lips.js.org