greets graph

category: general [glöplog]
According to Demozoo: 133316.

Sometimes musax and gfx has greetings inside nfo files or metadata. So it'd be much better to check every 287534 prods now exists.
added on the 2021-04-09 18:43:11 by 100bit 100bit
Better get cracking then!
added on the 2021-04-09 19:35:54 by sigveseb sigveseb
of all the nerdy shit we talk about; this wins right?
added on the 2021-04-10 03:20:34 by xerxes xerxes
So for an individual, a personal greeting counts always but a greeting to a group counts only if the individual was a member of that group at the time that production was released? That'll be fun.

Demozoo doesn't seem to have that data (publicly) available.
added on the 2021-04-28 04:50:57 by Y0Gi Y0Gi
I like this idea. It's useless, but that does not matter. It would make for some nice graphs.
greetings to aardbei!
It would need to be a collaborative effort and maybe a live graph showing current status. Then have a flag on each prod whether the greets were mined yet and some kind of award like gløp so you can show everybody from whom David bought the ale.
added on the 2021-05-01 06:08:43 by rloaderro rloaderro
loady: Are you trying to propose some sort of a greetings-based crypto currency here?
added on the 2021-05-05 12:58:12 by kusma kusma
added on the 2021-05-05 14:49:01 by ferris ferris
Looking forward to the project reaching greetical mass.
added on the 2021-05-05 14:51:05 by Y0Gi Y0Gi
ferris: All my funds are already tied up in Blitcon! :-/
argh! blitcoin
This is now my favourite thread in Pouet ever.
added on the 2021-05-05 15:09:59 by gloom gloom
how much glöps do I get for a greeting? and how much for being greeted?
added on the 2021-05-05 15:18:43 by evills evills
Demozoo doesn't seem to have that data (publicly) available.

DZ doesn't have it at all.

Okay, we just need a full Demozoo (as the biggest database afaik) export of groups/prods and a tool (website?) to manage it.
Tell me when to start and I'll start. Suddenly, I'm highly interested.
~~can be a mod for your startup contact me~~
added on the 2021-05-05 22:28:15 by 100bit 100bit
uhh so I went and made a demo about it: https://greetsgraf.jetlag.group/.

This is essentially a very crudely hacked together web interface for quickly searching for prods and adding greets to them. I intend to start using it for building this greetings database mostly manually a couple demos per day.

It will take a few years.

Everyone interested (and who can tolerate my poor web design abilities -- I have effectively zero experience with webdev, and this is the largest web-related project I ever did) is welcome to join.

As of now it has only a page to add greets, and no way to query them.
There's also no security whatsoever. Ultimately it'd make sense to add scene.org accounts integration, but this OAuth/whatever thing would take me a few more weeks of work.
It does make frequent backups so in case of vandalism we'd be able to recover: https://greetsgraf.jetlag.group/_data/
(pls don't hack my server uwu)

Behind the scenes: it's written using a bunch of web-scale technologies that I didn't even know a few weeks ago: Go, vanilla js, sqlite. There are also some docker and nginx + letsencrypt thingies.
The repo is here: https://github.com/w23/greetsgraf
You are more than welcome to (constructively) bully me on code quality, send rude PRs, report demanding issues and all that.
added on the 2021-05-16 09:58:17 by provod provod
provod: Awesome. How did you make the as-you-type-suggestion box?
added on the 2021-05-16 10:04:37 by neoneye neoneye
now we need to have an API which could be seen as a button "I've seen my group in the greetings" on prod pages :)
added on the 2021-05-16 11:13:21 by keen keen
I've tried to fill greetings for "No 64k, Just 16k" by yx and "Intrinsic Gravity" by Still, and... it lacks some things.
At first, it lacks sceners, some specific groups and abstract groups. As I said, sometimes there are greets that aimed at specific sceners or groups that doesn't exist in Pouët (for example, NoSYS Productions (credited in Intrinsic Gravity) is a label that released only some musax on demoparties, that means no executable things) or so named "all sizecoders", "all platform fans", "all party visitors", etc.
At second, it'd be great if you'll add search by acronyms. It'll speed up the work (it's much faster to write TBL instead of The Black Lotus), and also some groups are known mostly as acronyms (do you know the full name of CNCD?)
At third, we also need the comments section about the whole prod. For example, we can set here some missing groups or info like "greetings are taken from nfo/scroller/last part/etc" here.
And we also forgot about the main thing - greets count for each group.

Or should I write these things in Github issues?
added on the 2021-05-16 13:32:32 by 100bit 100bit
@neoneye: with a struggle ;). It took me a few days to figure out how to make one.
TL;DR every edit event ends up sending a request to the backend, which returns a list of matching objects.
Impl details:
1. There's the Autocomplete javascript class that adds suggestions to any input field (caveat: the input field needs to have a wrapping div and a few specific css properties so it looks correct). You also provide it with functions like `funcFindVariants(text, funcSuccess(suggestions[]), funcFail())` and `funcSelect`.
2. When the input's field value changes, it will call into `funcFindVariants`, which on this page will make an XHR to the backend.
3. Backend will get this request at some path and query string, e.g. `/v1/groups/search?name=jet`, and translate that to an `SELECT * FROM groups WHERE name LIKE %jet%` for that particular path's table. It will send back the results as JSON.
4. When the XHR receives response, it will format returned objects into expected structure and send those as an array back to `funcSuccess`. Suggestions are expected to have an `element` field which will be added as a child into container of suggestions as is. There are also `activate()` and `deactivate()` functions to highlight selected suggestions.
5. `Autocomplete` also hooks user input, and uses arrows to manually manipulate an index of currently selected item ((de)activating them accordingly).
6. When user hits enter or clicks on an item, `Autocomplete` will call `funcSelect()` with the selected item.
7. This class is used for both prod search field and greet-add's group search field.
8. Note how suggestion items can be arbitrary elements. We can add whatever html into them.
I've also tried to work directly with HTML-native datalist or whatever it was called, but it did not work: there's a race between XHR and browser displaying suggestions; and it's also limited to just plain text.
added on the 2021-05-16 18:45:51 by provod provod
I'm also pre-populating the database with parts of pouet data dumps. I tried to use pouet API, but it lacks some features (search groups by name), and is also CORS-inaccessible.

@keen I've thought about making this part of pouet, but couldn't quickly figure out a way around its code base. I guess modern PHP is too hard for me.
Go on the other hand is extremely simple. First time I tried to learn it I ended up writing a raymarcher with shading and reflections in the first two hours of learning the language through its go tour. That also included writing a barebones vector/matrix "library".
(same thing took me months in Rust)
added on the 2021-05-16 21:23:53 by provod provod
1. Yes, the main focus for now is group-to-group greets. I could in theory try to scrape sceners from pouet data dumps later. It would need changes to sqlite schema, which is still a very new area to me and I'm slightly afraid.
2. Yes, the main focus is also limited to stuff on Pouet. It's what I have data for (thank to Gargaj and probably others who were involved). Supporting stuff that's not on Pouet would complicate internals of this thing to a degree that I'm not ready for. (e.g. we'd need to have non-pouet table entries, address them somehow unambiguously, have an UI for adding/editing, have queries that somehow include both pouet and non-pouet stuff, ... i get a headache even thinking about this. maybe it's doable, but certainly not now)
3. I consider "all-inclusive" greetings as noise (and, honestly, a bit impolite). There are only some rather odd scenarios where such a greeting could have material information.
4. Acronyms are planned an I'll add them as soon as I get time.
5. Comments section: this is what "Note" field is for. A prod can contain greetings in both itself, and in an nfo file. And these might be even different sets of greetings. So you can add a note for each greeting about where and how it was taken.
6. I'm not sure what do you mean by greets count. I'd say if a group was mentioned in a prod multiple times (including nfo), then it count as only one greet.

We can discuss this both here, and in issues on github. Aspects that would benefit from visibility and discussion could be made here, and more strictly formulated things (like bugs, specific actionable feature requests) should be filed as gh issues.
added on the 2021-05-17 07:31:28 by provod provod
I checked out the site when listening to Zine, and added one of our productions, but I can't seem to find a way to see the results except by searching for the exact same production... Is there a way to search by group name and see the productions they were greeted in?
added on the 2021-05-30 03:20:05 by Seven Seven
@Seven there's currently no web interface for looking at the database. I quite suddenly ran out of spare time to update this tool reliably :( (i still add greetings to roughly one new random prod per day, so it's not dead!).

If you have skills, you could download the raw sqlite database and make SQL queries into that.

Or you could nudge me again in a couple of days so that I update it to add a crude read-only interface of some kind out of guilt :D.

(I've added it into a list of things to do tomorrow, but it's likely that I may not have a chance to get to it)
added on the 2021-05-30 09:24:59 by provod provod