Skip to content

Instantly share code, notes, and snippets.

View arnaudbos's full-sized avatar
😶‍🌫️

Arnaud Bos arnaudbos

😶‍🌫️
View GitHub Profile
@arnaudbos
arnaudbos / compress_pdf.md
Created February 11, 2022 10:05 — forked from ahmed-musallam/compress_pdf.md
How to compress PDF with ghostscript

How to compress PDF using ghostscript

As a developer, it bothers me when someone sends me a large pdf file compared to the number of pages. Recently, I recieved a 12MB scanned document for just one letter-sized page... so I got to googlin, like I usually do, and found ghostscript!

to learn more abot ghostscript (gs): https://www.ghostscript.com/

What we are interested in, is the gs command line tool, which provides many options for manipulating PDF, but we are interested in compressign those large PDF's into small yet legible documents.

credit goes to this answer on askubuntu forum: https://askubuntu.com/questions/3382/reduce-filesize-of-a-scanned-pdf/3387#3387?newreg=bceddef8bc334e5b88bbfd17a6e7c4f9

@arnaudbos
arnaudbos / bench_filing.clj
Created November 10, 2020 08:01
[clj] Combine bench and profiling
(require '[clj-async-profiler.core :as prof] '[criterium.core :as bench])
(prof/profile {:return-file true}
(bench/bench
(merge {:a 1} {:b 2})))
; Execution time mean : 284.172365 ns
; /tmp/clj-async-profiler/results/03-cpu-flamegraph.svg
(prof/profile {:return-file true}
(bench/bench
@arnaudbos
arnaudbos / birthdays.clj
Created June 25, 2020 15:27
I got sidetracked
(defonce full-date-pattern (DateTimeFormatter/ofPattern "yyyy/MM/dd"))
(defonce birthday-pattern (DateTimeFormatter/ofPattern "MM/dd"))
(defn is-birthday? [day birthday]
(string/ends-with?
birthday
(.format day birthday-pattern)))
(with-test
#'is-birthday?
@arnaudbos
arnaudbos / meetup19.md
Created April 8, 2020 14:39
[COVID19] Meetup virtuel, webinaire ou hibernation ?

Bonjour à tous,

J'aimerais collecter les avis de personnes intéressées par la (sur)vie des meetups pendant la pandémie de COVID19, et plus particulièrement pendant la période de confinement.

Au Toulouse JUG nous avons eu plusieurs questions à ce sujet :

Je me demandais si tu prévoyais d'organiser un JUG sous forme de webinaire pour le mois d'avril ?

Pensez-vous organiser un JUG par vidéo conférence du coup ?

│ init 2020-03-04T10:32:20.505348951Z time="2020-03-04T10:32:20Z" level=info msg="Creating a docker executor" │
│ init 2020-03-04T10:32:20.505383307Z time="2020-03-04T10:32:20Z" level=info msg="Executor (version: vHEAD+unknown, build_date: 2020-02-28T23:35:16Z) initialized (pod: default/exp-02-lpsng-1424268510) with tem │
│ init 2020-03-04T10:32:20.505401758Z time="2020-03-04T10:32:20Z" level=info msg="Start loading input artifacts..." │
│ init 2020-03-04T10:32:20.505405309Z time="2020-03-04T10:32:20Z" level=info msg="Downloading artifact: unzipped" │
│ init 2020-03-04T10:32:20.505408571Z time="2020-03-04T10:32:20Z" level=info msg="S3 Load path: /argo/inputs/artifacts/unzipped.tmp, key: exp-02-lpsng/exp-02-lpsng-733229253/un
@arnaudbos
arnaudbos / Question
Created July 3, 2019 12:30
Demande informations métier développeur d'applications
Bonjour,
J'ai trouvé votre adresse courriel sur votre site Internet. en cherchant le Java User Group de Toulouse, je me permets de vous contacter.
Je m'appelle ****** et je suis actuellement en formation d'orientation à Vidéo ¾.
Je souhaite m'orienter vers le métier de développeur, et, après m'être renseigné, je cherche à obtenir des compléments d'information auprès de personnes exerçant ce métier.
J'apprécierais que vous preniez le temps de répondre aux questions suivantes :
Quelles sont les qualités nécessaires pour exercer ce métier ?
Pourriez vous me décrire une journée-type ?
Quelles sont les conditions de travail (horaires, déplacements, heures supplémentaires, astreinte…) ?
Quelles technologies utilisez-vous (langages, frameworks, environnements de test ?
@arnaudbos
arnaudbos / Archie.java
Last active September 23, 2019 16:54
Quiz Archive
public class Archie {
public static void main(String[] args) {
Pattern p = Pattern.compile(args[0]);
Matcher m = p.matcher(args[1]);
int count = 0;
while (m.find()) count++;
System.out.println(count);
}
}
graph TD
classDef diamond fill:#e7f2f8,stroke:#e7f2f8,stroke-width:2px;
classDef squared fill:#efe7bf,stroke:#F3D655,stroke-width:2px;
classDef rounded fill:#e7f2f8,stroke:#00afef,stroke-width:2px;
sourcing(Sourcing) --> screening(Phone/Mail contact)
screening --> monkeypatchable{Bon profil ?}
application(Candidature) --> monkeypatchable
monkeypatchable -->|Oui| first(Premier entretien)
monkeypatchable -->|Meh| should_call{Candidature ?}
should_call -->|Non| eof[fa:fa-ban EOF]
@arnaudbos
arnaudbos / config.edn
Last active January 17, 2023 02:07
Clojure embedded-mongodb
{
:db-version "3.2.13"
:db-port 27017
:db-data-dir "/tmp/mongo-data-files"
}
@startuml
(*) --> if "MonkeyPatchable?" then
-right->[YES] "Contact téléphonique"
-right-> if "Match?" then
-right-> [YES] "Entretien contact" as e1
else
-left-> [NO] (*)