Skip to content

Instantly share code, notes, and snippets.

View ampersanda's full-sized avatar
❤️
.clj

Lucky Pradana ampersanda

❤️
.clj
View GitHub Profile
(ns example.core
(:require [bidi.bidi :as bidi]
[goog.events :as events]
[clojure.string :as cstr]))
(defn start! [on-set-page routes]
(letfn [(handle-route []
(let [uri (cstr/replace js/location.hash "#" "")]
(->> (if-not (empty? uri) uri "/")
@ampersanda
ampersanda / project.clj
Created February 14, 2018 16:18
Project configuration for session-example
(defproject sessiontest "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:dependencies [[org.clojure/clojure "1.5.1"]
[compojure "1.1.8"]
[ring/ring-json "0.3.1"] ;; <= add this
]
:plugins [[lein-ring "0.8.10"]]
:ring {:handler sessiontest.handler/app}
:profiles
@ampersanda
ampersanda / handler.clj
Created February 14, 2018 16:20
Default Clojure Handler for web page
;; block 1
(ns sessiontest.handler
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
;; block 2
;; this is the route part
(defroutes app-routes
(GET "/" [] "Hello World") ;; for /
(route/not-found "Not Found")) ;; 404
@ampersanda
ampersanda / handler.clj
Created February 14, 2018 16:22
Clojure Compojure Added Session Handler
;; block 1
(ns sessiontest.handler
(:use [ring.middleware.json :only (wrap-json-response)]
;; use json response
ring.middleware.session
;; use session
[ring.util.response :only (response)]
;; use response
[hiccup.middleware :only (wrap-base-url)])
;; use hiccup
@ampersanda
ampersanda / core-draw-2.cljs
Last active March 14, 2018 01:58
Medium - Quil-cljs - binding all values
(defn draw-state [state]
(q/background 51)
(let
[max-scale-h (- 1 (/ 1 12)) ;; get percentage of current hour, range value from 0-1
max-scale-m (- 1 (/ 1 60)) ;; get percentage of current minute, range value from 0-1
max-scale-s (- 1 (/ 1 60)) ;; get percentage of current seconds, range value from 0-1
;; above values are half of the actual values, so we need to multiply it with 2π
;; mappings
@ampersanda
ampersanda / figwheel-garden.core.cljs
Created August 7, 2018 10:16 — forked from zehnpaard/figwheel-garden.core.cljs
Minimal setup to get lein-garden auto-compile and Figwheel auto-load working with Reagent
(ns figwheel-garden.core
(:require
[reagent.core :as r]))
(defn my-app []
[:div
[:h1 "Hello Reagent!"]
[:p "Hello Garden!"]
[:p.my-class "Hello My-Class!"]])
(ns my.core
(:require [quil.core :as q :include-macros true]
[quil.middleware :as m]))
(def c 6)
(defn setup []
(q/frame-rate 60)
(q/color-mode :hsb)
(q/background 255)
@ampersanda
ampersanda / deps.edn
Created June 9, 2019 14:25 — forked from athos/deps.edn
Try `clojure -Sdeps '{:deps {hello-clojure {:git/url "https://gist.github.com/athos/b68b15b08efedffaf14d8c020b125202" :sha "1c9a05106171f97f9b8e8ac8f58c7bd8dbe021f9"}}}' -m hello-clojure` on your terminal
{:paths ["."]
:deps {clansi {:mvn/version "1.0.0"}}}
#!/usr/bin/env bash
# Utility to suggest a new package to try from Homebrew
# Simply run and it will give you a new package to try out
files=(/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/*)
total=${#files[@]}
rando=$((RANDOM % total))
package=$(basename "${files[rando]}" .rb)
printf "\\nTry out a random homebrew package!\\n\\n"
brew info "${package}"
@ampersanda
ampersanda / router_navigator.dart
Created September 1, 2019 16:32
simple flutter navigator replacement with widget class
import 'package:flutter/cupertino.dart';
class RouterNavigator {
RouterNavigator._();
static Future<T> push<T>(BuildContext context,
{Widget widget,
String title,
bool fullscreenDialog = false,
maintainState = true}) async {