home.social

#racketlanguage — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #racketlanguage, aggregated by home.social.

fetched live
  1. Racket - the Language-Oriented Programming Language - version 8.15 is now available from download.racket-lang.org

    See blog.racket-lang.org/2024/11/r for the release announcement and highlights. #DrRacket #Racket #RacketLanguage

  2. Racket - the Language-Oriented Programming Language - version 8.15 is now available from download.racket-lang.org

    See blog.racket-lang.org/2024/11/r for the release announcement and highlights. #DrRacket #Racket #RacketLanguage

  3. Data Integrity via Smart Structs

    by David Storrs

    Structs in Racket should be more than dumb data storage. They should be data models in the sense of MVC programming; they should ensure that their contents are valid according to your project’s business rules and they should make it easy to do common operations such as storing to a database or generating a struct from data of another type such as a database row or user input field.

    The struct-plus-plus module makes this easy. It allows you to place contracts on individual fields, specify business rules that ensure integrity between fields, easily create converter functions, and much more, with all of these things being part of the struct definition and therefore in one easily-referenced location. Come see how it all works and how you can simplify your code with struct-plus-plus!

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  4. Data Integrity via Smart Structs

    by David Storrs

    Structs in Racket should be more than dumb data storage. They should be data models in the sense of MVC programming; they should ensure that their contents are valid according to your project’s business rules and they should make it easy to do common operations such as storing to a database or generating a struct from data of another type such as a database row or user input field.

    The struct-plus-plus module makes this easy. It allows you to place contracts on individual fields, specify business rules that ensure integrity between fields, easily create converter functions, and much more, with all of these things being part of the struct definition and therefore in one easily-referenced location. Come see how it all works and how you can simplify your code with struct-plus-plus!

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  5. keyring: Uniformly Access Secrets

    by Sam Phillips

    Hardcoding passwords in your programs is bad. Using secure password stores are good. Keyring is a Racket library that allows programs to access different password stores using a simple interface.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  6. keyring: Uniformly Access Secrets

    by Sam Phillips

    Hardcoding passwords in your programs is bad. Using secure password stores are good. Keyring is a Racket library that allows programs to access different password stores using a simple interface.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  7. Incrementally Developing Support for Racket->Wasm Compilation

    by Adam Perlin

    Wasm is an attractive compiler target for a variety of reasons: it has support in all major browsers, its isolation guarantees are beneficial for security reasons, and it has potential as a general-purpose platform-independent execution environment. However, adding Wasm support to Racket has proven a challenging problem due to differences in the execution model each language uses at runtime. Chez Scheme, the backend of Racket CS, utilizes code generation conventions which are difficult to adapt to Wasm.

    This talk will present an alternative approach to Racket-to-Wasm compilation which is compatible with Racket CS. The approach is accomplished by using an existing bytecode format and interpreter which are already supported under Chez Scheme, and performing an ahead-of-time translation of portions of bytecode programs into Wasm. This sets up an incremental approach to the development of a Racket-to-Wasm compilation system.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  8. Incrementally Developing Support for Racket->Wasm Compilation

    by Adam Perlin

    Wasm is an attractive compiler target for a variety of reasons: it has support in all major browsers, its isolation guarantees are beneficial for security reasons, and it has potential as a general-purpose platform-independent execution environment. However, adding Wasm support to Racket has proven a challenging problem due to differences in the execution model each language uses at runtime. Chez Scheme, the backend of Racket CS, utilizes code generation conventions which are difficult to adapt to Wasm.

    This talk will present an alternative approach to Racket-to-Wasm compilation which is compatible with Racket CS. The approach is accomplished by using an existing bytecode format and interpreter which are already supported under Chez Scheme, and performing an ahead-of-time translation of portions of bytecode programs into Wasm. This sets up an incremental approach to the development of a Racket-to-Wasm compilation system.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  9. Mutate: Inject Bugs into Your Programs!

    by Lukas Lazarek

    Lukas Lazarek introduces mutate, a library for mutating programs, i.e. injecting possible bugs by making small syntactic changes to the program syntax. Lucas discusses what mutation is, why one might want it, and provides a demo of how to use the library.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  10. Mutate: Inject Bugs into Your Programs!

    by Lukas Lazarek

    Lukas Lazarek introduces mutate, a library for mutating programs, i.e. injecting possible bugs by making small syntactic changes to the program syntax. Lucas discusses what mutation is, why one might want it, and provides a demo of how to use the library.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  11. #lang Karp: Formulating and Random Testing NP Reductions

    by Chenhao Zhang

    Reduction, a pervasive idea in computer science, is often taught in algorithm courses with NP problems. The traditional pen-and-paper approach is notoriously ineffective both for students and instructors: Subtle mistakes in reductions are often hard to detect by merely inspecting the purported solutions. Constructing a counterexample by hand to expose the mistake is even more onerous. Based on the observation that reductions are actually programs, we designed #lang Karp, a DSL for formulating and random testing NP reductions.

    In this presentation, Chenhao Zhang discusses the implementation of Karp on top of Racket and solver-aided host language Rosette.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  12. #lang Karp: Formulating and Random Testing NP Reductions

    by Chenhao Zhang

    Reduction, a pervasive idea in computer science, is often taught in algorithm courses with NP problems. The traditional pen-and-paper approach is notoriously ineffective both for students and instructors: Subtle mistakes in reductions are often hard to detect by merely inspecting the purported solutions. Constructing a counterexample by hand to expose the mistake is even more onerous. Based on the observation that reductions are actually programs, we designed #lang Karp, a DSL for formulating and random testing NP reductions.

    In this presentation, Chenhao Zhang discusses the implementation of Karp on top of Racket and solver-aided host language Rosette.

    Watch now: presentation

    #Racket #RacketLang #RacketLanguage #RacketCon

  13. Introducing Rackith

    by Sage Gerard

    Rackith is a language-oriented programming language based on Racket. Use Rackith to define many languages with one syntax object.

    Watch the presentation now: talk video

    #Racket #RacketLang #RacketLanguage #RacketCon

  14. Introducing Rackith

    by Sage Gerard

    Rackith is a language-oriented programming language based on Racket. Use Rackith to define many languages with one syntax object.

    Watch the presentation now: talk video

    #Racket #RacketLang #RacketLanguage #RacketCon

  15. 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

  16. 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

  17. 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 con.racket-lang.org/

    Sawzall: A grammar for chopping up data

    youtu.be/zza0fb36c-U
    docs.racket-lang.org/sawzall/i

    #RacketCon #Racket #RacketLang #RacketLanguage #dplyr #sawzall

  18. 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 con.racket-lang.org/

    Sawzall: A grammar for chopping up data

    youtu.be/zza0fb36c-U
    docs.racket-lang.org/sawzall/i

    #RacketCon #Racket #RacketLang #RacketLanguage #dplyr #sawzall

  19. 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.

    github.com/racket/zuo

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

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

    #Zuo #ZuoLang #Racket #guix #RacketLang #RacketLanguage

  20. 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.

    github.com/racket/zuo

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

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

    #Zuo #ZuoLang #Racket #guix #RacketLang #RacketLanguage

  21. (thirteenth RacketCon)

    October 28-29, 2023
    Northwestern University
    Evanston, IL, USA

    con.racket-lang.org/

    Introducing Rackith

    Sage Gerard sagegerard.com/

    Rackith is a language-oriented programming language based on Racket. Use Rackith to define many languages with one syntax object. Discussion covers project design and implications for the personal computer.

    Reductions on top of Rosette

    Chenhao Zhang eecs.northwestern.edu/~czu2221

    Rhombus: Status update

    Matthew Flatt (Utah) users.cs.utah.edu/~mflatt/

    The State of Racket

    Sam Tobin-Hochstadt (Indiana) samth.github.io/

    Racket Town Hall

    Racket Management

    Please come with your big questions and discussion topics.

    Registration

    Check back soon! We currently do not have a registration form.’

    Friendly Environment Policy

    The proceedings of RacketCon will take place under the Racket Friendly Environment Policy racket-lang.org/friendly.html

    Accommodation

    We are currently exploring the possibility of getting a block of rooms at a nearby hotel.

    #Racket #RacketLang #RacketLanguage
    #LanguageOrientedProgramming #lop #Rosette #RosetteLanguage

  22. (thirteenth RacketCon)

    October 28-29, 2023
    Northwestern University
    Evanston, IL, USA

    con.racket-lang.org/

    Introducing Rackith

    Sage Gerard sagegerard.com/

    Rackith is a language-oriented programming language based on Racket. Use Rackith to define many languages with one syntax object. Discussion covers project design and implications for the personal computer.

    Reductions on top of Rosette

    Chenhao Zhang eecs.northwestern.edu/~czu2221

    Rhombus: Status update

    Matthew Flatt (Utah) users.cs.utah.edu/~mflatt/

    The State of Racket

    Sam Tobin-Hochstadt (Indiana) samth.github.io/

    Racket Town Hall

    Racket Management

    Please come with your big questions and discussion topics.

    Registration

    Check back soon! We currently do not have a registration form.’

    Friendly Environment Policy

    The proceedings of RacketCon will take place under the Racket Friendly Environment Policy racket-lang.org/friendly.html

    Accommodation

    We are currently exploring the possibility of getting a block of rooms at a nearby hotel.

    #Racket #RacketLang #RacketLanguage
    #LanguageOrientedProgramming #lop #Rosette #RosetteLanguage

  23. Rash - The Reckless Racket Shell

    Rash is a language, library, and shell REPL for Racket.

    Rash combines the convenience of simple shell-like syntax with the power of Racket, a full-fledged programming language.

    rash-lang.org/
    #Racket #RacketLang #RacketLanguage #lop #LanguageOrientedProgramming

  24. Rash - The Reckless Racket Shell

    Rash is a language, library, and shell REPL for Racket.

    Rash combines the convenience of simple shell-like syntax with the power of Racket, a full-fledged programming language.

    rash-lang.org/
    #Racket #RacketLang #RacketLanguage #lop #LanguageOrientedProgramming

  25. Resyntax: A macro powered refactoring tool

    youtu.be/IoQBNh_NzQM

    Want to try it?

    raco pkg install --installation resyntax

    The --installation flag (shorthand for --scope installation) installs packages for all users of a Racket installation and ensures resyntax is in your $PATH.

    Documentation: docs.racket-lang.org/resyntax/

    #Racket #RacketLang #RacketLanguage

  26. Resyntax: A macro powered refactoring tool

    youtu.be/IoQBNh_NzQM

    Want to try it?

    raco pkg install --installation resyntax

    The --installation flag (shorthand for --scope installation) installs packages for all users of a Racket installation and ensures resyntax is in your $PATH.

    Documentation: docs.racket-lang.org/resyntax/

    #Racket #RacketLang #RacketLanguage

  27. Racket Slideshow

    Have you considered slideshow?

    docs.racket-lang.org/slideshow

    Slideshow is a library for creating presentation slides. Unlike Powerpoint, Slideshow provides no WYSIWYG interface for constructing slides. Instead, like Beamer, a presentation is generated by a program.

    To get started, run the slideshow executable, and click the Run Tutorial link.

    Slideshow is included in the standard Racket distribution from racket-lang.org/ so you will already have it installed. 🤩

    To learn more about Slideshow, see “Slideshow: Functional Presentations” :

    Robert Bruce Findler and Matthew Flatt, “Slideshow: Functional Presentations,” Journal of Functional Programming, 16(4-5), pp. 583–619, 2006. cs.utah.edu/plt/publications/j

    Slideshow is extensible! In addition to sharing amazing presentations users have also published extensions as Racket packages. See more on the Racket Wiki at github.com/racket/racket/wiki/

    #slideshow chat or questions are welcome on Racket Discord discord.gg/PnwqWFCsyR or Discourse racket.discourse.group/

    #Presentations #beamer #Racket #RacketLang #RacketLanguage #PowerPoint #RacketSlideshow

  28. Racket Slideshow

    Have you considered slideshow?

    docs.racket-lang.org/slideshow

    Slideshow is a library for creating presentation slides. Unlike Powerpoint, Slideshow provides no WYSIWYG interface for constructing slides. Instead, like Beamer, a presentation is generated by a program.

    To get started, run the slideshow executable, and click the Run Tutorial link.

    Slideshow is included in the standard Racket distribution from racket-lang.org/ so you will already have it installed. 🤩

    To learn more about Slideshow, see “Slideshow: Functional Presentations” :

    Robert Bruce Findler and Matthew Flatt, “Slideshow: Functional Presentations,” Journal of Functional Programming, 16(4-5), pp. 583–619, 2006. cs.utah.edu/plt/publications/j

    Slideshow is extensible! In addition to sharing amazing presentations users have also published extensions as Racket packages. See more on the Racket Wiki at github.com/racket/racket/wiki/

    #slideshow chat or questions are welcome on Racket Discord discord.gg/PnwqWFCsyR or Discourse racket.discourse.group/

    #Presentations #beamer #Racket #RacketLang #RacketLanguage #PowerPoint #RacketSlideshow

  29. Levin Tree Search with Context Models

    The source code for the machine learning research paper "Levin Tree Search with Context Models" (LTS+CM) to be published in IJCAI 2023 is now available as a package

    See the post for paper, package and more details:
    racket.discourse.group/t/levin

    #AI #MachineLearning #RacketLanguage #Racket #RacketLang

  30. Levin Tree Search with Context Models

    The source code for the machine learning research paper "Levin Tree Search with Context Models" (LTS+CM) to be published in IJCAI 2023 is now available as a package

    See the post for paper, package and more details:
    racket.discourse.group/t/levin

    #AI #MachineLearning #RacketLanguage #Racket #RacketLang

  31. @Gopiandcode Have you considered doing your presentation slides in Racket Slideshow?

    docs.racket-lang.org/slideshow

    Slideshow is a library for creating presentation slides. Unlike Powerpoint, Slideshow provides no WYSIWYG interface for constructing slides. Instead, like Beamer, a presentation is generated by a program.

    To get started, run the slideshow executable, and click the Run Tutorial link.

    To learn more about Slideshow, see also “Slideshow: Functional Presentations” [Findler06].

    Some resources are collected in the Racket Wiki at github.com/racket/racket/wiki/

    @racketlang #Presentations #beamer #Racket #RacketLang #RacketLanguage #RacketSlideshow

  32. @Gopiandcode Have you considered doing your presentation slides in Racket Slideshow?

    docs.racket-lang.org/slideshow

    Slideshow is a library for creating presentation slides. Unlike Powerpoint, Slideshow provides no WYSIWYG interface for constructing slides. Instead, like Beamer, a presentation is generated by a program.

    To get started, run the slideshow executable, and click the Run Tutorial link.

    To learn more about Slideshow, see also “Slideshow: Functional Presentations” [Findler06].

    Some resources are collected in the Racket Wiki at github.com/racket/racket/wiki/

    @racketlang #Presentations #beamer #Racket #RacketLang #RacketLanguage #RacketSlideshow

  33. #lang racket/gui

    (define my-language 'English)

    (define translations
    #hash([Chinese . "你好 世界"]
    [English . "Hello world"]
    [French . "Bonjour le monde"]
    [German . "Hallo Welt"]
    [Greek . "Γειά σου, κόσμε"]
    [Portuguese . "Olá mundo"]
    [Spanish . "Hola mundo"]
    [Thai . "สวัสดีชาวโลก"]
    [Turkish . "Merhaba Dünya"]))

    (define my-hello-world
    (hash-ref translations my-language
    "hello world"))

    (message-box "" my-hello-world)

    #Racket #RacketLang #RacketLanguage

  34. #lang racket/gui

    (define my-language 'English)

    (define translations
    #hash([Chinese . "你好 世界"]
    [English . "Hello world"]
    [French . "Bonjour le monde"]
    [German . "Hallo Welt"]
    [Greek . "Γειά σου, κόσμε"]
    [Portuguese . "Olá mundo"]
    [Spanish . "Hola mundo"]
    [Thai . "สวัสดีชาวโลก"]
    [Turkish . "Merhaba Dünya"]))

    (define my-hello-world
    (hash-ref translations my-language
    "hello world"))

    (message-box "" my-hello-world)

    #Racket #RacketLang #RacketLanguage

  35. Racket is also an Open Source Software project and a member project of the Software Freedom Conservancy:

    Racket was launched in 1995 as an educational environment. It is still widely used by educators, but it has also grown into a programmable programming language. As such, it is often used to quickly prototype embedded (domain-specific) languages. Its innovative features have influenced the development of Clojure and Rust, many other languages.

    Conservancy Welcomes Racket as its Newest Member Project,
    June 12, 2018 sfconservancy.org/news/2018/ju

    #FOSS #RacketLanguage #Racket #Racketlang

  36. Racket is also an Open Source Software project and a member project of the Software Freedom Conservancy:

    Racket was launched in 1995 as an educational environment. It is still widely used by educators, but it has also grown into a programmable programming language. As such, it is often used to quickly prototype embedded (domain-specific) languages. Its innovative features have influenced the development of Clojure and Rust, many other languages.

    Conservancy Welcomes Racket as its Newest Member Project,
    June 12, 2018 sfconservancy.org/news/2018/ju

    #FOSS #RacketLanguage #Racket #Racketlang

  37. dispatch - Julia-style multiple dispatch in Racket

    “Multiple dispatch is the ability to define multiple implementations of a function, chosen at runtime based on the arguments to each call. The dispatch package brings this to Racket, allowing lexically separate but associated definitions: racket.discourse.group/t/julia

    @a11ce #Julia #RacketLang #RacketLanguage #Racket

  38. dispatch - Julia-style multiple dispatch in Racket

    “Multiple dispatch is the ability to define multiple implementations of a function, chosen at runtime based on the arguments to each call. The dispatch package brings this to Racket, allowing lexically separate but associated definitions: racket.discourse.group/t/julia

    @a11ce #Julia #RacketLang #RacketLanguage #Racket

  39. 🤖 Try R16, a Racket 'Trick Bot' that can run Racket in Discord.🦾 Go to #bots and try
    !rkt help

    Racket Discord: discord.com/invite/6Zq8sH5

    And yes, I'm glad you asked - there should be a Racket Mastodon bot! Will you be the one to make it?

    #Racket #RacketLang #RacketLanguage

  40. 🤖 Try R16, a Racket 'Trick Bot' that can run Racket in Discord.🦾 Go to #bots and try
    !rkt help

    Racket Discord: discord.com/invite/6Zq8sH5

    And yes, I'm glad you asked - there should be a Racket Mastodon bot! Will you be the one to make it?

    #Racket #RacketLang #RacketLanguage

  41. Resyntax: A Racket refactoring engine

    Want to try it?

    raco pkg install --installation resyntax

    The --installation flag (shorthand for --scope installation) installs packages for all users of a Racket installation and ensures resyntax is in your $PATH.

    docs.racket-lang.org/resyntax/

    #Racket #RacketLang #RacketLanguage

  42. Resyntax: A Racket refactoring engine

    Want to try it?

    raco pkg install --installation resyntax

    The --installation flag (shorthand for --scope installation) installs packages for all users of a Racket installation and ensures resyntax is in your $PATH.

    docs.racket-lang.org/resyntax/

    #Racket #RacketLang #RacketLanguage

  43. Racket Templates provide a wide variety of working template applications you can use as a starting point: choose a template from github.com/racket-templates and click Use this template in GitHub or use raco pkg install from-template; raco new <template> from the command line.

    Some examples...

    These were just a sample - there are more at github.com/racket-templates

    PS We were inspired by the dotnet new default templates

    PPS we are far behind .NET but are looking to grow the collection so let us know if you are interested in contributing 😁

    ![Racket Discourse](img.shields.io/discourse/users) ![Racket Discord](img.shields.io/discord/5710404)

    #Racket #RacketLang #RacketLanguage #LOP #LanguageOrientedProgramming

  44. Racket Templates provide a wide variety of working template applications you can use as a starting point: choose a template from github.com/racket-templates and click Use this template in GitHub or use raco pkg install from-template; raco new <template> from the command line.

    Some examples...

    These were just a sample - there are more at github.com/racket-templates

    PS We were inspired by the dotnet new default templates

    PPS we are far behind .NET but are looking to grow the collection so let us know if you are interested in contributing 😁

    ![Racket Discourse](img.shields.io/discourse/users) ![Racket Discord](img.shields.io/discord/5710404)

    #Racket #RacketLang #RacketLanguage #LOP #LanguageOrientedProgramming