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, edit the default.aspx page in your Subtext installation.

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

Powered By:

Blog Stats

  • Blogs - 715
  • Posts - 31191
  • Articles - 309
  • Comments - 116100
  • Trackbacks - 590742

Bloggers (posts, last update)

Latest Posts

Http performance in browsers (+Angular2)

Prendendo spunto da ultime attività lavorative, vorrei evidenziare (molti lo sapranno) come il numero di chiamate http parallele eseguite da un browser (browser != istanza di browser) verso lo stesso server (stesso dominio) sia in numero finito e ridotto, e che la cosa possa peggiorare la performance del vostro applicativo web [http://stackoverflow.com/questions/985431/max-parallel-http-connections-in-a-browser].

Partiamo cronologicamente al contrario:

1 - Angular2

Angular2 è la nuova versione del framework di google, scritta in typescript, ed "enormemente" modulare; basti pensare che:

  • ogni "view" può essere composta dalla definizione di “component" scritto in typescript (=> js), un css e un html ad esso collegato. Questi possono essere embeddati nel file typescript, ma personalmente preferisco tenerli separati.
  • angular promuove la modularizzazione, anche per questioni di performance dovute a shadow dom, change detecion stragegy.. (http://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html)
  • l’accoppiata di dependency injection di ng2 e l’import di moduli esterni con ES2015 è una __FIGATA PAZZESCA__. Ed ora si scrive molto più C#-like (interfacce, classi, ereditarietà ... il tutto per il single responsibility principle).

Bene. Ottimo. Fantastico:

many_requests

Il problema è semplice (e di facile risoluzione). Ci sono troppi file da caricare (650+) e… ogni browser può effettuare un massimo di connessioni verso lo stesso dominio (chrome per esempio un massimo di 6).
Tutte le chiamate http vengono dispacciate da questo numero limitato di connessioni, il che rende lungo (9+ secondi) il caricamento dell’applicativo (insieme ovviamente all’elevato numero di handshake).

Soluzione semplice: BUILD (fatelo ‘sempre’ e, soprattutto, pensateci in tempo)

Ad oggi vi sono numerosi strumenti per effettuare la build di un’applicativo web javascript (grunt, gulp, broccoli, webpack…), personalmente mi sto affezionando a webpack, con il seguente risultato:

low_requests

Perfetto. Numero di richieste ridotte al minimo, quantità di dati ridotta, tempi di caricamento abbassati.

2 – Data recomposition

Un altro applicativo web a cui ho/sto lavorando, molto dinamico, permette ad ogni utente di comporre la sua UI in base alle proprie preferenze.
L’utente può decidere

  • quanti grafici aggiungere alla pagina
  • per ogni grafico, quante serie mostrare.

A complicare le cose, i grafici vengono aggiornati in realtime.
Per rendere il tutto il più modulare e indipendente possibile, abbiamo architetturato l’applicativo in modo da recuperare ogni serie con una chiamata http separata. Massima flessibilità ma… alcuni dati:

  • In media (a spanne) un utente apre 2-4 grafici per pagina
  • ogni grafico ha 6 -12 serie scelte dall’utente
  • un utente può aprire apre anche più tab con la stessa applicazione (anche 2 o 3 per pc) su diversi monitor (ok, il contesto è un pò particolare)

Risultato:

  • una connessione utilizzata da signalR (SSE) per tab aperto
  • Le chiamate http, anche se su server è stata implementata una cache abbastanza intelligente, possono richiedere tempo per essere evase. Il tempo di risposta occupa la connessione, non permettendo ad altre serie di essere recuperate velocemente da parte del browser.
  • E’ anche capitato (numero eccessivo di tab aperti) che un tab smettesse di recuperare dati da server finché l’utente non ne chiudesse un’altro.

Soluzione: dipende. Come sempre non c’è una verità. Ci stiamo spostando verso la definizione di “view model” che incapsulino più serie (le combinazioni più comuni), in modo tale da raggruppare e quindi recuperare più serie in un unica chiamata http. Parrebbe inoltre che i websocket non utilizzi connessioni http (https://samsaffron.com/archive/2015/12/29/websockets-caution-required). Altre idee sono ben accette.

I sistemi software sono complicati, e la conoscenza è oro.

posted @ 26/07/2016 0.10 by Roberto Sarati

Mentor (was: Sempre al lavoro)

Prendo spunto dal commento di Roberto ad un precedente post:

image

Ci sono delle domande molto importanti li in mezzo, e di certo non sono io la persona giusta per dare risposte:

Essere sempre a lavoro anche non fisicamente, potrebbe essere a lungo termine deleterio?

Il non separare gli spazi mentali ma anche fisici a lungo andare potrebbe essere più dannoso o faticoso?

La risposta breve è si e si, quella lunga è disciplina e disciplina. Non c’è la formula magica, volevo scrivere questo post stamattina alle 8, sono le 12.15 e non ho ancora finito, è successo di tutto nel frattempo. La disciplina che mi impongo (a volte con molta fatica) mi sta facendo scrivere questo post e mi farà andare in piscina a breve, altrimenti non ci andrò, non scriverò questo post e la giornata finirà con molta insoddisfazione.

La questione è molto semplice: diamoci delle regole, rispettiamole e facciamo si che anche gli altri le rispettino.

Patti chiari amicizia lunga, alla prima volta che non rispettate voi stessi (e lasciare che qualcuno violi le vostre regole è a sua volta non rispettare voi stessi) è finita. È come decidere di smettere di fumare e poi dopo un paio di settimane dire…ma si… una che vuoi che sia.

Rispetto.

Per esempio io quando ho una giornata storta a lavoro a volte sfogo a casa (sbagliando) a volte scarico le brutte sensazioni e mi riempio di quelle belle con famiglia e figlioletto, in un mondo life-working come si potrebbero gestire i risultati delle quotidianità che questo approccio porta?

Qui la questione è più complessa, e ha risvolti psicologici più importanti.

Mentor

In azienda abbiamo un programma apposito, ognuno può scegliere un mentor, io ad esempio faccio da mentor a tre colleghi e ho il mio mentor. Il mentor è la persona da cui vai a sfogarti, quella con cui parli dei problemi (lavorativi e non) che ti affliggono. La persona che fa da specchio il cui ruolo è essere un amico in grado di dirti stai facendo una cazzata. Il mio mentor è quello che fa che non porti i miei problemi lavorativi o le frustrazioni fuori a cena con mia moglie.

Questo mi permette di chiacchierare si con mia moglie di problemi e frustrazioni ma senza scaricarli sulla famiglia.

posted @ 25/07/2016 12.25 by Mauro Servienti

Web scraping e raccolta di dati on line: alcuni chiarimenti da parte del Garante

Probabilmente molti la conoscono con nomi diversi, web-scraping, web-harvesting o web data extraction, ma la sostanza è, essenzialmente, la stessa: è l’attività di raccolta di dati personali da pagine web liberamente accessibili.

In un mondo in cui ciò che conta, che ha valore, sono i dati degli “utenti-consumatori”, la raccolta di informazioni on line è un’attività ormai diffusissima, in particolare tra le società che svolgono attività di marketing e di analisi dei dati (ad es. business intelligence), che possono così lavorare su database notevolmente più grandi, su dati più ricchi, più aggiornati e, soprattutto, più facilmente reperibili rispetto al passato.

Purtroppo, però, non è tutto così facile come sembra. Ce l’ha ricordato il Garante Privacy con una recente comunicazione, passata colpevolmente in sordina, in cui l’Autorità ha chiarito quali sono i limiti (per il vero molto stringenti) entro i quali è possibile raccogliere in rete dati personali. La vicenda da cui prende spunto il Garante riguardava una società italiana rea di aver creato (e reso accessibile agli utenti del proprio sito) un vero e proprio elenco telefonico (contenente dati quali nome e cognome, indirizzo, recapito telefonico, numero di cellulare o indirizzo email) relativo a più di 12 milioni di soggetti. La raccolta dei dati veniva effettuata attraverso l’utilizzo di script automatici, senza che però fosse stato richiesto il consenso agli interessati o che questi ne fossero stati informati. Il Garante, intimando alla società l’interruzione dell’attività, ribadiva che la raccolta e il trattamento di dati su siti pubblici (social network compresi) deve essere effettuato sulla base di consenso libero, informato, specifico per ogni finalità che si intende perseguire e acquisito in via preventiva. I dati raccolti in violazione di questo chiaro principio, non solo espongo a sanzioni amministrative chi viola la normativa, ma non sono in alcun modo utilizzabili o cedibili e devono essere immediatamente cancellati.

Il diritto alla protezione dei dati personali, sancito dal Codice della Privacy, non tutela la riservatezza delle informazioni, ma garantisce a ciascun individuo il diritto ad avere un pieno ed effettivo controllo sui propri dati, prescindendo dalla loro natura pubblica o privata. L’attività di web-scraping, quindi, non è da considerarsi di per sé vietata, ma deve essere realizzata nel rispetto dei principi previsti dalla normativa: da un lato, per tutelare gli interessati e, dall’altro, per consentire a chi raccoglie i dati di disporne lecitamente, anche per finalità commerciali.

Andrea Palumbo

posted @ 22/07/2016 16.05 by Staff Lex101

Services UI composition @ UGIdotNet

Fantastica giornata, veramente, quindi in primis grazie ad Andrea per il solito, enorme, sforzo organizzativo.

Il materiale della mia sessione è online:

Nelle prossime settimane riprenderò il discorso “Services UI composition” perché è tutt’altro che esaurito, abbiamo visto la punta dell’iceberg ma resta il piccolo dettaglio di tutto il mondo che potremmo includere sotto il cappello chiamato: scritture.

Cosa succede e come gestisco le scritture in un mondo distribuito dove quella che per l’utente è una singola operazione in realtà dietro le quindi è gestita da più servizi che devono in qualche modo coordinarsi e cooperare.

posted @ 21/07/2016 8.51 by Mauro Servienti

“anche oggi ho fatto”

Una delle cose a cui ho accennato quando parlavo di disciplina è il tener traccia di quello che ho fatto oggi. L’aspetto fondamentale non è tanto la traccia quanto piuttosto avere una lista da guardare a fine giornata, qualsiasi sia la fine della giornata, e poter dire: OK, ho fatto abbastanza per oggi, sono in pace con me stesso.

Stress

Il problema che non volete avere è lo stesso per cui ho disabilitato in toto tutte le notifiche.

  • colleghi sparsi su 17 time zone
  • colleghi che vivono e lavorano in Israele dove
    • Il weekend è venerdì e sabato (quindi lavorano di domenica)
    • Le festività a cui siamo abituati noi non esistono (Natale è un giorno come un altro)
  • colleghi ortodossi per cui alcune delle festività esistono si ma in date diverse

Oltre a tutto questo aggiungete adesso che avete totale flessibilità di orari, quindi anche qualcuno che sta nella stessa vostra time zone può decidere di lavorare di notte e non di giorno o un po’ e un po’ senza dir nulla a nessuno.

La conseguenza di tutto ciò è uno strano effetto psicologico che porta a lavorare come dei muli per tempi lunghissimi perché si ha sempre la sensazione che gli altri lavorino più di voi, ma è solo una sensazione che purtroppo porta inevitabilmente al senso di colpa.

Ecco che il tener traccia e spuntare le attività del giorno lavorativo aiuta sia ad essere produttivi ma anche a dire a se stessi: anche oggi ho fatto il mio dovere.

DevMarche: Social Skills Afternoon

Se volete saperne di più o anche solo fare quattro chiacchiere sul tema venerdì sono ad Ancona, venite a trovarci.

posted @ 20/07/2016 9.39 by Mauro Servienti

Disciplina

Quando gli orari lavorativi sono estremamente fumosi come abbiamo detto la disciplina è tutto.

Nel mio piccolo adoro la carta, mi sono dotato di piccola “agendina gialla” che mi serve per pianificare la giornata e tenere traccia di tutto ciò che voglio fare e che ho fatto.

IMG_20160322_081337

Il funzionamento, se così si può definire, è piuttosto semplice:

  • segno tutto ciò, ma proprio tutto compresa l’andata in palestra e la scrittura di questo post, che voglio/devo fare
  • riporto dal giorno precedente tutto ciò che avevo segnato ma che non ho fatto
  • mano a mano che si presentano nuovi task li aggiungo
  • mano a mano che faccio le cose le spunto

Il giochetto è abbastanza semplice e ha due scopi:

  • avere un posto unico in cui tener traccia delle cose da fare oggi
  • a fine giornata, qualunque sia la cosa che identifica il fine giornata, avere un posto in cui guardare e avere quella sensazione di: anche oggi ho fatto.

“anche oggi ho fatto”

Questa è forse l’aspetto più importante. Ne parleremo in maniera più approfondita.

posted @ 18/07/2016 8.58 by Mauro Servienti

Creare un clone dell’istallazione di produzione di TFS con TFS “15”

Ho appena bloggato nel blog inglese una grossa novità dell’installer della nuova versione di TFS, che per ora è identificata con il nome TFS “15”. Nel nuovo wizard è presente una opzione per automatizzare tutte le procedure di creazione di un clone o istanza di Pre-Produzione del vostro TFS.

La necessità di clonare l’ambiente è necessaria in molti scenari, prima di tutto vi permette di validare le procedure di upgrade, in questo caso create un clone del vostro TFS, eseguite le procedure di upgrade sul clone e poi con tutta calma potete verificare che dopo l’upgrade tutto funzioni correttamente.

Un altro scenario tipico è lo sviluppo di estensioni per TFS, perchè con un ambiente Clonato potete sviluppare e testare i vostri plugin o il vostro software su un clone esatto dei dati di produzione, senza interagire con il server di Produzione.

Potete leggere il post integrale nel mio blog inglese che trovate a questo indirizzo, nel quale ho aggiunto anche altri semplici consigli per minimizzare il rischio che l’ambiente Clonato possa interagire con l’ambiente di Produzione generando confusione e problemi.

Gian Maria.

posted @ 16/07/2016 11.22 by Gian Maria Ricci

Orari: croce e delizia

Non avere orari lavorativi è fantastico ma porta con se un sacco di piccoli problemi e soprattutto tante responsabilità.

Partiamo dall'inizio: cosa significa non avere orari?

Significa letteralmente che puoi fare quello che vuoi, quando vuoi, senza avvisare nessuno. Se hai un impegno pianificato con i colleghi ovviamente non è che puoi non presentarti senza preavviso, ovviamente il rispetto prima di tutto. Ma se non hai qualcosa di pianificato con qualcuno sei liberissimo di fare quello che vuoi.

Vediamo come si è svolta la giornata di ieri:

  • 6.30 sveglia, caffè, cazzeggio leggendo notizie qua e la
  • 7:00:
    • giro su Slack per capire cosa è successo nel pomeriggio americano e nella mattina australiana
    • Controllo della posta per le notifiche di GitHub
  • 7:30 circa serie di meeting con alcuni colleghi, la maggioranza australiani
  • 10:00 porto avanti i lavori che sto seguendo
  • 11:00 piscina :-)
  • 12:30 porto avanti i lavori che sto seguendo
  • 16:30 me ne vado a Milano per incontrare un po' di amici, chiacchiere di tecnologia e cena

Quella di ieri è una giornata, non quella tipo, ogni giornata funziona a modo suo.

Quale è il problema?

Il problema vero è che per arrivare li, dove li è godere della flessibilità al massimo e comunque essere produttivo e non stressato, ci sono voluti circa due anni, due anni di "sofferenza" per cercare di capire come far funzionare le cose.

Un passo indietro

Facevo il consulente, 40.000 km/anno in macchina, tanti treni e un discreto numero di aerei. La giornata tipo era concentrata su quello che c'era da fare con il cliente di turno, la notte tipo era dedicata a preparare le cose per il cliente della settimana dopo. Ritmi serratissimi, tanto stress e poco tempo per pensare allo stress e ai ritmi.

Poi un giorno basta, lavori da casa e puoi fare quello che vuoi, il risultato è che ti ritrovi a lavorare 16 ore al giorno e non te ne accorgi neanche, inoltre pensi che devi "educare" quelli intorno a te che sei si a casa ma non significa che sei libero.

In realtà se hai libertà di orari, come ho io, è tutto sbagliato.

Quello che devi capire è che tu vieni prima, che sei estremamente fortunato se puoi mettere te stesso davanti a tutto ciò che è lavoro.

Ci vuole tempo e disciplina ma alla fine riesci ad organizzare la tua vita lavorativa intorno a quella privata e il gioco è fatto. Vai in piscina, dici alla moglie che la puoi accompagnare dove vuole a metà pomeriggio, e scegli quelli che ritieni siano i momenti, e i luoghi, più produttivi per dare il massimo e lavorare.

È tutto tranne che facile e non è detto che funzioni, non tutte le mie giornate sono perfette o molto “libere”, ci sono giornate con ritmi serrati e un po’ (poco a dire il vero) di stress, ma nel complesso funziona tutto molto bene.

Ho colleghi che alla fine si sono affittati un ufficio, fanno orari più da ufficio e usano la “scusa” dell’ufficio (che banalmente significa uscire di casa) per aiutare la propria auto-disciplina, non c’è la formale perfetta, c’è quella che funziona per ognuno di noi.

posted @ 15/07/2016 12.17 by Mauro Servienti

A long time ago in a galaxy far, far away...

15 anni fa, il 6 agosto 2001 per la precisione, un gruppo di folli (me compreso) si incontravano presso un notaio e fondavano l'associazione no profit "User Group Italiano .NET" che per tutti sarebbe poi diventato UGIdotNET o UGI. Erano tutti figli di MFC e/o VB6, con qualche hipster che aveva avuto anche qualche frequentazione con ATL. Sostanzialmente, quindi, figli di COM (no, non è un insulto) che avevano deciso di dedicarsi a quello che, nato COM+ 2.0, divenne invece .NET; erano i tempi della beta 2 della versione 1.0, ed una RTM (o GA, come si dice oggi) avrebbe richiesto ancora circa un anno di attesa ma nonostante ciò l'amore dei suddetti folli per quel gran bel pezzo di ... tecnologia era tale da giustificare questa avventura. E il mondo “tech” era diverso, molto diverso da quello attuale.

Il primo presidente dell'associazione fu Pierre Greborio, che ci “abbandonò” per trasferirsi in California e lavorare in Microsoft: un classico caso di "fuga di cervello e di stomaco", visto che è anche una buona forchetta (malattia diffusa tra noi dev). Ricordo che, diventato il nuovo presidente, una delle mie prime scelte fu di spostare il focus da .NET a ISO23271 che, per coloro che non lo sapessero, è lo standard ISO che definisce (i puristi scusino l'approssimazione) le specifiche del CLR e della Base Class Library. Scelsi questo spostamento perché avevo notato i primi vagiti di un progetto interessante chiamato Mono che allora faceva ridere e/o alzare il sopracciglio a tanti, ma che oggi invece "altrettanti tanti" (magari anche qualche detrattore poco lungimirante) usano quotidianamente in una delle sue declinazioni: Xamarin, per intenderci.

Se la memoria non inganna (alla mia età può capitare), fu infatti UGIdotNET la prima community .NET a pubblicare, nel 2002, contenuti su Mono ed a dedicare una sessione durante un proprio evento a questo progetto: sessione condotta, tra l'altro, proprio da uno degli sviluppatori di Mono ossia "quel" Massimiliano Mantione che avevo conosciuto ad un Linux Day nel 2004.

Lungimiranza, si diceva: come associazione, infatti, abbiamo sempre cercato di offrire supporto sia in merito a quanto disponibile/utilizzabile immediatamente, sia a quanto sarebbe probabilmente stato utile nel futuro, immediato o meno. Che fosse tecnologia o metodologia. Ed eccoci quindi già nel 2003 a parlare di unit testing e metodologie agili, nel 2004 a parlare di design del codice per poi essere recidivi, con l’aggiunta di Domain Driven Design, nel 2006 e via così, attraverso 42 eventi organizzati e centinaia di sessioni erogate, fino ad oggi. Sempre cercando di fondere le necessità del presente con quelle del futuro, sempre, sostanzialmente, cercando di essere guidati dal pragmatismo e non dalle mode. Le persone che hanno reso possibile tutto ciò sono elencate qui, ed ognuna di loro ha il mio ringraziamento più sentito.

Con tanta presunzione ma anche un pochino di consapevolezza pensiamo di avere un passato importante, che merita un futuro altrettanto importante: stiamo lavorando sulle iniziative future e speriamo di iniziare a condividerle quanto prima ma, per un attimo, vorremmo concentrarci sul presente, sui nostri 15 anni che ci apprestiamo a festeggiare settimana prossima con un evento piccolo ed organizzato tardi ed in fretta a valle di qualche chiacchiera e telefonata tra amici intenzionati a “festeggiare”. Piccolo perché, date le succitate condizioni organizzative, gli iscritti sono pochi: 60, al momento, e considerando il fisiologico drop rate degli eventi gratuiti significa che saremo circa 40. Sarà piccolo, quindi “intimo” e soprattutto bellissimo.

Se avete voglia di unirvi a noi, è ancora possibile iscriversi.

“Now, this is fun”

posted @ 14/07/2016 12.56 by Andrea Saltarello

Diversity e non quote, giusto per essere chiari.

image

Anche qui conta solo la meritocrazia e quando parliamo di diversity non parliamo mai e poi mai di "quote".
Il problema che abbiamo bisogno di risolvere è che:

A tutt’oggi il mondo del “Software engineering” è un club esclusivo, è fondamentale lavorare per farlo diventare mostruosamente più inclusivo.

Un club esclusivo porta necessariamente a uniformità di pensiero e l’uniformità di pensiero porta alla stagnazione e all’incapacità di vedere al di la del paraocchi che ci sta facendo vede una sola strada.

Diversity non vuol dire più donne, o non vuol dire solo più donne, vuol dire principalmente riconoscere che ogni individuo è unico e che questa unicità va esaltata e non tarpata. E per farlo devi per forza spingerti verso ciò che è diverso da te, che può voler dire avere più donne nel team, oppure avere più gente con un background culturale non ingegneristico ma magari umanistico, etc…etc…

Aggiungo: non vogliamo “garantire” nulla, vogliamo semplicemente che sia nella natura delle cose.

posted @ 14/07/2016 7.49 by Mauro Servienti

Diversity

Ci stiamo provando con tenacia, ma al momento stiamo facendo veramente tanta fatica. Ma cosa significa “diversity”?

It means understanding that each individual is unique, and recognizing our individual differences. These can be along. the dimensions of race, ethnicity, gender, sexual orientation, socio-economic status, age, physical abilities, religious beliefs, political beliefs, or other ideologies.

A tutt’oggi il mondo del “Software engineering” è un club esclusivo, è fondamentale lavorare per farlo diventare mostruosamente più inclusivo.

Se volete approfondire: “Software engineering diversity” - https://kateheddleston.com/blog/how-our-engineering-environments-are-killing-diversity-introduction

posted @ 13/07/2016 10.59 by Mauro Servienti

Nuovo update di VSTS–7 luglio

Un altro sprint è stato deployato in Visual Studio Team Services il 7 luglio e dovrebbe ora essere disponibile per tutti gli account. Come sempre il team ha pubblicato un post con tutte le novità, ed in questo sprint sono state fatte molte modifiche alla ui ed alla usabilità.

Un aspetto interessante è l’inclusione del code coverage dei test eseguiti durante la build, metrica interessante per tutti i team che fanno uso estensivo di unit testing.

Tutte le restanti modifiche sono relativamente piccoli miglioramenti e potete quindi leggerli nel post originale.

Gian Maria.

posted @ 13/07/2016 8.49 by Gian Maria Ricci

Il valore percepito.

Trovo affascinante come troppo spesso le scelte di design, architetturali o addirittura di funzionalità siano guidate dal valore percepito da parte di chi le produce e non da parti di chi le consuma.

È fondamentale rendersi conto che il valore percepito dal consumatore, inteso come colui che consuma non necessariamente l’utente finale, dovrebbe essere la linea guida principale, se non l’unica, per le nostre scelte in quanto produttori.

Provate a fare un esercizio: ogni volta che volete introdurre una novità, ogni volta che volete sistemare un bug, ogni volta che volete cambiare architettura, ogni volta che lo fate mettete il cappellino del consumatore e chiedetevi quale è la percezione di valore che il consumatore ha di questa volta, provate a dimenticare la vostra percezione in quanto produttori.

posted @ 11/07/2016 8.06 by Mauro Servienti

Ruoli: il "Solution Architect"

Il mio lavoro è affascinante e continua ad esserlo, evolve cambia e si contorce a volte ma sempre affascinante resta. Il mio ruolo in Particular è estremamente flessibile e cangiante, ne parleremo sia ad Ancona che ai Community Days a settembre.

Tecnicamente faccio il Solution Architect, come dice il biglietto da visita:

IMG_20160709_145529

Ma che vuol dire?

Vuol dire che, come generalmente dico, dal punto di vista del cliente, quindi dall’esterno, sono uno dei riferimenti che il cliente ha per le scelte di design e architetturali, per le review e i kick-off di progetto, il cliente vede me e i miei colleghi come quelli che hanno tutte le risposte. Cosa che vi garantisco, vista la dimensione di certi clienti, è tutto tranne che simpatica, affascinante e impegnativa non c’è che dire.

Internamente invece i ruoli non esistono, ci sono solo cose che devono essere fatte, che spaziano dall’organizzazione aziendale ai processi alla progettazione alla manutenzione e infine anche al supporto. Questo vuol dire che chiunque può fare tutto e il contrario di tutto, e come potete capire non è detto che sia un bene.

Dal canto mio mi sto dedicando principalmente a due attività che non avrei mai immaginato essere così assimilabili al concetto di architettura del software:

  • processo, inteso ad esempio come governance;
  • studio delle problematiche legate alla prioritizzazione di un backlog, quindi come far funzionare la product ownership (nel senso SCRUM della cosa) in una realtà multi prodotto e multi servizio;

Se siete curiosi fate un salto a trovarci ad Ancona o Milano :-)

