Cambio! 
mercoledì, maggio 31, 2006, 15:13 - Training
Sono abitudinario,
leggo la targhetta sopra l'ascensore:
qual è la capienza, quanti chili porta,
poi si apre la porta e non lo so già più.


No, non era questo... Sono abitudinario perchè cambio molto poco il mio schema di allenamente, anche se vario molto i parametri di carico da un ciclo all'altro: ripetizioni, recuperi, tecniche di intensità etc.

Dopo un mese di allenamento è ora di cambiare, il corpo si è ripreso, sono pronto per nuovi stimoli. Questa volta voglio fare qualcosa di diverso. Ho deciso di fare tre allenamenti settimanali per tutto il corpo con parametri e stimoli completamente diversi l'uno dall'altro.

L'idea mi è venuta leggendo un articolo del solito Staley su T-Nation (in effetti lo letto su Olympian in italiano). Visti i pochi mezzi a disposizione, due soli manubri, ho optato per tre sedute:
- EDT con due zone PR da 15': push up e rematore ad un manubrio, squat (o stacco) con due manubri e military press
- EDT olimpico: clean e press alternato a snatch, entrambi con due manubri
- sudore: squat con due manubri e push up in protocollo Tabata

I 4 lettori di questo blog si stanno chiedendo cosa cavolo è la seconda seduta. Voglio provare i movimenti olimpici, che sono i sollevamenti che vengono effettuati alle olimpiadi: strappo e slancio. Visto che sono un principiante del genere, e che sono limitato dall'instabilità dei manubri, dovrebbe essere una bella esperienza. Questi movimenti composti, effettuati in velocità, dovrebbero essere molto profiqui per costruire della vera forza funzionale, forza da utilizzare nei movimenti di tutti i giorni.... beh, più o meno:)
Sicuramente partirò con pesi infimi, tipo 10Kg a manubrio... grande stimolo al miglioramento. Ah, ecco i link per vedere questi movimenti composti:

-The perfect snatch
-12 Steps to the Perfect Clean

Queste saranno le ultime tre settimane di allenamento così concepito, perchè poi farò il pendolare, con treno in partenza alle 6.25.... non credo proprio che mi alzerò alle 5 per allenarmi....



[ commenta ]   |  [ 0 trackbacks ]   |  permalink  |   ( 2.9 / 1838 )
La chimera dell'ottimizzazione 
martedì, maggio 23, 2006, 10:19 - Dev, Design
Partiamo dalla legge dell'ottimizzazione:
- non ottimizzare
- (solo per esperti) non ottimizzare ancora

Sono stato coinvolto nel processo di ottimizzazione alla disperata ricerca delle performance. Mettendo insieme tutti i pezzi non si andava oltre le 100cps (Call Per Second), mentre il concorrente dichiara 350cps, stesso profilo di test, hardware inferiore. E' ovvio a tutti che mai raggiungeremo quelle prestazioni, soprattutto perchè il pradigma e completamente diverso. L'application server del concorrente implementa le SIPServlet che sono sincrone, l'AS che usa StarSIP come stack SIP (quindi noi siamo solo di supporto) è completamente asincrone ed event-driven.

Non so come, ma sono diventato l'esperto di ottimizzazione del codice. Visto che sono un po' bastardo, i primi due tool che ho presentato sono stati
pmd e metrics che sembrano non centrare nulla con l'obiettivo. La mia idea è che non puoi pensare ad ottimizzare se non hai del codice quantomeno decente. Non nomino nemmeno test e design che sono concetti un po' lontani dalla cultura del "il più è che funzioni e vada forte"....

Con l'ausilio dei due tool ho scovato tre classine niente male dove c'erano le peggio cose:
- oggetti instanziati in cicli for
- String pippo = new String ("pippo");
- try/catch dentro a cicli
- classi enormi, metodi da 300 righe
Le tre classi offrivano tre metodi che erano i più chiamati su tutto il globo terraqueo:)

Solo dopo si può cominciare a profilare. Dopo aver provato
tptp, un sotto progetto di eclipse, siamo tornati a OptimizeIt. Devo dire ottimo prodotto. TPTP "ammazza" un po' la macchiano sotto profilatura, OptimizeIt la lascia un pochino più viva. Abbiamo scovato sullo stack 4/5 punti dove potevamo ottenere dei miglioramenti prestazionali. Pochi cambiamenti al codice, ma visto che è codice eseguito ad ogni messaggio, ovvero almeno 100 volte al secondo, capite come anche 1ms di guadagno possa essere importante.

Molte delle ottimizzazioni fatte potevano essere evitate con un po' di buon senso e migliore conoscenza della tecnologia. Molto del design non fatto poteva essere fatto anche senza conoscere Java :)

Il terzo aspetto di questo processo è il tuning della JVM: heap, garbage collector....
Alla fine le impostazioni sono solo relative alla dimensione dell'heap (-Xms), mentre per il gc meglio lasciar fare alla jvm 5.0 che si autoregola da sola meglio che con impostazioni fissate :)

