logoHaskell-ITA

La comunità Italiana di programmatori Haskell.

Haskell-Day Roma (2017-11-18)

L’Haskell day autunno 2017 si è svolto a Roma, nei locali di LUISS ENLABS, vicino alla Stazione Termini. Ringraziamo LUISS Enlabs e Codemotion, in particolare Innocenzo Sansone, che ci ha dedicato l’intera giornata, rendendo possibile questo evento.

Questo meetup è stato il secondo a tenersi nel centro Italia, dopo Firenze, e ha visto la particepazione di nuovi programmatori decisi ad avvicinarsi ad Haskell.

Il gruppo Beginners è stato seguito da Luca, sui passi della presentazione Introduzione ad Haskell (se non c’eravate ma volete una prima infarinatura, potete sempre vedere il video registrato all’edizione bolognese dell’Haskell Day).

photo

Dopo la presentazione di Luca, nel gruppo beginners, sotto la guida di Vitalij, Ruggero, Renzo, Francesco e Stefano, sono stati svolti degli esercizi dedicati a list comprehension e alle funzioni di ordine superiore filter, map e foldl: tracce degli esercizi e testi unitari

photo

Gli altri partecipanti si sono concentrati su vari progetti, tra cui un interprete scheme sviluppato in Haskell, perfezionamento di un frontend scritto in Elm (un linguaggio cugino di Haskell) e molte riflessioni sullo stato della programmazione funzionale sia pura che per linguaggi orientati su altri paradigmi.

photo

Siamo molto soddisfatti dalla nostra prima esperienza romana, sia per aver conosciuto nuovi programmatori funzionali, sia per aver rivisto i partecipanti alle scorse edizioni!

Ringraziamo di cuore tutti i partecipanti e contiamo di ritrovarvi tutti presto al prossimo evento!

Haskell Day - Roma, 18 Novembre 2017

Dove: LUISS ENLABS, Via Marsala 29/H, terzo piano, 00185 Roma

Quando: Sabato 18 Novembre, dalle 09:00 alle 18:00.

Chi: chiunque sia interessato alla programmazione funzionale, indipendentemente dal suo livello di esperienza.

Cosa faremo: lavoreremo in gruppi (2-6 persone circa) su diversi progetti. Ogni persona può scegliere il progetto che vuole, saranno date delle indicazioni sul livelo di conoscenza richiesto per contribuire. Lo scopo è provare a utilizzare Haskell per un progetto concreto, “toccare con mano” il modo di lavorare altrui e di condividere le esperienze nelle numerose pause di gruppo. Lo scopo è puramente didattico, quindi nessuna ansia.

Cosa portare: un computer portatile e un ambiente Haskell configurato.

Grazie a chi:

Per iscriversi: eventbrite.it

Cabal new-build

Il nostro fgaz (Francesco Gazzetta) ha terminato il suo progetto per “The Haskell Summer of Code” su cabal new-build e quì c’è una interessante retrospettiva.

Dopo averla letta ho realizzato di quante cose diamo per scontate, ma nascondono dietro una mole impressionante di lavoro.

Haskellism

Un mio rant su #haskell-it sull’illegibilità di certo codice Haskell avanzato, termina con una sfida: “c’è un qualche esempio di codice Haskell complesso ma chiaro?”. La risposta è https://github.com/aurapm/aura

Inizia la sfida: vediamo se un programmatore Object-Oriented come me, senza una laurea in matematica e categoria delle teorie, e che parte prevenuto, lo riesce a capire! :-)

Read More

Haskell-Day Inverno a Milano (2017-02-25)

Per questo meeting ci siamo ritrovati a Milano in Venini 42, gentilmente ospitati da Mikamai e LinkMe.

photo

I progetti

Beginners

Il gruppo di chi ha deciso di avvicinarsi al linguaggio è stato seguito da Luca, procedendo lungo la traccia della presentazione “Introduzione ad Haskell”. Durante la giornata le nuove leve hanno svolto esercitazioni sulla definizione di nuovi tipi, implementato Type Class e intuito così la definizione di Monade.

Haskell Internals

