Welcome

This is the generic homepage (aka Aggregate Blog) for a Subtext community website. It aggregates posts from every blog installed in this server. To modify this page, look for the Aggregate skin folder in the Skins directory.

To learn more about the application, check out the Subtext Project Website.

Powered By:
Powered by Subtext

Blog Stats

  • Blogs - 714
  • Posts - 31367
  • Articles - 310
  • Comments - 93652
  • Trackbacks - 228572

Bloggers (posts, last update)

Latest Posts

Mentorship: come sta andando e prossimi passi

Sono passati quasi sei mesi da quando ho cercato delle persone per fare una “mentorship reciproca” su temi che fossero al di la dei semplici “temi tecnologico-lavorativi”.

Com’è andata? Il bilancio è buono, anche se non sono mancate le difficoltà.

In ordine sparso qualche nota:

  • non è facile trovare il tempo per farlo, a volte abbiamo dovuto spostare una call varie volte, ma quando c’è la volontà si trova un buco anche in un’agenda molto piena
  • per fortuna alcune ragazze si sono fatte avanti, all’inizio avevano scritto solo maschietti, e la cosa interessante che tutte le ragazze hanno scelto di fare le call in inglese, in maniera indipendente e senza un mio input a riguardo…
  • qualcuno si è arreso, purtroppo come dicevo a volte il tempo è tiranno, oppure il valore era inferiore a quello a cui bisognava rinunciare, ma va bene così, anche quella è una lezione importante
  • con alcune persone il legame si è stretto molto, andando anche al di la dei temi trattati
  • con un paio di persone non siamo nemmeno riusciti a partire, forse loro non volevano insistere troppo, e io in quel frangente ero troppo preso. Speriamo si possa ripartire con la “tranche autunnale”…
  • ho imparato molto, anche se spesso le mentorship erano “più sbilanciate” con io che parlavo di più, ma trattare certi argomenti, rispondere a certe domande, mi ha permesso di mettere in fila una serie di concetti che spesso davo per scontati, e questo è stato molto utile, soprattutto quando le persone coinvolte condividevano con me gli appunti che prendevano
  • finalmente dopo tanti anni sto facendo da mentor “ufficiale” ad un collega di Microsoft, è un’esperienza molto interessante, vi invito a condividerla. Se non ve la sentite di fare mentorship a persone esterne, vi consiglio di cercare qualcuno nella vostra azienda con cui spendere del tempo in maniera strutturata per crescere entrambi

La “prima sessione del 2017” sta volgendo al termine, a giugno farò un ultima call con le varie persone, poi con calma dopo l’estate, compatibilmente con lavoro e impegni personali, pianificherò il numero di slot che riuscirò a dedicare a questa iniziativa, e capirò se ci sarà posto per nuove persone, e con chi e come continuare questa iniziativa che mi ha arricchito davvero molto.

#staytuned

posted @ 5/22/2017 2:00 PM by Lorenzo Barbieri

Il lavoratore remoto: la pausa caffè con i colleghi

I momenti di aggregazione extra-lavorativi o durante le pause sono ottimi per consolidare quei rapporti umani fondamentali per la costruzione di un buon team.

Per il lavoratore remoto questa cosa è difficile, se non impossibile in certe situazioni.

Le pause con i colleghi semplicemente non ci sono

Mentre in uno scenario “tradizionale” viene abbastanza naturale che le persone che condividono lo stesso spazio fisico tendano anche a condividere momenti extra-lavorativi, vuoi anche solo sotto forma di racconti e aneddoti, per il lavoro da remoto dove lo spazio fisico non c’è, il processo di condivisione semplicemente non si avvia. Quando si è online si tende a mettersi in modalità “get shit done” e bando alle ciance, niente chiacchiere.

Questo fa si che i rapporti umani si formino e crescano con una lentezza esasperante, al limite del frustrante in alcuni casi.

Quindi?

