Badminton

rml,
@rml@functional.cafe avatar

I remember hearing that #Racket made some progress towards migrating to upstream #Chez, does anybody know what the status of that is? Racket users and users of software written in Racket would benefit immensely from this.

Chez is a powerful infrastructure in a ~500kb statically linked binary that approaches C in performance. Due to its low-level and bare bones compilation and build tools, you can also compile in only what you need. racket-minimal on #guix is ~160mb, which is great for what you get, but still 320x the size of Chez. Having Racket's ecosystem while being able to ship only chez + the compiled chez code of the libraries you import could allow for shipping sophisticate programs in only a few mb. Just saying.

racketlang,
@racketlang@functional.cafe avatar

@rml to answer your first question, I think that happened back in mid-February

https://racket.discourse.group/t/post-chez-10-distro-release-considerations/2739 mentions it and has some interesting discussion

bogdanp,
deadblackclover,
@deadblackclover@functional.cafe avatar

A book about compiling Racket and Python to x86-64 assembly

https://github.com/IUCompilerCourse/Essentials-of-Compilation

rmaziere_85, French

Pour la #Sacem, il n'y a pas de petits profits, même après la mort il faut payer les ayant-droits de la #musique.

Oui, la Sacem touchera bien des droits sur les musiques d’enterrement

#racket
https://www.linforme.com/medias-culture/article/oui-la-sacem-touchera-bien-des-droits-sur-les-musiques-d-enterrement_1411.html

fkinoshita,
fkinoshita,

@gregorni Pretty much all languages share the same ideas, right? variables , functions, loops and/or recursion, you just learn how to apply them on whatever language you're currently learning!

gregorni,
@gregorni@fosstodon.org avatar

@fkinoshita Seems simple when you put it like that…

racketlang,
@racketlang@functional.cafe avatar

Redeeming Open Source with Attribution Based Economics

By Sid Kasivajhula, feat. Michael Ballantyne

Attribution Based Economics (ABE) is a new paradigm for economics that revises several foundational assumptions governing today’s systems, including the nature of economic value and the origin of money. In this new paradigm, open source software becomes economically viable and, indeed, even financially favored over proprietary models. This talk describes our experiences implementing an early prototype for the Qi project, and also how Racket will be an essential part of the solution as ABE scales past the pilot stage.

Watch now: presentation

#ABE #QiProject #Racketlang #Racket #RacketLanguage #OpenSource

joeld,

The #Racket fork of #ChezScheme is about to be merged with upstream Cisco/ChezScheme. https://groups.google.com/g/chez-scheme/c/D7g6mIcYLNU

racketlang,
@racketlang@functional.cafe avatar

Monads in Dynamically-Typed Languages

… a monad library for Racket, using its generic interfaces feature …

by @tonyg @leastfixedpoint

http://eighty-twenty.org/2015/01/25/monads-in-dynamically-typed-languages

Discuss on the Racket Discourse (now with chat!) or Discord

#Racket #RacketLang #RacketLang #monads #FunctionalProgramming

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

question I had for the #racket #racketlang crowd:

Researching DSLs, with the use case of a configuration languages, but how would you go about communicating this with the main app?

Would part of the DSL be to then spit out JSON (etc.) to be consumed, so the DSL just serves as a clean, correct way to author configuration?

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

@d_run planned use case would be entirely offline (parsed by a game engine, specifically), so afaik web APIs are off the table

I guess embedding racket and consuming the s-expressions directly would probably be easier - but at that point things start to get heavier and more complicated, so i think i'm seeing why everything isn't a racket DSL now

MenacingMecha,
@MenacingMecha@mastodon.gamedev.place avatar

@d_run sorry, i meant to integrate into an existing C++ game engine (Godot, specifically).

The background context is research into what would be the best (easiest to author and maintain) way to represent the potentially complicated rules of a TCG card. Typically this is done with something like Lua, but I've heard horror stories of trying use Lua for config, so shopping around for options

rml,
@rml@functional.cafe avatar

Nora: an experimental #Racket implementation using #MLIR (the megapass variant of the #nanopass framework from #LLVM)

https://github.com/pmatos/nora

aziz,

@rml @zardoz03

> arrive at truths [...] a genuine anomaly that is to excessive to turn away from.

I came to realize there is no such thing as truth. There is only a mass that is impossible to cancel.

> my supervisor

Lucky you, that is only one. That's prolly where lies our mistake. We wish for prop'ed up (self) esteem, but I can't see that becoming a reality in a world where 'excessive to turn away from' is an educational cornerstone / pillar. Difficult to synth, and mesh with a perfect equilibrium that has been documented countless times, too.

> grow them in a direction I genuinely cared about

Mine is what it is, and I am happy about my legacy.

> curated and administrated

I have a similar xp, with different wording.

