Skip to content

Instantly share code, notes, and snippets.

View Charlynux's full-sized avatar

Charles Fourdrignier Charlynux

View GitHub Profile
(ns duplicates
(:require [clojure.data.csv :as csv]
[clojure.java.io :as io]
[clojure.string :as str]
[spec-provider.stats :as stats]
[clojure.pprint :as pp]))
(defn csv-data->maps [csv-data]
(map zipmap
(->> (first csv-data)
@Charlynux
Charlynux / README.md
Created October 31, 2021 17:16
Comment debugger un WAR dans un Wildfly standalone ?

Configurez Wildfly

Dans le fichier standalone.conf.bat (ou standalone.conf si vous lancez le .sh), décommentez :

set "JAVA_OPTS=%JAVA_OPTS% -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n"

ou (non testé)

@Charlynux
Charlynux / README.md
Last active October 28, 2019 18:36
Clojure core.async exception handling

Starting with a basic core.async snippet, introducing exceptions in producer/consumer code allows me to explore how to manage those exceptions.

(require '[clojure.core.async :as a :refer (<! <!! >! chan go)])

(defn produce-values [ch]
  (go
    (let [result 
          (loop [n 0]
            (if (< n 10)
@Charlynux
Charlynux / README.md
Last active October 23, 2019 13:44
Learning Clojure core.async

Mon apprentissage de core.async

J'ai décidé de pencher un peu sérieusement sur [core.async][1]. L'objectif de ce gist est d'accompagner mon apprentissage et ma compréhension.

core.async, c'est LA librairie de gestion de l'asynchrone en Clojure. Comme dans le langage Go, elle s'appuie sur le concept des CSP (Communicating Sequential Processes).

En matière d'asynchrone, je me suis souvent appuyé sur RxJS et les observables. Je dois avouer que ce passage à un autre paradigme n'est pas facile.

Les bases

@Charlynux
Charlynux / 00-no-lenses-simple.js
Last active October 6, 2018 08:10
Some snippets around Lenses
function update(state) {
return {
...state,
price: changePrice(state.price)
};
}
// Package definition and imports
@Controller
public class LoggingController {
@GetMapping("/")
public String readValues(Request request) {
String cookieValue = readCookieValue(request);
String headerValue = readHeaderValue(request);
@Charlynux
Charlynux / check-response.clj
Created January 9, 2018 12:13
Play with clojure-spec to validate server responses
(require '[clojure.spec.alpha :as s])
(s/def ::response-ok
(s/and
#(= (:status %) 200)
#(= (get-in % [:body :message]) "OK")))
(s/def ::response-not-found #(= (:status %) 404))
(s/explain-data ::response-ok { :status 200 :body { :message "OK" }})
@Charlynux
Charlynux / get.js
Created September 22, 2017 07:55
Playing with rxjs AjaxObservable
import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/dom/ajax";
import "rxjs/add/operator/map";
import "rxjs/add/operator/catch";
import "rxjs/add/observable/of";
Observable.ajax
// no need of 'credentials: "same-origin"'
.get("/meetings/index", {
Accept: "application/json",
@Charlynux
Charlynux / Get commit ids
Created February 25, 2016 16:30
Git commands
git log --pretty=format:"%h" --grep=OSIUI-49 | sed -re :a -e 'N;s/(.+)\n/\1" /;ba'