Non ritengo che soluzioni tentativi come organizzare meeting ad hoc per simulare le pause caffè abbiano l’effetto desiderato, noi ne abbiamo (Coffee Connection, Beer o’clock, etc.) e non mi pare di poter dire che sortiscano l’effetto desiderato. Mentre ci sono due cose che apparentemente stanno portando i frutti desiderati:

  1. gli incontri fisici, quasi ovvio, anche se rari e per breve tempo, come ad esempio un weekend, hanno un fortissimo impatto
  2. le sessioni uno a uno con il tuo mentor, dopo un po’ si tende a chiacchierare di qualsiasi cosa, creando inevitabilmente un rapporto forte.

Per il povero consulente da remoto non ho proposte. Già on-site spesso è una vittima del sistema, e solo dopo lungo tempo e costanza diventa parte del team, quando è da remoto viene presto dimenticato se mai qualcuno si accorge che esiste. Fortunatamente non faccio il consulente da remoto.

posted @ 5/22/2017 8:45 AM by Mauro Servienti

BarCode Generation

http://barcoderender.codeplex.com

libreria per generazione barcode e QRcode

posted @ 5/19/2017 12:51 PM by Alessandro Gervasoni

Il lavoratore remoto: “turn on the webcam”

Una delle cose che il lavoratore remoto rischia di più è l’isolamento, e spesso è lui stesso che se lo cerca. Accendere la webcam sembra un tip stupido e per molti scontato, ma in quasi quattro anni di call quotidiane vi posso garantire che non lo è. E non è soltanto accendere la webcam, ma è anche far si che funzioni con decenza.

Partiamo da quando è accettabile non averla/usarla: pessima connettività. Ci sono scenari in cui la qualità della connettività è talmente scadente che attivare il video in una conference call renderebbe impossibile la conference call stessa. Mi vengono in mente connessioni con il cellulare, Wi-Fi pubbliche, reti degli alberghi e via dicendo.

In tutti gli altri casi fate un favore a voi stessi: webcam, accesa, sempre.

Quando dico accesa non mi riferisco semplicemente a avere la webcam funzionante puntata su di voi, ma anche a:

  • Far si che sia posizionata in maniera tale far si che siate visibili, e non si veda solo una mano ad esempio (Si, designer del Dell XPS 13 sto parlando con te, maledetto il giorno che hai pensato la posizione della webcam)
  • Far si che non siate spalle ad una finestra dove batte il sole, altrimenti sembrate tipo gli omini verdi di x-files quando vengono a prendervi
  • Far si che lo sfondo non la faccia impazzire e impedisca la messa a fuoco (o prendere una webcam che lo sappia fare)
  • Far si che avete multi-monitor la webcam stia sullo stesso monitor che guardate

Tutto questo è finalizzato a:

  • rendere l’interazione sociale migliore, che è la cosa importante per il lavoratore remoto
  • rendere l’interazione più rispettosa, che è la cosa importante per l’interlocutore

Ovvio che tutti questo vale principalmente per il lavoratore remoto e non per quello occasionalmente remoto a cui si può perdonare qualche pecca.

Aggiungo: non tenetela spenta mentre fate le call sul cesso, lo sciacquone si sente.

posted @ 5/19/2017 9:04 AM by Mauro Servienti

L’accessibilità

Oggi dopo molto tempo ho avuto la necessità di accedere al sito dell’INPS per stampare il CUD di mia madre. Dal punto di vista prettamente grafico e delle prestazioni ha fatto un grosso passo in avanti, ma contemporaneamente l’accessibilità (facilità di trovare il servizi richiesti) è calata sotto lo zero. Una persona non pratica avrebbe serie difficoltà. Il portale dopo il logon avrebbe dovuto presentare solo i servizi correlati al profilo di mia madre (pensionata) e dato il periodo dell’anno (periodo di dichiarazioni dei redditi) avrebbe dovuto mettere in evidenza il servizio per effettuare il download del CUD.

Portali così strutturati al posto di avvicinare di più il cittadino hanno l’effetto contrario.

posted @ 5/18/2017 10:21 PM by Giuseppe Lippolis

“Tutti i nostri aggregati sono sbagliati” @klabcommunity, 8 giugno

L’8 giugno alle 18 sarò nuovamente ospite di KLab, a Firoenzuola d’Arda, per parlare di modellazione, service boundaries e domain decomposition.

