blob: 4e34650345ee202693cbe54540eac8876a09cd2b (
plain) (
tree)
|
|
# OMG Macros
Corwin Brust
[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--20-omg-macros--corwin-brust.webm" subtitles="/2020/subtitles/emacsconf-2020--20-omg-macros--corwin-brust.vtt"]]
[Download compressed .webm video (24.3M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--20-omg-macros--corwin-brust--vp9-q56-video-original-audio.webm)
Macros are a powerful tool. In the context of Emacs Lisp programming
they can also provide us with a "foot-gun" of immense proportions.
Join the dungeon-mode project as we trip over our own macros, so to
speak, in the context of building a GPLv3+ turn-based role-playing
game engine and game design features for Emacs.
In this 20m talk I'll briefly introduce some rationales leading to
storing all game source and play state information within org-mode
documents (spoiler: it's about freedom), then go into some detail
around the "ETL" process design that currently accomplishes this.
Finally, we'll look closely at one especially problematic macro deep
within this solution, and invite people to throw fruit^11^dhelp draw
conclusions, ask questions, and discuss.
[[!inline pages="internal(2020/info/dm-notes)" raw="yes"]]
<!-- from the pad --->
- Actual start and end time (EST): Start: 2020-11-28T16.17.32; Q&A:
2020-11-28T16.34; End: 2020-11-28T16.38.32
# Questions
## How is your background work?
See 06: Trivial Emacs Kits's Q&A: Corwin uses Wallpaper Engine.
- [Corwin] Wallpaper Engine on Steam is probably the thing that's
grabbing attention. I haven't tried it under GNU/Linux. My family
are (mostly) Windows users right now ****heavy sigh**** I don't want
to get into my tool chain a huge amount, but I will talk about it
some as/durning the Welcome to the Dungeon talk tomorrow. For now I
will say I'm using a mix of free (free and not-free but too easy to
avoid tools on my one pretty good computer). I would love to have
the time to invest to use more (only) free stuff but sometimes we we
can't afford the freedom, in terms of the learning curve. I think
this is the most important problem space in free software, FWIW.
## What was the key message you wanted to share with your talk?
Macros are powerful and necessary. Consider how you use them?
## Do you mind if I use your macro code as inspiration for an elisp uglifier?
Have At! It's GPLv3 and you are welcome; let me know if you have any
trouble finding fruit to throw.
|