home.social

#codegenerator — Public Fediverse posts

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

  1. 📢 Góp ý từ devs: Những vấn đề phiền toái nào khi dùng công cụ sinh mã/IDE trình duyệt? Một nền tảng tạo code FE & BE để tự lưu trữ đang tìm phản hồi từ cộng đồng. Bạn gặp khó khăn gì với Replit, CodeSandbox hay các tool AI hiện tại? Chia sẻ ngay!

    #DevFeedback #IDE #CodeGenerator #PhanHoiDev #AIProgramming #VietNamDev

    reddit.com/r/selfhosted/commen

  2. This article provides the complete context-free grammar (CFG) specifications for the domain-specific graphics languages used in this research. hackernoon.com/the-grammar-of- #codegenerator

  3. This article provides the complete context-free grammar (CFG) specifications for the domain-specific graphics languages used in this research. hackernoon.com/the-grammar-of- #codegenerator

  4. This article provides the complete context-free grammar (CFG) specifications for the domain-specific graphics languages used in this research. hackernoon.com/the-grammar-of- #codegenerator

  5. This article provides the complete context-free grammar (CFG) specifications for the domain-specific graphics languages used in this research. hackernoon.com/the-grammar-of-

  6. This article provides the complete context-free grammar (CFG) specifications for the domain-specific graphics languages used in this research. hackernoon.com/the-grammar-of- #codegenerator

  7. This article describes the experimental evaluation of a new code generation method, Tree-Diffusion, across four domain-specific graphics languages. hackernoon.com/experiments-wit #codegenerator

  8. This article describes the experimental evaluation of a new code generation method, Tree-Diffusion, across four domain-specific graphics languages. hackernoon.com/experiments-wit #codegenerator

  9. This article describes the experimental evaluation of a new code generation method, Tree-Diffusion, across four domain-specific graphics languages. hackernoon.com/experiments-wit #codegenerator

  10. This article describes the experimental evaluation of a new code generation method, Tree-Diffusion, across four domain-specific graphics languages. hackernoon.com/experiments-wit

  11. This article describes the experimental evaluation of a new code generation method, Tree-Diffusion, across four domain-specific graphics languages. hackernoon.com/experiments-wit #codegenerator

  12. 🚨MAJOR RELEASE ALERT 🚨
    Today we are launching BESSER v.4, with some massive improvements 👏🥳🎉:
    ✅ Project management: create new #modeling projects comprising different types of diagrams (#classdiagram, #statemachine, #objectdiagram...) in our #online #modeling #editor
    ✅Create object diagrams to model specific scenarios conforming to your class diagram
    #Evaluate #ocl constraints on your object diagram and get #feedback on whether your scenarios are #valid
    ✅ Plus many other improvements: #fluentapi, #rdf generation,...
    📜github.com/BESSER-PEARL/BESSER
    ⚙️github.com/BESSER-PEARL/BESSER

    I can feel your #FOMO so don't wait any longer. Give it a try NOW ➡️ editor.besser-pearl.org/

    Pls also reshare this post and drop a ⭐ on #github so that others can also benefit from our #opensource #lowcode #free #platform
    #uml #ocl #classdiagram #database #sql #codegenerator #vibemodeling

  13. 🚨MAJOR RELEASE ALERT 🚨
    Today we are launching BESSER v.4, with some massive improvements 👏🥳🎉:
    ✅ Project management: create new #modeling projects comprising different types of diagrams (#classdiagram, #statemachine, #objectdiagram...) in our #online #modeling #editor
    ✅Create object diagrams to model specific scenarios conforming to your class diagram
    #Evaluate #ocl constraints on your object diagram and get #feedback on whether your scenarios are #valid
    ✅ Plus many other improvements: #fluentapi, #rdf generation,...
    📜github.com/BESSER-PEARL/BESSER
    ⚙️github.com/BESSER-PEARL/BESSER

    I can feel your #FOMO so don't wait any longer. Give it a try NOW ➡️ editor.besser-pearl.org/

    Pls also reshare this post and drop a ⭐ on #github so that others can also benefit from our #opensource #lowcode #free #platform
    #uml #ocl #classdiagram #database #sql #codegenerator #vibemodeling

  14. 🚨MAJOR RELEASE ALERT 🚨
    Today we are launching BESSER v.4, with some massive improvements 👏🥳🎉:
    ✅ Project management: create new #modeling projects comprising different types of diagrams (#classdiagram, #statemachine, #objectdiagram...) in our #online #modeling #editor
    ✅Create object diagrams to model specific scenarios conforming to your class diagram
    #Evaluate #ocl constraints on your object diagram and get #feedback on whether your scenarios are #valid
    ✅ Plus many other improvements: #fluentapi, #rdf generation,...
    📜github.com/BESSER-PEARL/BESSER
    ⚙️github.com/BESSER-PEARL/BESSER

    I can feel your #FOMO so don't wait any longer. Give it a try NOW ➡️ editor.besser-pearl.org/

    Pls also reshare this post and drop a ⭐ on #github so that others can also benefit from our #opensource #lowcode #free #platform
    #uml #ocl #classdiagram #database #sql #codegenerator #vibemodeling

  15. 🚨MAJOR RELEASE ALERT 🚨
    Today we are launching BESSER v.4, with some massive improvements 👏🥳🎉:
    ✅ Project management: create new #modeling projects comprising different types of diagrams (#classdiagram, #statemachine, #objectdiagram...) in our #online #modeling #editor
    ✅Create object diagrams to model specific scenarios conforming to your class diagram
    #Evaluate #ocl constraints on your object diagram and get #feedback on whether your scenarios are #valid
    ✅ Plus many other improvements: #fluentapi, #rdf generation,...
    📜github.com/BESSER-PEARL/BESSER
    ⚙️github.com/BESSER-PEARL/BESSER

    I can feel your #FOMO so don't wait any longer. Give it a try NOW ➡️ editor.besser-pearl.org/

    Pls also reshare this post and drop a ⭐ on #github so that others can also benefit from our #opensource #lowcode #free #platform
    #uml #ocl #classdiagram #database #sql #codegenerator #vibemodeling

  16. Thanks to @made I recently learned that dynamic code generation doesn't play nice with certain Content Security Policies (CSP). This has a major impact on a few core packages in #ThingUmbrella, like the thi.ng/vectors package which contains ~900 vector functions, most of them code generated and optimized for different vector sizes/dimensions (incl. n-dimensional versions). This package (and some others using a similar approach) are key dependencies for dozens of other geometry/visualization related packages... However, I found code generation the only way to practically manage & maintain the sheer amount of functionality provided.

    Because of this (CSP impact), I've been working on a new code generator, which converts the dynamically generated code into statically generated source code files. This will make the overall initial package size bigger, but this shouldn't be a major problem in practice, since there're also very positive effects, including:

    - The new format allows for doc strings for _all_ generated vector ops (with the dynamic approach there was no way to properly attach those in TypeScript)
    - The new file structure (single function per source file) massively helps with dead code elimination when using a bundler, resulting in smaller final file/bundle sizes. When NOT using a bundler, similar filesize savings can be had by using direct imports (to individual functions) rather than full package imports
    - None of the unused versions need to be code generated at runtime anymore, so also improving startup time

    The new codegen is already covering around more than a third of the 900 ops. If you want to keep an eye on progress & discussion, follow this issue:

    github.com/thi-ng/umbrella/iss

    #ThingUmbrella #CodeGenerator #TypeScript #Vector #PSA

  17. Thanks to @made I recently learned that dynamic code generation doesn't play nice with certain Content Security Policies (CSP). This has a major impact on a few core packages in #ThingUmbrella, like the thi.ng/vectors package which contains ~900 vector functions, most of them code generated and optimized for different vector sizes/dimensions (incl. n-dimensional versions). This package (and some others using a similar approach) are key dependencies for dozens of other geometry/visualization related packages... However, I found code generation the only way to practically manage & maintain the sheer amount of functionality provided.

    Because of this (CSP impact), I've been working on a new code generator, which converts the dynamically generated code into statically generated source code files. This will make the overall initial package size bigger, but this shouldn't be a major problem in practice, since there're also very positive effects, including:

    - The new format allows for doc strings for _all_ generated vector ops (with the dynamic approach there was no way to properly attach those in TypeScript)
    - The new file structure (single function per source file) massively helps with dead code elimination when using a bundler, resulting in smaller final file/bundle sizes. When NOT using a bundler, similar filesize savings can be had by using direct imports (to individual functions) rather than full package imports
    - None of the unused versions need to be code generated at runtime anymore, so also improving startup time

    The new codegen is already covering around more than a third of the 900 ops. If you want to keep an eye on progress & discussion, follow this issue:

    github.com/thi-ng/umbrella/iss

    #ThingUmbrella #CodeGenerator #TypeScript #Vector #PSA

  18. Thanks to @made I recently learned that dynamic code generation doesn't play nice with certain Content Security Policies (CSP). This has a major impact on a few core packages in #ThingUmbrella, like the thi.ng/vectors package which contains ~900 vector functions, most of them code generated and optimized for different vector sizes/dimensions (incl. n-dimensional versions). This package (and some others using a similar approach) are key dependencies for dozens of other geometry/visualization related packages... However, I found code generation the only way to practically manage & maintain the sheer amount of functionality provided.

    Because of this (CSP impact), I've been working on a new code generator, which converts the dynamically generated code into statically generated source code files. This will make the overall initial package size bigger, but this shouldn't be a major problem in practice, since there're also very positive effects, including:

    - The new format allows for doc strings for _all_ generated vector ops (with the dynamic approach there was no way to properly attach those in TypeScript)
    - The new file structure (single function per source file) massively helps with dead code elimination when using a bundler, resulting in smaller final file/bundle sizes. When NOT using a bundler, similar filesize savings can be had by using direct imports (to individual functions) rather than full package imports
    - None of the unused versions need to be code generated at runtime anymore, so also improving startup time

    The new codegen is already covering around more than a third of the 900 ops. If you want to keep an eye on progress & discussion, follow this issue:

    github.com/thi-ng/umbrella/iss

    #ThingUmbrella #CodeGenerator #TypeScript #Vector #PSA

  19. Thanks to @made I recently learned that dynamic code generation doesn't play nice with certain Content Security Policies (CSP). This has a major impact on a few core packages in #ThingUmbrella, like the thi.ng/vectors package which contains ~900 vector functions, most of them code generated and optimized for different vector sizes/dimensions (incl. n-dimensional versions). This package (and some others using a similar approach) are key dependencies for dozens of other geometry/visualization related packages... However, I found code generation the only way to practically manage & maintain the sheer amount of functionality provided.

    Because of this (CSP impact), I've been working on a new code generator, which converts the dynamically generated code into statically generated source code files. This will make the overall initial package size bigger, but this shouldn't be a major problem in practice, since there're also very positive effects, including:

    - The new format allows for doc strings for _all_ generated vector ops (with the dynamic approach there was no way to properly attach those in TypeScript)
    - The new file structure (single function per source file) massively helps with dead code elimination when using a bundler, resulting in smaller final file/bundle sizes. When NOT using a bundler, similar filesize savings can be had by using direct imports (to individual functions) rather than full package imports
    - None of the unused versions need to be code generated at runtime anymore, so also improving startup time

    The new codegen is already covering around more than a third of the 900 ops. If you want to keep an eye on progress & discussion, follow this issue:

    github.com/thi-ng/umbrella/iss

    #ThingUmbrella #CodeGenerator #TypeScript #Vector #PSA

  20. Thanks to @made I recently learned that dynamic code generation doesn't play nice with certain Content Security Policies (CSP). This has a major impact on a few core packages in #ThingUmbrella, like the thi.ng/vectors package which contains ~900 vector functions, most of them code generated and optimized for different vector sizes/dimensions (incl. n-dimensional versions). This package (and some others using a similar approach) are key dependencies for dozens of other geometry/visualization related packages... However, I found code generation the only way to practically manage & maintain the sheer amount of functionality provided.

    Because of this (CSP impact), I've been working on a new code generator, which converts the dynamically generated code into statically generated source code files. This will make the overall initial package size bigger, but this shouldn't be a major problem in practice, since there're also very positive effects, including:

    - The new format allows for doc strings for _all_ generated vector ops (with the dynamic approach there was no way to properly attach those in TypeScript)
    - The new file structure (single function per source file) massively helps with dead code elimination when using a bundler, resulting in smaller final file/bundle sizes. When NOT using a bundler, similar filesize savings can be had by using direct imports (to individual functions) rather than full package imports
    - None of the unused versions need to be code generated at runtime anymore, so also improving startup time

    The new codegen is already covering around more than a third of the 900 ops. If you want to keep an eye on progress & discussion, follow this issue:

    github.com/thi-ng/umbrella/iss

    #ThingUmbrella #CodeGenerator #TypeScript #Vector #PSA

  21. Lapidary-render 0.12.0 is now released.

    To the best of my knowledge it's the only #codeGenerator that properly handles #jsonSchema anyOf and allOf.
    Also has support for oneOf, but not per the specs.

    github.com/python-lapidary/lap

    #pythonLapidary #openAPI #openAPI3 #openAPI30 #programming #python #webAPI

  22. How to structure a #python project with both generated and authored code?

    Python tools don't handle well anything other than $root/$package or $root/src/$package

    Code generator removes files that it finds, assuming they're outdated

    editors can handle a separate subdirectory, but using linter or tests would required synchronizing that directory with the main source directory.

    Each of these solutions sucks.

    I'm thinking of designating special sub-package `extras` would do the work, it wouldn't clash with generated code, but perhaps others have better ideas.

    #codeGenerator #askFedi #programming #openSource

  23. How to structure a #python project with both generated and authored code?

    Python tools don't handle well anything other than $root/$package or $root/src/$package

    Code generator removes files that it finds, assuming they're outdated

    editors can handle a separate subdirectory, but using linter or tests would required synchronizing that directory with the main source directory.

    Each of these solutions sucks.

    I'm thinking of designating special sub-package `extras` would do the work, it wouldn't clash with generated code, but perhaps others have better ideas.

    #codeGenerator #askFedi #programming #openSource

  24. How to structure a #python project with both generated and authored code?

    Python tools don't handle well anything other than $root/$package or $root/src/$package

    Code generator removes files that it finds, assuming they're outdated

    editors can handle a separate subdirectory, but using linter or tests would required synchronizing that directory with the main source directory.

    Each of these solutions sucks.

    I'm thinking of designating special sub-package `extras` would do the work, it wouldn't clash with generated code, but perhaps others have better ideas.

    #codeGenerator #askFedi #programming #openSource

  25. How to structure a #python project with both generated and authored code?

    Python tools don't handle well anything other than $root/$package or $root/src/$package

    Code generator removes files that it finds, assuming they're outdated

    editors can handle a separate subdirectory, but using linter or tests would required synchronizing that directory with the main source directory.

    Each of these solutions sucks.

    I'm thinking of designating special sub-package `extras` would do the work, it wouldn't clash with generated code, but perhaps others have better ideas.

    #codeGenerator #askFedi #programming #openSource

  26. How to structure a #python project with both generated and authored code?

    Python tools don't handle well anything other than $root/$package or $root/src/$package

    Code generator removes files that it finds, assuming they're outdated

    editors can handle a separate subdirectory, but using linter or tests would required synchronizing that directory with the main source directory.

    Each of these solutions sucks.

    I'm thinking of designating special sub-package `extras` would do the work, it wouldn't clash with generated code, but perhaps others have better ideas.

    #codeGenerator #askFedi #programming #openSource

  27. I wanted to build a #python client for some #openSource project that offers a good #openApi 3.0 description - just to test my generator on real-live service, but also to support the community.

    I looked at @forgejo but it turns out it uses swagger 2. I didn't realise #golang was old enough...

    Any way, other ideas would be very welcome.

    #programming #codeGenerator #pythonLapidary #askFedi

  28. I wanted to build a #python client for some #openSource project that offers a good #openApi 3.0 description - just to test my generator on real-live service, but also to support the community.

    I looked at @forgejo but it turns out it uses swagger 2. I didn't realise #golang was old enough...

    Any way, other ideas would be very welcome.

    #programming #codeGenerator #pythonLapidary #askFedi

  29. I wanted to build a #python client for some #openSource project that offers a good #openApi 3.0 description - just to test my generator on real-live service, but also to support the community.

    I looked at @forgejo but it turns out it uses swagger 2. I didn't realise #golang was old enough...

    Any way, other ideas would be very welcome.

    #programming #codeGenerator #pythonLapidary #askFedi

  30. I wanted to build a #python client for some #openSource project that offers a good #openApi 3.0 description - just to test my generator on real-live service, but also to support the community.

    I looked at @forgejo but it turns out it uses swagger 2. I didn't realise #golang was old enough...

    Any way, other ideas would be very welcome.

    #programming #codeGenerator #pythonLapidary #askFedi

  31. I wanted to build a #python client for some #openSource project that offers a good #openApi 3.0 description - just to test my generator on real-live service, but also to support the community.

    I looked at @forgejo but it turns out it uses swagger 2. I didn't realise #golang was old enough...

    Any way, other ideas would be very welcome.

    #programming #codeGenerator #pythonLapidary #askFedi

  32. Just rewriting #jinja python code generator to #libCST . So far it takes more code to do the same but it's much simpler to do the hard stuff, especially when there's a lot of conditionals.

    Take annotated class field: can be generic or not, can have annotated metadata or not. Annotated metadata may be name (class or function), generic or not, or a call, and so on.

    A big nuisance of libCST is indentation - it belongs to the previous node, even though we tend to think as part of the next one. For an indented language it's rather weird design decision.

    #JSONSchema #codeGenerator #programming #python #pythonLapidary

  33. Just rewriting #jinja python code generator to #libCST . So far it takes more code to do the same but it's much simpler to do the hard stuff, especially when there's a lot of conditionals.

    Take annotated class field: can be generic or not, can have annotated metadata or not. Annotated metadata may be name (class or function), generic or not, or a call, and so on.

    A big nuisance of libCST is indentation - it belongs to the previous node, even though we tend to think as part of the next one. For an indented language it's rather weird design decision.

    #JSONSchema #codeGenerator #programming #python #pythonLapidary

  34. Did some further updates to the #TypeScript code generator for #WASM bindings (thi.ng/wasm-api-bindgen) and released new versions of all thi.ng/wasm-api packages. The new codegen creates even smaller code (approx. -20%), achieved via better re-use of newly introduced helper functions to reduce boilerplate...

    These changes will have compounding effects for larger numbers (or complexities) of generated types, especially those involving structs with string fields and/or arrays/slices...

    #ThingUmbrella #WebAssembly #CodeGenerator

  35. Did some further updates to the #TypeScript code generator for #WASM bindings (thi.ng/wasm-api-bindgen) and released new versions of all thi.ng/wasm-api packages. The new codegen creates even smaller code (approx. -20%), achieved via better re-use of newly introduced helper functions to reduce boilerplate...

    These changes will have compounding effects for larger numbers (or complexities) of generated types, especially those involving structs with string fields and/or arrays/slices...

    #ThingUmbrella #WebAssembly #CodeGenerator

  36. Did some further updates to the #TypeScript code generator for #WASM bindings (thi.ng/wasm-api-bindgen) and released new versions of all thi.ng/wasm-api packages. The new codegen creates even smaller code (approx. -20%), achieved via better re-use of newly introduced helper functions to reduce boilerplate...

    These changes will have compounding effects for larger numbers (or complexities) of generated types, especially those involving structs with string fields and/or arrays/slices...

    #ThingUmbrella #WebAssembly #CodeGenerator

  37. Did some further updates to the #TypeScript code generator for #WASM bindings (thi.ng/wasm-api-bindgen) and released new versions of all thi.ng/wasm-api packages. The new codegen creates even smaller code (approx. -20%), achieved via better re-use of newly introduced helper functions to reduce boilerplate...

    These changes will have compounding effects for larger numbers (or complexities) of generated types, especially those involving structs with string fields and/or arrays/slices...

    #ThingUmbrella #WebAssembly #CodeGenerator

  38. Did some further updates to the #TypeScript code generator for #WASM bindings (thi.ng/wasm-api-bindgen) and released new versions of all thi.ng/wasm-api packages. The new codegen creates even smaller code (approx. -20%), achieved via better re-use of newly introduced helper functions to reduce boilerplate...

    These changes will have compounding effects for larger numbers (or complexities) of generated types, especially those involving structs with string fields and/or arrays/slices...

    #ThingUmbrella #WebAssembly #CodeGenerator

  39. Over the past few days I've been working on extending & re-packaging the procedural text generation engine from one of the old examples into a new package and also just wrote/updated documentation for its various features:

    - variable definitions, optionally with multiple value choices
    - cyclic & recursive variable references/expansion
    - variable assignments
    - dynamic, indirect variable lookups (for context specific situations)
    - optional preset & custom modifiers (i.e. pointfree/concatenative application of modifier sequences)
    - controlled randomness during var expansion

    The new package is called: thi.ng/proctext (6.5KB incl. all deps) The text format used relies on a simple parser grammar defined and processed via thi.ng/parse. The resulting document AST is then interpreted via thi.ng/defmulti

    Please see readme for notes/examples, as well as the refactored example project below. The tool is very useful for complex source code generation, but also could be useful for bots, interactive fiction etc. The generator is stateful and variable state can be optionally retained/re-used over multiple invocations. Making all modifiers async is also providing a lot of flexibility (e.g. loading external data sources, generating secondary/expanded descriptions etc.)

    Demo (incl. 5 examples and can be used as playground):
    demo.thi.ng/umbrella/procedura

    #ThingUmbrella #RewriteSystem #ProcGen #TextGeneration #CodeGenerator #Parser #DSL #Pointfree #TypeScript #JavaScript #InteractiveFiction

  40. Over the past few days I've been working on extending & re-packaging the procedural text generation engine from one of the old examples into a new package and also just wrote/updated documentation for its various features:

    - variable definitions, optionally with multiple value choices
    - cyclic & recursive variable references/expansion
    - variable assignments
    - dynamic, indirect variable lookups (for context specific situations)
    - optional preset & custom modifiers (i.e. pointfree/concatenative application of modifier sequences)
    - controlled randomness during var expansion

    The new package is called: thi.ng/proctext (6.5KB incl. all deps) The text format used relies on a simple parser grammar defined and processed via thi.ng/parse. The resulting document AST is then interpreted via thi.ng/defmulti

    Please see readme for notes/examples, as well as the refactored example project below. The tool is very useful for complex source code generation, but also could be useful for bots, interactive fiction etc. The generator is stateful and variable state can be optionally retained/re-used over multiple invocations. Making all modifiers async is also providing a lot of flexibility (e.g. loading external data sources, generating secondary/expanded descriptions etc.)

    Demo (incl. 5 examples and can be used as playground):
    demo.thi.ng/umbrella/procedura

    #ThingUmbrella #RewriteSystem #ProcGen #TextGeneration #CodeGenerator #Parser #DSL #Pointfree #TypeScript #JavaScript #InteractiveFiction

  41. Over the past few days I've been working on extending & re-packaging the procedural text generation engine from one of the old examples into a new package and also just wrote/updated documentation for its various features:

    - variable definitions, optionally with multiple value choices
    - cyclic & recursive variable references/expansion
    - variable assignments
    - dynamic, indirect variable lookups (for context specific situations)
    - optional preset & custom modifiers (i.e. pointfree/concatenative application of modifier sequences)
    - controlled randomness during var expansion

    The new package is called: thi.ng/proctext (6.5KB incl. all deps) The text format used relies on a simple parser grammar defined and processed via thi.ng/parse. The resulting document AST is then interpreted via thi.ng/defmulti

    Please see readme for notes/examples, as well as the refactored example project below. The tool is very useful for complex source code generation, but also could be useful for bots, interactive fiction etc. The generator is stateful and variable state can be optionally retained/re-used over multiple invocations. Making all modifiers async is also providing a lot of flexibility (e.g. loading external data sources, generating secondary/expanded descriptions etc.)

    Demo (incl. 5 examples and can be used as playground):
    demo.thi.ng/umbrella/procedura

    #ThingUmbrella #RewriteSystem #ProcGen #TextGeneration #CodeGenerator #Parser #DSL #Pointfree #TypeScript #JavaScript #InteractiveFiction

  42. Over the past few days I've been working on extending & re-packaging the procedural text generation engine from one of the old examples into a new package and also just wrote/updated documentation for its various features:

    - variable definitions, optionally with multiple value choices
    - cyclic & recursive variable references/expansion
    - variable assignments
    - dynamic, indirect variable lookups (for context specific situations)
    - optional preset & custom modifiers (i.e. pointfree/concatenative application of modifier sequences)
    - controlled randomness during var expansion

    The new package is called: thi.ng/proctext (6.5KB incl. all deps) The text format used relies on a simple parser grammar defined and processed via thi.ng/parse. The resulting document AST is then interpreted via thi.ng/defmulti

    Please see readme for notes/examples, as well as the refactored example project below. The tool is very useful for complex source code generation, but also could be useful for bots, interactive fiction etc. The generator is stateful and variable state can be optionally retained/re-used over multiple invocations. Making all modifiers async is also providing a lot of flexibility (e.g. loading external data sources, generating secondary/expanded descriptions etc.)

    Demo (incl. 5 examples and can be used as playground):
    demo.thi.ng/umbrella/procedura

    #ThingUmbrella #RewriteSystem #ProcGen #TextGeneration #CodeGenerator #Parser #DSL #Pointfree #TypeScript #JavaScript #InteractiveFiction

  43. Over the past few days I've been working on extending & re-packaging the procedural text generation engine from one of the old examples into a new package and also just wrote/updated documentation for its various features:

    - variable definitions, optionally with multiple value choices
    - cyclic & recursive variable references/expansion
    - variable assignments
    - dynamic, indirect variable lookups (for context specific situations)
    - optional preset & custom modifiers (i.e. pointfree/concatenative application of modifier sequences)
    - controlled randomness during var expansion

    The new package is called: thi.ng/proctext (6.5KB incl. all deps) The text format used relies on a simple parser grammar defined and processed via thi.ng/parse. The resulting document AST is then interpreted via thi.ng/defmulti

    Please see readme for notes/examples, as well as the refactored example project below. The tool is very useful for complex source code generation, but also could be useful for bots, interactive fiction etc. The generator is stateful and variable state can be optionally retained/re-used over multiple invocations. Making all modifiers async is also providing a lot of flexibility (e.g. loading external data sources, generating secondary/expanded descriptions etc.)

    Demo (incl. 5 examples and can be used as playground):
    demo.thi.ng/umbrella/procedura

    #ThingUmbrella #RewriteSystem #ProcGen #TextGeneration #CodeGenerator #Parser #DSL #Pointfree #TypeScript #JavaScript #InteractiveFiction

  44. I often was wondering if something was “the proper way" of doing it and when commenting, the ideas it had about what I was trying to write were misleading.
    It felt like pairing with someone who may have picked up something on stack exchange but never bothered to understand what it actually does.
    Still - though it may sound funny - *very* useful to me, but like a very strange and dangerous tool that looks absolutely harmless while cooking your face off.
    #copilot #python #LLM #codeGenerator

  45. I often was wondering if something was “the proper way" of doing it and when commenting, the ideas it had about what I was trying to write were misleading.
    It felt like pairing with someone who may have picked up something on stack exchange but never bothered to understand what it actually does.
    Still - though it may sound funny - *very* useful to me, but like a very strange and dangerous tool that looks absolutely harmless while cooking your face off.
    #copilot #python #LLM #codeGenerator