image

Il titolo del talk provocatoriamente è:

Tutti i nostri aggregati sono sbagliati

Inizia sempre tutto bene, il requisito è semplice e l'implementazione procede senza intoppi. Poi i requisiti aumentano e ci ritroviamo con una strana sensazione allo stomaco e con la necessità di introdurre alchimie tecnologiche che non ci piacciono, ma non sappiamo perché. Prenderemo una funzionalità tanto semplice, quanto usata, come il carrello di un e-commerce e proveremo a capire se è veramente così semplice. Guarderemo il problema tecnico che vogliamo risolvere e poi sposteremo l'attenzione sui requisiti di business. Requisiti che una volta compresi a fondo ci porteranno a capire quali sono le vere responsabilità del dominio.

Ho la sensazione, spesso poi confermata dai fatti, che troppo spesso si fa il salto “Facciamo DDD, evviva, allora definiamo gli aggregati”, tralasciando tutto un mondo essenziale che passa anche da identificare i service boundaries e decomporre il dominio.

Nel mio lungo peregrinare di post nel mondo SOA e UI Composition, ho toccato più e più volte l’argomento senza mai esplicitamente trattarlo. Bene questa è la volta buona. Il mio scopo sarà convincervi che un carrello della spesa in un sistema di e-commerce non si disegna così:

{
   CartId,
   UserId,
   Items: [{
      ItemId,
      StockItemId
      Description,
      Price,
      Quantity
   }]
}

Ma piuttosto, così:

{
   CartId,
   UserId,
   Items: [{
      StockItemId
   }]
}

O magari non si disegna proprio…Se siete curiosi, se non siete d’accordo e volete scoprire come e perché la penso così, se semplicemente volete tirarmi le pietre venite al KLab dell’8 giugno :-)

Actor Model

Poi ci saranno due loschi figuri (Melchiori e Ceroni) che parleranno di Actor Model, che potrebbe essere un modo interessante, concettualmente, per continuare la discussione ;-)

Poi?

Si mangia, ovviamente :-)

Maggiori informazioni e registrazione: https://www.eventbrite.com/e/klab-2017-3-tickets-34512631209

posted @ 5/17/2017 6:58 AM by Mauro Servienti

Coesione e accoppiamento: coesione.

Abbiamo recentemente parlato di accoppiamento. Abbiamo evidenziato come l’accoppiamento non sia necessariamente male di per se.

Malintesi…

Un secondo errore che tendiamo a fare è traslare il concetto di accoppiamento, e il male che riteniamo porti con se, ciecamente nel mondo dei servizi, o se preferite dei Microservices.

Il fatto che riteniamo l’accoppiamento il male ci porta a fare di tutto per rimuoverlo. Il fatto che interpretiamo male il concetto di accoppiamento ci porta a cercare di rimuovere, o peggio combattere, qualcosa che non dovremmo proprio evitare, ma piuttosto accettare e abbracciare.

Coesione

Immaginate il processo di acquisto che il vostro negozio online vi mette a disposizione, tipicamente è così composto:

  1. Scelgo dal catalogo
  2. Aggiungo al carrello
  3. Inizio il checkout
  4. Pago
  5. Scelgo il tipo di spedizione

Posso togliere il punto 3, Il checkout?

Direi proprio di no. Il processo logico di acquisto è coeso. Tutti gli elementi elencati sono necessari perché io in quanto utente del sito possa beneficiare del processo stesso.

Allo stesso modo una domanda provocatoria che ci potremmo fare è: ha senso avere quei passaggi temporalmente disaccoppiati? E anche qui la risposta è probabilmente no.

Qualcosa in più

Se guardiamo più a fondo però possiamo cominciare ad intravvedere che c’è qualcosa in più che ci sta probabilmente sfuggendo, il pagamento (4) e la spedizione (5) sono forse i più evidenti, o se volgiamo quelli che puzzano di più.
Se ci pensate probabilmente stiamo guardando una delle tante facce di una strana medaglia. Dal punto di vista del processo di checkout quello che mi interessa fare è avviare il processo di pagamento, o avviare il processo di spedizione, non necessariamente fisicamente eseguire il pagamento e/o attendere che la spedizione sia avvenuta.

