I hated yaml files so I started using #dhall here and there to not lose sanity. Now I hate yaml even more.
You know I'm neither impatient nor an IT noob, but when trying to install #Kitsune on Debian 11 yesterday, I gave up after two hours.
The first hour passed while cargo compiled almost 1000 Rust packages. Fine, I guess this is what happens when you enter a new ecosystem.
The second hour was more infuriating because I failed to construct a valid configuration file for Kitsune. These are in a language called #dhall which seems to be inspired by Haskell.
I tried renaming the config.example.dhall and switching it to sqlite because I thought that for a test drive, installing PostgreSQL was overkill. So I copied the line from https://docs.joinkitsune.org/en/running/basic-configuration/ and got this error message:
thread 'main' panicked at 'Failed to connect to database: Pool(Backend(ConnectionError(CouldntSetupConfiguration(DatabaseError(UnableToSendCommand, "invalid connection string: unexpected EOF")))))', kitsune/src/main.rs:94:6
Using the entire configuration example from that website results in the same error message.
/cc @dev
I’ve been struggling with generating a bunch of HCL for #Terraform with #dhall today. Finally got it working and it’s a dream. Can now generate dev and production #infrastructure specs with a single command, then commit, and terraform cloud takes over and executes the plan for us.
Biggest issue was dealing with the lack of text equality checks in dhall, but got around that with union types and it’s much better. Strongly typed, no fat finger mistakes possible. #winning
#terraform #dhall #infrastructure #winning
My website is now entirely built with #Zola using #Nix including my resume which is created from a #Dhall configuration extending the #JSONResume schema !
Feel free to review my Nix files 🥰 https://github.com/gaelreyrol/dhall-resume/blob/main/flake.nix https://github.com/gaelreyrol/gaelreyrol.dev/blob/main/flake.nix
CI builds get so utterly complicated. It's why I favor #nix. You get an absolute with all the dependencies, cache, environment, and releases. 😅
Still, options are now alone to do nix on CI. A small list of tools that to help in this world:
- #daggerci code ci
- #earthlyci dsl ci
- #nix dsl for artifacts
- #dhall yaml generation
- #cue yaml generation
#nix #daggerci #earthlyci #dhall #cue
Pronouns service
#rust #Axum #dhall #transrightsarehumanrights
Dhall is a programmable configuration language with no unexpected side effects
#dhalllang #dhall #functionalprogramming #configuration #yaml #json
#json #yaml #configuration #functionalprogramming #dhall #dhalllang
I've significantly improved the codebase organization of KitchenSink, my static blog engine. Now I get to understand my code better. The code is now more amenable to extensions and to new layouts.
I've also slightly improved the #Dhall support:
- in addition to `html` and `cmark` a Dhall section can now generate `json`, and hence substitute itself for a `.json` sections
- the Dhall expression get a `kitchensink` variable with (for now only) the source filename
- errors are better
Site Update: Version 3.0
#site #dhall #latex #rust #typescript #xeact
#dhall is pretty cool.
I'm using it to configure some tools that don't support environment variables (eg. gem) in their configs. Then, I have #dotbot execute the dhall-to-yaml compiler, link the compiled file to the right spot, and it just... works.
(You can see this in action at my dotfiles repository, github.com/tomodachi94/dotfiles.
@cadey I like #dhall, but I've found that the personal use-cases I have for that it felt over engineered, a simple s-expression made the trick always. For other test, like for instance github CI yaml files, I found the types to be over-strict. So I stopped using it :( But #dhall is cool!
Site Update: Version 3.0
#site #dhall #latex #rust #typescript #xeact
@dirtside I agree, but I think it may be a bit of a catch-22: people don't do that because there haven't been very many DSLs up to this point, short of SQL and regex, that are as well-supported and easily integrated with GPLs.
I think that may be changing now, though, with people starting to explore languages like #cuelang, #Dhall, #Racket, etc.
@CorbaTheGeek @lisp_discussions
I believe the most realistic use-case of nixlisp right now would be parsing different file formats.
Currently support of different formats are usually implemented as primitives in the Nix language (ie. `fromTOML`). It would be good to be able to easily implement them within the language, I’d love to have #dhall, for example.
I've been interested in #dhall, but I think it comes at _config_ from the wrong side; it's a programming language first (syntax/feel wise), and data format second.
Dreaming of something more yaml-like in syntax, but with PHP-esque blocks for tree-native templating, with dhall's type system.
@IslandUsurper This is my first time hearing about #dhall by the way. Looks interesting. I'll check it out.
I know #lua, like no other language, yet I never had put two and two together of using it with erlang/elixir. Until now, that is. I'm totally doing this. Especially considering I was looking to use #dhall for a similar configuration reasons.
https://www.erlang-solutions.com/blog/how-to-use-lua-for-flexible-configurations-in-erlang-and-elixir.html?utm_source=social&utm_medium=social