Proudly debugging the system since 1981

Tag: programmazione (Pagina 2 di 3)

Fold

Mi ci è voluta più di qualche imprecazione per arrivare a questa implementazione :

fun Shop.getSetOfProductsOrderedByEveryCustomer(): Set<Product> {
    return customers.fold(allOrderedProducts, {
        orderedByAll, customer -> 
orderedByAll.minus( orderedByAll.filter { !customer.orderedProducts.contains(it) }) })
}

Salvo poi scoprire nelle soluzioni che esisteva il magico intersect

fun Shop.getSetOfProductsOrderedByEveryCustomer(): Set<Product> {
    // Return the set of products ordered by every customer
    return customers.fold(allOrderedProducts, {
        orderedByAll, customer ->
        orderedByAll.intersect(customer.orderedProducts)
    })
}

L’esercizio era questo : https://github.com/Kotlin/kotlin-koans/blob/master/src/ii_collections/_22_Fold_.kt

Comunque Kotlin è bellissimo.

I pensieri sulla nuvola

Ho iniziato a tenere un blog 12 anni fà … e scriverlo fà una certa impressione. L’idea dietro ad un blog era di condividere, pensieri, media, esperienze … internet si è evoluta e c’è un app per condividere i link, un social per le cose da nerd, un flusso per i pensieri brevi, un album per le foto artistiche, e una cerchia per le foto destinate agli amici. E i blog personali sono finiti in secondo piano. Ma credo che l’idea sia ancora sensata.

La sensazione nell’affidare questa cose ad un sistema esterno è che ne perdi completamente il controllo e il possesso. Queste cose sono poco più che rumore sia chiaro, ma è il mio rumore. Vorrei poterlo rileggere anche se 4square chiude. Anche se facebook cambia policy. Vorrei condividerle anche con chi non utilizza queste piattaforme, non tutto, ma alcune cose si.

Quasi tutte queste piattaforme mettono a disposizione delle api per poter leggere in formato strutturato le informazioni che postiamo percui mi è venuto voglia di riutilizzare il blog come repository delle mie cose inrilevanti grazie ad una manciata di programmi adibiti allo scopo.

Il primo obbiettivo è Delicious, che già importo mediante yahoo pipes e un plugin di wordpress. L’importatore self-made migliorerà  la frequenza e sarà in grado di trasformare i tag di Delicious in tag di WordPress.

A seguire: twitter, 4square e instagram.

P.S. : Per seguire lo stato dei lavori https://bitbucket.org/sgalliani/socialimporter – Binari, Readme, Buildfile, Howto e similia saranno disponibili solo se e quando il progetto avrà un livello minimo di maturità.

Codemotion Milan 2014 – Secondo giorno

Appunti sugli speech del secondo giorno :

  • Why everyone is excited about Docker (and you should too…) tenuto da Carlo Bonamico : Si, Docker è veramente interessante. Permette di risolvere alcuni problemi che sono molto comuni: replicare ambienti di produzione anche complessi in locale, testare efficacemente, eseguire dei deploy sicuri. L’idea di base è avere qualcosa che assomigilia ad una virtual machine, ma è molto piu leggera ed è quindi possibile averne anche diverse decine in esecuzione su un computer desktop, ed è “stratificata” e componibile a moduli. Slides.
  • L’architettura di Stack Overflow tenuto da Marco Cecconi : come hanno risolto problemi inerenti l’elevato traffico in Stack Overflow. Da questo ho capito che .net ha grossi, grossi problemi col garbage collector. E tutto il lavoro sta nel cercare di instanziare il minor numero di oggetti possibili. Slides.
  • Evolutive experience design; o la sopravvivenza del più adatto tenuto da Luca Mascaro : l’incapacità dei programmatori di capire i babbani è una triste realtà. Più che altro per i babbani, che ogni giorno sono immersi in un mondo che non capiscono. Ma tant’è e quindi per essere un programmatore migliore ogni tanto è bene sentire uno o due speech tenuti da designer (ovvero utenti che sanno spiegare perchè non capiscono quello che per noi è ovvio). Cavolate a parte l’introduzione del concetto evoluzionistico al design è molto interessante. Non necessarimente la soluzione più raffinata è la migliore … o meglio è la migliore oggi, ma probabilmente avrà problemi ad affrontare i cambiamenti che inevitabilmente ci saranno. Due mini slide su tutte :

  • Designing for cross channel user experience tenuto da Chrissy Welsh : Sulla necessità di tenere conto che gli utenti del mobile, gli utenti desktop e gli utenti che si presentano di presona spesso (sempre?) sono le stesse persone e che bisogna offrigli la possibilità di fare ciò di cui hanno bisogno a prescindere dal canale che usano. E ovviamente non basta fare un sito responsive, come è stato fatto ripetere a tutti in coro stile alcolisti anonimi.
  • Time Series: Dalla Teoria alla Pratica con MongoDB tenuto da Massimo Brignoli, Ivan Fioravanti : l’utilizzo di mongoDB nelle sequenze temporali di dati, con alcuni trucchi per migliorare le performance in lettura e analisi. Sildes.

Repository ufficiale delle slides su slideshare .

« Articoli meno recenti Articoli più recenti »

© 2025 b0sh.net

Tema di Anders NorenSu ↑