marginalia/labrepl

15 views
Skip to first unread message

Giacomo Cosenza

unread,
Mar 26, 2012, 1:22:31 PM3/26/12
to clojur...@googlegroups.com
ciao a tutti,
tra le cose a cui stavo pensando per i "miei ragazzi", è la realizzazione di un corso di introduzione a clojure autosufficiente. pensavo a qualcosa che mettesse insieme labrepl e marginalia. secondo voi è una stupidata o varrebbe la pena di lavorarci un poco? eventualmente c'è qualcuno che avrebbe voglia di collaborare su questa cosa?

mimmo

Giorgio Valoti

unread,
Mar 27, 2012, 6:04:53 AM3/27/12
to clojur...@googlegroups.com

Il giorno 26/mar/2012, alle ore 19:22, Giacomo Cosenza ha scritto:

> ciao a tutti,
> tra le cose a cui stavo pensando per i "miei ragazzi", è la realizzazione di un corso di introduzione a clojure autosufficiente. pensavo a qualcosa che mettesse insieme labrepl e marginalia. secondo voi è una stupidata o varrebbe la pena di lavorarci un poco? eventualmente c'è qualcuno che avrebbe voglia di collaborare su questa cosa?

Mi interesserebbe molto ma in questo momento non ho proprio tempo. Potremmo parlarne dopo la metà di aprile? (ma, ovviamente, non dovete aspettare me)

Ciao
--
Giorgio Valoti

Marco Dalla Stella

unread,
Mar 27, 2012, 6:24:47 AM3/27/12
to clojur...@googlegroups.com
Il 26 marzo 2012 19:22, Giacomo Cosenza <mimmo....@gmail.com> ha scritto:
> ciao a tutti,
> tra le cose a cui stavo pensando per i "miei ragazzi", è la realizzazione di un corso di introduzione a clojure autosufficiente. pensavo a qualcosa che mettesse insieme labrepl e marginalia. secondo voi è una stupidata o varrebbe la pena di lavorarci un poco? eventualmente c'è qualcuno che avrebbe voglia di collaborare su questa cosa?

Scusa l'ignoranza, ma esattamente marginalia a cosa servirebbe?

--
Marco Dalla Stella
web: http://thediracsea.org
twitter: http://twitter.com/kra1iz3c

Giorgio Valoti

unread,
Mar 27, 2012, 6:27:02 AM3/27/12
to clojur...@googlegroups.com

Il giorno 27/mar/2012, alle ore 12:24, Marco Dalla Stella ha scritto:

> Il 26 marzo 2012 19:22, Giacomo Cosenza <mimmo....@gmail.com> ha scritto:
>> ciao a tutti,
>> tra le cose a cui stavo pensando per i "miei ragazzi", è la realizzazione di un corso di introduzione a clojure autosufficiente. pensavo a qualcosa che mettesse insieme labrepl e marginalia. secondo voi è una stupidata o varrebbe la pena di lavorarci un poco? eventualmente c'è qualcuno che avrebbe voglia di collaborare su questa cosa?
>
> Scusa l'ignoranza, ma esattamente marginalia a cosa servirebbe?

Genera la documentazione a partire dalle docstring (e dal file di progetto di leinengen). Esempio:

http://fogus.me/fun/marginalia/

Diciamo che è una specie di sistema di literate programming.

--
Giorgio Valoti

Giacomo Cosenza

unread,
Mar 27, 2012, 7:28:49 AM3/27/12
to clojur...@googlegroups.com
On Mar 27, 2012, at 12:27 PM, Giorgio Valoti wrote:

Genera la documentazione a partire dalle docstring (e dal file di progetto di leinengen). Esempio:

http://fogus.me/fun/marginalia/

Diciamo che è una specie di sistema di literate programming.

si, non è proprio literate programming come uno se lo immagina, ma mi sembra che per la documentazione del sw sia molto meglio di quello che in generale c'è a disposizione. 

se volete vedere una cosa vera di literate programming, in clojure, vi segnalo questa roba qui.


mimmo


--
Giorgio Valoti


Giorgio Valoti

unread,
Mar 27, 2012, 7:46:18 AM3/27/12
to clojur...@googlegroups.com
Se Tim Daly sapesse che ho paragonato marginalia al LP gli viene un infarto: mi sembra piuttosto sensibile sull’argomento e sicuramente si tratta di due cose diverse. Curiosità: hai mai provato Emacs/Org per il literate programming?

--
Giorgio Valoti

Carlo Sciolla

unread,
Mar 27, 2012, 7:57:09 AM3/27/12
to clojur...@googlegroups.com
Il giorno 27 marzo 2012 13:46, Giorgio Valoti <gior...@me.com> ha scritto:
hai mai provato Emacs/Org per il literate programming?
Qualche test personale con Clojure e org-babel, tutto perfettamente funzionante: snippet Clojure vengono eseguiti su una REPL che gira in background e il risultato viene copiaincollato nel file org.
Poi, ovviamente, l'Infinita Pigrizia™ mi ha portato a non usarlo mai per qualcosa di veramente utile...

c.


--
Carlo Sciolla

--==(A)==--
Linux User #372086
My personal blog: http://www.skuro.tk
Follow me on twitter: http://twitter.com/skuro
Fork me on Github: http://github.com/skuro
My LinkedIn profile: http://nl.linkedin.com/in/carlosciolla
--==(A)==--