Quindi probabilmente un “Payment Service” in realtà non è uno?

Vogliamo discuterne insieme?

Se volete scoprire come va a finire e non volete aspettare troppo il prossimo 8 giugno a Fiorenzuola d’Arda parlerò proprio di accoppiamento e coesione.

Fatevi sotto :-)

posted @ 5/15/2017 10:27 AM by Mauro Servienti

Che cosa faccio io per l’inglese?

Non pensavo che quello che originariamente nella mia testa era un pensiero sparso spopolasse così.

Fabio chiede:

image

A parte gli scherzi qual è stato il tuo approccio per imparare l'inglese? Corsi, fai da te, film... cosa è stato più efficace?

Io non faccio, più, nulla di particolare. Come dicevo lavorando in Particular mi trovo in una condizione privilegiata in relazione al problema lingua straniera:

sono l’unico italiano, quindi o imparo o non sopravvivo :-)

Inoltre da subito sono stato buttato nella mischia del “devi avere a che fare con i clienti”, il che mi ha spinto a studiare studiare studiare.

Diciamo che ci sono tre aspetti, tra i tanti importanti, che per me sono stati fondamentali.

La grammatica

È apparentemente facile da studiare, ma va fatto con un nativo altrimenti rischi che ti raccontino un sacco di cazzate :)
Ho avuto ottimi insegnanti di inglese nella mia vita, ma in alcuni casi mi hanno raccontato e insegnato cose grammaticalmente scorrette, quindi il mio consiglio è sceglietelo madre lingua. Se poi parla malissimo l’italiano, o non lo parla per nulla come l’ultima che ho avuto, ancora meglio.

La comprensione

Ascoltare, ascoltare, ascoltare. Pian piano il cervello comincia a distinguere nel rumore apparente cose che hanno senso ;) Fino a qualche tempo fa, piazzavo la radio su BBC 5 e la lasciavo andare tutto il giorno in sottofondo. BBC 5 perché tratta argomenti locali UK, quindi la stragrande maggioranza delle parole sono pressoché fuori dal vocabolario conosciuto. Inoltre la totale ignoranza del contesto complica un po’ di più la vita.

Nella nostra lingua nativa possiamo stare seduti al tavolo di un pub, con 15 amici, la musica e un sacco di rumore di sottofondo e nonostante questo captare discorsi molto lontani da noi, e capirli pure. Se l’inglese fa parte delle vostra vita questo è un passaggio importante, altrimenti passate la serata (o qualsivoglia occasione concettualmente simile) con un simpatico sorriso ebete stampato sulla faccia. Sorriso che dice: non sto capendo nulla, ma sorrido.

La capacità di esprimersi

La capacità di esprimersi va ben oltre il saper ordinare da mangiare da “Costa Coffee”. Il problema è che è naturale tradurre le forme native della nostra lingua in quell’altra, l’inglese in questo caso, correndo una serie di rischi interessanti, tra cui:

  • l’essere offensivi
  • fraintendimenti
  • fino alla totale incomprensione

Anche in questo caso un buon insegnante, o adesso nel mio caso dei pazientissimi colleghi, è fondamentale. Poi tanta pratica, bisogna anche sbagliare per imparare.

All’inizio è difficile, se non impossibile, ma sforzatevi di non pensare in italiano e tradurre. Semplicemente parlate.

Ah, dimenticavo

Io, se guardo la televisione, la guardo rigorosamente in italiano. Sinceramente mi rompe clamorosamente dover porre anche molta attenzione alle cazzate, la televisione appunto :)

posted @ 5/12/2017 3:17 PM by Mauro Servienti

clientjs.org

Device information and digital fingerprinting written in pure JavaScript.
https://clientjs.org

posted @ 5/12/2017 12:38 PM by Alessandro Gervasoni

Visionario? No… genio del male! :-)

