Profilo di RicPol

Nome RicPol
Indirizzo email ric.pol@libero.it
AvatarAvatar utenti
Messaggi279
Firma forum
https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
  • Re: Un libro italiano su wxPython
    Forum >> Programmazione Python >> GUI
    E chi poteva essere il pazzo.... :party:




    Magari c'è la possibilità di aggiungerlo alla lista dei libri consigliati nella sezione "documentazione"?



    https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
    https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
  • Re: Aiuto: Python su anaconda
    Forum >> Principianti
    Mah, purtroppo ogni volta che Anaconda entra nell'equazione, tutto si complica. Anaconda è il male, c'è niente da fare.


    Per esempio, io appena adesso non ho avuto nessun problema ad installare questo pacchetto su un normale virtual environment di Python 3.7, a botte di "pip install" dalla shell.


    Oddio, "nessun problema" a parte che questo nilearn è pacchettizzato in maniera un po' sciatta e non dichiara tutti i suoi pre-requisiti... In realtà bisogna anche installare Scipy e Sklearn... ma appunto è banale rendersene conto e correggere l'errore, dopo di che tutto funziona. Puoi provarci anche tu nel tuo ambiente, a installare anche queste due cose, e vedere se cambia qualcosa... ma non saprei proprio dire.


    In ogni caso, il consiglio è sempre uno e sempre quello: lascia perdere Anaconda, impara daccapo con molto tempo e molta pazienza a lavorare con Python "puro", impara a installare pacchetti, impara a usare la shell e solo la shell. E' più lungo ma ti risparmi un sacco di noie.


    Proprio a forza di rispondere sui forum a quesiti come questo, ho finito per scrivere una lunga guida sul mio piccolo blog (link in firma)... te la raccomando. E magari puoi partire da questo post separato che ho scritto dopo: https://pythoninwindows.blogspot.com/2019/03/e-adesso-dove-clicco.html




    https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
    https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
  • Un libro italiano su wxPython
    Forum >> Programmazione Python >> GUI
    Da parecchi anni avevo una raccolta di "Appunti wxPython" online, che però aveva bisogno di una profonda revisione...


    Adesso li ho rivisti, e ne è venuto fuori un libro: "Capire wxPython: strumenti e buone pratiche per progettare applicazioni GUI desktop complesse". Niente meno.


    In poche parole, è la risorsa più completa su wxPython disponibile in Italiano. In qualche parola in più: https://pythoninwindows.blogspot.com/2019/05/capire-wxpython.html

    Il libro si trova qui: https://leanpub.com/capirewxpython e c'è pure il campione omaggio, per chi non si fida.




    https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
    https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
  • Re: Dal Mondo PHP al Mondo PYTHON
    Forum >> Principianti
    Allora è probabile che in quel mondo il passaggio a Python/Django ti farà fare un salto di qualità... soprattutto se Python è integrato (o riesci a integrarlo) anche nel resto del workflow della tua azienda... A quel punto, per dire, puoi fare data analysis in Python e avere il backend del sito in Django... la qualità della vita migliora...
    https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
    https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
  • Re: Dal Mondo PHP al Mondo PYTHON
    Forum >> Principianti
    Sì certo, Lutz a manetta per un po' di mesi, e poi se vuoi sei pronto per Django...


    Detto questo, c'è sempre un gigantesco punto interrogativo da tener presente... ed è CHE COSA vuoi fartene di imparare Python... voglio dire, se è per hobby nessun problema. Se è per ragioni professionali (magari future, o anche solo speranze) devo dirti che sicuramente, stra-sicuramente imparare Python ti dà più vantaggi di php: i lavori che richiedono Python, specialmente in Italia, sono molti meno, ma è anche minore la concorrenza e i compensi sono più alti... MAAaaaa (e ti pareva che ci fosse un ma), devo anche dirti che forse la forbice sta iniziando a chiudersi, e inizia a chiudersi soprattutto nel campo che interessa a te. Ormai Python/Django è il nuovo Php, non certo in termini di qualità tecnica (su questo, pur con tutti i miglioramenti obiettivi che Php ha fatto in questi anni, non c'è comunque paragone) ma in termini di numero di sviluppatori... quasi-amatoriali. Mi spiego: una volta il tipico smanettone senza troppo criterio si offriva di fare il sito del panettiere, e lo faceva in Php. Oggi lo stesso individuo, con le stesse skill (poche), comincia a fartelo in Django...


    Se sei in un mercato "basso" (e senza nessuna offesa: conosco gente bravissima che fa SEO per i siti delle autofficine, e ci guadagna ed è *veramente* brava in quello che fa), fino a poco fa potevi dire "mi sposto in Python e la concorrenza diventa un decimo". Adesso non è più tanto così. Solo per dirtelo, nel caso.


    Di conseguenza ho paura che il valore aggiunto di imparare Python sia anche e soprattutto nell'altro che puoi farci, nelle opzioni diversificate che ti offre, dello sguardo più ampio che puoi avere. Ma se vuoi imparare Python solo per Django, e vuoi usare Django solo per fare quello che già fai con Laravel... mah, la mia impressione è che Django è fantastico... però Laravel resta un bel prodotto, e da un punto di vista *puramente professionale* non aspettarti salti enormi di risultati.


    Cioè, non vorrei che ti facessi aspettative professionali... Invece se la tua curiosità è puramente sul piano della programmazione, allora con Django ti toglierai un bel po' di soddisfazioni.




    https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
    https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
  • Re: Funzione Fibonacci - come funziona la memorizzazione in questo caso?
    Forum >> Principianti
    Eh sai, il problema non è tanto l'ironia, il problema è se hai capito davvero oppure no... e ogni tanto scrivi qualcosa che spalanca una voragine, che mi fa pensare che...


    Per esempio, adesso, che cosa vuol dire "calcolate contemporaneamente"?... Poi guardo meglio la figura di quel maledetto libro (veramente... ma proibirlo una volta per tutte?!) e mi accorgo che ogni box di quella figura ha curiosamente due frecce... una cosa innocua, dopo tutto, giusto un modo per dire "va di qua E POI di là"..., ma intanto mi viene l'orrendo sospetto che tu *veramente* pensi che l'esecuzione del codice sia "contemporanea"... E da questo, che cosa *davvero* pensi che sia la ricorsione... Non so, è che Pensare da Informatico è talmente tanto un frattale di pessimo insegnamento, che non riesco mai a capire come la gente finisce per capire quello che c'è scritto sopra...





    Comunque, alla fine ho preso spunto da questa conversazione e mi sono deciso a buttar giù un primo articolo di debunking di Pensare da Informatico... a futura memoria: https://pythoninwindows.blogspot.com/2019/05/non-pensare-da-informatico.html

    https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
    https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
  • Re: Dal Mondo PHP al Mondo PYTHON
    Forum >> Principianti
    > se partendo da Django riesco ad apprendere Python

    No, no questo assolutamente no. Per lavorare in Django occorre una buona conoscenza di Python. Sperare di imparare Python attraverso Django è mettersi in una strada veramente in salita.


    Tra l'altro sotto questo aspetto Django è ingannevole... nel senso che Django (che è scritto in Python) fa uso di artifici estremamente complicati (nel senso: se leggi il codice sorgente di Django ti trovi di fronte a un Python *molto* complicato) per mettere a disposizione degli strumenti che risultano semplici da usare... Ma il rischio per chi non conosce bene Python è pensare che quegli strumenti esistono "normalmente" anche in Python, mentre invece sono tipici solo di Django... per dire, che una feature che trovi in una classe Django la trovi anche in una normale classe Python...


    Direi che prima devi dare una bella scorsa a Python. Per fortuna non è un linguaggio difficile da imparare, e ci sono ottime risorse (l'acquisto del Lutz da Feltrinelli è sempre una ottima idea). Poi imparare Django non è troppo complicato, anche perché Django è uno dei framework meglio documentati del mondo... anche se è praticamente tutto in Inglese... qui non scappi.




    https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
    https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
  • Re: Funzione Fibonacci - come funziona la memorizzazione in questo caso?
    Forum >> Principianti
    E dai però, prova un po' a immaginare: NON ha importanza se calcola prima la parte a destra o quella a sinistra: dipende banalmente da come scrivi la funzione. Se scrivi "fibonacci(n-1) + fibonacci(n-2)" andrà da una parte (quale? boh!), se scrivi "fibonacci(n-2) + fibonacci(n-1)" andrà dall'altra (quale? boh!). Che differenza c'è? Almeno l'ultima volta che ho controllato l'addizione aveva la proprietà commutativa. E' ancora così?
    E già che ci siamo, dipende anche da come disegni la figura, no? Se (per dire) arrivi a capire che in quella figura percorre prima l'albero a destra, allora basta disegnare la figura al contrario, o metterla davanti allo specchio... e voilà, percorre prima l'albero a sinistra. E' solo una questione di convenzioni.





    L'importante è capire che, ogni volta che deve chiamare fibonacci(x), per prima cosa vede se il risultato di fibonacci(x) sta già nella cache: se no, lo calcola. Quindi, la prima volta che lo incontra lo calcola percorrendo effettivamente il ramo (che sia il ramo di destra, ramo di sinistra, ramo di sotto o ramo di sopra... come vuoi tu, puoi divertirti a girare la figura in tutte le direzioni), la seconda volta no.








    Detto questo, prima o poi scriverò una serie di articoli sulla c****ate più atroci di Pensare da Informatico... Ma almeno quel paragrafo non è scorretto... basta seguirlo con attenzione.

    https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
    https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
  • Re: Funzione Fibonacci - come funziona la memorizzazione in questo caso?
    Forum >> Principianti
    Mah, per una volta devo dire che quel paragrafo di Pensare da Informatico spiega le cose abbastanza bene (davvero incredibile vista la qualità generale del libro). Direi che basta leggere con attenzione, a partire dal fatto che questa tecnica si chiama "memoizzazione" e non "memoRizzazione". Banalmente, la versione con la cache esce prima non appena incontra un ramo di ricorsione che è già stato calcolato, e di cui quindi si sa già il risultato. In questo modo si evita di ri-calcolare tutte le volte gli stessi rami di ricorsione, e si risparmia un po' di tempo. Se guardi la "figura 11.2" come ti suggerisce il libro, per esempio se vuoi calcolare fibonacci(4) prima o poi ti trovi a dover calcolare fibonacci(2) due volte (una nel ramo di destra e una in quello di sinistra, li hai visti nel disegno?). Ora, con la cache la prima volta effettivamente percorri ricorsivamente tutto l'albero, ma la seconda volta non ne hai bisogno perché la cache conserva già il valore di fibonacci(2), e puoi subito uscire da quel ramo di ricorsione col risultato in mano.


    La memoizzazione è una tecnica molto comune soprattutto accoppiata con la ricorsione... Se vuoi un altro esempio spiegato in Italiano, mi è tornato in mente che nel glorioso e ormai abbandonato sito Stacktrace niente meno che Marco Beri spiega come risolvere l'esercizio 14 del Progetto Eulero (sulla congettura di Collatz), e ovviamente fa uso della memoizzazione https://stacktrace.it/2008/03/03/progetto-eulero-problema-14/



    https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
    https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide
  • Re: Dal Mondo PHP al Mondo PYTHON
    Forum >> Principianti
    Mah, non è una risposta semplice... dipende molto da che cosa hai fatto davvero in questi 10 anni... diciamo che se sei stato esposto a qualche altro linguaggio... "serio"... e temo che questo non includa javascript (ehm)... allora più o meno dovresti avere una mezza idea di che cosa aspettarti... per esempio, Python è un linguaggio OOP ma nel senso "serio" del termine (quello di java, o di C#... etc etc.), non nel senso di "classi? ah sì aspetta che vedo se riesco a cucirle al volo nel linguaggio dopo vent'anni" di php. Eccetera.


    Se invece hai visto solo php nella tua vita... mah, potresti semplicemente non capire qual è il problema a cui un linguaggio come Python offre una soluzione. Se per te "php ha sempre funzionato, bene o male", allora il consiglio è di non cercare nemmeno di fare confronti. Immagina di trasferirti su Marte e ricomincia tutto daccapo, come se non avessi mai programmato nella tua vita. Non cercare assolutamente di riprodurre in Python le cose che facevi in Php, non fare confronti, non chiederti niente, tappati le orecchie. Tra un paio d'anni, dopo che Python ti sarà un po' più familiare, potrai vedere quanta differenza c'è con php, e dove.


    Poi c'è da dire anche un'altra cosa: di solito quando uno dice "lavoro in php" non lo dice nel senso in cui si dice "lavoro in python"... Soprattutto di questi tempi è tutto sommato abbastanza raro che uno "sviluppatore php" scriva effettivamente codice php duro-e-puro... In genere si lavora coi framework (per tacere di quelli che dicono "sviluppo in php" e in realtà fanno skin per wordpress), e i framework php (ameno i migliori) fanno un lavoro dannato e fantastico per nascondere sotto il tappeto i disastri di php. Quando lavori con Laravel, per dire, puoi seguire pattern più moderni (nel senso, di almeno 10 anni fa)... url routing, view, un discreto ORM, migrazioni per il database... che se non sono proprio al livello di quello che puoi trovare in Python comunque ti mantengono psichicamente sano. A questo punto, quando passi a Django trovi le stesse idee e magari se non sei proprio "sensibile" non ti accorgi nemmeno del valore aggiunto... Ma insomma, l'adattamento è più facile...

    Se invece hai ancora in mente il php di 10 anni fa, con codice martellato a forza dentro la pagina html, allora... fai conto di trasferirti su Marte, si diceva.


    A parte tutto questo, ovviamente c'è poi il fatto che php è solo "php per il web", mentre Python è molto molto di più... il che magari non ti importa un granché ma insomma almeno uno ha la possibilità di cambiare lavoro, volesse mai...

    https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
    https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide