<commit_before>(ns conway.devcards.slides
  (:require-macros
    [devcards.core :as dc :refer [defcard defcard-om]])
  (:require [slides.slides :as slides]
            [conway.core :refer [app-component]]))

(defonce slides-config
         (atom {:slides [{:main-slide? true}
                         {:title "me" :items ["Full Stack Software Engineer, working at Telenor Digital (Data Insights)"
                                              "Originally from the Basque Country, 5 years in Norway"
                                              "Working with Clojure + Clojurescript for the last 8 months (so much fun!)"
                                              "Daily tools: AWS, Terraform, Ansible, Kafka, Gerrit, and many more!"]}
                         {:title "OM" :items ["React Wrapper in cljs. Even faster than React! Immutable data structures"
                                              "Application state is stored in a global atom"
                                              "Components are functions from app state to DOM elements"
                                              "Cursors. Only render if necessary."
                                              "OM/React components lifecycle (IWillMount, IRender, IDidUpdate,...)"
                                              "Reusable components"]}
                         {:title "Conway's Game of Life"
                          :items ["Zero-player game, where its evolution is determined by its initial state, requiring no further input. Possible to create patterns."
                                  "A cell will die, or become alive, depending on the state of its neighbors in the previous generation."
                                  "Show me sOMe code! (conway.core)"]
                          :extra-component slides/slide1-extra
                          :extra {:state {:game-state #{[-1 -1] [0 -1] [1 -1]
                                                        [-2 0] [-1 0] [0 0]}
                                          :old-state #{}}
                                  :opts {:opts {:cell-size 20
                                                :grid {:x 4 :y 4}
                                                :speed-ms 1000}}}}
                         {:title "Figwheel" :items ["Live reloading (cljs + css)"
                                                    "How does it work?"
                                                    "Show Figwheel in action!"
                                                    "And now what, what if we want to visualize a component in different states at the same time? Devcards to the rescue!"]}
                         {:title "Devcards" :items ["Developed by the same guy as Figwheel"
                                                    "Useful for QA and testing"
                                                    "Also for developing components"
                                                    "Show devcards for conways namespaces!"
                                                    "Figwheel also works!"
                                                    "I guess you already realized, the slides are also inside a devcard ;)"]}
                         {:last-slide? true}
                         {:hiring-slide? true}]
                :selected-slide 0}))

(doseq [slide-obj (:slides @slides-config)]
  (defcard-om slide
              slides/slide-component
              slide-obj
              {}
              {}))<commit_msg>Add clojurescript slide<commit_after>(ns conway.devcards.slides
  (:require-macros
    [devcards.core :as dc :refer [defcard defcard-om]])
  (:require [slides.slides :as slides]
            [conway.core :refer [app-component]]))

(defonce slides-config
         (atom {:slides [{:main-slide? true}
                         {:title "me" :items ["Full Stack Software Engineer, working at Telenor Digital (Data Insights)"
                                              "Originally from the Basque Country, 5 years in Norway"
                                              "Working with Clojure + Clojurescript for the last 8 months (so much fun!)"
                                              "Daily tools: AWS, Terraform, Ansible, Kafka, Gerrit, and many more!"]}
                         {:title "Clojurescript" :items ["Clojure for the browser"
                                                         "Immutable data structures"
                                                         "Functional"
                                                         "Namespaces"
                                                         "Great community (Clojurians slack channel,...)"
                                                         "React Wrappers: OM, Reagent, Quiescent,..."]}
                         {:title "OM" :items ["React Wrapper in cljs. Even faster than React! Reference equality check"
                                              "Application state is stored in a global atom"
                                              "Components are functions from app state to DOM elements"
                                              "Cursors. Only render if necessary."
                                              "OM/React components lifecycle (IWillMount, IRender, IDidUpdate,...)"
                                              "Components are reusable"]}
                         {:title "Conway's Game of Life"
                          :items []
                          :extra-component slides/slide1-extra
                          :extra {:state {:game-state #{[-1 0] [-1 1]
                                                        [0 -1] [0 0] [1 0]}
                                          :old-state #{}}
                                  :opts {:opts {:cell-size 10
                                                :grid {:x 40 :y 40}
                                                :speed-ms 500}}}}
                         {:title "Figwheel" :items ["Live reloading (cljs + css)"
                                                    "How does it work?"
                                                    "Show Figwheel in action!"
                                                    "And now what, what if we want to visualize a component in different states at the same time? Devcards to the rescue!"]}
                         {:title "Devcards" :items ["Developed by the same guy as Figwheel"
                                                    "Useful for QA and testing"
                                                    "Also for developing components"
                                                    "Show devcards for conways namespaces!"
                                                    "Figwheel also works!"
                                                    "I guess you already realized, the slides are also inside a devcard ;)"]}
                         {:last-slide? true}
                         {:hiring-slide? true}]
                :selected-slide 0}))

(doseq [slide-obj (:slides @slides-config)]
  (defcard-om slide
              slides/slide-component
              slide-obj
              {}
              {}))
{'fraction_non_alphanumeric': 0.0776536312849162, 'fraction_numerical': 0.006564245810055866, 'mean_word_length': 0.9090909090909091, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 97, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1682021', 'n_tokens_mistral': 1446, 'n_tokens_neox': 1330, 'n_words': 535}