Product Lead at Backbase - Next Generation Portal Software for Financials & Large Enterprises (http://www.backbase.com)

Giacomo Cosenza

unread,
Mar 27, 2012, 8:43:15 AM3/27/12
to clojur...@googlegroups.com
On Mar 27, 2012, at 1:46 PM, Giorgio Valoti wrote:


Se Tim Daly sapesse che ho paragonato marginalia al LP gli viene un infarto: mi sembra piuttosto sensibile sull’argomento e sicuramente si tratta di due cose diverse.

beh, effettivamente LP è un sogno di decenni fa a cui ci si avvicina progressivamente, ma a passi molto lenti. ci sarebbe da contribuire a clojure in small pieces....ma cribbio il tempo è talmente tiranno...

Curiosità: hai mai provato Emacs/Org per il literate programming?

purtroppo org mode mi manca proprio. ho letto e visto qualche cosa parecchio tempo fa, ma non ho mai fatto nulla.
altra cosa che mi piacerebbe infilare nel corsetto è midje https://github.com/marick/Midje, sembra roba ben fatta per il Test Driven Design.

mimmo



--
Giorgio Valoti


Giorgio Valoti

unread,
Mar 27, 2012, 2:30:00 PM3/27/12
to clojur...@googlegroups.com
Il giorno 27/mar/2012, alle ore 14:43, Giacomo Cosenza ha scritto:

On Mar 27, 2012, at 1:46 PM, Giorgio Valoti wrote:


Se Tim Daly sapesse che ho paragonato marginalia al LP gli viene un infarto: mi sembra piuttosto sensibile sull’argomento e sicuramente si tratta di due cose diverse.

beh, effettivamente LP è un sogno di decenni fa a cui ci si avvicina progressivamente, ma a passi molto lenti. ci sarebbe da contribuire a clojure in small pieces....ma cribbio il tempo è talmente tiranno...

Un paio di premesse doverose. Tutto quello che dico va preso con beneficio d’inventario essendo un completo auto-didatta; inoltre vista la fonte da cui proviene il LP ci sarebbe solo da stare ad ascoltare. Cmq, per quello che vale: ho provato a usare Org per il LP in uno dei progetti pilota e anche in altre occasioni; ho iniziato un anno fa, lo sto ancora usando, ma rimango scettico. Attualmente penso che l’idea di scrivere un paper (per semplificare) mentre si sviluppa per un progetto “pratico” siano due attività inconciliabili. Sovrapporre la struttura di un testo sopra il codice che dovrebbe idealmente rimanere malleabile mi sembrano in profonda contraddizione. Non l’ho ancora scartato completamente perché penso ci sia del buono ma per ora rimane una cosa dalla valutazione incerta. 


Curiosità: hai mai provato Emacs/Org per il literate programming?

purtroppo org mode mi manca proprio. ho letto e visto qualche cosa parecchio tempo fa, ma non ho mai fatto nulla.
altra cosa che mi piacerebbe infilare nel corsetto è midje https://github.com/marick/Midje, sembra roba ben fatta per il Test Driven Design.

Midje l’ho adottato quando sono passato alla 1.3 in cui non era più disponibile la vecchia libreria per i mock. Molto bella.



--
Giorgio Valoti

Giacomo Cosenza

unread,
Mar 27, 2012, 5:13:52 PM3/27/12
to clojur...@googlegroups.com
On Mar 27, 2012, at 8:30 PM, Giorgio Valoti wrote:

>
> Midje l’ho adottato quando sono passato alla 1.3 in cui non era più disponibile la vecchia libreria per i mock. Molto bella.

Ma dalla tua esperienza è utile in formazione? Io credo che insegnare queste cose ai giovani programmatori possa avere un qualche valore, non solo prospettivo, ma le tue esperienze dirette contano molto di più delle mie ipotesi estemporanee.

mimmo

Giorgio Valoti

unread,
Mar 28, 2012, 12:34:47 AM3/28/12
to clojur...@googlegroups.com

Se vuoi usare un approccio top-down (scusa l’indentazione, lo sto scrivendo direttamente qui):

(unfinished B C)

(fact "la funzione A moltiplica i valori restituiti da B e C"
(A ..x.. ..y..) => 42
(provided
(B ..x..) => 7
(C ..y..) => 6


dove B e C non sono ancora state definite ecc. non vedo alternative a Midje. Discorso simile per testare l’espansione di una macro.

A livello didattico, la mia esperienza è stata che ha cambiato il mio modo di fare TDD: prima di Midje usavo quasi esclusivamente un approccio bottom-up e i mock li usavo solo per isolare; Midje mi ha fatto capire l’efficacia dell’approccio top-down e che cosa voglia veramente dire usare i mock (anche grazie a questo articolo: http://dl.acm.org/citation.cfm?id=1028765).

Quindi, la domanda potrebbe essere più capire dove vuoi concentrare l’attenzione. Più concretamente, se devo introdurre a Clojure un programmatore che ha sempre usato Java, Midje rischia di essere un elemento di distrazione perché va comunque un minimo spiegato ecc: molto più facile usare uno unit test “normale” e concentrarsi su come pensare in termini funzionali ecc. Niente vieta di introdurlo in un momento successivo.

Spero di essere stato utile.


--
Giorgio Valoti

Giacomo Cosenza

unread,
Mar 28, 2012, 2:34:27 AM3/28/12
to clojur...@googlegroups.com
On Mar 28, 2012, at 6:34 AM, Giorgio Valoti wrote:

> Quindi, la domanda potrebbe essere più capire dove vuoi concentrare l’attenzione. Più concretamente, se devo introdurre a Clojure un programmatore che ha sempre usato Java, Midje rischia di essere un elemento di distrazione perché va comunque un minimo spiegato ecc: molto più facile usare uno unit test “normale” e concentrarsi su come pensare in termini funzionali ecc. Niente vieta di introdurlo in un momento successivo.
>
> Spero di essere stato utile.

certo Giorgio, e grazie per il suggerimento. metterò in coda midje. condivido l'approccio top-down, con e senza tdd, anche se, evidentemente, con tdd è meglio.
mimmo


Piergiuliano Bossi

unread,
Mar 28, 2012, 7:56:19 AM3/28/12
to clojur...@googlegroups.com
On Wed, Mar 28, 2012 at 12:34 AM, Giorgio Valoti <gior...@me.com> wrote:


Se vuoi usare un approccio top-down (scusa l’indentazione, lo sto scrivendo direttamente qui):

(unfinished B C)

(fact "la funzione A moltiplica i valori restituiti da B e C"
       (A ..x.. ..y..) => 42
       (provided
               (B ..x..) => 7
               (C ..y..) => 6


dove B e C non sono ancora state definite ecc. non vedo alternative a Midje. Discorso simile per testare l’espansione di una macro.

A livello didattico, la mia esperienza è stata che ha cambiato il mio modo di fare TDD: prima di Midje usavo quasi esclusivamente un approccio bottom-up e i mock li usavo solo per isolare; Midje mi ha fatto capire l’efficacia dell’approccio top-down e che cosa voglia veramente dire usare i mock (anche grazie a questo articolo: http://dl.acm.org/citation.cfm?id=1028765).

Quindi, la domanda potrebbe essere più capire dove vuoi concentrare l’attenzione. Più concretamente, se devo introdurre a Clojure un programmatore che ha sempre usato Java, Midje rischia di essere un elemento di distrazione perché va comunque un minimo spiegato ecc: molto più facile usare uno unit test “normale” e concentrarsi su come pensare in termini funzionali ecc. Niente vieta di introdurlo in un momento successivo.


FWIW, ho visto Marick fare una dimostrazione del "suo" approccio top-down con Midje ad Agile 2011 e mi e' piaciuto molto. Non voglio finire OT, ma io personalmente per quanto riguarda il mocking seguo piu' la scuola di Chicago (Martin, per intenderci) che quella di Londra (Freeman). Cio' nonostante l'approccio di Marick e' molto attraente. Penso che il programmatore Java che sa cos'e' il GOOS e ha seguito il lavoro di Freeman si troverebbe bene, piu' che altro perche' la quantita' di boilerplate necessaria e' molto piu' bassa rispetto al mondo Java.

HTH,
Giuliano

--
Piergiuliano Bossi
Blog: http://thinkingbox.wordpress.com/
Twitter: http://twitter.com/thinkingbox (English)
Twitter: http://twitter.com/scatolapensante (Italiano)

Giorgio Valoti

unread,
Mar 28, 2012, 11:08:11 AM3/28/12
to clojur...@googlegroups.com

Il giorno 28/mar/2012, alle ore 13:56, Piergiuliano Bossi ha scritto:

> On Wed, Mar 28, 2012 at 12:34 AM, Giorgio Valoti <gior...@me.com> wrote:

> […]


>
>
> FWIW, ho visto Marick fare una dimostrazione del "suo" approccio top-down con Midje ad Agile 2011 e mi e' piaciuto molto. Non voglio finire OT, ma io personalmente per quanto riguarda il mocking seguo piu' la scuola di Chicago (Martin, per intenderci) che quella di Londra (Freeman). Cio' nonostante l'approccio di Marick e' molto attraente. Penso che il programmatore Java che sa cos'e' il GOOS e ha seguito il lavoro di Freeman si troverebbe bene, piu' che altro perche' la quantita' di boilerplate necessaria e' molto piu' bassa rispetto al mondo Java.

Interessante. Perdona l’ignoranza, se capisco bene, l’approccio Chicago è più simile allo unit testing classico, giusto? Nella fretta delle mail precedenti ho trascurato di dire che con Midje è possibile seguire anche quel sistema, sebbene sia forse meno indicato con un linguaggio in gran parte funzionale come Clojure.


--
Giorgio Valoti

Piergiuliano Bossi

unread,
Mar 28, 2012, 4:07:14 PM3/28/12
to clojur...@googlegroups.com
On Wed, Mar 28, 2012 at 11:08 AM, Giorgio Valoti <gior...@me.com> wrote:

Interessante. Perdona l’ignoranza, se capisco bene, l’approccio Chicago è più simile allo unit testing classico, giusto?

Stiamo andando OT, comunque molto brevemente: no, sempre di TDD si tratta, ma tipicamente per la scuola di Chicago i mock objects emergono a posteriori, di solito per isolarti da componenti "esterne" che possono produrre errori non transienti (come networking, ecc.) oppure che sono particolarmente lente (come il DB) o che per altri motivi non si possono interfacciare direttamente (pensa a un'API per immettere ordini su un mercato finanziario, ad esempio).

Sempre molto sommariamente i londinesi come Freeman, Pryce, e altri invece usano i mock come strumenti di design. Alla fin fine la differenza e' piu' metodologica, piuttosto che nel codice risultante. La scuola del GOOS tende a produrre piu' mock e ad appoggiarsi di piu' a librerie esterne come JMock nel mondo Java, mentre la scuola di Chicago tende di piu' a produrre anonymous inner nei test stessi.
 
Nella fretta delle mail precedenti ho trascurato di dire che con Midje è possibile seguire anche quel sistema, sebbene sia forse meno indicato con un linguaggio in gran parte funzionale come Clojure.

Si', penso che anche alla luce di quello che ho scritto sopra midje funzioni con entrambi gli approcci, anche se Marick si rifa piu' alla scuola londinese.

Ciao,
Giuliano

Giorgio Valoti

unread,
Mar 28, 2012, 4:14:56 PM3/28/12
to clojur...@googlegroups.com
Il giorno 28/mar/2012, alle ore 22:07, Piergiuliano Bossi ha scritto:

On Wed, Mar 28, 2012 at 11:08 AM, Giorgio Valoti <gior...@me.com> wrote:

Interessante. Perdona l’ignoranza, se capisco bene, l’approccio Chicago è più simile allo unit testing classico, giusto?

Stiamo andando OT, comunque molto brevemente: […]

Grazie per le info, Giuliano. Scusate per la deriva off-topic.



Ciao
--
Giorgio Valoti

Marco Dalla Stella

unread,
Mar 28, 2012, 5:13:12 PM3/28/12
to clojur...@googlegroups.com
Il 28 marzo 2012 22:14, Giorgio Valoti <gior...@me.com> ha scritto:
>
> Grazie per le info, Giuliano. Scusate per la deriva off-topic.
>

Figuratevi, magari tutti gli OT fossero così interessanti. :)

Alessio Stalla

unread,
Mar 28, 2012, 5:57:33 PM3/28/12
to clojur...@googlegroups.com
On Wed, Mar 28, 2012 at 11:13 PM, Marco Dalla Stella
<m.dall...@gmail.com> wrote:
> Il 28 marzo 2012 22:14, Giorgio Valoti <gior...@me.com> ha scritto:
>>
>> Grazie per le info, Giuliano. Scusate per la deriva off-topic.
>>
>
> Figuratevi, magari tutti gli OT fossero così interessanti. :)

Stavo per dire la stessa cosa! :)

--
Some gratuitous spam:

http://ripple-project.org Ripple, social credit system
http://villages.cc Villages.cc, Ripple-powered community economy
http://common-lisp.net/project/armedbear ABCL, Common Lisp on the JVM
http://code.google.com/p/tapulli my current open source projects
http://www.manydesigns.com/ ManyDesigns Portofino, open source
model-driven Java web application framework

Piergiuliano Bossi

unread,
Mar 28, 2012, 10:17:53 PM3/28/12
to clojur...@googlegroups.com
On Wed, Mar 28, 2012 at 5:13 PM, Marco Dalla Stella <m.dall...@gmail.com> wrote:
Il 28 marzo 2012 22:14, Giorgio Valoti <gior...@me.com> ha scritto:
>
> Grazie per le info, Giuliano. Scusate per la deriva off-topic.
>

Figuratevi, magari tutti gli OT fossero così interessanti. :)

Il moderatore che e' in me era a un pelo dal mazzularmi. :)

Ciao,
Giuliano

 
Reply all
Reply to author
Forward
0 new messages