summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2021-01-10 01:14:30 -0500
committerSacha Chua <sacha@sachachua.com>2021-01-10 01:14:30 -0500
commit5a7f580cd11680c9a6784adecee3977480b71d23 (patch)
treefb49e3a35ba1cd4431fce6fa5cae448c02aa5541
parent329bfddecb93b4032fffb8858d98d13bc66930ef (diff)
downloademacsconf-wiki-5a7f580cd11680c9a6784adecee3977480b71d23.tar.xz
emacsconf-wiki-5a7f580cd11680c9a6784adecee3977480b71d23.zip
Timezones and meeting
-rw-r--r--2020/meetings.org32
-rw-r--r--2020/organizers-notebook.md38
-rw-r--r--2020/organizers-notebook.org38
3 files changed, 105 insertions, 3 deletions
diff --git a/2020/meetings.org b/2020/meetings.org
index 7f312430..126ec877 100644
--- a/2020/meetings.org
+++ b/2020/meetings.org
@@ -39,6 +39,15 @@
- bandali
- met with organizers of EmacsNYC. They were curious about BBB and Jitsi, streaming, IRC web client
- met with gopar last night re: podcast
+ - will work on a blog post about the technical setup
+ - someone wanted to set up a meetup in Mexico, too, so maybe we can make an updated starting-a-meetup guide (https://harryrschwartz.com/2015/09/14/starting-an-emacs-meetup.html)
+ - how to find people and advertise
+ - reddit.com/r/emacs
+ - Emacs News
+ - https://www.emacswiki.org/emacs/Usergroups
+ - how to stream and record
+ - what it might be like if there are no presentations (don't worry! hang out, share cool stuff, figure things out together, flip through Emacs News)
+ - sharing afterwards
- CRDT: see BBB chat if you want to try it
- dto:
- tutorial; (also, SystemCrafters just livestreamed an Emacs Lisp tutorial too)
@@ -49,10 +58,27 @@
- BBB has breakout rooms, might be worth looking into if it scales up a lot; Jitsi can have multiple people sharing screens at the same time;
- EmacsNYC said Jitsi is okay for the 20-30 people they've seen so far; EmacsBerlin said the same too (I think they self-host; want to see how they're doing it?). Sounds like it's much better now than it was last year
- dto will figure it out and write things up =)
- - bhavin192: Mailing list for meetups (some common prefix or something similar).
- - bhavin192: Update to Code of Conduct (I was hoping to use the same text or page for Emacs APAC meetup)
+ - one-on-one tutorial was nice; finger memory for how to type some of these Lisp expressions
+ - it's better to have that interactivity, I think, since there are plenty of lecture-type resources on the Net
+ - one-on-one is fine, and then you can scale up (1-on-2, etc.) as you become more comfortable with it and see what can help you scale (ex: having them SSH into a shared server with emacsclients and then being able to quickly flip through their buffers so that you can peek over their shoulder or quickly show something?)
- gopar: upcoming podcast recording re: EmacsConf experience
- -
+ - figuring out name
+ - planning to have a little buffer
+ - Hey, do you want to blend that into the Emacs Lisp / Emacs tutorial/workshop idea? Whenever you don't have any content, you can teach people a little more
+
+ -
+ - bhavin192: Mailing list for meetups (some common prefix or something similar).
+ - *let's remember to discuss this and the next point* =)
+ - bhavin192: Update to Code of Conduct (I was hoping to use the same text or page for Emacs APAC meetup)
+ - zaeph: figuring out collaborating via Org Mode
+ - per-project pages make sense if you think about it from the web publishing point of view
+ - bandali: can be a different wiki if you want
+ - zaeph is a little intimidated by the idea of working with the garage door open
+ - there is already a private organizer wiki, so we can use that to incubate things if you want to collaboratively work on notes and stuff
+ - also totally okay to work on things individually and not collectively if you want, and we don't have to figure out workflows that work for everyone or a name that covers everything; sounding official increases expectations and may cause problems
+ -
+ - Next:
+
* January 2, 2020 meeting
:PROPERTIES:
:CUSTOM_ID: january-2-2020-meeting
diff --git a/2020/organizers-notebook.md b/2020/organizers-notebook.md
index 5ccc5d0b..dfb9b719 100644
--- a/2020/organizers-notebook.md
+++ b/2020/organizers-notebook.md
@@ -867,6 +867,44 @@ and run <subtitles/fix.py> like this: `fix.py
# Other useful tidbits
+## Translating timezones
+
+ (setq my/timezones '("America/Toronto" "America/Los_Angeles" "UTC" "Europe/Berlin" "Asia/Kolkata" "Asia/Shanghai" "Asia/Singapore"))
+ (defun my/summarize-times (time timezones)
+ (let (prev-day)
+ (mapconcat
+ (lambda (tz)
+ (let ((cur-day (format-time-string "%a %b %-e" time tz))
+ (cur-time (format-time-string "%H%MH %Z" time tz)))
+ (if (equal prev-day cur-day)
+ cur-time
+ (setq prev-day cur-day)
+ (concat cur-day " " cur-time))))
+ (sort timezones (lambda (a b) (< (car (current-time-zone nil a)) (car (current-time-zone nil b)))))
+ " / ")))
+ (defun my/org-summarize-event-in-timezones ()
+ (interactive)
+ (save-window-excursion
+ (save-excursion
+ (when (derived-mode-p 'org-agenda-mode) (org-agenda-goto))
+ (when (re-search-forward org-element--timestamp-regexp nil (save-excursion (org-end-of-subtree) (point)))
+ (goto-char (match-beginning 0))
+ (let* ((times (org-element-timestamp-parser))
+ (start-time (org-timestamp-to-time (org-timestamp-split-range times)))
+ (msg (format "%s - %s - %s"
+ (org-get-heading t t t t)
+ (my/summarize-times start-time my/timezones)
+ ;; (cond
+ ;; ((time-less-p (org-timestamp-to-time (org-timestamp-split-range times t)) (current-time))
+ ;; "(past)")
+ ;; ((time-less-p (current-time) start-time)
+ ;; (concat "in " (format-seconds "%D %H %M%Z" (time-subtract start-time (current-time)))))
+ ;; (t "(ongoing)"))
+ (org-entry-get (point) "LOCATION"))))
+ (message "%s" msg)
+ (kill-new msg))))))
+
+
## Restarting ikiwiki manually
This is needed when you change the template or if the ikiwiki process gets stuck on something.
diff --git a/2020/organizers-notebook.org b/2020/organizers-notebook.org
index 9a6d42f2..fcb4bbb0 100644
--- a/2020/organizers-notebook.org
+++ b/2020/organizers-notebook.org
@@ -863,6 +863,44 @@ If TALK is not specified, do it in the current buffer."
#+end_src
* Other useful tidbits
+** Translating timezones
+
+#+begin_src emacs-lisp
+ (setq my/timezones '("America/Toronto" "America/Los_Angeles" "UTC" "Europe/Berlin" "Asia/Kolkata" "Asia/Shanghai" "Asia/Singapore"))
+ (defun my/summarize-times (time timezones)
+ (let (prev-day)
+ (mapconcat
+ (lambda (tz)
+ (let ((cur-day (format-time-string "%a %b %-e" time tz))
+ (cur-time (format-time-string "%H%MH %Z" time tz)))
+ (if (equal prev-day cur-day)
+ cur-time
+ (setq prev-day cur-day)
+ (concat cur-day " " cur-time))))
+ (sort timezones (lambda (a b) (< (car (current-time-zone nil a)) (car (current-time-zone nil b)))))
+ " / ")))
+ (defun my/org-summarize-event-in-timezones ()
+ (interactive)
+ (save-window-excursion
+ (save-excursion
+ (when (derived-mode-p 'org-agenda-mode) (org-agenda-goto))
+ (when (re-search-forward org-element--timestamp-regexp nil (save-excursion (org-end-of-subtree) (point)))
+ (goto-char (match-beginning 0))
+ (let* ((times (org-element-timestamp-parser))
+ (start-time (org-timestamp-to-time (org-timestamp-split-range times)))
+ (msg (format "%s - %s - %s"
+ (org-get-heading t t t t)
+ (my/summarize-times start-time my/timezones)
+ ;; (cond
+ ;; ((time-less-p (org-timestamp-to-time (org-timestamp-split-range times t)) (current-time))
+ ;; "(past)")
+ ;; ((time-less-p (current-time) start-time)
+ ;; (concat "in " (format-seconds "%D %H %M%Z" (time-subtract start-time (current-time)))))
+ ;; (t "(ongoing)"))
+ (org-entry-get (point) "LOCATION"))))
+ (message "%s" msg)
+ (kill-new msg))))))
+#+end_src
** Restarting ikiwiki manually