I also really hate that since AI slop has turned search engines useless, you virtually cannot find anything, even if you remember the exact words of the title.
I also really hate that since AI slop has turned search engines useless, you virtually cannot find anything, even if you remember the exact words of the title.


I’m guessing, they mean JavaScript and WebAssembly in general…
I mean, yeah, this shouldn’t be seen as an announcement or whatever, but rather as a thing to discuss and potentially get involved in. KDE is a community project after all.
I mean, I do like the idea, but syncing such a database file is by far the smallest challenge about this (and could be easily achieved today with e.g. Syncthing or Rsync).
The far harder part is getting RSS readers to support the same file format. There is actually a small project (by basically a singular guy), which tries to accomplish this: https://github.com/39aldo39/DecSync
The desktop RSS reader it supports is GTK, though.
Somewhat of a technologically simpler solution might be to self-host FreshRSS.
Unfortunately, it is of course less simple to actually use, unless you have a home server and some sysadmin skills…
Well, I have it bound to Super+X, but you could do any of those. I just create a .desktop file for it and then it can be used like a normal application. And well, it is intentionally built so you don’t have to pass command-line flags or see the command output for creating the file.
So, this is the program I use: https://codeberg.org/trem/jot
It has basically three larger features, which is adding a file, removing empty files (because you sometimes might end up creating a file, but not using it) and then searching through empty files.
Honestly, none of these are particularly difficult to throw together in a Bash script yourself, if you don’t feel like using a random program off the internet.
Basically, for adding a file, this is a crappy version of it:
data_dir="$HOME/.local/share/notes"
mkdir -p $data_dir
date=$(date +%s)
file_name="$data_dir/${date}.md"
touch $file_name
xdg-open $file_name
And for searching through the created files, grep -iR -C2 $data_dir is virtually just as good, too. 🫠
Well, I assume they had other concerns, too. For example, it adds a bunch of complexity for reformatting a JSON from single-line to pretty-print, if comments can appear in there. I’m certainly not saying that I’m always best friends with the decision to remove comments, just that I can somewhat understand it.
Hmm, if I understand you correctly, this is about Windows blocking access to files while they’re being accessed by other processes. Kate is primarily built for Linux where this would not be a problem to begin with, so it is well-possible that it does not handle this gracefully.
But it does actually keep its own buffer for files. By default, you have to actively click in the UI before it will load the changes from the file. It does watch the file for file changes, but I don’t think, it has to keep the file open for that, since there’s kernel APIs to be notified for file changes on all mainstream operating systems these days.
So, uh, TL;DR: I don’t actually know, but I’m somewhat optimistic. 🫠
I have a tiny program/script that creates a file in a folder underneath ~/.local/share with basically just a timestamp in the file name and then it opens it in Kate. Certainly somewhat of a workaround, but it works quite well for me.
I can understand the sentiment and would 100% agree for programming languages.
But personally I actually like that it encourages a flat structure, because you do not want to be yakshaving the structure of your config file. Too much nesting means you will sooner or later run into configuration keys being nested under the wrong category, because your project context changed over time.
And well, as I’ve argued in a few other comments already, I think non-techie users have a disproportionally simpler time when no nesting is used. They understand the concept of a heading and then just adding a line underneath the appropriate heading is really intuitive.
You can just tell them to add the line certificate="/tmp/cert.crt" under [] and they will find a line in their config file which actually reads [] and they can just paste that line as-is.
With nesting, they’d need to add it under here:
network: {
tls: {
certificate: "/tmp/cert.crt"
}
}
Which means:
It’s not even that I’m completely enamored with TOML, but this aspect is certainly growing on me…
VSCode is Electron, i.e. a webpage, so it’s not hugely surprising that they opted for the natively supported JavaScript Object Notation. And also shows that they don’t care for using the right tool for the job to begin with.
Personally, I much prefer TOML over YAML, because it does not have significant whitespace, and because you can read the spec in a reasonable amount of time. It just has so much less complexity, while still covering the vast majority of use-cases perfectly well.
They’re not supposed to contain data, but some parsers will allow you to access what’s written into comments. And so, of course, someone made use of that and I had to extract what was encoded basically like that:
<!--
Host: toaster,
Location: moon,
-->
<data>Actual XML follows...</data>
My best guess is that they added this data into comments rather than child nodes or attributes, because they were worried some of the programs using this XML would not be able to handle an extension of the format.
We just document that this is how you write the config file:
[network]
bind.host = "127.0.0.1"
bind.port = 1234
# etc.
And that seems straightforward enough. Yeah, technically users can opt to use inline tables or raw strings or whatever, but they don’t have to.
I can kind of understand it after having to work with an XML file where users encoded data into comments for no good reason. But yeah, it does make JSON awkward for lots of potential use-cases.
I don’t feel like it will stray very far from what’s dubbed “TOML 0.1” in the meme. Yes, it has inline tables and as of TOML 1.1, they’re allowed to span multiple lines, so it’s technically not anymore illegal to do what’s in the meme. But all things considered, this is still a miniscule change compared to TOML 1.0.
Well, you can still decide how much of the TOML features you actually use in your specific application. For example, I’m currently involved in two projects at $DAYJOB where we read TOML configurations and we don’t make use of the inline tables that OP memes about in either of them.
Ultimately, the big advantage of TOML over INI is that it standardizes all kinds of small INI extensions that folks have come up with over the decades. As such, it has a formal specification and in particular only one specification.
You can assume that you can read the same TOML file from two different programming languages, which you cannot just assume for INI.
Well, Wikipedia does say:
The [TOML] project standardizes the implementation of the ubiquitous INI file format (which it has largely supplanted[citation needed]), removing ambiguity from its interpretation.
Counterpoints:
} or ] can also be a disadvantage of JSON, since you cannot stream it, i.e. start processing the fields/elements before the whole thing has arrived. (You probably still don’t want to use TOML for that, though. JSONL, CSV or such are a better idea.)Well, TOML is essentially just an extension of the INI format (which helped its adoption quite a bit, since you could just fork INI parsers for all kinds of programming languages).
And then, yeah, flattening everything is kind of baked into INI, where it arguably made more sense.
Although, I do also feel like non-techies fare better with flat files, since they don’t have to understand where into the structure they have to insert the value.
They just need find the right “heading” to put the line under, which is something they’re familiar with.
They serve largely different use-cases. JSON is good for serializing data. TOML is good for configuration.
Damn, did they run out of color ink?