Esercizi di programmazione con commenti e suggerimenti social. Interessante… Ma pare nessun supporto per java http://educationware.net/exercism-io-become-a-better-programmer/
Autore: bosh (Pagina 32 di 50)
La piattaforma che ho scelto è nginx per le risorse statiche e come reverse prowxy, php-fpm o tomcat 8 per le app, mariadb per la persistenza.
Ma la prima cosa da far funzionare è la persistenza, in quanto le app è facile mantenerle sull’hosting attuale fino alla scadenza ma la persistenza deve essere spostata per prima.
Ma per la persistenza serve una piattaforma di gestione … il che significa l’odiato/amato phpMyAdmin e quindi un server php funzionante. Quindi facciamo le cose in ordine … questa è la guida da cui ho tratto ispirazione -> LINK. Poi forse la traduco con le personalizzazioni che ho fatto, o forse no.
Ora probabilmente php deve essere configurato per gestire l’upload di file un pò piu grossi della configurazione standard a meno che i vostri database siano microscopici.
Quindi su php.ini
post_max_size = 50M
upload_max_filesize = 50M
In caso di DB molto grossi può essere utile comprimere in zip il dump e alzare il limite della ram assegnata a php e il timeout. Ad esempio
php.ini :
max_input_time = -1
memory_limit = 128M
(Sarebbe bene riportare questi parametri a valori piu cautelativi una volta terminata l’importazione, sopratutto per il max_input_time)
Scarichiamo phpMyAdmin e installiamolo su un virtual host fatto apposta. Noip.com offre la possibilita di creare un pò di domini di terzo livello gratuitamente e può essere utile per il nostro scopo.
In alternativa se proprio phpMyAdmin non digerisce il dump c’è sempre l’importazione da linea di comando. L’istruzione è questa :
mysql -u <username> -p -h localhost <database_name> < dumpfile.sql
Per ogni database si dovrebbe essere un utente diverso, momentaneamente abilitato alla connessione da qualsiasi host con privilegi sui soli dati (SELECT/INSERT/UPDATE/DELETE) per il solo database che deve usare. Non cadete nella tentazione di assegnare ad un utente con accesso remoto tutti i permessi su tutti i database.
Terminata la migrazione bisognerà disattivare l’accesso da remoto.
I permessi possono essere testati con lo stesso phpMyAdmin.
Si ci sono ricascato, costano poco percui mi sono detto… perchè pagare n hosting ( n<10 ) quando puoi prenderti un VPS, farci quello che vuoi e vivere felice.
La prima risposta di una persona sana di mente direbbe perchè lo devi gestire e non hai il tempo per farlo. Ma visto che non lo sono chissene.
OVH vende vps ad un prezzo ridicolo quindi ne ho preso uno per qualche mese e vediamo che succede. La scelta è ricaduata su server CENTOS 7, 64bit, 1 giga di ram, 1 vcore e 10 giga di spazio.
Nelle prossime puntate le scelte che ho fatto e come è andata a finire.
- Java unlimited runtime class and resource redefinition – Hotswap Agent
Hotswap agent provides Java unlimited runtime class and resource redefinition. Hotswap agent supports all major frameworks, it is free, open source and extensible.
Pl/Sql implementa la definizione probabilistica di deviazione standard, ovvero :
con la comoda funzione STDDEV, mentre a me (e forse non solo a me) serviva la versione statistica, ovvero :
SQRT((1 / COUNT(*)) * (SUM( $colonna * $colonna ) – (COUNT(*) * AVG( $colonna ) * AVG( $colonna ))))
Immagini da wikipedia
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 .
Una volta tanto scrivo un post non automatizzato: il 28 e 29 novembre ho partecipato al codemotion 2014 a Milano e di seguito due righe sugli speech che ho seguito il primo giorno.
- Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 tenuto da Marco Casario : Molto focalizzato sull’ottimizzazione prestazionale dell’html. Sono stati presentati alcuni strumenti di valutazione delle performance, sia interni al browser (Chrome in primis) che su siti esterni. Alcuni link che ho colto al volo sono presenti sul post di questa settimana. Sildes.
- Recipes to develop a reactive and cloud-ready application using Scala and Akka tenuto da Roberto Bentivoglio : L’utilizzo di Akka come base per sistemi distribuiti per svolgere combiti complessi ma divisibili. Il framework astrae la complessita e lavorare con un core o 1000 non fa differenza ( qualcuno ha detto hadoop ?). Da ignorante di Akka e quasi ignorante di Scala ho faticato a seguire l’esposizione, ma l’impressione era di essere in buona compagnia. Slides.
- Programming Motherfucker or how I rediscovered my hacker spirit tenuto da Ole Michaelis: La nascita e l’evoluzione di un pet-project. Le difficoltà (soprattutto per ottenere un design decente, grosso limite di molti programmato). Il pet-project è slidr.io e dovrebbe servire per condividere slide, ma al momento non è raggiungibile. Troppo successo? Comunque interessante e bello vedere come alti e bassi di progetti specie non pagati siano problemi che anche altri affrontano. Comunque rilasciate sempre! Edit: io non lo raggiungevo probabilmente per problemi di DNS. Le slides sono effettivamente li.
- Fun with functional JavaScript tenuto da Kuba Wali?ski: L’amato (poco) e odiato (tanto) javascript sorprende come linguaggio pronto per la programmazione funzionale. Slides
- Pragmatic Functional Refactoring with Java 8 tenuto da Raoul-Gabriel Urma : Introduzione alla programmazione funzionale con Java 8, con attenzione al’utilizzo dei Predicate e alle Lambda sulle collections per ottenere una maggiore leggibilità del codice e migliore riutilizzabilità. Interessante e comprensibile. Coautore di Java 8 in Action. Slides
- Laziness, trampolines, monoids and other functional amenities: this is not your father’s Java tenuto da Mario Fusco: Quasi una seconda parte sulla programmazione funzionale con java 8, approfondimenti sul concetto di monoide (una volta che capisci i monoidi li vedi ovunque… sarà… ci credo per fiducia), laziness e trampolini. Interessante ma gli speech in inglese tenuti da italiani a italiani sono una forzatura che azzoppa la fruibilità e l’attenzione. Coautore di Java 8 in Action. Slides.
- La professione dello sviluppatore (3 anni dopo) Gabriele Lana : Scelta come “defaticamento” dopo la tripletta funzionale si è rivelato il talk più divertente della giornata, e quello che forse ha fatto riflettere di più. Tanti spunti, su come la professione del programmatore possa e debba migliorare, e se oggi è cosi è colpa in buona parte dei programmatori stessi. In poche parole ci vuole più consapevolezza del proprio valore e più etica in quello che si fà. E gli agenti per strappare contratti migliori. Si voglio decisamente un agente. Video del prequel (3 anni prima) . Per ora c’è solo qualche scatto e le slides, spero che l’organizzazione pubblichi il video integrale.
