Post recenti

Pagine: [1] 2 3 ... 10
1
Programmazione in rete - web / Architettura SOA
« Ultimo post da Lord Byron il Maggio 29, 2023, 10:59 »
Buongiorno.
Spero di essere nella sezione giusta.
Volendo realizzare un'architettura SOA in maniera semplice e lineare, utilizzando meno prodotti di terze parti possibile (un po' per questione di licenze, il prodotto finale potrebbe dover essere closed source; un po' per non dipendere da progetti esterni che potrebbero venir abbandonati in ogni momento), cosa mi consigliate di fare?
Le necessità sono:
- serializzazione/deserializzazione JSON di oggetti generici complessi (oggetti che contengono altri oggetti, che a loro volta contengono liste di oggetti che potrebbero contenere altri oggetti o liste di oggetti);
- funzionalità json-rpc (possibilità di esporre a un dato indirizzo una procedura/funzione/routine che, accettando dati JSON in ingresso, esegua del codice e restituisca al termine una risposta in JSON) e opzionalmente anche REST (ma ha poca importanza, quel che interessa è l'RPC);
- possibilità di gestire il multithreading (anche "a mano", non è un problema questo);
- accesso ad un db relazionale (non cerco ORM o soluzioni tipo ActiveRecord, ma accetto suggerimenti anche in quel senso se ne avete).

Vorrei sentire varie opzioni, ferme restando le necessità di:
- soluzioni (librerie, framework e quant'altro vorrete consigliarmi) utilizzabili per programmi closed source;
- soluzioni con una documentazione completa (in inglese va benissimo).

Grazie a tutti.
2
Benvenuto e regolamento / Salve colleghi!
« Ultimo post da Lord Byron il Maggio 29, 2023, 09:53 »
Salve a tutti,
mi presento: lavoro per un'azienda che crea (prevalentemente) software verticali di nicchia e in precedenza ho lavorato anche in proprio (software orizzontali, siti web, consulenze).
Sono qui in cerca di confronti per poter vedere le cose da diverse prospettive e per conoscere meglio il mondo di Python.
Non ho, al momento, nessun "problema da risolvere": sto cercando di creare un "metodo di lavoro" e sono iscritto ad un altro forum -non in concorrenza con questo trattandosi di un forum relativo ad un altro linguaggio- e penso che il primissimo thread che aprirò (a parte la presentazione) sarà simile in entrambi, ma poi andremo in direzioni completamente diverse.
3
Altro / Re:Genropy : qualcuno lo conosce? Se si, cosa ne pensate?
« Ultimo post da nuzzopippo il Maggio 22, 2023, 11:08 »
Ciao @GlennHK, Ti ringrazio del Tuo, gradito, parere, ne terrò gran conto

In merito allo spiegare l'uso dei virtualenv, hai piena ragione, non è che si sta li a spiegarlo ma la installazione di genropy è un po' particolare rispetto al solito, il framework non esiste in Pypi e git è tra i pre-requisiti richiesti per la sua installazione, che viene effettuata clonando il repository di genropy.
Diciamo che tale particolare mi rende "insicuro" circa la mia capacità di circoscrivere il tutto all'interno di un venv e che è stata uno dei motivi che mi hanno spinto a chiedere pareri prima ancora di tentare un approccio a tale framework.

Ovviamente, la mia scarsa conoscenza dello approccio a tecniche "web" è un altro importante motivo, tale circostanza mi impedisce di discernere tra i vari framework e/o librerie disponibili per selezionare ciò che potrebbe essere idoneo alle mie comunque limitate esigenze/capacità.

Mi incuriosisce la Tua negatività circa quello che nella docs viene indicato proprio come il primo punto di forza del pacchetto
Citazione
Single Page Applications, ovvero applicativi web complessi comparabili nell’esperienza d’uso a quelli desktop
Meglio che non mi esprimo su questa frase...

Certamente le riserve che si intravedono sarebbero istruttive ma, magari, potrebbero essere impegnative da esporsi, se fosse possibile una sintesi rapida (e non a Te impegnativa) su cui meditare la leggerei volentieri.

In ogni caso, grazie ancora. :)
4
Altro / Re:Genropy : qualcuno lo conosce? Se si, cosa ne pensate?
« Ultimo post da GlennHK il Maggio 22, 2023, 02:16 »
Citazione
Leggendo la docs relativa alla installazione, vedo che essa è esemplificata a livello di sistema e prevede l'installazione di GIT

Suvvia, non è che tutti i tutorial possono stare a spiegare come si usa virtualenv...

Citazione
il secondo luogo perché non gradisco l'idea di impelagarmi in cose tipo "git", non interessandomi per niente

Dove è scritto che git è necessario? Detto che credo sia un must conoscerlo al giorno d'oggi.

Per il resto, meh, non mi sembra sia il top, forse qualcosa di più usato, documentato, testato ecc come django è più semplice, ma non saprei dato che non conosco questo genropy.

Citazione
Single Page Applications, ovvero applicativi web complessi comparabili nell’esperienza d’uso a quelli desktop

Meglio che non mi esprimo su questa frase...
5
Altro / Genropy : qualcuno lo conosce? Se si, cosa ne pensate?
« Ultimo post da nuzzopippo il Maggio 21, 2023, 10:16 »
Saluti a Voi

Gironzolando fra le varie docs di python mi sono casualmente imbattuto in riferimenti al framework genropy che, come recita nella sua stessa documentazione
Citazione
Genropy è un framework open source per lo sviluppo rapido di Single Page Applications, ovvero applicativi web complessi comparabili nell’esperienza d’uso a quelli desktop
Caratteristiche che un po' mi attirano, dato che il mio target prevalente sono le applicazioni desktop ma sono consapevole che prima o poi dovrò misurarmi con un po' di programmazione web-based su server locale, non fosse altro per costruire piccole utility casalinghe a cui accedere da computer, cellulari, etc.

Leggendo la docs relativa alla installazione, vedo che essa è esemplificata a livello di sistema e prevede l'installazione di GIT ... faccende che non mi garbano, in primis perché cerco di non sporcare il s.o. preferendo, quindi, l'uso dei venv, il secondo luogo perché non gradisco l'idea di impelagarmi in cose tipo "git", non interessandomi per niente.

Forse, documentandomi potrei scoprire se si può utilizzare il framework in un venv locale ma prima ancora mi sorge la domanda se, per il tipo di utilizzi prevedibili (scadenziari, gestione c/c, gestione mediateca, etc) valga la pena di approfondire su detto framework oppure considerare altri, tipo Flask o django, etc ... voi cosa ne pensate?

N.B. : la domanda sorge dalla consapevolezza che facendo una scelta un'annetto di studio dovrei dedicarcelo prima di produrre qualcosa di decente, mi piacerebbe un consiglio da chi sa qualcosa più di me in materia.

Grazie dell'attenzione, ciao :)
6
Base / Re:Richiesta di aiuto per DataFrame
« Ultimo post da GlennHK il Maggio 04, 2023, 14:56 »
Un po' impossibile con così pochi dettagli.


L'unico guess che si può fare è che 009 e compagnia cantante siano stringhe e non numeri, ma davvero, non si può dire altro senza uno stralcio di codice.
7
Base / Richiesta di aiuto per DataFrame
« Ultimo post da Pablo Sgargiola il Maggio 04, 2023, 14:10 »
Salve a tutti, ho bisogno del Vostro aiuto per cosa genera questo problema.

Ho alcune tabelle che sto cercando di scaricare da una pagina web; le tabelle sono di questo tipo:
A                B
Val_1      0,09
Val_2      -
Val_3      0,13
Val_4      1,04
Val_5      0,10

I risultati che ottengo con python e pandas sono di due tipi. Alcune volte ottengo:
A              B
Val_1      9
Val_2      -
Val_3      13
Val_4      104
Val_5      10
e quindi devo poi dividere per 100 per ottenere i risultati reali.

Altre volte, in altre tabelle, ottengo invece risultati del seguente tipo:
A                B
Val_1      009
Val_2      -
Val_3      013
Val_4      104
Val_5      010

Facendo il print(type) in quest'ultimo caso ottengo valori 'str' mentre nel caso precedente si tratta di "numpy.int64".
Qualcuno può aiutarmi a capire cosa genera questa diversa interpretazione ?
Grazie sin da ora a chiunque vorrà dedicarmi il proprio tempo.
8
Progetti e script / Re:lag startup script e import
« Ultimo post da GlennHK il Maggio 04, 2023, 09:24 »
Python è lento... non credo ci sia molto altro che si possa fare, dato che probabilmente non hai controllo su quale interprete fa girare il tuo script.


Se le performance sono così critiche forse è meglio switchare a qualcos'altro.
9
Benvenuto e regolamento / Re:print("ciao :-)")
« Ultimo post da nuzzopippo il Aprile 22, 2023, 17:26 »
Ciao @andi75, ben venuto

Vedo dalla Tua presentazione e dall'altro Tuo post, che saresTi un acquisto decisamente istruttivo per il Forum, o almeno per me che certamente avrei molte cosette da scoprire.
Purtroppo, personalmente, non sono all'altezza di rispondere sulla latenza degli imports in python, problema di cui non mi son mai curato avendo un target prevalentemente desktop, tra gli altri utenti  del Forum ci sono certo esperienze all'altezza degli argomenti che Tu poni e che, purtroppo, si vedono sempre più di rado ... magari problematiche meno spicciole delle solite potrebbero stimolarli a tornare un po'.

In ogni caso, ancora ben venuto :)
10
Progetti e script / Re:lag startup script e import
« Ultimo post da andi75 il Aprile 22, 2023, 17:12 »