posted @ 09/07/2016 15.26 by Mauro Servienti

Services UI (de)Composition @ UGIdotNET

Quest’anno è il compleanno di UGIdotNET, e sono 15, per festeggiare ci regaliamo una giornata all’insegna di quello che UGI ha sempre saputo fare molto bene: condividere esperienze.

Il sottoscritto vi parlerà di Services UI Composition:

Un'architettura basata sui comandamenti di SOA genera e guida verso sistemi basati sulla decomposizione dei servizi e sul disaccoppiamento del dominio al fine di creare componenti autonomi. Purtroppo, dato che la UI è il luogo dove aggreghiamo tutte le informazioni per l'utente, ci ritroviamo ad accoppiare nuovamente e spesso velocemente di nuovo tutto. Obiettivo della sessione è di sviscerare il problema fino alle sue radici e proporre alcuni possibili approcci per risolverlo.

In realtà si parlerà anche di “Decomposition” che è argomento di una breve serie di post su questo blog (il requisito, un tentativo e i modelli), diciamo che l’obiettivo ambizioso della sessione è quello di sviscerare i primi due argomenti del workshop che abbiamo tenuto ad NDC Oslo poche settimane fa.

Che dire quindi se non che vi aspettiamo numerosi? Le registrazioni direttamente su Eventbrite: http://www.eventbrite.it/e/biglietti-buon-compleanno-ugidotnet-26284333148