Titto ha illustrato la problematica dell’ottimizzazione e dell’efficienza in Haskell e gli strumenti per risolvere questo problema. Partendo da un esempio concreto (una serializzazione di dati sfruttando i generics), il gruppo ha visto come dare indicazioni efficaci al compilatore e come varia l’efficienza all’aumentare della complessità dei tipi. Gran parte del tempo è stata impiegata commentando e analizzando Core, il linguaggio generato dal compilatore come passo intermedio fra il programma Haskell e il codice binario.

Reflex

Carlo ha presentato la libreria FRP Reflex, illustrandone i tipi di base, il paradigma di funzionamento e le potenzialità. Il gruppo ha installato reflex-dom attraverso nix e svolto un piccolo esempio per vedere Reflex in azione.

Web service

Un gruppo di livello intermedio si è focalizzato sulla realizzazione di un webservice usando il framework Servant. La API Rest proposta era molto semplice, affinché fosse possibile realizzarne una implementazione completa nel limitato tempo a disposizione, potendosi quindi rendere conto della maggior parte degli aspetti tecnici legati a un lavoro di questo tipo: definizione delle rotte e dei controller ad esse legati, mantenimento dello stato del server (per semplicità si è optato per una MVar anziché usare un database esterno), codifica dell’output del servizio. A metà pomeriggio si aveva un prototipo funzionante, e i più avventurosi si sono addirittura cimentati nella scrittura di un frontend con Elm. Il codice prodotto è disponibile su github.

Haskell Day - Milano, 25 Febbraio 2017

Dove: Milano, Via Giulio Venini, 42, 20127 Milano (MI), IT

Quando: Sabato 25 Febbraio, dalle 09:00 alle 18:00.

Chi: chiunque sia interessato alla programmazione funzionale, indipendentemente dal suo livello di esperienza.

Cosa faremo: lavoreremo in gruppi (2-6 persone circa) su diversi progetti. Ogni persona può scegliere il progetto che vuole, saranno date delle indicazioni sul livelo di conoscenza richiesto per contribuire. Lo scopo è provare a utilizzare Haskell per un progetto concreto, “toccare con mano” il modo di lavorare altrui e di condividere le esperienze nelle numerose pause di gruppo. Lo scopo è puramente didattico, quindi nessuna ansia.

Cosa portare: un computer portatile e un ambiente Haskell configurato.

Grazie a chi: MIKAMAI e LinkMe che hanno messo a disposizione gratuitamente la sala.

Per iscriversi: metooo.io

Organizzazione Incontro Invernale Haskell ITA 2017

Votate per il nuovo incontro

Abbiamo aperto un doodle per decidere insieme la data del nostro incontro invernale 2016/2017:

Dove: Milano, Via Giulio Venini, 42, 20127 Milano (MI), IT

Verremo ospitati da Mikamai (dove si è svolto il primo incontro di Haskell ITA!)

Fateci sapere le vostre preferenze e a presto!

Haskell-Day Autunnale a Bologna (2016-11-19)

In un’uggiosa giornata autunnale, venti intrepidi Haskellers provenienti da varie città italiane si sono incontrati a Bologna, ospitati dall’associazione Kilowatt, nella particolare e suggestiva “Gabbia del Leone”, situata nel cuore dei Giardini Margherita.

photo

Seguendo un approccio ormai collaudato, abbiamo formato piccoli gruppi di lavoro, in modo che a ognuno fosse possibile partecipare, in maniera attiva e alla pari, ad uno o più progetti di proprio gradimento - il tutto in maniera estremamente libera e amichevole.

Nuovi Arrivati

Un gruppo di volenterosi newbie si è cimentato su esercizi, presi dall’ottimo Haskell Programming from first principles. Come spesso accade, gli esercizi si sono rivelati tutt’altro che semplici - e un confronto con persone più esperte è stato decisamente utile. Ecco un resoconto di quanto imparato.

photo

Finger Trees

Paol(in)o ha spiegato l’utilizzo dei FingerTree: una struttura dati utilizzata per modellare sequenze - che sono anche alla base del modulo Data.Sequence. Il formato della presentazione è stato molto gradito: circa cinque ascoltatori si sono riuniti intorno ad una lavagna, per delineare differenti ipotesi risolutive. L’interattività della spiegazione ha permesso a tutti di capire meglio l’argomento trattato.

