Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - RicPol

Pagine: [1] 2 3 ... 220
1
mah, domanda fatta un milione di volte, e come il milione di volte precedente, troppo vaga per avere una risposta seria. Ci sono pro e contro per tutte le cose, e si possono passare i mesi e gli anni a spaccare il capello in quattro e pesare ogni singolo aspetto... ma alla fine, niente sostituisce un po' di pratica, tentativi e abitudine.
Come uno che ha scritto un libro su wxPython... ehm... forse potrei dirti wxPython... tranne che probabilmente io stesso ormai userei le Qt se dovessi scegliermi un framework da zero.  ;)

Ma la vera risposta (che ovviamente so già che non seguirai, ma per correttezza e onestà intellettuale non posso non darti) è questa: se sei "nuovo del mondo python e della programmazione in genere", semplicemente lascia perdere le gui per almeno un annetto buono. Usare un gui framework è una cosa complessa e delicata, e dovresti prima imparare bene le basi. Segui un buon libro (il Lutz è sempre il consiglio più gettonato), mettici molta pazienza e molto impegno, e vedrai che le gui arriveranno quando sarà il momento.

2
Web framework / Re:Aiuto Django
« il: Novembre 13, 2019, 09:34 »
Questo però non sembra il caso di una persona che vuole studiare Django e si sta appassionando. Questo sembra il caso di uno che ha in mente un progetto ben specifico, e ha deciso che in qualche modo lo farà in Django. Sono due scenari completamente diversi.

Se tu sei nel primo scenario, ti consiglio prima di tutto di studiare ben(ino) python per sei mesi / un anno (dipende dalla quantità di tempo che riesci a dedicarci), perché Django è un framework molto complesso che ha bisogno di molte preconoscenze per funzionare. Poi puoi leggerti a fondo il tutorial ufficiale, https://docs.djangoproject.com/en/2.2/intro/tutorial01/ poi questo tutorial che è sempre molto utile https://tutorial.djangogirls.org/ (la versione INGLESE mi raccomando), e poi guarda, io consiglio moltissimo questo libro https://twoscoopspress.com/products/two-scoops-of-django-1-11 che in effetti è un po' caro, ma francamente vale tutti i soldi che costa e a me è servito molto per orientarmi.

Se sei nel secondo scenario, ti consiglio di lasciar perdere Django: la cosa che hai in mente sta all'intersezione tra un certo numero di tecnologie e tecniche (hardware e sofware) e non è che "Django" sia una parola magica che ti risolve tutto. Puoi dare un'occhiata prima di tutto a come il tuo problema è già stato risolto, e se puoi prendere spunto. A partire da questo https://www.home-assistant.io/ che è open source, scritto in Python e che usa Flask come application server, se ben ricordo.

3
Esercizi / Re:Fare delle liste
« il: Novembre 13, 2019, 09:20 »
Sì beh, questo però non è codice python, sono parole in libertà.
Tra l'altro è buffo, ma sembra che tu stia scrivendo codice su... Word, può essere?, per cui ogni volta che premi il tasto del tabulatore Word inserisce un "punto elenco"... 

Uhm.
Su che libro stai studiando?

4
Base / Re:Errore durante l'importazione di una libreria
« il: Novembre 11, 2019, 09:42 »
... o magari l'hai installato nel python sbagliato, magari andava installato con conda install e non con pip install, o magari al momento dell'import non stai usando il python giusto.... Ananconda promette di essere facile, ma è molto più difficile di quello che sembra... Il consiglio è sempre uno, e sempre quello: non usare mai anaconda, e imparare con attenzione come funzionano i virtual environments in python, prima di buttarsi a installare pacchetti esterni (che comunque dovrebbero essere usati solo dopo almeno sei mesi di studio approfondito di python usando solo la libreria standard).
https://pythoninwindows.blogspot.com/p/blog-page.html

