Feature proposal: Export ACX meetups
post by Viliam · 2023-09-10T10:50:15.501Z · LW · GW · 7 commentsContents
7 comments
Currently there are two places that display upcoming meetups of Astral Codex Ten:
- Community Section [? · GW] of LessWrong
- articles at ACX, such as "Meetups Everywhere 2023: Times & Places"
Note that there are almost 200 meetups this autumn. Sometimes a mistake happens, and meetups that are displayed at one place are missing from the other place. As a consequence, some people miss the information about an upcoming meetup.
I don't know how exactly this works today. My best guess is that someone prepares a spreadsheet, and then imports it to both places. That part seems to work nicely.
Problems happen when the information changes later. People announce new ACX meetups after the deadline. Also, meetup organizers can edit the information on LW, but the changes do not automatically propagate to ACX.
ACX runs on Substack, which is a generic blogging platform. There is no specialized support for meetups, only a WYSIWYG editor for articles.
If these assumptions are generally correct, I propose to modify the process like this.
Step one: After collecting information to the spreadsheet, import the data to LessWrong. Then throw the spreadsheet away, because now LessWrong becomes the source of truth. (Meetup organizers can edit their announcements.)
Any meetups that are announced after the deadline, must be created on LessWrong. It is possible to reuse the same process: collect them to a (new!) spreadsheet, and import it. But they can also be created manually, whatever is more convenient.
Step two: Make an export from LessWrong for Astral Codex Ten, in format that is most convenient for Scott to import. Probably rich text or HTML code, which he could simply copy and paste to the article, without having to edit it further. That means, that the exported meetups would be organized in Scott's preferred way (alphabetically, groupped by continent and city) and properly formatted.
That means, at first, Scott would create a new article, copy the data from LessWrong, and write an introduction. After changes, Scott would delete the imported part from the existing article, and copy the new export from LessWrong.
Afterwards he can compare the old export and the new export (e.g. using this tool) and announce the major changes in the next Open Thread. This part cannot be fully automated, because there are various kinds of possible changes, some of them important (new meetup, cancelled meetup, change of date and time, change of place), some unimportant (updated description, fixed a typo), therefore human judgment is needed.
As a bonus, export maps of continents, marking the places where the meetups occur. (Even if someone did this manually for ACX, they wouldn't bother updating the maps.)
7 comments
Comments sorted by top scores.
comment by Screwtape · 2023-09-11T01:03:51.411Z · LW(p) · GW(p)
Hi! I'm Scott's Meetups Czar. You are most right about how the process works currently (I make a spreadsheet, then import it to both places) though it has more issues than you currently suggest. I do not have the bandwidth right now to explain what actually happens since I'm traveling home from ACX Everywhere meetups, but I'll try and get an explanation out within the next couple days.
Replies from: Viliam, Screwtape↑ comment by Viliam · 2023-09-11T07:55:41.826Z · LW(p) · GW(p)
Thank you for your work. Enjoy the meetups!
This is just an idea I had and wanted to write before I forget it. It is not urgent at all -- too late for this round of meetups, enough time until the next one.
Replies from: Screwtape↑ comment by Screwtape · 2023-09-11T16:43:23.791Z · LW(p) · GW(p)
Very basic outline of how Meetups Everywhere works:
- There's a call for organizers, and I start collecting meetups in a spreadsheet. Most entries get there via a google form, though some email me or use other communication methods. The day before the announcement that spreadsheet is the single source of truth.
- I turn the spreadsheet into a CSV and run two quick programs on it. One program gives me the plain text laid out like you see in the Astral Codex Ten substack. The other program gives me a JSON file with all the meetups.
- I put the text layout into a draft for Scott. At this point, the preamble about how this works and which meetups me or Scott will attend gets added. I also do a bunch of formatting tweaks, since WYSIWYG editors can't be automatically told which things to bold or turn into headings.
- I put the JSON into a data import and commit that import to the ForumMagnum codebase (The code that runs the LessWrong website) for the LessWrong team[1]. Someone there double checks me, makes some tweaks, and tests the import against the LW database. Any meetups that didn't exist already will get created, and control is given to the accounts matching the contact email address.
- Scott posts the announcement to Substack, and LessWrong runs the import for real.
- I quickly get emails and comments from people who realize their city doesn't have a meetup and want to add one. Some of these people don't have LessWrong accounts and don't want one.
There are now at least three sources of truth; my spreadsheet (which I use for things like reminder emails or followup surveys), the ACX Substack post (which people look at for the big list of meetups) and individual events on LessWrong. As you correctly point out, this means that the three lists can get out of sync, causing people to miss meetups they'd otherwise like to know about. If I knew a way to keep all three in perfect sync I'd be highly motivated to use it, and I do my best to at least keep my spreadsheet and the Substack post synced.
The issue is that's it's hard to automatically pull from any one of these to any other, and they're all useful. LessWrong has other events than ACX Everywhere; there's a Book Swap that the Boston ACX group is running tonight for instance that should show up on LessWrong but shouldn't be on the ACX Meetups Everywhere substack post. I want to get the emails of everyone running an ACX Everywhere meetup from September 14th to September 20th so I can send them a survey about their meetup within a week of them running it, which is easy with a spreadsheet and annoying from rich text. Individual events on LessWrong are the only part of this local organizers can edit, but I don't get updates when those events are changed so I usually don't notice when a date or location is changed.
An automatic way to go from my spreadsheet to LW and vice versa is definitely doable. This year my engineering time went into automatically checking how far meetups were from each other and trying to sort out LW's new postgres database instead.
- ^
I say the LessWrong team like it's a single entity. RobertM took care of it this fall, and I appreciate him!
↑ comment by Screwtape · 2023-09-11T23:13:06.059Z · LW(p) · GW(p)
(I worry that came across as "nothing can be done and I'm annoyed people asked" which isn't my intent. It's a message from an engineer who just made a bunch of really dumb copy and paste errors while working through a process with too many manual steps annoyed at himself.)
Replies from: Viliam↑ comment by Viliam · 2023-09-12T11:20:31.543Z · LW(p) · GW(p)
Thanks. I see that it is automated even more than I expected, it's just that syncing the later changes is difficult.
LessWrong has other events than ACX Everywhere
Wasn't aware of this. I think this either requires some extra "flag" for the ACX Everywhere posts, or literally requiring the words "ACX Everywhere" in the meetup title. Then the exports would be possible.
Replies from: Screwtape↑ comment by Screwtape · 2023-09-12T17:30:47.838Z · LW(p) · GW(p)
Behold, the LW Community Map [? · GW]! Okay, granted right now it's almost all ACX Everywhere events, but there's Units of Exchange [? · GW] which isn't. The automatically generated events do have ACX Everywhere in the title. . . but the manual ones don't and there isn't an extra flag.
Adding a flag is not technologically hard! (I assume at least. My local copy of ForumMagnum still refuses to load the map at all.) For the moment though, I'd have to sort through other kinds of events every time we pulled.