Skip to content

Instantly share code, notes, and snippets.

Avatar
🎯
Focusing

Gabriele Lana gabrielelana

🎯
Focusing
View GitHub Profile
View functional-ladder.md

LEGEND

  • x-- means: I know about it
  • xx- means: I understand it
  • xxx means: I can explain it

NOVICE

CONCEPTS

@gabrielelana
gabrielelana / io.hs
Last active Oct 10, 2019
IO Inside - Welcome to the Real World
View io.hs
import Debug.Trace (trace)
-- Try to implement and use a `putString` function without the RW and
-- see the behaviour of calling it and calling it multiple times
-- type RW = RW
type RW = Integer
type MIO a = (RW -> (a, RW))
@gabrielelana
gabrielelana / what-the-beam.md
Last active May 10, 2018
Descrizione del corso "What the BEAM: Introduction to the Erlang/Elixir Virtual Machine"
View what-the-beam.md
  • Title: What the BEAM: Introduction to the Erlang/Elixir Virtual Machine

  • Abstract: Per sfruttare al massimo Erlang/Elixir non é sufficiente conoscere il linguaggio, la semantica di questi linguaggi é indissolubilmente legata al loro runtime: la virtual machine BEAM. Un corso di due giorni per esplorare la BEAM, le sue carateristiche, come sfruttarla al meglio e cosa evitare. Il corso é rivolto a tutte quelle persone che hanno messo gli occhi su Erlang/Elixir e vogliono fare un passo avanti per poter realizzare software production ready.

  • What: Il corso durerá due giorni e sará strutturato come segue

    • Primo giorno
      • Overview sulla BEAM
      • Cosa è un nodo Erlang/Elixir
      • Processi
        • Cosa sono
@gabrielelana
gabrielelana / Foundation-Of-Functional-Programming-20180519.md
Last active Apr 16, 2020
Descrizione della terza giornata del corso "Foundation of Functional Programming: Theory and Practice"
View Foundation-Of-Functional-Programming-20180519.md

NOTA: Questa é la terza giornata di un percorso formativo, per partecipare non é strettamente obbligatorio aver partecipato alle due giornate precedenti ma é necessaria la conoscenza degli argomenti trattati in questo PDF

  • Title: Foundation of Functional Programming: Theory and Practice

  • Abstract: Teoria delle categorie, morfismi, algebre, monoidi, semigruppi, funtori e ovviamente monadi! Dominare la programmazione funzionale per poterla sfruttare al massimo passa da una conoscenza teorica che è difficile da distillare partendo dalle disparate risorse ad oggi esistenti. Durante il corso verranno spiegati questi concetti in maniera rigorosa ma con frequenti riferimenti pratici per rendere il tutto più digeribile e comprensibile. L’obiettivo è quello di ottenere delle basi teoriche sufficienti per poter riconoscere e usare i costrutti della programmazione funzionale in maniera confidente ed efficace.

  • What: Questa terza

@gabrielelana
gabrielelana / Foundation-Of-Functional-Programming-201804.md
Created Mar 7, 2018
Descrizione del corso "Foundation of Functional Programming: Theory and Practice"
View Foundation-Of-Functional-Programming-201804.md
  • Title: Foundation of Functional Programming: Theory and Practice
  • Abstract: Teoria delle categorie, morfismi, algebre, monoidi, semigruppi, funtori e ovviamente monadi! Dominare la programmazione funzionale per poterla sfruttare al massimo passa da una conoscenza teorica che è difficile da distillare partendo dalle disparate risorse ad oggi esistenti. Durante il corso verranno spiegati questi concetti in maniera rigorosa ma con frequenti riferimenti pratici per rendere il tutto più digeribile e comprensibile. L’obiettivo è quello di ottenere delle basi teoriche sufficienti per poter riconoscere e usare i costrutti della programmazione funzionale in maniera confidente ed efficace.
  • Who: Il corso verrà tenuto da Giulio Canti
  • Why: (Gabriele Lana) Volevo partecipare ad un corso come questo, non l’ho trovato e così l’ho organizzato. Sono un professionista, uso linguaggi di programmazione funzionali da diversi anni ma sono arrivato ad un punto in cui sento che mi manca un pezzo fondamentale pe
@gabrielelana
gabrielelana / virtual-keyboad-chords.py
Last active Oct 22, 2017
Virtual Keyboard With Chords POC
View virtual-keyboad-chords.py
import threading
import time
from evdev import UInput, InputDevice,categorize, ecodes
from copy import copy
myKey = UInput.from_device('/dev/input/event2', name='MyKeyboard')
dev = InputDevice('/dev/input/event2')
events = []
waiting = False
View virtual-keyboad.py
from evdev import UInput, InputDevice,categorize, ecodes
myKey = UInput.from_device('/dev/input/event7', name='MyKeyboard')
dev = InputDevice('/dev/input/event7')
print(dev)
for event in dev.read_loop():
if event.type == ecodes.EV_KEY:
print(event)
View keybase.md

Keybase proof

I hereby claim:

  • I am gabrielelana on github.
  • I am gabrielelana (https://keybase.io/gabrielelana) on keybase.
  • I have a public key whose fingerprint is 181C 039B 8033 4010 66D3 C5E8 F3A4 6AB3 14CA E60E

To claim this, I am signing this object:

@gabrielelana
gabrielelana / Vagrantfile
Last active Mar 20, 2020
How to create a VirtualBox machine with encrypted storage with Vagrant
View Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
PASSWORD_PATH = ".password"
PASSWORD_ID_PATH = ".password_id"
# Make sure to have installed vagrant-triggers plugin
# > vagrant plugin install vagrant-triggers
# After the first `vagrant up` stop the VM and execute the following steps
You can’t perform that action at this time.