Fishbowl archive on the website #33

Closed
opened 2022-06-01 18:40:48 +00:00 by bvisness · 13 comments
Owner

Our fishbowls need more visibility! We should archive fishbowl contents for everyone to read. Since fishbowls are one-and-done deals, we can do some light editing for content and flow before publishing (or simply publish them as is).

It would be nice to display the messages in a somewhat Discord-like format just so it reads nicely, and it would be nice for participants' names and profile pictures to be hooked up to their HMN profiles if available. However, we probably don't need or want to hook this up to the Discord message content system, because we want control over message contents and order. Plus we'd like to be able to insert links and notes into the content here and there if we feel something deserves more explanation. Thanks to Ilia for helping flesh this out.

I think we can probably do just simple HTML pages for this. Any dynamic bits like the Discord links can just use some new Go template functions.


Ilia has been exporting conversations using this tool, with this command:

DiscordChatExporter.Cli.exe export -c 980152876846428221 -t <token>  -o OOP.html --media

It produces some fancy stuff, but also produces good enough HTML to use as a starting point. We should be able to transform this output into a format that works for us with some fancy find-and-replace or perhaps a script.


As far as shipping goes, I'd be happy to ship this with just the OOP fishbowl at first, then edit and post the other fishbowls afterward.

Our fishbowls need more visibility! We should archive fishbowl contents for everyone to read. Since fishbowls are one-and-done deals, we can do some light editing for content and flow before publishing (or simply publish them as is). It would be nice to display the messages in a somewhat Discord-like format just so it reads nicely, and it would be nice for participants' names and profile pictures to be hooked up to their HMN profiles if available. However, we probably don't need or want to hook this up to the Discord message content system, because we want control over message contents and order. Plus we'd like to be able to insert links and notes into the content here and there if we feel something deserves more explanation. Thanks to Ilia for helping flesh this out. I think we can probably do just simple HTML pages for this. Any dynamic bits like the Discord links can just use some new Go template functions. --- Ilia has been exporting conversations using [this tool](https://github.com/Tyrrrz/DiscordChatExporter), with this command: ``` DiscordChatExporter.Cli.exe export -c 980152876846428221 -t <token> -o OOP.html --media ``` It produces some fancy stuff, but also produces good enough HTML to use as a starting point. We should be able to transform this output into a format that works for us with some fancy find-and-replace or perhaps a script. --- As far as shipping goes, I'd be happy to ship this with just the OOP fishbowl at first, then edit and post the other fishbowls afterward.
Contributor

Here's the edited OOP fishbowl. Took 90 minutes, apart from setting up the toolchain.

Workflow so far:

  1. Export with DiscordChatExporter.Cli.exe export -c 980152876846428221 -t <token> -o OOP.html --media
  2. Add JQuery and jQuery-UI, make chatlog sortable
  3. Rearrange messages for flow, by dragging them around in the browser
  4. Save (devtools > root node > copy outerHTML)
  5. Remove JQuery and sortable classes
  6. Fix bad pictures (pirate emoji in this case)
  7. Fix links with extra braces at the end
  8. Add links to external resources (I used a custom VSCode snippet for speed, new links have class="inserted-after" target="_blank")
  9. Download twemojies with a script, so that everything is self-contained
Here's the edited OOP fishbowl. Took 90 minutes, apart from setting up the toolchain. Workflow so far: 1. Export with `DiscordChatExporter.Cli.exe export -c 980152876846428221 -t <token> -o OOP.html --media` 2. Add JQuery and jQuery-UI, make chatlog sortable 3. Rearrange messages for flow, by dragging them around in the browser 4. Save (devtools > root node > copy outerHTML) 5. Remove JQuery and sortable classes 6. Fix bad pictures (pirate emoji in this case) 7. Fix links with extra braces at the end 8. Add links to external resources (I used a custom VSCode snippet for speed, new links have `class="inserted-after" target="_blank"`) 9. Download twemojies with a script, so that everything is self-contained
1.6 MiB
Author
Owner

