(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
(ns example.errors) | |
(defn clean-address [params] | |
"Ensure (params :address) is present" | |
(if (empty? (params :address)) | |
[nil "Please enter your address"] | |
[params nil])) | |
(defn clean-email [params] | |
"Ensure (params :email) matches *@*.*" |
(ns ratelimit | |
"Implement rate limiting using a token bucket" | |
(:require [clojure.core.async :as async :refer [<!! >! alts! go chan dropping-buffer close! timeout]])) | |
(defprotocol TokenBucket | |
(take-token [this]) | |
(release [this])) | |
(defn- ->period-ms [p] | |
(if (keyword? p) |
#### HA Proxy | |
// PROXY BASED ON SUB-DOMAIN | |
frontend public | |
bind *:80 | |
acl is_websocket hdr_end(host) -i ws.example.com | |
use_backend ws if is_websocket | |
default_backend www | |
(ns om-transition.core | |
(:require [om.core :as om :include-macros true] | |
[om.dom :as dom :include-macros true])) | |
(enable-console-print!) | |
(def ctg (aget js/React "addons" "CSSTransitionGroup")) | |
(def app-state (atom ["test"])) |
{- | |
As seen on: http://danielsz.github.io/2014/02/28/The-pleasantness-of-Om/ | |
Additional feature: <SPACE> and Time advance | |
Missing feature: Randomizer for List | |
-} | |
import Keyboard | |
-- Model | |
type Testimonial = { shopName:String, | |
shopOwner:String, |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
import javafx.beans.property.SimpleBooleanProperty; | |
import javafx.geometry.Pos; | |
import javafx.scene.control.Button; | |
import javafx.scene.control.Label; | |
import javafx.scene.layout.HBox; | |
public class ToggleSwitch extends HBox { | |
private final Label label = new Label(); |
(ns metosin.common.edn | |
#+clj | |
(:require [clj-time.format :as f]) | |
#+cljs | |
(:require [cljs-time.format :as f] | |
cljs.reader) | |
#+clj (:import [org.joda.time DateTime LocalDate])) | |
;; | |
;; #DateTime tagging |
/* | |
##Device = Desktops | |
##Screen = 1281px to higher resolution desktops | |
*/ | |
@media (min-width: 1281px) { | |
/* CSS */ | |