L’anno scorso ai Riviera Engineering Days 2016 a Savona, parlando nel panel finale di esperti, nella sessione di Q&A avevo prospettato uno scenario “fortemente disconnesso”, navi da crociera che potevano usare le stesse funzionalità nel cloud e “on-premise” (sarebbe meglio dire “a bordo” Open-mouthed smile) in modo da sfruttare le stesse API e la stessa piattaforma, in attesa di avere anche fuori dai porti una connettività “seria”.

C’era stato qualche sorrisino, e qualcuno mi aveva dato del visionario… beh… questo un frame della keynote di Build di ieri, 01h52m32s:

Build 2017 - Carnival cruises

Buona navigazione… in mezzo alle nuvole!

posted @ 5/11/2017 8:02 PM by Lorenzo Barbieri

Swashbuckle

https://github.com/domaindrivendev/Swashbuckle

Seamlessly adds a swagger to WebApi projects!

posted @ 5/11/2017 8:54 AM by Alessandro Gervasoni

Le conferenze hanno un problema?

TL;DR;

Ho sempre di più la sensazione che le conferenze, e uso il termine conferenza in senso allargato quindi includendo tutti gli eventi pubblici, stiano abbassando il tiro riducendo il livello delle sessioni a non oltre intermediate (quando va bene). A mio modo di vedere questo comporta un deperimento culturale generalizzato e un impoverimento dell’intero settore.

È ovvio che sto generalizzando, qualche esperienza positiva c’è, ma sono un’assoluta minoranza.

electrocardiogram-1922703_960_720

Stimoli

Come dicevo quando ho parlato di DDD Europe e ancora prima di noia mi rendo conto che probabilmente il problema è principalmente mio, so di essere alla ricerca di nuovi stimoli e quindi sto cominciando a sperimentare cose diverse, come SoCraTes tra un paio di settimane.

Ho iniziato a frequentare conferenze nei primi anni 2000. Ad oggi tra corsi ed eventi pubblici ho parlato in pubblico 197 volte (ho contato le slide che ho conservato in Dropbox, quindi potrebbero essere di più).

Ad oggi se vado ad una conferenza/evento è per soli tre motivi:

  • incontrare amici che vedo solo in quelle occasioni
  • sono tra gli speaker
  • sperimentazione, come è stato per l’AgileDay a Pavia (che è andato come è andato) o sarà per SoCraTes a Rimini

La situazione attuale genera due problemi:

  1. mi annoio
  2. chiedere a me se ha senso andare alla conferenza XYZ è rischioso

Una prima analisi

Di primo acchito ero convinto che il problema fosse la mia apatia totale nei confronti della tecnologia. La tecnologia è una delle componenti fondanti delle conferenze tecniche e quindi il sottoscritto si trova tipicamente spaesato, una sorta di pesce fuor d’acqua.

Spaesato al punto tale che se uno mi chiedesse: ha senso andare a NDC? La mia risposta sarebbe: neanche dipinto sui muri.

Il problema di fondo è che mi sembrava di essere l’unico a vederla così

Una seconda analisi

Ho quindi cercato di cambiare io. Nuove tipologie di conferenze, argomenti diversi dalla tecnologia, e via dicendo. Ma la sostanza non è cambiata. La sorpresa è stata quando ho fatto emergere il problema con colleghi e amici e la stragrande maggioranza condividono il mio sentimento.

Diciamo che tutti mi hanno detto che partecipano alle conferenze perché:

  1. le persone che si incontrano valgono il “biglietto”
  2. sono stato accettato come speaker

Nello specifico nessuno dei mie colleghi va alle conferenze per i contenuti stessa della conferenza.

Sollievo, ma…

Da un lato il non sentirmi Calimero è stato un sollievo, dall’altro mi chiedo se sia effettivamente la direzione in cui stiamo andando e se sia un problema.

Che ne pensate?

posted @ 5/10/2017 10:36 AM by Mauro Servienti

Adesso fa’ qualcosa che serva…

“…che è anche per te se il tuo paese è una merda” (cit.)