strace -c /usr/local/bin/akclient.py -m akc -t ssh-ed25519 -u andrea -a http://auth/akc -p
ssh-ed25519 <pippo> andrea@lonewolf
ecdsa-sha2-nistp256 <pluto> andrea@lonewolf
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 24.77    0.000322           0       390        28 stat
 15.00    0.000195           0       221           read
 14.31    0.000186          10        18           getdents64
  9.92    0.000129           0       142         5 openat
  7.77    0.000101           0       229           fstat
  6.62    0.000086           0       147           close
  5.69    0.000074           0       192         3 lseek
  4.54    0.000059           0       120           mmap
  3.77    0.000049           1        26           brk
  3.38    0.000044           0       110        89 ioctl
  1.46    0.000019           4         4           lstat
  0.54    0.000007           2         3           fcntl
  0.54    0.000007           7         1           sysinfo
  0.46    0.000006           2         3         2 readlink
  0.38    0.000005           1         3           dup
  0.38    0.000005           1         3           getrandom
  0.31    0.000004           0        27           mprotect
  0.15    0.000002           0         8           munmap
  0.00    0.000000           0         4           write
  0.00    0.000000           0         8           poll
  0.00    0.000000           0        68           rt_sigaction
  0.00    0.000000           0         1           rt_sigprocmask
  0.00    0.000000           0         2         2 access
  0.00    0.000000           0        14           getpid
  0.00    0.000000           0         6           socket
  0.00    0.000000           0         6           connect
  0.00    0.000000           0         5           sendto
  0.00    0.000000           0         6           recvfrom
  0.00    0.000000           0         1           recvmsg
  0.00    0.000000           0         4           setsockopt
  0.00    0.000000           0         5         3 execve
  0.00    0.000000           0         2           uname
  0.00    0.000000           0         2           flock
  0.00    0.000000           0         1           unlink
  0.00    0.000000           0         2           arch_prctl
  0.00    0.000000           0         1           gettid
  0.00    0.000000           0        23           futex
  0.00    0.000000           0         1           set_tid_address
  0.00    0.000000           0         1           set_robust_list
  0.00    0.000000           0         1           epoll_create1
  0.00    0.000000           0         1           prlimit64
  0.00    0.000000           0         2           sendmmsg