posted @ 07/07/2016 8.46 by Mauro Servienti

GitHub WIP Pull Request & “Do Not Merge WIP”

Le pull request sono una delle funzionalità di GitHub e Git che amo di più, o forse una delle poche che amo dato che ho un interessante rapporto di odio/amore (più odio che amore) con Git*.

Comunque, una delle cose per cui usiamo moltissimo le PR in Particular è per discutere potenziali modifiche. In questo caso una cosa che volete assolutamente evitare come la peste è che un maintainer passi via e faccia il merge di una PR che non deve in nessun modo essere mergiata.

Al fine di garantire che ciò non avvenga abbia un concetto chiamato “WIP PR” che si traduce molto semplicemente nell’usare il prefisso “[WIP]” nel titolo della PR, questo segnala a chiunque lo scopo della PR.

image

Al fine di comunque garantire che la merge non avvenga per errore è sufficiente installarsi una simpatica estensione per Chrome: Do Not Merge WIP for GitHub

image

Che una volta attiva altro non fa che disabilitare il bottone merge per le WIP PR.

image

Comodo, semplice e a prova di distrazione.

posted @ 04/07/2016 9.07 by Mauro Servienti

SOA service model decomposition: i servizi

Direi che ci siamo, dato il contesto che abbiamo ipotizzato i nostri attori sono i seguenti:

  • Marketing
  • Warehouse
  • Sales
  • Shipping
  • Publishing