Amsterdam, giugno 2004. Keynote di TechEd Europe. Di fronte a 4000 persone Jean-Philippe Courtois, l’allora presidente di Microsoft EMEA, cede il palco ad uno speaker che, un po’ esitante, viene accompagnato alla scrivania e si accinge ad effettuare la propria demo. E’ accompagnato perché è un non vedente, e per i successivi 10 (o erano 15? 20, forse?) interminabili minuti non fa altro che provare a navigare su normalissimi siti web lasciando che lo screen reader, collegato all’impianto audio del centro congressi, “leggesse” ciò che riusciva a capire dei siti. Cioè poco. Troppo poco. Pochissimo. Nisba. Nada. UN CAZZO.

Io, che ormai sviluppavo “professionalmente” applicazioni web dal 1998, tutto d’un tratto capii perché le table (& c.) siano il Male e quanto fossi stato stronzo superficiale a non interessarmi di tematiche di questo tipo per 6 anni. 6 anni non son bruscolini, sono una significativa finestra temporale di stronzaggine superficialità.

Ma il tempo è gentiluomo, no? Concordo e, infatti, ha impedito che quella sensazione di profonda vergogna svanisse dalla mia memoria.

“Never again, is what you swore the time before” (cit.)

Ed ecco perché, piccolo esempio, il sito UGIdotNET usa le estensioni semantiche di HTML5 permettendo ad uno screen reader che le supporti di *sapere* quale sia il contenuto della pagina.

Ecco perché, soprattutto, UGIdotNET (associazione della quale mai come in questo caso sono orgoglioso di essere presidente) sta organizzando, in collaborazione con DevMarche e l’Unione Italiana dei Ciechi e degli Ipovedenti, gli HACK-cessibility Days, una manifestazione di sensibilizzazione sull'Accessibilità e sulle Disabilità Visive dedicata a sviluppatori software, designer e maker che si svolgerà ad Ancona il 19 e 20 maggio.

Chi, potendo partecipare, non lo facesse perché “Ma si, che vuoi che sia…” non sarebbe molto diverso dall’Andrea di 13 anni addietro; non vorrei essere nei suoi panni, faccio già fatica a stare in quelli dell’Andrea del 2017.

posted @ 5/9/2017 8:45 PM by Andrea Saltarello

Venerdì 12 maggio a Milano un evento imperdibile su Azure!!!

UGIdotNET in collaborazione con Qibit ha organizzato un evento imperdibile su Microsoft Azure, con ospiti speciali come il grande Vito Flavio Lorusso Smile

L’evento è incentrato su come sfruttare al meglio la scalabilità e l’efficienza dei costi del cloud sfruttando al meglio i servizi PaaS (platform as a service), con un occhio ai percorsi di migrazione e a quali servizi scegliere tra i tanti.

Temi come Analytics, Compute, Container, Database, passando poi dai profili giuridici (privacy e responsabilità contrattuali), fino a CQRS e Event Sourcing su Azure.

Io parlerò dei percorsi di migrazione delle proprie soluzioni esistenti verso il cloud, quali strategie adottare, come risparmiare, quale percorso permette di sfruttare al meglio le proprie competenze.

Vi aspettiamo!!! Potete iscrivervi qui.

image

posted @ 5/9/2017 10:23 AM by Lorenzo Barbieri

CLSxItaly 3° edizione… una bella giornata!

Sabato 6 maggio si è svolta a Milano la terza edizione del CLSxItaly, la conferenza dedicata ai Community Lead e ai Community Manager italiani, con una mattinata di sessioni plenarie e il pomeriggio dedicato alla unconference, con le sessioni proposte e scelte direttamente dai partecipanti.

Qui di seguito potete trovare la presentazione che ho erogato su come migliorare la qualità dei propri eventi:

E’ stata proprio una bella esperienza, ci vediamo alla prossima!

posted @ 5/7/2017 5:04 PM by Lorenzo Barbieri

L’inglese, ripetete con me: l’inglese.

Era un venerdì di Ottobre 2013, atterravo a Newcastle e il giorno successivo sarei salito sul palco per il mio primissimo talk in inglese. Nel viaggio tra l’aeroporto e l’albergo il tassista mi parlava e io mi chiedevo se stesse parlando inglese. Newcastle è quasi Scozia, e anche gli inglesi stessi dicono che lassù non è che parlino proprio inglese, quindi in parte ero scusato ;-)