5
wxPython / Re:Libro italiano su wxPython disponibile!
« il: Novembre 08, 2019, 15:47 »
Ho aggiunto quattro capitoli nuovi al mio libro... per chi lo ha già comprato, la versione nuova è scaricabile gratis... per chi ancora non lo ha comperato... male, molto male! Rimediate subito!  :D

Il link è sempre https://leanpub.com/capirewxpython
e sul mio blog c'è un annuncio più lungo: https://pythoninwindows.blogspot.com/2019/11/nuovi-capitoli-per-capire-wxpython.html

6
Esercizi / Re:Esercizio sulla somma di interi in una stringa
« il: Ottobre 18, 2019, 13:19 »
e su cosa sei in difficoltà? posta del codice...

7
Altre tematiche / Re:Nuovo progetto, template di partenza
« il: Ottobre 15, 2019, 11:48 »
Un solo consiglio, detto in breve? Lascia perdere, non vale la pena farsi sti problemi.

Devo elaborare? Ok, allora: HEAD FIRST, come dice la collana https://en.wikipedia.org/wiki/Head_First_(book_series).
Se vedi che una cosa del genere, che dovrebbe darti consigli sulle tecnologie da usare, è aggiornata a sei anni fa, lascia stare. Fai prima a cercarti qualcosa di più aggiornato che a capire quali consigli sono ancora validi e quali no. Per esempio, https://github.com/pyscaffold/pyscaffold (e non sto dicendo che devi usare questo, eh?)
Secondo: tutte queste cose sarebbero pensate per ridurre il boilerplate, ma intanto aggiungono uno strato intermedio di boilerplate aggiuntivo che devi padroneggiare. Cioè, tu hai un problema: non sai come strutturare un progetto python. Decidi di risolverlo con un aggeggio del genere? Bene, adesso hai due problemi: devi capire come funziona l'aggeggio e che cosa fa davvero dietro le quinte, e comunque non sai ancora come strutturare un progetto python. Se ti sembra un progresso, vai così senza problemi.

Terzo: io non ho mai capito davvero se questi "template" ultra-ingegnerizzati non sono poi in fondo solo delle gran trollate. Voglio dire, anche nella migliore delle ipotesi, a che ti servono? Se dovessi far partire dieci nuovi progetti python al giorno, capirei di automatizzare lo startup. Ma io (non so tu) se va bene faccio partire un progetto nuovo al mese. E ogni mese circa, perdo un quarto d'ora a installarmi manualmente i pacchetti che mi servono, creare le directory e i readme e le licenze... copiando da qualche altro progetto che avevo già fatto in passato e che più o meno andava bene. Direi che perdo un quarto d'ora di produttività al mese... boh, non mi cambia la vita.
In definitiva direi che è meglio *pensare e capire* come vale la pena di essere strutturato un progetto python, e poi farselo a mano. Un'ottima idea è vedere come fanno gli altri. O magari leggere qualche guida in giro. Per esempio, come parte della mia guida avevo scritto anche qualcosa a questo proposito https://pythoninwindows.blogspot.com/2018/08/installare-e-usare-python-su-windows6.html

Quarto: può capitare che uno si sveglia un mattino e dice "io so che oggi inizio da zero un progetto corporate da un milione di righe di codice"... allora uno magari parte da un template di questo tipo. Ma di solito (almeno, per me) non succede: uno magari inizia buttando giù uno script da una dozzina di righe, un'altro script accanto per i test... nessun pacchetto esterno, basta unittest... e poi poco per volta, man mano che il progetto cresce, lo organizzi meglio...

Dopo di che, nello specifico del template che hai linkato... ma ti serve quella roba? Boh, non so, forse... L'unica cosa che a occhio ti serve di sicuro, e che la libreria standard non ha, è un buon linter (ma ormai andrei su pylint, non so se flake8... boh, come credi però). Tutto il resto, dipende.
Inoltre tieni conto che quel template non comprende le cose "extra-python" che pure potrebbero (e dovrebbero, in certi casi) servirti: un version control come Git, un tool di deployment... va a sapere cos'altro.