------ ----------- ----------- --------- --------- ----------------
100.00    0.001300           0      1814       132 total


In effetti (non riporto l'output per intero, troppo lungo):

strace -e stat /usr/local/bin/akclient.py -m akc -t ssh-ed25519 -u andrea -a http://auth/akc

stat("/usr/local/sbin/python3", 0x7ffee0d5edf0) = -1 ENOENT (No such file or directory)
stat("/usr/local/bin/python3", 0x7ffee0d5edf0) = -1 ENOENT (No such file or directory)
stat("/usr/sbin/python3", 0x7ffee0d5edf0) = -1 ENOENT (No such file or directory)
stat("/usr/bin/python3", {st_mode=S_IFREG|0755, st_size=5479736, ...}) = 0
stat("/usr/bin/Modules/Setup.local", 0x7ffee0d5ab60) = -1 ENOENT (No such file or directory)
stat("/usr/bin/lib/python3.9/os.py", 0x7ffee0d5aa80) = -1 ENOENT (No such file or directory)
stat("/usr/bin/lib/python3.9/os.pyc", 0x7ffee0d5aa80) = -1 ENOENT (No such file or directory)
stat("/usr/lib/python3.9/os.py", {st_mode=S_IFREG|0644, st_size=39065, ...}) = 0
stat("/usr/bin/lib/python3.9/lib-dynload", 0x7ffee0d59be0) = -1 ENOENT (No such file or directory)
stat("/usr/lib/python3.9/lib-dynload", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/lib/python39.zip", 0x7ffee0d5d460) = -1 ENOENT (No such file or directory)
stat("/usr/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/lib/python39.zip", 0x7ffee0d5d140) = -1 ENOENT (No such file or directory)
stat("/usr/lib/python3.9", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
stat("/usr/lib/python3.9", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
stat("/usr/lib/python3.9", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
stat("/usr/lib/python3.9/encodings/__init__.cpython-39-x86_64-linux-gnu.so", 0x7ffee0d5d580) = -1 ENOENT (No such file or directory)
stat("/usr/lib/python3.9/encodings/__init__.abi3.so", 0x7ffee0d5d580) = -1 ENOENT (No such file or directory)
stat("/usr/lib/python3.9/encodings/__init__.so", 0x7ffee0d5d580) = -1 ENOENT (No such file or directory)
stat("/usr/lib/python3.9/encodings/__init__.py", {st_mode=S_IFREG|0644, st_size=5588, ...}) = 0
stat("/usr/lib/python3.9/encodings/__init__.py", {st_mode=S_IFREG|0644, st_size=5588, ...}) = 0
stat("/usr/lib/python3.9", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
stat("/usr/lib/python3.9/codecs.py", {st_mode=S_IFREG|0644, st_size=36673, ...}) = 0
stat("/usr/lib/python3.9/codecs.py", {st_mode=S_IFREG|0644, st_size=36673, ...}) = 0
stat("/usr/lib/python3.9/encodings", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/lib/python3.9/encodings", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/lib/python3.9/encodings", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/lib/python3.9/encodings/aliases.py", {st_mode=S_IFREG|0644, st_size=15677, ...}) = 0
stat("/usr/lib/python3.9/encodings/aliases.py", {st_mode=S_IFREG|0644, st_size=15677, ...}) = 0
stat("/usr/lib/python3.9/encodings", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/lib/python3.9/encodings/utf_8.py", {st_mode=S_IFREG|0644, st_size=1005, ...}) = 0
stat("/usr/lib/python3.9/encodings/utf_8.py", {st_mode=S_IFREG|0644, st_size=1005, ...}) = 0
stat("/usr/lib/python3.9/encodings", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat("/usr/lib/python3.9/encodings/latin_1.py", {st_mode=S_IFREG|0644, st_size=1264, ...}) = 0
stat("/usr/lib/python3.9/encodings/latin_1.py", {st_mode=S_IFREG|0644, st_size=1264, ...}) = 0


...un delirio  :confused:
Pagine: [1] 2 3 ... 10