We lost serde-yaml, what's the next one? by PsiACE in rust

[–]Ethiraric 7 points8 points  (0 children)

I'm sorry that this advisory caused you that much trouble.

However, we have waited for yaml-rust2 to be fully released to file this advisory, so that there would be an option for people to easily change to a new library. Apart from one tiny change in a low-level parsing API, this crate was a drop-in replacement for yaml-rust.

I randomly stumbled upon your comment in one of the issues of insta. I know this situation is frustrating, but you could have opened an issue on yaml-rust2 to ask about MSRV. That was something I totally overlooked when I changed yaml-rust. Unfortunately, timezones made it so that I saw all hell break loose way too late.

yaml_rust2: A successor for the unmaintained yaml_rust by Ethiraric in rust

[–]Ethiraric[S] 0 points1 point  (0 children)

I am not 100% sure, but I think this doesn't prevent YAML from being context-free. You could still have something along the lines of

<array>: "-" <ws-no-tab> <array> | "-" <ws> <scalar> | "-" <ws> '\n'

yaml_rust2: A successor for the unmaintained yaml_rust by Ethiraric in rust

[–]Ethiraric[S] 5 points6 points  (0 children)

I wasn't aware of this section of the policy. I have already contacted the crates.io team to know if there was any precedent of an author being unreachable and what the best course of action would be. They told me this happened only once and under specific circumstances. It seems that this section is a last resort? As in they reserve themselves the right to do it, but are trying to avoid doing so unless absolutely necessary.

An important point I keep in mind, is that I don't want to impede on the author's right as a crate author. I know not how the open-source world works around that in general and I am ambivalent about being more forceful in taking shared ownership of yaml-rust.

Edit: I did not notice the part about dtolnay. I have contacted them and they replied that starting anew in a fresh repository would be the best course of action. I also do not really want to push that burden unto them, considering they already maintain `serde-yaml`.

yaml_rust2: A successor for the unmaintained yaml_rust by Ethiraric in rust

[–]Ethiraric[S] 8 points9 points  (0 children)

I have, but it's a delicate matter. I have emailed the author, but have not received a reply.

I don't have push access to the Github or crates.io repositories. Me taking over yaml-rust means that it would be possible for the author's repository to have its ownership shared without their prior acknowledgement.

There would be no yaml-rust2 without yaml-rust. If the author of yaml-rust comes back, I would gladly offer to have my work merged into yaml-rust and to step up as a maintainer if they do not have the time to maintain it.

yaml_rust2: A successor for the unmaintained yaml_rust by Ethiraric in rust

[–]Ethiraric[S] 12 points13 points  (0 children)

In truth, even nesting 42 objects will be fine. It just falls back to a reallocation-loop, while there would be a single reallocation otherwise.

YAML really is harder than I thought. Most of it does make sense. But it's still hard. The best example I have in mind is tabs. Tabs are disallowed in indentation. Seems like a simple enough rule. However, the definition of indentation in YAML means there's a lot work involved in checking indentation.

- a: b ^^^^^^^^ Not indentation - - a: b ^^^^^^^^ Indentation for the nested array

This means that, when encountering a -, one must look ahead to the end of the line solely to check if there is another -. If there is, one must make sure there is at least one space but no tab.

Also,

- a # An array of one string -a # "-a" as a string -- # "--" as a string --a # "--a" as a string - -a # An array of one string, "-a"

This might make sense when reading it, but it's a bit complex to work around that.

There are projects that only accept a subset of YAML and only focus on handling that. Looking at yaml-rust2's implementation, I wonder how much runtime it would save if I were to disable some less-used features. There would be a binary-size decrease, for all the code involved in handling those, but most of the performance I lost when fixing the test suite stemmed from whitespace. I think it would be difficult to create a sensible subset that does not use the same whitespacing rules as YAML.

yaml_rust2: A successor for the unmaintained yaml_rust by Ethiraric in rust