Alla cena speaker il venerdì sera, complice il fatto che non conoscevo nessuno e che io non sono la socialità fatta a persona, l’interazione con il mondo che mi circondava è stata abbastanza limitata. Il tutto ovviamente era condito dalla mia incapacità di relazionarmi in inglese, in mezzo a 20 persone tutte native, in un locale rumoroso, con la musica.

La giornata di conferenza, tutto sommato, alla fine è andata bene, soprattutto considerando che era la prima esperienza.

Alla sera lo stress accumulato era tale da farmi saltare la cena. Ho dormito circa 11 ore quella notte.

Poi tutto è cambiato

Già ad agosto di quell’anno collaboravo part time con Particular Software, collaborazione che è diventata full time ad aprile 2015. Ricorderò sempre il primo company meeting, giugno 2014 a Londra, arrivavo a sera e non vedevo l’ora di scappare in camera e ascoltare un qualsiasi schifo di programma televisivo in italiano (si in albergo si vedeva RAI 1). Ricordo perfettamente anche che il primo collega che ho visto dal vivo è stato Greg, australiano, con cui ho speso una mezz’oretta prima di cena. Anche in quel caso mi chiedevo se lui stesse parlando inglese…ma soprattutto cercavo di capire come fosse possibile generare così tante parole al minuto.

Avanti veloce

Quasi 4 anni dopo la mia prima esperienza come speaker in inglese.

Sono reduce da un bellissimo weekend a Bristol, con un paio di colleghi, per partecipare a DDD SouthWest 7. Il mio inglese è lontano dall’essere decente (IMO) ma è ad un livello tale che mi permette:

  • di rendermi conto che la lingua parlata dagli altri è la stessa che sto cercando di parlare io
  • di sopravvivere egregiamente ad una cena con una 20 di persone, condita da confusione e musica. Ma soprattutto seguita da qualche pinta in un pub, continuando ad essere in grado di interloquire
  • di gestire un’ora di presentazione, domande e discussioni in una sala con una sessantina di persone

È faticoso, ma ne vale la pena

Lungi da me il suggerirvi di andare a parlare all’estero, non è questo il punto, e mi rendo conto che l’essere l’unico italiano in un’azienda straniera ha forzato un po’ la mano, altrimenti non sarei sopravvissuto. Ho comunque studiato e investito parecchio.

Non vuole essere un post auto celebrativo, anche perché non ho nulla da vendere, piuttosto vuole essere un monito:

  • non si finisce mai di imparare
  • c’è sempre qualcuno che ne sa più di voi, soprattutto se è la sua lingua nativa ;-)
  • mettersi spesso in gioco è un ottimo modo per migliorare
  • studiate sto cazzo di inglese, ma soprattutto usatelo, usatelo e usatelo

Fate anche un paio di favori a voi stessi:

  1. piantatela di pensare che l’inglese sia una lingua “facile” e che tanto ve la cavate. Si certo probabilmente siete in grado di ordinare da mangiare al cameriere spagnolo che lavora nel fast food londinese.
  2. piantatela di pensare che siano gli inglesi ad essere stronzi quando secondo voi fanno finta di non capire. L’inglese è una lingua foneticamente molto difficile, in particolare per noi italiani; hanno ragione loro quando non vi capiscono :-)

posted @ 5/8/2017 9:01 AM by Mauro Servienti

Sapevatelo VSTS: Variable group nelle build

Indubbiamente il build system di VSTS / TFS è una delle parti che sta introducendo molte innovazioni, soprattutto dopo la completa riscrittura iniziata oramai due anni fa. Una delle funzionalità più interessanti, e che è ancora poco conosciuta sono i gruppi di variabili, descritti qui.

In poche parole potete generare un insieme di variabili e dargli un nome, per poter poi riutilizzare questo inisieme di variabili in qualsiasi build del progetto.