Just an update, I am able to drop the HTML from your export pretty much directly into the HMN website now and everything works great. I just have to build a little more surrounding scaffolding and write some of the promo / explanatory text to give people an idea of what a fishbowl is and direct people to the site.

@ilidemi, I think I can confidently say that your workflow works great and produces exactly what we want as-is, so if you could export and clean up the other fishbowls too, that would be great! No rush of course.

Just an update, I am able to drop the HTML from your export pretty much directly into the HMN website now and everything works great. I just have to build a little more surrounding scaffolding and write some of the promo / explanatory text to give people an idea of what a fishbowl _is_ and direct people to the site. @ilidemi, I think I can confidently say that your workflow works great and produces exactly what we want as-is, so if you could export and clean up the other fishbowls too, that would be great! No rush of course.
Author
Owner

The one tiny comment I would make is that the default date format used by the exporter comment is a bit weird:

image

I realize this is subject to localization concerns, but I think I'd prefer one of the following instead:

2022-06-11
Jun 11 2022
11 Jun 2022

Any of those should be unambiguous in different locales, but more natural to read imo.

The one tiny comment I would make is that the default date format used by the exporter comment is a bit weird: ![image](/attachments/a4273890-0f3e-4227-aa27-7b8d3c4a1c6a) I realize this is subject to localization concerns, but I think I'd prefer one of the following instead: ``` 2022-06-11 Jun 11 2022 11 Jun 2022 ``` Any of those should be unambiguous in different locales, but more natural to read imo.
Author
Owner

I think this is code-complete, at least for the first pass. PR has been created; after Asaf gets a chance to look through it, I'll merge it and ship it.

I think this is code-complete, at least for the first pass. PR has been created; after Asaf gets a chance to look through it, I'll merge it and ship it.
bvisness referenced this issue from a commit 2022-06-12 12:45:57 +00:00
Author
Owner

Initial version has been shipped: https://handmade.network/fishbowl/oop/

I'll leave this issue open to track the remaining work though!

Initial version has been shipped: https://handmade.network/fishbowl/oop/ I'll leave this issue open to track the remaining work though!
Author
Owner

Flexible Software fishbowl has been merged and deployed.

Flexible Software fishbowl has been merged and deployed.
Author
Owner

Teaching Software fishbowl merged and deployed. https://handmade.network/fishbowl/teaching-software/

Teaching Software fishbowl merged and deployed. https://handmade.network/fishbowl/teaching-software/
bvisness referenced this issue from a commit 2022-06-20 04:30:32 +00:00
Author
Owner

Simplicity/performance and config fishbowls have been merged and deployed:
https://handmade.network/fishbowl/simplicity-performance/
https://handmade.network/fishbowl/config/

Simplicity/performance and config fishbowls have been merged and deployed: https://handmade.network/fishbowl/simplicity-performance/ https://handmade.network/fishbowl/config/
Author
Owner

Skimming fishbowl merged and deployed: https://handmade.network/fishbowl/skimming/

Skimming fishbowl merged and deployed: https://handmade.network/fishbowl/skimming/
Author
Owner

Parallel programming merged and deployed. https://handmade.network/fishbowl/parallel-programming/

Parallel programming merged and deployed. https://handmade.network/fishbowl/parallel-programming/
Author
Owner

Lisp jam fishbowl merged and deployed. https://handmade.network/fishbowl/lisp-jam/

Lisp jam fishbowl merged and deployed. https://handmade.network/fishbowl/lisp-jam/
Author
Owner

Metaprogramming fishbowl merged and deployed. https://handmade.network/fishbowl/metaprogramming/

One more to go!!!

Metaprogramming fishbowl merged and deployed. https://handmade.network/fishbowl/metaprogramming/ One more to go!!!
Author
Owner

Internet/OS fishbowl merged and deployed! https://handmade.network/fishbowl/internet-os/

Done!!!

Internet/OS fishbowl merged and deployed! https://handmade.network/fishbowl/internet-os/ Done!!!
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: hmn/hmn#33
No description provided.