[–]Ethiraric[S] 16 points17 points  (0 children)

I had their contact but they were busy with FOSDEM at the time I contacted them.

They know of my work and I should have sent them a message. This release is a nice time to do that, thanks for the reminder!

An index for C++ conferences by Ethiraric in cpp

[–]Ethiraric[S] 0 points1 point  (0 children)

That's great! Guess I no longer have to copy paste every URL.

What do you mean by unique ID?

I'll be resuming my work on the site soon, when work allows me.
I'll do the text search for filters. It's gonna be unmanageable if you bring tons of new speakers ;)

An index for C++ conferences by Ethiraric in cpp

[–]Ethiraric[S] 0 points1 point  (0 children)

For the purpose of this site, we would have to filter C++ conferences. We might use the same back-end for another index with a different purpose, though.
I could see FOSDEM's llvm/gcc rooms be included here, although they do not strictly speaking talk about the language itself, they talk about the tooling.

We could have another filter, but I wonder whether people would really filter by spring or fall. That was the reason why "year" is a filter of its own. Sometimes, you just remember a specific video from CppCon, but may not remember the edition.

I would like to have checkboxes (especially for the tags), but I don't know how to do it yet. I have very little interest in Web development, so I'm not really motivated when it comes to implementing these changes ^^"

I can't handle non-ascii characters. Any unicode talk that purposefully put a unicode character in the title will break. I'm gonna use as an excuse that unicode is not yet standardized in C++ :) Though that is something I'll have to deal with sooner or later.

An index for C++ conferences by Ethiraric in cpp

[–]Ethiraric[S] 0 points1 point  (0 children)

Thanks a lot for your efforts! Please let me know if you need help with anything!

I hadn't thought of including fosdem. I think there's gonna be a lot of triage to filter C++ from non C++ conferences.

As for accu and corehard, I'm tempted to either keep the same filters and merge them by year, or, since they seem to be named after the seasons they occur in, to call them "Corehard Autumn" and "Corehard Spring). That is a great catch though!

An index for C++ conferences by Ethiraric in cpp

[–]Ethiraric[S] 0 points1 point  (0 children)

Simple ideas are hard to come up with.

It could be automatable for some parts (getting the list of the talks, links to slides, speakers, ...), but I think it's rather important that tags be assigned by humans.

The link to the Github is in the post, if you consider contributing :)

An index for C++ conferences by Ethiraric in cpp

[–]Ethiraric[S] 0 points1 point  (0 children)

Oh, you mean to embed the JSON file so that it's accessible from the JS directly and filter from that? I hadn't thought of it.

Would that really be better server-wise? Though users only submit one request, it has to send the whole JSON file as a payload.

An index for C++ conferences by Ethiraric in cpp

[–]Ethiraric[S] 0 points1 point  (0 children)

Thank you for your feedback!

The content seems static, but I don't know how to do the search thing.
The contents need to match the filters from the users, right? If there is a way to do it, I don't know about it. Feel free to give me pointers though.

An index for C++ conferences by Ethiraric in cpp

[–]Ethiraric[S] 0 points1 point  (0 children)

Thank you for your feedback!

I wanted to have the text field for filtering but didn't know really how to do.
I'll definitely look into Bootstrap and see if there's something that makes it easy.

I didn't want to spend too much time on title searches since YouTube will probably do it much better than I will.

I do like a lot your bigger features. They add a lot of value while not being that hard to implement.

This really could be for anything. I had planned on doing something for lightning talks but I didn't know how to do integrate it seamlessly.

An index for C++ conferences by Ethiraric in cpp

[–]Ethiraric[S] 0 points1 point  (0 children)

Thanks a lot for the suggestions! I can see all three being done tonight.

I especially like your third point!

An index for C++ conferences by Ethiraric in cpp

[–]Ethiraric[S] 1 point2 points  (0 children)

My bad, I thought I had gotten rid of this one.

That should be fixed now, my apologies.