image

La cosa importantissima che abbiamo identificato a questo punto, e che è la base fondante di un buon design, sono i rispettivi Owner dei vari modelli. Ognuno degli attori in gioco è responsabile di un pezzetto dell’informazione che vediamo stilizzata nella figura di cui sopra, e “Publishing” è responsabile non del tutto, come purtroppo l’immagine lascia intendere (non ho trovato un modo migliore per rappresentarlo), ma solo ed esclusivamente del dettaglio se il prodotto sia disponibile per l’acquisto o meno.

Abbiamo delle classi?

Stiamo parlando di modelli, ma in realtà stiamo discutendo di modelli in termini SOA, quindi no, non abbiamo delle classi; abbiamo piuttosto identificato i servizi, i quali a loro volta possono contenere uno o più aggregati e da zero a n modelli in lettura (benvenuto CQRS).

Alla fine del processo di decomposizione abbiamo quindi:

  • MarketingService
  • WarehouseService
  • SalesService
  • ShippingService
  • PublishingService

Siamo autorizzati a cominciare a pensare in termini tecnologici :-)

Post in questa serie:

posted @ 20/01/2016 10.00 by Mauro Servienti

…sempre per quella storia del noi valiamo :-)

<modalità polemica=”on” />

Viaggio poco, anzi pochissimo, nonostante questo ho anche un portatile (la macchina principale è una workstation Dell), un Dell XPS13 discretamente carrozzato.