> Marxism

Names, especially famous names are bad good shortcut instead of discourse.

rml,
@rml@functional.cafe avatar

@aziz @zardoz03
> I came to realize there is no such thing as truth. There is only a mass that is impossible to cancel.
well I didn't say truth but truths. I'm a Platonist in the sense of Plato, I believe that truths are generic and subjective, and arrived at through traumatic ruptures in the order of society, that demonstrate the fragility of reigning epistemes. so the french and october revolutions are both truth procedures, in all their disturbing reality, but so is Cohen's forcing proof.

> Names, especially famous names are bad good shortcut instead of discourse.
when I say Marxism, I mean the political movement that started with the founding of the International Workers Association, and was taken up by bolsheviks under Lenin and transformed into the bloody, terrible series of revolutions around the world. unlike most people in software, I look favorably, if critically, upon the revolutions of the world, as I went to Nepal and lived with the Maoists at the height of the revolution in 2007, was active in Palestinian solidarity until barred from returning by Israel, and I currently live in "authoritarian" Marxist-Leninist Vietnam which is far more free and equal than the US or Europe, the fattened and deranged colonial empire that is driving the whole of earth to our graves so as to not bother the most ridiculous reactionary hoarders. Its left me with little tolerance for the bourgeois mythologies of anti-communism that are used as a shibboleth to justify the most barbarous treatment of the majority of the earth, and to demand that set we content ourselves with plans to burn.

dougfort,
@dougfort@mastodon.social avatar
paperswelove,
@paperswelove@mstdn.io avatar

Learning some insights about Typed Racket at Amal Ahmed’s talk at #strangeloop

https://pwlconf.org/2023/amal-ahmed/

#racket #scheme

Video Prep Just Not TTY’s Thing (bwfworldtour.bwfbadminton.com)

An Se Young does it. So does Carolina Marin. So too, conceivably, does every player on the circuit – video analysis as part of match preparation: looking for flaws and patterns in opponents and one’s own, building up a visual bank of cues that might make a difference between win and loss....

joeld,

