Skip to content

Instantly share code, notes, and snippets.

;; Running this script in bash:
curl -s http://api.football-data.org/v1/competitions/436/leagueTable | jq '.' | tr -d , | grep teamName | awk -F":" 'BEGIN {print "{\n"} {print NR, $2} END {print "\n}"}'
;; Results in a clojure map:
{
1 "Real Madrid CF"
2 "FC Barcelona"
3 "Sevilla FC"
@mmzsource
mmzsource / gist:84e3ad3e854420148348d71507fd6512
Last active February 6, 2017 19:16
League Tables with clojure boot
#!/usr/bin/env boot
(set-env! :dependencies '[[clj-http "2.3.0"] [cheshire "5.7.0"]])
(require '[clj-http.client :as client])
(require '[clojure.pprint :as pp])
;; Fifa country codes - https://en.wikipedia.org/wiki/List_of_FIFA_country_codes
(def countries [
{:id 426 :key :ENG :description "England"}
{:id 436 :key :ESP :description "Spain"}
@mmzsource
mmzsource / CalculateDurationInWeeks.clj
Last active February 18, 2017 15:39
Clojure Boot repl session - Calculate number of weeks between 2 dates
boot repl
(set-env! :dependencies '[[clojure.java-time "0.2.2"]])
(require '[java-time :as t])
(t/time-between (t/local-date 2014 9 27) (t/local-date 2017 2 18) :weeks)
@mmzsource
mmzsource / soccer-bets-spec-test.clj
Last active April 20, 2017 07:54
Trying clojure.spec to check, document & generate a league-table datastructure
;; REPL session to play around with clojure.spec
;; ------------- START INITIAL SETUP -------------
;; assume these dependencies are specified in the repl environment:
;; [org.clojure/clojure "1.9.0-alpha15"]
;; [org.clojure/test.check "0.9.0"]
;; My leiningen setup:
;; cat ~/.lein/profiles.clj
@mmzsource
mmzsource / bezier-in-clojure.clj
Last active June 30, 2017 08:49
Code belonging to and explained in my "Bézier in Clojure" blog
;;
;; Assume leiningen + lein-try plugin installed and working
;;
;; Fire up a repl with:
;;
;; lein try incanter "1.5.7"
;;
(require '[incanter.core :as incanter])
(require '[incanter.charts :as charts])
@mmzsource
mmzsource / diskusage
Last active February 5, 2018 22:04
Disk usage
#!/bin/bash
#
# This is a script to log (and eventually monitor) diskusage on a filesystem.
# It will write the disk usage to a logfile.
# The logfile will never grow larger than MAX_LINES number of lines.
#
# The script is 'gnu awk' specific. GNU AWK is available on mac (brew)
# and ubuntu (apt-get) as the package 'gawk'.
#
(require '[clojure.string :as s])
(declare print-maze)
;; Maze GENERATION
(defn create-grid [rows cols]
(vec (repeat rows (vec (repeat cols #{})))))
(defn north-of [[row col]] [(dec row) col])
(defn south-of [[row col]] [(inc row) col])
@mmzsource
mmzsource / babashka-football-clojure-asciinema.md
Last active February 20, 2021 20:36
Babashka script to retrieve the current league tables of some popular football competitions.

asciicast

@mmzsource
mmzsource / babashka-maze-solving-clojure-asciinema.md
Last active February 26, 2021 23:21
coding dojo - maze solving

asciicast

#!/usr/bin/env bb
;;
;; This is a babashka script to calculate the duration a github issue spent in
;; each github project board column. It will output the results in a few
;; different views, where this view is maybe most interesting:
;;
;; | :iss-title | :iss-html | Total | To do | In Progress | Done |
;; |--------------------+--------------+-------+-------+-------------+------+
;; | your issue 1 title | issue 1 html | 100 | 25 | 50 | 25 |