Ovvio se il vostro approccio è il SUVvettone per il managerone che fa solo casa-ufficio/ufficio-casa e la Fiat Duna per quello che si spara 60.000 Km/anno mi rendo conto che non possiate proprio capire.

#ciaone

posted @ 29/06/2016 9.13 by Mauro Servienti

Perché noi valiamo :-)

(Parafrasando una nota pubblicità)

Mi capita ancora oggi di parlare con gente che lavora con un singolo monitor, scadente e pure piccolo, oppure con gente che viaggia tanto e a cui l'azienda appioppa uno di quei 17 pollici in stile mattone…

…e io continuo a chiedermi: ma perché?!?!?!?!

Questo è il mio setup attuale:

Il prezzo odierno di questo setup su Amazon è di circa 860,00 euro (+circa 60 euro di stand VESA perché i monitor laterali sono vecchiotti e non supportano la rotazione, problema ad oggi superato)

Quindi tu datore di lavoro, si proprio tu, mi stai dicendo che per 860 euro circa sei disposto a far fare una vita d'inferno al tuo bene più prezioso…

Ti faccio anche notare che potresti abbattere quel costo a 424,72 (ad oggi 29/6/16) per il solo ASUS PB287Q 28" 4K che c'è in mezzo cambiando comunque in meglio, molto in meglio la vita del tuo bene più prezioso.

