Skip to content

Instantly share code, notes, and snippets.

Bahman Movaqar bahmanm

Block or report user

Report or block bahmanm

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@bahmanm
bahmanm / gradle-init.sh
Last active Jan 30, 2019
Groovy and Spock (with Gradle)
View gradle-init.sh
#!/usr/bin/env bash
###
# Initialises a Gradle project with Groovy and Spock.
#
# How To Use?
#
# 1. Save the file, e.g. `gradle-init.sh`
# 2. Make it executable: `$ chmod +x gradle-init.sh`
# 3. Initialise the project: `$ ./gradle-init.sh YOUR_PROJECT_NAME`
@bahmanm
bahmanm / list-group-by.ml
Created Nov 20, 2015
OCaml `List.group_by`
View list-group-by.ml
let group_by (f : 'a -> 'b) (ll : 'a list) : ('b, 'a list) Hashtbl.t =
List.fold_left
(fun acc e ->
let grp = f e in
let grp_mems = try Hashtbl.find acc grp with Not_found -> [] in
Hashtbl.replace acc grp (e :: grp_mems);
acc)
(Hashtbl.create 100)
ll;;
@bahmanm
bahmanm / shapeofthedate.groovy
Last active Nov 17, 2017
Convert dates to alien looking plots using partial sums - https://github.com/bahmanm/datedreamer
View shapeofthedate.groovy
//
// This has evolved into a fully-fledged project called DateDreamer.
// Please check the project's page for releases and more information.
// https://github.com/bahmanm/datedreamer
//
@Grab(group='com.github.yannrichet', module='JMathPlot', version='1.0.1')
@Grab(group='org.apache.commons', module='commons-math3', version='3.6.1')
import static java.lang.Math.*
import org.apache.commons.math3.complex.Complex
View grab-packt.groovy
/**
* @author Bahman Movaqar <Bahman AT BahmanM.com>
*/
@Grab('org.jsoup:jsoup:1.8.2')
import static org.jsoup.Jsoup.parse
def cookieManager = new CookieManager(null, CookiePolicy.ACCEPT_ALL)
CookieHandler.setDefault(cookieManager)
def doc = parse(
new URL('https://www.packtpub.com/packt/offers/free-learning').text
View grab-packt-racket.rkt
#lang racket
;;;
;;; Author: Bahman Movaqar <Bahman AT BahmanM.com>
;;;
(require net/url)
(require sxml)
(require net/uri-codec)
(require net/http-client)
(require (planet neil/html-parsing))
(require net/cookies)
@bahmanm
bahmanm / clojure-tricks.clj
Created Apr 15, 2012
Clojure tricks and useful functions/macros
View clojure-tricks.clj
(defn getfn [fname]
"Gets a function by its fully qualified name."
(let [fsym (symbol fname)
nsym (symbol (namespace fsym))]
(require nsym)
(resolve fsym)))
(defn interpolate [s vals]
"Returns the interpolation of string 's' with a map of key/values."
;Keys in 's' are marked with #{key-name} syntax.
@bahmanm
bahmanm / csv-load-and-process.clj
Created Aug 13, 2012
Processing CSV contents
View csv-load-and-process.clj
; Suppose you have a CSV file with the first row being the column names
; and the rest being data. Using the following snippet you can process
; the contents passing each row's contents as keyword arguments to
; another function.
;
; Example CSV structure:
; +----------------------------------------------------------+
; | customer-code | name | e-mail | address | phone |
; +----------------------------------------------------------+
;
@bahmanm
bahmanm / lazy-list-combinations.scm
Created Jan 4, 2015
Computes the combinations of any number of given lists as a lazy sequence.
View lazy-list-combinations.scm
; Copyright Bahman Movaqar <Bahman AT BahmanM.com>
; Source -> https://github.com/bahmanm/touka/blob/master/misc.scm
; Tests -> https://github.com/bahmanm/touka/blob/master/tests/misc-tests.scm
;; Collects the CAR of each list in the given list of lists!
(define (cars list-of-lists)
(map car list-of-lists))
;; Collects the CDR of each list in the given list of lists!
(define (cdrs list-of-lists)
@bahmanm
bahmanm / test-runner.el
Created Dec 10, 2014
Simple Maven + JUnit test runner for Emacs.
View test-runner.el
;;; A quick way to run JUnit tests:
;;; `C-x t u` runs all the test cases in a unit.
;;; `C-x t c` runs a single test case.
;;;
;;; Simply add the snippet at the end of `init.el` or `.emacs`.
;;; NOTE: It assumes you are using projectile to manage the project.
;;;
;;; By Bahman Movaqar
;; runs all test cases in the current class
@bahmanm
bahmanm / simple-constraint-problem.groovy
Last active Aug 29, 2015
Solve the constraint equation: A + B = CD - E = FG
View simple-constraint-problem.groovy
/*
* Solve the equation A + B = CD - E = FG
* WHERE A..G in [0,1,2,3,7,8,9]
* AND CD = 10*C + D
* AND FG = 10*F + G
* AND C not 0 and F not 0
* AND different letters are different digits
*/
[0,1,2,3,7,8,9].permutations().findAll {
You can’t perform that action at this time.