Skip to content

Instantly share code, notes, and snippets.

Guillermo Winkler guilespi

Block or report user

Report or block guilespi

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
View valid-doc.clj
(defmethod validation/valid-field? :document-MX
[{value :value}]
(let [match (re-find #"(?i)(^[a-z]{2})([a-z])([a-z])(\d{6})(H|M)([a-z]{2})([a-z]{3})(\d{2})$" value)]
match))
(defmethod validation/valid-field? :document-UY
[{value :value}]
(when-let [[_ number digit] (re-find #"^(\d{7})-(\d)$" value)]
(let [m [2 9 8 7 6 3 4]
c (map #(utils/str->int (str %)) number)
View gist:10545226
;; Datomic example code
(use '[datomic.api :only (db q) :as d])
;; ?answer binds a scalar
(q '[:find ?answer :in ?answer]
42)
;; of course you can bind more than one of anything
(q '[:find ?last ?first :in ?last ?first]
"Doe" "John")
View mapping.clj
(defn validate-mappings
"Validates each mapped import is for an
existent field in the specified company"
[fields headers mappings]
(letfn [(found? [list element] (< (.indexOf list element) 0))]
(filter (fn [[header field]]
(or (found? headers header)
(found? fields field)))
mappings)))
View memo.md
@guilespi
guilespi / dec2rom.clj
Last active Dec 31, 2015
decimal to roman
View dec2rom.clj
(def conv-table (sorted-map 1 :I
4 :IV
5 :V
9 :IX
10 :X
40 :XL
50 :L
90 :XC
100 :C
400 :CD
@guilespi
guilespi / parallel-words.clj
Created Nov 13, 2013
Split a string into words, parallel implementation using clojure fold
View parallel-words.clj
(defn maybe-word
[s]
(if (= "" s) [] [s]))
(defprotocol WordState
(append-chunk [this chunk] "Append a chunk to current word state")
(append-segment [this segment] "Append a segment to current word state")
(to-word-list [this] "Returns the state as a list of words"))
View mutagenesis.R
library(ggplot2)
library(reshape2)
results <- read.csv("/Users/guilespi/Downloads/practico 3 - datos - mutagenesis.csv")
results$NroGrupo <- paste(results$Grupo, ".", results$Subgrupo)
timedMeasures <- melt(results, id.vars = c("Grupo", "Subgrupo", "NroGrupo", "Hongo", "Distancia", "Potencia"), value.name="Colonias", variable.name="Tiempo")
ggplot(timedMeasures, aes(x = Tiempo, y = Colonias, colour = NroGrupo)) + geom_line(aes(group = NroGrupo))
results$sobrevida <- (results$t5 / results$t0) * 100
ggplot(data=results, aes(x=NroGrupo, y=sobrevida, fill=Potencia)) +
@guilespi
guilespi / analisis1.clj
Created Jul 30, 2013
el porcentaje de egresados es un bolaso si no contás cuantas veces la gente rinde una materia, estamos hablando de % de aprobación no de egreso
View analisis1.clj
(defn analisis1
[students approval-rate]
(let [total (count students)
expected-approvals (* total approval-rate)]
(loop [examined students iterations 0]
(let [remaining (- total (count examined))]
(if (< remaining expected-approvals)
(let [approved (* (count examined) 0.1)]
(recur (drop (int approved) examined) (inc iterations)))
View redirect.php
<?php
//Main script settings
$CALL_ERROR_MSG = "Sorry, but I could not connect your call. Please try again later";
$ALT_CALLER_ID = "";
if (substr($CALLER_ID, 0, 3)=="011") {
$CALLER_ID = "00" . substr($CALLER_ID, 3);
}
@guilespi
guilespi / census2011.r
Created May 18, 2013
Census data 2011
View census2011.r
> viviendas <- read.table("Viviendas.dat", header=T, sep="\t")
> head(viviendas)
DPTO LOC SECC SEGM VIVID VIVVO01 VIVVO03 VIVVO04 VIVDV01 VIVDV02 VIVDV03 VIVDV05 VIVDV06 VIVDV07 VIVHV01 VIVHV01_1 CATEVIV
1 1 20 1 1 1 9 3 2 0 0 0 0 0 0 0 0 0
2 1 20 1 1 2 1 4 0 0 0 0 0 0 0 0 0 0
3 1 20 1 1 3 3 1 0 1 1 1 1 1 1 1 1 1
4 1 20 1 1 4 3 1 0 1 1 1 1 1 1 1 1 1
5 1 20 1 1 5 3 1 0 1 1 1 1 1 1 1 1 1
6 1 20 1 1 6 1 6 0 0 0 0 0 0 0 0 0 0
You can’t perform that action at this time.