Siccome ogni tanto, molto raramente devo essere sincero, scrivo anche io codice seriamente giovo del supporto multi monitor di Visual Studio e configuro il mio ambiente così:

Arriverà un post anche sull'agendina :-)

posted @ 29/06/2016 8.46 by Mauro Servienti

Arriva il Marketing Business Summit 2016 a Bologna

Arriva a Bologna il 25 e 26 novembre il MAKRETING BUSINESS SUMMIT. Due giornate di formazione di altissimo livello per imprenditori, aziende, web agency e professionisti.

mbsummit-conferance-ok

Sul sito www.mbsummit.it potete trovare informazioni e dettagli sull’evento

Tra i relatori ci sono Marketing Manager, SEO e Social Meda Manager di importanti Aziende e Agenzie. Questo per fornire un punto di vista ampio e differente.

Tra i principali relatori troviamo:

  • Rachele Zinzocchi R&D Social Media Manager , Public Speaker
  • Luca Targa Inside CEO & Direttore Creativo Inside Comunicazione
  • Tonia Maffeo Head of Community e Marketing di Spreaker
  • Angela Conte  Responsabile Marketing Aruba SPA
  • Andrea Albanese Social Media Marketing & Digital Communication Advisor
  • Giorgio Triani Professore Università Degli Studi di Parma
  • Luca Barboni Growth Hacker & Founder @ Growth Hound
  • Marco Maltraversi SEO e CEO  YourDigitalWeb
  • Riccardo Mares Search Marketing Manager Studio Cappello
  • Filippo Giotto Social Meda Manager Banca Mediolalum
  • Francesco Chiappini  E-Commerce Specialist
  • Benedetto Motisi SEO Specialist
  • Maria Fossarello Marketing Manager @ BlaBlaCar Italia
  • Paolo Dello vicario SEO e Founder ByTek Marketing
  • Paolo Ciotti Marketing Manager di HP Italy
  • Flavia Imperatore Manager & Blogger Misya
  • Ivano di Biasi SEO & CEO SEO Zoom

Insomma due giornate di altissimo livello da non perdere visto anche il prezzo scontato.

bannerlungo2

posted @ 27/06/2016 16.54 by Marco Maltraversi

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