Morale: concentrati sul codice che vuoi scrivere, e sulle tue idee. Al "contorno" ci pensi man mano che ne hai bisogno...

8
Base / Re:ricorsione e alberi
« il: Luglio 27, 2019, 17:52 »

9
Base / Re:Storage parametri applicazione : un consiglio
« il: Luglio 27, 2019, 13:24 »
Mah. Ripensandoci, il motivo alla base di questi tuoi dubbi potrebbe essere che ti manca il concetto di leaking abstraction. Siccome lo storico saggio originale di Joel è ancora online, tanto vale indirizzare direttamente alla fonte: https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/
Ecco. Queste cose di cui parli qui, e di cui non riesci a farti un quadro preciso, si chiamano leaky abstractions.

10
Base / Re:Storage parametri applicazione : un consiglio
« il: Luglio 26, 2019, 09:25 »
> ma si parlava di processi di installazione/disinstallazione

tranne che invece poi eri passato a lamentarti di pathlib che c'è solo negli ultimi python.

Forse dovresti focalizzare la tua attenzione su quello che decidi essere il tuo problema attuale.
In ogni caso, di base non fa differenza: che si parli di feature platform-dependent o di processi di installazione (che sono anch'essi platform-dependent), la morale è esattamente identica: non puoi pensare che Python (ma neppure Java, se è per questo) ti sollevi dalla responsabilità di conoscere ciò che sta intorno al tuo programma scritto in Python. Ovviamente un linguaggio di alto livello ti offre qualche astrazione in più, ed è anche per questo che si usa. Ma oltre a un certo punto, devi sapere quello che fai.
Se cerchi di accedere (per dire) al file system da un programma Python (o Java), non è che Python (o Java) crei per te un file system nuovo di zecca, sempre uguale su tutte le piattaforme: avrai diversità di comportamento ineliminabili... magari nove su dieci non ci sbatti contro e non te ne accorgi, ma devi sapere che ci sono. Allo stesso modo, se vuoi installare il tuo programma, non è che Python (o Java) crei per te un "protocollo universale" di installazione valido su tutte le piattaforme. Devi sapere dove vuoi atterrare, in linea di massima.

> mi dovrei limitare ad utilizzare, nella codifica, solo le disponibilità standard

assolutamente no, ci mancherebbe. Devi, e puoi, fare esattamente tutto quello che vuoi. L'importante è che tu capisca che cosa stai facendo, e sappia farti una bilancia dei pro e dei contro.
E' un po' come sviluppare un frontend web. Certamente tu puoi limitarti solo al minimo comun denominatore di css e javascript in modo che tutto funzioni anche su Internet Explorer 6, se vuoi. In pratica però tutti gli sviluppatori oggi targettizzano solo le versioni più recenti di Chrome/FF/Edge, e di IE6 se ne fregano. L'importante è capire e decidere.

>  un processo di installazione non dovrebbe forse prevedere la verifica della disponibilità, od anche l'istallazione, di tali librerie?

sì e infatti ci sono vari meccanismi per stabilire la catena dei requirements (e anche vari problemi legati a questi meccanismi... ma così è la vita)

> non dovrebbe prevederne la rimozione se non più utili?

no

>  cosa dovrebbe fare per un "qualcosa" destinato ad essere utilizzato in vari ambienti?

"leggere i dannati manuali", come si diceva una volta. Non c'è un sostituto valido per questo. Informati sulle specifiche dei vari shop, vedi come fanno gli altri, eccetera.

>  questo qualcosa, varrebbe lo sforzo necessario?

E che ne so? Ma perché, invece di stopparti a pensare in astratto, non provi concretamente a sviluppare un pacchetto e pubblicarlo su varie piattaforme? Così vedi quali sono le difficoltà pratiche, fai i tuoi errori, li correggi, valuti i pro e i contro su un caso concreto.

> È scritto nella introduzione di tutti i libri su java che ho acquistato

proprio così, giusto. E quindi? Quale sarebbe la differenza concreta che riscontri con Python? Perché non sono mica riuscito a capirla.

Prova così: fai un esempio concreto di una cosa che in Java sei riuscito a fare ma che in Python non riesci, posta il codice concreto che ti ha permesso di risolvere il problema, e vediamo qual è il problema concreto.

11
dovresti guardare qual è il tipo di quel campo, e controllare come cx_oracle gestisce quel tipo... ovvero, probabilmente male a giudicare dal risultato (sì, nel dettaglio potrebbe in effetti essere un problema di aritmetica float come ti è stato detto...). D'altra parte, ovviamente toad non avrà problemi essendo un tool specializzato per oracle.
Poi insomma, vedrei se esiste una soluzione più "istituzionale" prima di mettermi a fare arrotondamenti a mano: per esempio registrare un adapter per il tipo in questione, vedere se cx_oracle ha delle estensioni che coprono quel tipo, vedere se esistono altri driver di database per oracle che fanno la cosa giusta... Non ho mai usato oracle quindi non saprei consigliarti...

12
Base / Re:Storage parametri applicazione : un consiglio
« il: Luglio 25, 2019, 19:49 »
Guarda, abbi pazienza non sono sicuro di capire quello che dici...

Python è già "multi-sistema", e permette già di sviluppare in modo astratto dal sistema operativo. Ma ovviamente se usi una feature del linguaggio che è stata introdotta solo di recente, questo ti limita alle versioni più recenti del linguaggio. Oppure, se vuoi (attraverso il linguaggio) usare feature che sono disponibili solo su un certo sistema operativo, questo ti limita a quel sistema operativo.
Ma questo ce lo avresti in java, in haskell, in perl, ce l'avresti con qualsiasi linguaggio. Per dire, se scrivi un programma in java che usa l'http client interno di java, allora ti stai limitando solo alle versioni più recenti dell'sdk, perché prima l'http client interno non c'era. Se vuoi scrivere un software che fa uso di schermi a colori, non puoi sperare che funzioni bene su schermi in bianco e nero. Eh, già.

> essendoci il C alla base di python, tale speranza è "molto" campata in aria, essendo il linguaggio molto più legato al sistema su cui risiede di java.

Adesso questo forse ti sorprenderà, ma guarda che java è scritto in c.

13
Base / Re:Storage parametri applicazione : un consiglio
« il: Luglio 24, 2019, 21:44 »
> .... fallirebbe con la versione 3.5.2 ...

Eh beh sì, ma che c'entra. Se usi una feature presente solo dalla versione X, allora il tuo programma funziona solo con python X o superiore. Ma questo vale per qualsiasi cosa, è scontato.

> ...la domanda è un po' generica ...

La domanda è mostruosamente generica. Dipende dal sistema operativo, dal tipo di programma, dal tipo di utente finale che lo deve utilizzare, dalla modalità di distribuzione che hai in mente.
Per esempio, è standard su linux installare progammi con un packet manager: allora per esempio potresti cercarti le guidelines per pubblicare il tuo programma in modo che sia installabile con il packet manager che hai in mente. Se segui la guideline, in teoria stai già facendo la cosa giusta.
Ma in generale il consiglio è: cercati un programma simile al tuo, e vedi come si regola quello... poi copia con giudizio.

14
ma non ho capito, è un esercizio da risolvere? perché se invece è un problema reale, allora penso che per queste cose ci siano robe come Shapely...

15
Multimedia / Re:confrontare pixel in un'immagine.
« il: Luglio 14, 2019, 20:56 »
E quindi, il codice che finora hai fatto e che funziona è questo:

<qui codice> <qui codice> <qui codice>

Invece, il codice che finora non sei riuscito a far funzionare è questo:

<qui codice> <qui codice> <qui codice>


Pagine: [1] 2 3 ... 220