In questo modo l’amministrazione delle build risulta molto semplificata, soprattutto in quei casi in cui abbiamo molte build con serie di passi simili (CI, SonarQube, Package, etc). Grazie ai Variable Groups possiamo generare un gruppo di variabili valido per tutto il progetto ed usarlo semplicemente in tutte le build di cui abbiamo bisogno.

Happy VSTS.

posted @ 5/6/2017 10:55 AM by Gian Maria Ricci

Un nuovo SSD

L’ultimo SSD che avevo preso era un Samsung 850, gran disco e ne avevo parlato nel mio blog inglese. Ecco qui un diskmark fatto al tempo su disco vuoto.

image

In quel post parlavo anche delle funzionalità di cache di Samsung Magician, ma debbo dire che nel corso del tempo le ho disattivate per liberare più RAM possibile. Ora ecco i risultati nel nuovo arrivato in casa Alkampfer

image

Purtroppo nel frattempo i test sono un po cambiati e le voci sono cambiate, ma di base la lettura e scrittura sequenzale in questo caso sono anni luce avanti dalla vecchia versione. La cosa interessante è che anche la scrittura in 4K random è mostruosamente aumentata, passando da un 65 MB secondo ad un astonishing 219 MB secondo. Una buonissima percentuale di miglioramento la abbiamo anche sul 4K!32 T1.

Il disco in questione è un Samsung 960, tecnologia NVMe, e raggiunge queste velocità perchè è attaccato direttametne ad un PCI Express M.2 4X.

Ora mi metto in attesa degli OPTANE seri, il bios lo ho aggiornato ieri Open-mouthed smile

Alk.

posted @ 5/6/2017 10:49 AM by Gian Maria Ricci

Nearly 150 handlebars helpers in ~20 categories

posted @ 5/5/2017 12:52 PM by Alessandro Gervasoni

Coesione e accoppiamento: quando l’accoppiamento è male?

Abbiamo parlato di accoppiamento, prima di addentrarci nel discorso coesione un piccolo approfondimento sull’ accoppiamento è doveroso.

Quando è male?

Se abbiamo detto che l’accoppiamento di per se non è ne bene ne male, ma è semplicemente una misura, quali sono i problemi che possono insorgere?

L’accoppiamento diventa un problema evidente quando è una barriera all’evoluzione.

Nella sua forma peggiore è la così detta “big ball of mud” ove tutto è fortemente accoppiato con tutto e l’evoluzione è impossibile.

desert-1803878_960_720

Ma da perfetto a big ball of mud ci sono un’infinita serie di sfumature, e la barriera al cambiamento può essere un buon modo per misurare il livello di accoppiamento.

Il carrello della spesa

Ripartiamo dall’esempio che abbiamo usato in chiusura nel post precedente:

se abbiamo un’interfaccia “IShoppingCart” che gestisce il carrello di un sistema di e-commerce vogliamo porre molta attenzione a chi la usa perché un uso indiscriminato, con un possibile conseguente forte accoppiamento, può solo portare a conseguenze poco positive in termini di manutenibilità ed evoluzione.

Facciamoci qualche domanda:

  1. Quale è il ruolo (o se volete quali requisiti deve soddisfare) del carrello della spesa?
  2. Definito il ruolo ci dovremmo chiedere quali informazioni sono necessarie al carrello per soddisfare il ruolo di cui sopra
  3. Date le informazioni necessarie ci dobbiamo chiedere di chi è la responsabilità di modificarle

Ecco…se arrivati al punto 3 vi ritrovate con informazioni che stanno nel carrello, ma che sono modificate da attori diversi dal carrello avete la quasi certezza che:

l’identificazione dei service buondary è sbagliata e state creando accoppiamento

tra componenti che non dovrebbero essere accoppiati, ma probabilmente in quel particolare contesto sono solo coesi.

Giusto per darvi un’idea, io non disegnerei un carrello così:

{
   CartId,
   UserId,
   Items: [{
      ItemId,
      StockItemId
      Description,
      Price,
      Quantity
   }]
}

Al prossimo giro parleremo di coesione.

posted @ 5/3/2017 4:13 PM by Mauro Servienti

Latest Images

From miscellaneous
From miscellaneous
From miscellaneous
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini
From Immagini