#+TITLE: Extreme Tech Seminar #+AUTHOR: Correl Roush #+EMAIL: correl@gmail.com #+OPTIONS: H:1 toc:nil ^:nil #+STARTUP: beamer indent #+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_act(Act) %4BEAMER_col(Col) %8BEAMER_opt(Opt) #+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.0 :ETC #+LaTeX_CLASS: beamer #+LaTeX_CLASS_OPTIONS: [presentation,aspectratio=169] #+begin_src emacs-lisp :exports results :results silent (defun org-get-scheduled-end-time (pom &optional inherit) (let ((parse-end-time (lambda (time) (let ((ts-regexp (concat org-ts-regexp1 "\\(-\\([0-9]\\{1,2\\}\\):\\([0-9]\\{2\\}\\)\\)"))) (when (string-match ts-regexp time) (org-parse-time-string (string-join (list (string-join (list (match-string 2 time) (match-string 3 time) (match-string 4 time)) "-") (match-string 5 time) (string-join (list (match-string 10 time) (match-string 11 time)) ":")) " "))))))) (let* ((time (org-entry-get pom "SCHEDULED")) (end-time (funcall parse-end-time time))) (if end-time (apply 'encode-time end-time) (org-get-scheduled-time pom inherit))))) (defun xts-announcement (location language) (print (string-join `("#+LATEX: \\fontspec{Antonio-Bold}\\color{trek@lightyellow}" "#+LATEX: \\Huge" "#+BEGIN_CENTER" "THE EXTREME TECH SEMINAR" "#+END_CENTER" "#+LATEX: \\Large\\color{trek@lightorange}" "#+BEGIN_CENTER" ,(concat (format-time-string "%a, %B %e @%l:%M%p" (org-get-scheduled-time (point))) (format-time-string "-%l:%M%p" (org-get-scheduled-end-time (point)))) "#+END_CENTER" "#+LATEX: \\normalsize\\color{trek@lightblue}" "#+BEGIN_CENTER" "Come join us as we study Bruce Tate's book, \"Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages\"." "#+END_CENTER" "#+LATEX: \\small\\color{trek@darkorange}" "#+BEGIN_CENTER" ,(concat "THIS WEEK: " language) "#+END_CENTER" "#+LATEX: \\small\\color{trek@midblue}" "#+BEGIN_CENTER" "pragprog.com/book/btlang\\\\" "COUPON CODE: ExtremeTech7\\\\" "#+END_CENTER" "#+LATEX: \\footnotesize\\color{red}" "#+BEGIN_CENTER" "FOOD WILL BE PROVIDED" "#+END_CENTER") "\n"))) #+end_src * Ruby SCHEDULED: <2015-05-27 Wed 18:00-20:00> #+begin_src emacs-lisp :exports results :results raw (xts-announcement "Franklin Training Room" "The object-oriented langauge, \"Ruby\"") #+end_src * Io SCHEDULED: <2015-06-10 Wed 18:00-20:00> #+begin_src emacs-lisp :exports results :results raw (xts-announcement "Franklin Training Room" "The prototype language, \"Io\"") #+end_src * Prolog SCHEDULED: <2015-06-24 Wed 18:00-20:00> #+begin_src emacs-lisp :exports results :results raw (xts-announcement "Franklin Training Room" "The logic programming language, \"Prolog\"") #+end_src * Scala SCHEDULED: <2015-07-08 Wed 18:00-20:00> #+begin_src emacs-lisp :exports results :results raw (xts-announcement "Franklin Training Room" "The functional/object-oriented hybrid JVM language, \"Scala\"") #+end_src * Erlang SCHEDULED: <2015-07-29 Wed 18:00-20:00> #+begin_src emacs-lisp :exports results :results raw (xts-announcement "Franklin Training Room" "The concurrent, functional language, \"Erlang\"") #+end_src * Closure SCHEDULED: <2015-08-12 Wed 18:00-20:00> #+begin_src emacs-lisp :exports results :results raw (xts-announcement "Franklin Training Room" "The JVM lisp, \"Closure\"") #+end_src * Haskell SCHEDULED: <2015-08-26 Wed 18:00-20:00> #+begin_src emacs-lisp :exports results :results raw (xts-announcement "Franklin Training Room" "The pure functional language \"Haskell\"") #+end_src