Over the weekend I whipped up a plain-text renderer for Punct (https://joeldueck.com/what-about/punct/). Check out the screenshots to see what I mean, but this is for when you want to convert your Markdown (+ #Racket code) into an even plainer text format — such as when you want to produce HTML and plaintext versions of an email newsletter, for example.

Screenshot of the parsed Punct document from the first screenshot: a hierarchical list of elements, as represented in the DrRacket REPL.
A screenshot of the DrRacket REPL showing a call to

brokenix,
@brokenix@emacs.ch avatar

PLT Redex is a domain-specific language designed for specifying and debugging operational semantics. Write down a grammar and the reduction rules, and PLT Redex allows you to interactively explore terms and to use randomized test generation to attempt to falsify properties of your semantics.

#PLTRedex is embedded in #Racket, meaning all of the convenience of a modern programming language is available, including standard libraries
https://redex.racket-lang.org/

alephoto85, (edited )
@alephoto85@livellosegreto.it avatar

Terminal Phase – Uno Space Shooter scritto in Racket che gira nel terminale.

@programmazione

Amicɜ, ho trovato questo giochino molto divertente e ho pensato che possa essere una buona risorsa per chi è interessato al linguaggio Racket. Si installa facilmente usando "raco" e, alla fine dell'articolo, trovate anche un video della sviluppatrice con alcune utili spiegazioni sul codice e su come creare nuovi livelli.

https://ostechnix.com/terminal-phase-a-space-shooter-game-that-runs-in-terminal/

Ryoma123,
@Ryoma123@livellosegreto.it avatar

@alephoto85 È il terminale di Deepin?
@programmazione

alephoto85,
@alephoto85@livellosegreto.it avatar

@Ryoma123 @programmazione non saprei dirti, l'immagine l'ho presa dal sito. Sembrerebbe lui...

frescosecco,
@frescosecco@mastodon.social avatar

Is Racket/DrRacket a good system to get a 10-year old into programming?

d_run,
@d_run@mastodon.social avatar

@frescosecco Another very good learning source -> https://nostarch.com/realmofracket.htm

You slowly build up knowledge to make games.

frescosecco,
@frescosecco@mastodon.social avatar

@d_run Thanks, this looks great too, will probably order it. (One of the problems here is that the kid does not yet read English).

timClicks,
@timClicks@mastodon.nz avatar

A neat book on designing a compiler for Racket scheme starting from raw x86 https://www.students.cs.ubc.ca/~cs-411/2022w2/chp1_book_top.html

racketlang,
@racketlang@functional.cafe avatar

RacketCon presentation “Sawzall: A grammar for chopping up data”

by @hazel

Sawzall, inspired heavily by dplyr and the relational algebra. Sawzall builds on top of Alex Harsanyi’s data-frame package, but provides a set of operations that are designed to compose and avoid mutating the original data-set, leading to a natural style of data manipulation following the idea of "do this, then that".

Find more great presentations and details of RacketCon 2023 at https://con.racket-lang.org/

Sawzall: A grammar for chopping up data

https://youtu.be/zza0fb36c-U
https://docs.racket-lang.org/sawzall/index.html

racketlang,
@racketlang@functional.cafe avatar

Understanding and Implementing Automatic Differentiation (in Racket)

by Mike Delmonaco

https://quasarbright.github.io/blog/2022/12/understanding-and-implementing-automatic-differentiation.html
2022-12-04
-learning

racketlang,
@racketlang@functional.cafe avatar

Zuo: A Tiny Racket for Scripting

You should use Racket to write scripts. But what if you need something much smaller than Racket for some reason?

Zuo is a tiny Racket with primitives for dealing with files and running processes, and it comes with a make-like embedded DSL.

https://github.com/racket/zuo

Documentation: https://docs.racket-lang.org/zuo/index.html

Zuo is also available as a guix package!: https://packages.guix.gnu.org/packages/zuo

racketlang,
@racketlang@functional.cafe avatar

pretty-expressive: a pretty expressive printer

by Sorawee Porncharoenwase

The pretty printer is very expressive, provably optimal, and practically efficient.

See the announcement for package, documentation, repository and details of the paper for OOPSLA'23
https://racket.discourse.group/t/ann-a-pretty-expressive-printer/2094


louis, (edited )
@louis@emacs.ch avatar

Setup a simple HTTP server from stdlibs that responds with a simple "Hello, World" string, no logging.

10s load test run on MacBook Pro M1 (using hey).

LispWorks 8 (Hunchentoot): ~11k req/sec
Racket 8.9: ~15k req/sec
Clojure 1.10 (httpkit): ~28k req/sec
Janet 1.29: ~35k req/sec
SBCL 2.3.4 (Hunchentoot): ~44k req/sec
Go 1.20: ~120k req/sec

galdor,
@galdor@emacs.ch avatar

@louis seems about right, unfortunately. Thanks for the numbers!

not_null_p,
@not_null_p@emacs.ch avatar

@louis Thanks for the benchmark. Also, at least it's good to see that the good old, reliable is the fastest among the variants here.

louis,
@louis@emacs.ch avatar

Today is a good day to spend some time on checking out the performance of the HTTP server libs in Racket. After a long and leisurely recovery run, of course.

Happy weekend! 🌻​🥳​

galdor,
@galdor@emacs.ch avatar

@louis I’m curious about the numbers, especially with lots of concurrent clients.

louis,
@louis@emacs.ch avatar

@djrmarques Not using it for anything serious yet, just getting a better impression of it.

In my former company we had a backend app built with Racket and it ran painfully well for years (I was not in favour of it but gave our team some leeway and they proved me wrong).

I see Racket as the best all-in-one complete "modern* Lisp. Complete in terms of the standard library, its excellent documentation and well done package management, as outlined here:

https://emacs.ch/@louis/110536340538491051

Some cons I see:

  1. Racket's obsession with "building languages". But that is its academic background and certainly its strong point.
  2. Performance. Before their migration to Chez Scheme I ranked it somewhere comparable to Python, which is not enough for, i.e. high-traffic APIs. I want to see if that is still the case.
  3. While having a great REPL (you can redefine top-level bindings) there is no notion of an image. However I never actually found that particularily useful in CL (for my use cases).

CL is certainly an interesting language and SBCL a great implementation (LispWorks probably even more but unreasonably priced). However, without a proper package management and a flourishing dev community, for building anything serious, it would take an enormous effort. And the "inner circle" (or let's call them "the Guardians of the status quo") are very reluctant to any kind of progress and even meet you with toxic behavior. There is no "let's talk about this" with this group.

Not a good baseline to bring CL into production.

racketlang,
@racketlang@functional.cafe avatar

Essentials of Compilation
An Incremental Approach in Racket
By Jeremy G. Siek

https://mitpress.mit.edu/9780262047760/essentials-of-compilation/

@jeremysiek

  • All
  • Subscribed
  • Moderated
  • Favorites
  • badminton
  • cisconetworking
  • DreamBathrooms
  • mdbf
  • Durango
  • ngwrru68w68
  • magazineikmin
  • thenastyranch
  • InstantRegret
  • Youngstown
  • slotface
  • everett
  • kavyap
  • modclub
  • ethstaker
  • megavids
  • tacticalgear
  • GTA5RPClips
  • osvaldo12
  • khanakhh
  • rosin
  • Leos
  • normalnudes
  • anitta
  • cubers
  • tester
  • provamag3
  • JUstTest
  • lostlight
  • All magazines