Building the GitRepublic App using BDD and it's awesome. 🤯

Reply to this note

Please Login to reply.

Discussion

Wut BDD?

David is right.

I wrote a Feature list,

then Gherkin for all features,

then integration tests with Cucumber, to automate the Gherkin,

then Vite unit tests to define the software's behavior,

then had the AI write code to pass the unit tests.

Well, okay, I had to help it write the tests and the code, but still. Like 75%, minimum.

So what is BDD? 😹

I don't know what BDD is.

Big dumb ducks?

Bitty deli donuts?

Big data demux?

Behavior driven?

Oh. Well. Way to be sensible about it. šŸ˜

i think that the cucumber/gherkin stuff she talks about is part of a set of tools for this kind of thing.

you describe behaviours, and then use that to drive tests and implementation

Aha :Check:

Sounds like a powerful tool to me, specially in the hands of the appropriate people

yeah, it's something that you intuitively grasp as a developer

domain driven design is a similar design philosophy that concerns itself with isolating things in units and avoiding mixing domains together.

BDD is about focusing on the process flow of the code so things logically follow and are intuitive to the users (or programmers building with them).

they are complementary, really.

both are also derivative of the parent TDD, test driven design, which is about focusing on unit testing and integration testing as a way of deciding how to sequence the development process

Can we just [[wiki link]] in the OP por favor šŸ™

We can (and imo should) build for avoiding questions/look ups like this.

lol, nice sentiment but the design of nostr protocol is such dogshit that this kind of integration is a very difficult job. doesn't help that all the client devs are lone wolves who don't have any conversations with relay developers too. or that the nostr protocol itself is a complete dogpile as well.

looks simple to the first glance, but there is so much complexity in the thing that it's painful to implement on the back end

Parsing the text etc might be dumbe and BlueSky would have an easier job with their set up probably.

But this is exactly what is done in Nostr Wikis already. So what the case against having links like that in general?

you are talking about, essentially, a URL right?

so, yeah, noh. wikilink is not better than a good old W3C standard spec URL

wikkilink assumes the consistency of a distributed store of data. we don't have that guarantee yet. nostr or similar protocols could create such a guarantee ... if there was a replication strategy baked into it.

making a standard nostr URL would be what you are thinking of. something that binds to a static, and permanent event ID, that is retained in order to create a history of edits. that's a lot of assumptions and a lot of protocols that don't exist yet.

Nope, I'm talking about a wiki id (which is more like a hashtag)

you don't know the logistics of what you speak of

at minimum it has to have a 256 bit hash as part of it, to not collide with another document

No then I'd just link to a specific event.

I want to use [[topic]] when I just want to link out to topic page that the app fills in with the related wiki entries (and other relevant stuff).

That actually is a link to the wiki page on Alexandria, in the new GitRepublic client. I run the NostrMarkup parser over everything readable.

Cuz I'm like, too lazy to not just program:

```

If 30041 or 30818, then Asciidoc parser.

Else Markup parser.

```

Yes, that displays as a code-block. šŸ˜‚

The wiki page is a disambiguation page that can also include external pages, like Wikipedia. It's a deep search page; just has Nostr wiki pages at the top.

ok, but that doesn't answer the question of where you resolve this from

I just use the various URLs. I don't bother coming up with some new protocol.

[[Sybil]] returns:

https://next-alexandria.gitcitadel.eu/publication?d=sybil

and

https://en.m.wikipedia.org/wiki/Sibyl

the reason why i'm kinda semi-hostile to niel is because he doesn't seem like he has any practical experience in a dev shop.

he doesn't understand that to make a URL (UNIFORM RESOURCE LOCATOR) you have to have a system that answers queries for that and knows where to find it.

That system is the Nostr client. Only one client has it, so far, but people will get used to leaving the [[wikilinks]] everywhere and the others will have to go along, eventually.

It's pretty cool, combined with semantic searches, as you nearly always get something relevant back, even if you type in something like [[white smoke]] or whatever.

And you can write a document, like a research paper, containing the link to [[SNPs]] or [[glaucoma]] and people clicking it will always get a result.

Damn, #jumble was fast with the custom NIP-05 icons. Not bad, not bad, at all.

Look nostr:npub1wqfzz2p880wq0tumuae9lfwyhs8uz35xd0kr34zrvrwyh3kvrzuskcqsyn we have helmets!

I think you understimate him. What we're building is an idea from him. It's brilliant. Finally makes Nostr Wikis interesting again.

resolving the source of the data is pretty important. but i'll just slink back into the background as the guy who is busy building those parts.

ah yeah, i was gonna debug using relay-tester. right now i want to nap.

actually, i'm gonna go on a big walk to the next town to pick up some supplies. my cat food stash has got really thin lately

and URLs mean a server protocol, with a list of possible servers, that have a database that stores those references to elsewhere. right?

Yeah, sure. Relays and whatever is behind Wikipedia's website. Haven't bothered to look. URLs are great, for this sort of thing, as lots of them are topic-based because websites have an internal search. Can even do cross-language searches. Just have to select which ones you want to search and figure out how to query them from the URL.

https://www.welt.de/suche?q=sybil

yes, but you have to use those sources. or you don't know where to find them. and you can't show nothing to the user. i mean, you can, but the user will go "where is my things"

I’d imagine the LLMs like the natural language aspect of BDD. interesting.

Also fantastic, how smooth it moves from Gherkin to Playwright to unit tests. That's a well-trodden path, apparently.