Adesso un po' di link:
- JVM tuning per incremento performance
- scrivere codice ottimizzato

[ 41 commenti ] ( 5348 visite )   |  [ 0 trackbacks ]   |  permalink  |   ( 3 / 570 )
EDT.... funziona! 
giovedì, maggio 18, 2006, 09:24 - Training
Ormai sono un fanatico dell'allenamento a tempo fisso. La versione EDT, di Charles Stanley, prevede che in 15' si alternino due esercizi, meglio se antagonisti, per il massimo numero di serie possibile.

Ho strutturato la settimana su 4 allenamenti, lun, mar, gio e ven. Alterno giorni pesanti a giorni interval training, quindi più sudore:) Nel dettaglio:
- L: squat 4x1'+30", military press 4x40"+20", addominali
- M: push up per petto + rematore 1 manubrio in EDT (15'), push up stretti per tricipiti e curl 2 manubri per bicipiti 2 serie da 10/12 reps
- G: military press 1x5', squat 1x 5'. addominali
- V: push up medi 4x40"+20", rematore 4x40"+20", bicipiti

Mi piacerebbe fare EDT anche il giovedì, ma ho una sola coppia di manubri e continuare a cambiare peso complicherebbe le cose. Uso comunque un tempo limitato a 5' per esercizio. Se riesco a passare da Decathlon mi compro un altro paio di sbarre per i manubri, così da poter fare EDT su due antagonisti "falsi", nel senso che squat e military non sono antagonisti sulla stessa articolazione.

L'EDT puro lo uso il martedì per petto e dorso, antagonisti sul cigolo scapolare. 15' sembrano lunghi.... e lo sono! Ho fatto in totale 9 serie per esercizio di 6 ripetizioni, la prossima volta proverò ad aumentare il numero di reps per serie cercando di arrivare ad un totale più elevato.

Il lavoro agonista/antagonista è molto profiquo perchè mentre si accorcia un muscolo, ad esempio il pettorale mentre si fanno i push up, l'altro si allunga, il dorsale, preparandosi così a attivarsi in modo più profondo nella serie successiva.


[ 97 commenti ] ( 2492 visite )   |  [ 0 trackbacks ]   |  permalink  |   ( 3 / 1716 )
Evitare la complessità 
martedì, maggio 16, 2006, 10:53 - Dev, Design
Io non so per quale ragione, ma ai programmatori piace la complessità. Ne sono attratti, se riescono a fare una cosa complessa, pensano che sia bellissima.

Personalmente, e lo ribadisco ogni volta, sono stupido: nella complessità mi perdo. Se una classe implementa più di due interfacce... sono fottuto :)

Nella <grande compagnia telefonica> dove sono in consulenza il software su cui opero è frutto della stratificazione di anni di lavoro: è pieno legacy!. In questi due anni ne ho prese parti, le ho smontate, revisionate, semplificate. Di molte classi ne ho fatto uno spezzatino!

Una cose che mi piace è delegare. Come tutti, all'inizio della mia esperienza in OOP sono stato affascinato dalla ereditarietà, fortunatamente il mio tasso di stupidità mi ha frenato molto presto.

Io preferisco la composizione. Classi piccole che composte fanno il "tutto". Ogni componente fa poco e poi delega a qualcuno che, nel mio caso, è "sopra". Io sono su di una "pila" protocollare, quindi c'è quasi sempre un livello superiore.

Il cuore dell'applicativo, nella sua precedente versione, era una gerarchia di tre classi da 5000 righe ciascuna. E' facile comprendere che spesso nelle riunioni tecniche mi debba scontrare con una "cultura" lievemente diversa. Ogni volta devo combattere strenuamente per adottare la soluzione più semplice.

Ma poi, come è successo l'ultima volta, tutto ciò che abbiamo disegnato al mattino sulla lavagna è stato stravolto e complicato nel pomeriggio durante la redazione di un documento riassuntivo.

Ma ce la farò anche questa volta, ne sono certo. La complessità non vincerà!





[ 11 commenti ] ( 1522 visite )   |  [ 0 trackbacks ]   |  permalink  |   ( 3 / 511 )
Primo allenamento mattutino 
giovedì, maggio 4, 2006, 09:46 - Training
Questa notte i bimbi sono stati molto bravi, così alle 6:30 sono saltato... ehm... rotolato giù dal letto ed ho fatto il mio primo allenamento mattutino, a stomaco vuoto.

Solo 4 esercizi, spinte in alto con i manubri e squat con i manubri in protocollo 40"+20", mezzi stacchi a gambe tese e addominali per un 20' ca di lavoro. Ah, dopo la doccia e la colazione ho inforcato la bici e sono venuto a lavorare!

Spero di avere la forza mentale di continuare, perchè le sensazioni fisiche sono molto positive: mi sento pieno di energia, anche se con qualche dolorino muscolare qua e là :)



[ 13 commenti ] ( 1543 visite )   |  [ 0 trackbacks ]   |  permalink  |   ( 3 / 1908 )

Indietro Altre notizie