Web Development in Haskell

Si è organizzato un piccolo simposio per discutere della situazione del web-development in Haskell. Abbiamo considerato principalmente le differenze tra l’approccio FRP (reflex) e quello basato su react (react-flux), volgendo particolare attenzione alle differenze di struttura generale e alla componibilità delle strutture create.

photo

Fuga dagli alieni dallo spazio profondo

Abbiamo esplorato i problemi di concorrenza che si possono presentare in un’applicazione di rete, prendendo a pretesto un prototipo di gioco multiplayer online che permettesse ai client di accedere ad una scacchiera condivisa applicando una semplice regola: due utenti non possono stare nella stessa cella. Per fare ciò, abbiamo introdotto un’architettura client/server mediante websocket e uno stato condiviso sul server utilizzando MVar. Dopodiché, abbiamo simulato una race condition - introducendo un tempo di attesa tra il primo controllo di disponibilità della cella e l’effettiva modifica: a questo punto, due client che entravano nella stessa cella contemporaneamente potevano farlo! Sostituendo MVar con TVar - tratto da STM - abbiamo ottenuto il controllo della transazione e la possibilità di individuare modifiche esterne allo stato - che abbiamo deciso di risolvere mantenendo il secondo client fermo nella posizione precedente.

Programmazione Message-Oriented

Un gruppo di persone ha svolto esercizi utilizzando la libreria Quid2, sotto la guida del suo autore: Titto.

Web client e monadi

Ponendosi come obiettivo la realizzazione di un semplice client per le web API di Random.org, un gruppetto di nuovi arrivati ha avuto modo di sperimentare l’I/O in Haskell e - coadiuvati da sviluppatori più esperti - di svolgere un primo approfondimento sulla teoria delle monadi.

Community

Il pranzo insieme, i momenti di retrospective durante il meetup, gli scambi di consulenza fra i diversi gruppi e una gita serale/notturna nel centro di Bologna con degustazione di tigelle hanno permesso a tutti di conoscersi.

Ringraziamo gli autori di Haskell Programming from first principles per averci messo a disposizione alcune copie del libro, regalate poi a cinque fortunati Haskellers, e l’associazione Kilowatt, per averci ospitato.

Haskell Day - Bologna, 19 Novembre 2016

Dove: Bologna, Giardini Margherita, nella struttura “La Gabbia del Leone”, presso “Le Serre dei Giardini”.

Quando: Sabato 19 Novembre, dalle 10:00 alle 18:00.

Chi: chiunque sia interessato alla programmazione funzionale, indipendentemente dal suo livello di esperienza.

Cosa faremo: lavoreremo in gruppi (2-6 persone circa) su diversi progetti. Ogni persona può scegliere il progetto che vuole, saranno date delle indicazioni sul livelo di conoscenza richiesto per contribuire. Lo scopo è provare a utilizzare Haskell per un progetto concreto, “toccare con mano” il modo che hanno altri di lavorare e di condividere le esperienze nelle numerose pause di gruppo. Lo scopo è puramente didattico, quindi nessuna ansia.

Cosa portare: un computer portatile e un ambiente Haskell configurato.

Come arrivare: dalla Stazione Centrale dei Treni di Bologna, prendere l’autobus 33 (frequenza 15 minuti) e scendere alla fermata “Giardini Margherita” e/o “Porta Santo Stefano” (circa 20 minuti di viaggio). Entrare nei Giardini Margherita, dall’ingresso di Via Castiglione 136 o Via Polischi 9, e recarsi presso “Le Serre dei Giardini”, alla struttura “La Gabbia del Leone”.

Grazie a chi: all’associazione Kilowatt che ha messo a disposizione gratuitamente la sala.

Per iscriversi: https://www.metooo.io/e/haskell-day-bologna

Organizzazione Incontro Autunnale Haskell ITA 2016

Votate per il nuovo incontro

Abbiamo aperto due doodle per decidere insieme il luogo e la data del nostro incontro autunnale:

  • Doodle per scegliere Quando
  • Doodle per scegliere Dove

Fateci sapere le vostre preferenze e a presto!