blob: e97b21cdceb1a5211aafe6451e1062d0447f15b7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# OMG Macros
Corwin Brust
[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--20-omg-macros--corwin-brust.webm"]]
[Download .webm video, 720p, 199MB](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--20-omg-macros--corwin-brust.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.
<!-- 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; lmk if you have any trouble finding fruit to throw
|