Altro Consiglio linguaggio per piattaforma di calcolo e AI?

donatox7

Utente Iron
19 Luglio 2020
26
5
0
17
Ultima modifica:
Ciao. Chiedo scusa se forse ho sbagliato categoria della discussione. Vorrei creare un sito web che sia una piattaforma di calcolo matematica, in gran parte costituita da "modelli matematici" ma anche da diversi "algoritmi di intelligenza artificiale". Siccome le mie conoscenze informatiche sono molto limitate, stavo pensando di farmela realizzare da alcuni programmatori/società di cui ancora non so (se è possibile metterò anche un annuncio nel forum), ma visto che in questo campo non tutti sono davvero competenti e potrebbero realizzarmi un prodotto scadente facendolo passare per oro (ovviamente non parlo del forum che è il Top e mi fido molto, bensì in generale dei vari soggetti in giro per l'Italia), volevo chiedervi in quali linguaggi di programmazione dovrà essere costruito il sito per renderlo performante vista la grande quantità di dati e di calcoli che effettuerà nello stesso momento, e magari qualche piccolo suggerimento vario.

PREMESSA
Le funzioni base del sito saranno:
a) Scraping dati (molti dati) salvati in un database
b) Elaborazione di tale dati attraverso circa 30 (o forse più) modelli e teoremi matematici eseguiti "contemporaneamente" (mai uno singolo alla volta) nello stesso momento, prima del risultato finale.
c) Elaborazione di tale dati attraverso diversi algoritmi di intelligenza artificiale (machine learning e non), eseguiti anch'essi contemporanemente insieme ai suddetti modelli matematici
d) Il risultato di tutti i suddetti calcoli dei modelli matematici, teoremi e algoritmi vari, prima di essere mostrato agli utenti, sarà prima oggetto di un ulteriore analisi e controllo in cui alcuni algoritmi filtreranno o non visualizzeranno alcuni risultati, in base ad una pre-impostazione di valori min e max applicati ai risultati da mostrare.
e) Importante: saranno collegati molti utenti nello stesso momento che effettueranno tutte queste elaborazioni, quindi non vorrei che la velocità di calcolo diminuisse esageramente. Credo sia normale che sarà direttamente proporziale al numero di utenti, ma non vorrei che il linguaggio di programmazione adottato dal sito peggiorasse la situazione.

DOMANDE
Detto ciò, stavo pensando che il sito potesse essere realizzato in PHP (magari modificando Wordpress? o realizzandolo da zero?), con PYTHON per quanto riguarda tutta la parte dei calcoli matematici e dell'intelligenza artificiale. Bastano questi due linguaggi o c'è bisogno di altri linguaggi da combinare? Se sì, per cosa?
E questi che ho citato vanno bene?

Grazie
 

St3ve

Utente Jade
12 Ottobre 2011
2,367
5
1,716
683
Anche con la consapevolezza di avere conoscenze informatiche "molto limitate", hai spiegato come dev'essere affrontato il problema senza chiarire bene cosa stai cercando di risolvere. Sei sicuro che intelligenza artificiale, scraping di dati, "modelli matematici", esecuzione parallela, machine learning, filtering dei risultati, ecc... siano le strategie migliori per fare ciò che vuoi fare? Fai un passo indietro e spiegaci cosa vuoi fare.

Sono un utente e vorrei sapere _____. Apro il sito web con il mio browser, mi registro e faccio _____. Il sito web, dopo avere elaborato i dati, mi risponde _____. In oltre, è anche in grado di rispondere alle domande del tipo ____ e ____ e ____.

Se non capiamo cosa vuoi fare, non possiamo nemmeno immaginarci se le tecnologie che hai elencato sono adatte. Impossibile dirti se i linguaggi di programmazione che hai elencato vanno bene.

visto che in questo campo non tutti sono davvero competenti e potrebbero realizzarmi un prodotto scadente facendolo passare per oro
Non commissionare il software a qualcuno, è un approccio che non funziona. Sii il capo del tuo progetto, paga gli sviluppatori mensilmente e segui lo sviluppo passo per passo. Non servono solo programmatori per produrre un software, puoi avere il tuo ruolo all'interno di un team... che magari è solo quello del tizio che spiega passo per passo cosa bisogna fare (... e non come bisogna farlo). Ho recentemente accennato qualcosa a riguardo in questo thread, dagli un'occhiata.
 

donatox7

Utente Iron
19 Luglio 2020
26
5
0
17
Ultima modifica:
@St3ve Non volevo dilungarmi e seccarvi troppo, per questo non ho aggiunto altri dettagli, credevo fossero sufficienti. Provo a spiegarmi un pò meglio e ringrazio anticipatamente te e chiunque risponderà.

Vorrei creare una piattaforma che faccia previsioni accurate delle partite di basket, volley e tennis in ambito di betting. In questa piattaforma web, tramite broweser, si potranno iscrivere gli utenti con un piccolo abbonamento e calcolare, in base alle loro preferenze di tornei, campionati e segni da giocare sulle schedine.

SCRAPING: DATABASE NECESARIO
Per prima cosa quindi, c'è bisogno di un database in cui fare scraping (anche da servizi a pagamento) dei nomi dei tornei e delle squadre di cui sono composti. Conto di voler aggiungere circa 50 tornei. Poi fare uno scraping settimanale per aggiornare il calendario degli eventi composto da data, giornata (da 1 a 40), match delle due squadre o giocatori che si affrontano, risultati finale. In aggiunta anche lo scraping settimanale delle quote dei bookmakers (non parlo solo di vittoria o sconfitta, ma di decine e decine di altri segni). Con questi dati basi posso iniziare ad elaborare i modelli matematici e gli algoritmi vari. Le query che serviranno per i calcoli sono quelle relative a: tutte le giornate dalla 1a alla 40a (perchè devo calcolare le ultime 10 giornate giocate, le ultime 7 ecc, l'intero torneo, ecc), ai risultati dei match di tutte le giornate, alle quote dei bookmakers che fanno parte dei calcoli. Poi vabbè, ci sono le cose che andranno solo mostrate senza calcoli come date, nomi dei match, ecc. Ovviamente bisogna aggiornare i dati, tramite scraping, una o due volte a settimana, in modo da avere sempre più dati disponibili con cui la piattaforma può imparare a fare previsioni più accurate.

COSA PUO' FARE l'UTENTE
Una volta che l'utente avrà avuto accesso al sito con user e password, con la sua schermata principale del sito potrà scegliere diverse modalità di previsione del pronostico: o singolo torneo a sua scelta con i relativi match, o elaborare tutti i 50 tornei contemporaneamente, ricercando però fra tutti i match solo quelli con la probabilità più alta (ovviamente dovranno essere elaborati comunque tutti i match di tutti i 50 tornei). L'utente, quindi, può scegliere l'appena dette modalità di ricerca, con l'aggiunta di una decina di checkbox di opzioni come preferenza di ricerca.

MODELLI MATEMATICI E CALCOLO
Sono un dilettante nella programmazione, ma sono un matematico, quindi dopo un pò di ricerca, studio e test eseguiti, ho individuato una 10-15 di modelli matematici utili. Non sembrano molti, ma sono molto ripetitivi perchè saranno applicati per elaborare le previsioni di un atleta/squadra che sia in gioca in casa che fuoricasa, come anche tutti i match in generale senza distinzione casa/fuori. Quindi 10-15 modelli matematici x 3 (casa, fuori, generale) e sono già 30 o 45 modelli matematici da applicare solo ad un match, o meglio, ad ogni match di un torneo.

L'utente cliccando sul pulsante "Calcola previsione", attiverà un controllo automatico preventivo di questi 30-45 modelli matematici su ogni match della giornata del torneo (mediamente composto da 10 matchs). In pratica la piattaforma farà nello stesso istante un controllo di 30-45 modelli per uno stesso match per verificarne il risultato finale. Importante. Tengo a precisare che questi modelli matematici saranno controllati su un match quasi contemporaneamente, o meglio, eseguiti in successione veloce uno dopo l'altro (eseguito e controllato con un modello, si passa ad un altro, poi ancora ad un altro, e così via). Se tutti i risultati dei 30-45 modelli, relativi ad un match, rispettano alcune aspettative pre-impostate, allora il match avrà previsione positiva.

PESANTEZZA
Quindi 30-45 modelli matematici di lunghi algoritmi su 10 partite eseguiti contemporaneamente per un singolo torneo, mentre l'utente aspetta di vedere le previsioni finali. Questo se sceglie un solo torneo, ma può scegliere anche di fare ciò per tutti i 50 tornei contemporaneamente (che sarà il pezzo forte della piattaforma).
Quindi se come detto se un solo torneo conterà 30-45 modelli x 10 partite giornaliere = 300-450 modelli matematici a torneo
Di conseguenza x 50 tornei contemporaneamente sono 15.000 - 22.500 operazioni nello stesso momento, o meglio, come detto sopra, per nello stesso momento indendo nello stesso momento in seguito del click sul pulsante "Calcola", ma il controlli con gli algoritmi sarà eseguito in successione veloce uno dopo l'altro (eseguito e controllato con un modello, si passa ad un altro, poi ancora ad un altro, e così via).

Consideriamo inoltre che sulla piattaforma ci saranno vari utenti ad elaborare questi dati (chi di un solo torneo e chi di tutti i 50 tornei contemporaneamente). Ne ho contati un minimo di 20 utenti a un massimo di 100.

INTELLIGENZA ARTIFICIALE
Nella piattaforma vorrei implementare anche alcuni algoritmi di Machine Learning per l'apprendimento automatico dagli errori.

Quindi volevo avere qualche informazioni sul miglior linguaggio di programmazione nel mio caso da utilizzare. Stavo pensando a Python, ma so che come tutti i linguaggi ha i suoi pro e i suoi contro. Dal quel che so, i contro sono la lentezza a gestire contemporaneamente così tante operazioni, così come anche a gestire un database molto ampio. Spero di sbagliarmi. Puoi darmi qualche dritta per favore? Qualche informazioni base in modo da dire agli sviluppatori che troverò "Mi serve questa piattaforma, però dovete realizzarla così, così e così". Non vorrei che impostassero fin dall'inizio tutto il progetto in maniera sbagliata, facendomelo passare per oro.

Grazie e scusami per la lunghezza del post
 

St3ve

Utente Jade
12 Ottobre 2011
2,367
5
1,716
683
Okay, quindi mi pare di capire che può essere tutto precalcolato: dopo un lavoro iniziale per raccogliere i dati relativi agli scorsi X anni, ogni giorno (ri)calcoli le previsioni per tutti gli eventi della giornata (o della settimana) e gli utenti ci accedono. Alla fine di ogni evento aggiorni le statistiche ad esso relativo e aggiorni i valori per tutti gli eventi che influenza. In mia opinione non hai stretti requisiti temporali. Visto che parli di previsioni sportive, immagino che le statistiche di un evento influenzino solo le previsioni di eventi molto futuri: se oggi c'è juventus-inter, al termine della partita le statistiche aggiornate di queste due squadre non influenzeranno le previsioni per barcellona-siviglia e mi ci vorranno giorni prima di vedere juventus o inter giocare nuovamente. Tra gli sport a incontri ripetuti in un breve lasso di tempo c'è la categoria esport, ma anche lì... penso che ci siano almeno 10 minuti di pausa tra due round giocati dallo stesso team. Magari il tuo programma non dovrà essere eccessivamente lento ma, per come la vedo io, il numero di utenti non influenza il carico di lavoro. Il numero di eventi influenza invece sì, ma parliamo di poche centinaia di eventi sportivi al giorno (sbaglio?) e solo per pochi sport sei impossibilitato a calcolare le probabilità con largo anticipo. L'unico parametro che un po' ti frega sono le quote dei bookmaker che, basandosi anche sul numero di scommesse effettuate, cambiano in continuazione... però la situazione non è così tragica.

Mi limito a rispondere alla tua domanda iniziale: Python va benissimo. Avrai un programma X (scritto con un linguaggio di programmazione x) e un sito web Y che fungerà da interfaccia (scritto con un linguaggio di programmazione y, adatto per il web). Avrai un server che periodicamente/continuamente si occuperà di eseguire il tuo programma X e caricare le statistiche e le previsioni su un database. Inizialmente il server potrebbe essere anche solo il tuo pc, più avanti magari riterrai utile investire soldi in hardware più potente (i.e., cloud). Il sito web Y si occuperà principalmente di mostrare alcuni valori contenuti nel database e magari anche interfacciarsi direttamente con il programma X.

Più che alle performance, secondo me devi focalizzarti sui linguaggi che offrono strumenti (librerie) già pronti all'uso. La tecnologia (PHP? Wordpress?) che usi per il sito web Y importa pochissimo. La tecnologia che usi per il programma X importa già un po' di più: i linguaggi principali per fare data science sono Python, Scala, Java, R, ecc... visto che sei un matematico, puoi anche considerare di farlo in Matlab o Mathematica se sei sei già pratico con quelli (...ovvio che un linguaggio di programmazione vero sarebbe molto più versatile).

In ogni caso, prima di insegnare a un computer come fare quello che vorresti fare, devi essere sicuro di essere capace di farlo tu stesso.
 

nullptr

Utente Emerald
26 Novembre 2015
1,096
21
367
351
stavo pensando di farmela realizzare da alcuni programmatori/società di cui ancora non so (se è possibile metterò anche un annuncio nel forum), ma visto che in questo campo non tutti sono davvero competenti e potrebbero realizzarmi un prodotto scadente facendolo passare per oro
Un po’ come dire “i panettieri non sono tutti bravi, potrebbero vendermi del pane scadente facendolo passare per oro”, non è nemmeno utile lamentarsi: se dovessi cadere nel calappio l’unico a sbagliare sei stato tu in quanto non hai aperto bene gli occhi. Se vuoi gente seria dalla tua parte, la trovi al giusto scotto.

INTELLIGENZA ARTIFICIALE
Nella piattaforma vorrei implementare anche alcuni algoritmi di Machine Learning per l'apprendimento automatico dagli errori.
Potresti spiegare meglio di quali errori parli? Devi far capire attentamente cosa vuoi ottenere.
 

donatox7

Utente Iron
19 Luglio 2020
26
5
0
17
Ultima modifica:
@St3ve Esatto. Ottimo ragionamento in tutto :) Non so però se inizialmente farò anche il calcio, visto che non mi piace, ma in futuro credo di si visto che è seguito praticamente da tutti. Ottimo ragionamento anche per il fatto delle quote, infatti vorrei salvare nel DB tutte le quote di un certo giorno per confrontarle con quelle di qualche giorno dopo e confrontare la differenza. Nel betting questo si chiama Doppings Odds.

Comunque sia, tornando alla parte tecnica e ringraziandoti per tutto, vorrei chiederti ancora:

a) Hai detto che "il numero di utenti non influenza il carico di lavoro". Perdona la domanda, ne sei sicurissimo 100%? Se sul sito stanno online 20 persone che eseguono tutte quelle operazioni al secondo, o se ci stanno 150 persone, fa lo stesso?

b) Riguardo ciò, hai detto che inizialmente posso usare come server anche il pc, va benissimo, ma quali sono i limiti? Quando saprò che sarà arrivato il momento di comprare un server? Ad occhio e croce quanto costa comprare un hardware più potente (i.e., cloud)? So che i prezzi sono vari giustamente, ma non ho proprio idea di quali cifre stiamo parlando. Indicativamente? 300-500 euro? 1000 euro? Ma poi si paga sottoforma di abbonamento annuale? 1000 euro ogni anno ad esempio? Perdona l'ignoranza, ma di server non so proprio nulla. Grazie

c) Hai detto il numero di eventi influenza invece sì, influenza il lavoro. La maggior parte degli scommettitori fa scommesse inserendo match di vari giorni che siano a distanza di 2 o 3 giorni (scommessa con match insieme di oggi, domani, dopodomani). Quindi ad esempio un utente, nel giorno di giovedì, può elaborare le partite di giov/ven/sab/dom. Se consideriamo 10 matchs alla giornata (intendendola come settimanalmente) x 50 tornei/campionati, si hanno 500 match a settimana, di cui la maggior parte divise nei giorni che ho detto sopra (esclusi qualche piccola decina di match negli altri giorni della settimana). Significa che in un giorno di metà settimana l'utente eseguirà tutte quelle operazioni del post di sopra su quasi 500 match contemporaneamente (vabbè non saranno 500, ma sicuramente 400 o 450. Questo quindi cosa comporta? Crash della piattaforma/server? Blocco della piattaforma? O semplicemente rallentamento nella velocità dei calcoli e pertanto maggior attesa dell'utente? Se così, secondo te, in base ai numero delle operazioni che ti ho detto nel post di sopra, di quanto sarà l'attesa dell'utente? 20 secondi?

d) Quindi l'interfaccia del sito ovviamente dovrà essere in php, ok, naturalmente. Credo che probabilmente per risparmiare tempo si userà Wordpress. Ma il mio dubbio è: sicuro che utilizzando Wordpress (nonostante la tecnologia del sito importi pochissimo) non possa imbattermi in qualche problema? Magari che Wordpress limita alcune cose o rallenta troppo le operazioni di Python visto che ne sono tante?

e) Tutti, e dico tutti, gli algoritmi dei modelli matematici possono essere scritti in Python? O c'è bisogno di combinarci un altro linguaggio per fare determiante cose?

f) Quale database mi consigli di utilizzare?

g) Dico una stupidaggine: se gli sviluppatori vorrano creare tutti gli algoritmi dei modelli matematici in Php e solo il Machine Learning con il Python, stanno cercando di fregarmi vero?

Quindi ricapitolando devo dire agli sviluppatori che mi serve:
- Un'interfaccia php, utilizzando anche Wordpress nel quale saranno implementati tutti gli algoritmi Python di calcolo
- Che loro utilizzino Python per creare gli algoritmi dei modelli matematici e del Machine Learning
- Che va bene usare anche il pc come server
- E poi? Qualche suggerimento e dritta varia per non farmi fregare?

Grazie
Messaggio unito automaticamente:

@nullptr
Un po’ come dire “i panettieri non sono tutti bravi, potrebbero vendermi del pane scadente facendolo passare per oro”, non è nemmeno utile lamentarsi: se dovessi cadere nel calappio l’unico a sbagliare sei stato tu in quanto non hai aperto bene gli occhi. Se vuoi gente seria dalla tua parte, la trovi al giusto scotto.

Non capisco costa intendi dire. Io ho semplicemente un certo budget da parte (non è molto, ma non è neanche poco) e siccome in passato ho avute esperienze non proprio positive con programmatori che mi realizzavano software scadenti e scritti male, facendoli passare per chissà quale grande lavoro, ora vorrei cercare di capirne un pò prima di chiedere il lavoro. Volevo inserire un annuncio nel forum, come bisogna fare? Dovrei diventare un Utente Premier?

"Potresti spiegare meglio di quali errori parli? Devi far capire attentamente cosa vuoi ottenere."
Parlavo di un algoritmo di Machine Learning che sto ideando io, è una cosa privata. Non c'entra con il resto della domanda. Ho letto il link del regolamento, ma non si tratta di una domanda di cui volevo risposta, l'ho scritta giusto per scrivere. Grazie ugualmente.
 

nullptr

Utente Emerald
26 Novembre 2015
1,096
21
367
351
Parlavo di un algoritmo di Machine Learning che sto ideando io, è una cosa privata. Non c'entra con il resto della domanda. Ho letto il link del regolamento, ma non si tratta di una domanda di cui volevo risposta, l'ho scritta giusto per scrivere. Grazie ugualmente.
Come facciamo a consigliarti le mosse senza che tu voglia mostrare le carte in tavola? La "cosa privata" che stai ideando deve essere chiarita, altrimenti non ha avuto senso postare una domanda (da cui vuoi invece ottenere sicuramente una risposta) al riguardo qui. Quello è il link di una guida per scrivere la tua domanda in modo più chiaro possibile, non è un regolamento.
 

donatox7

Utente Iron
19 Luglio 2020
26
5
0
17
Dopo un primo momento in cui sono stato vago, a seguito della richiesta di St3ve, credo di aver postato bene le varie domande relative al senso generale della discussione aperta. Infatti ha capito e mi ha risposto. Per quanto riguarda questa parte che hai citato ho semplicemente scritto "Nella piattaforma vorrei implementare anche alcuni algoritmi di Machine Learning per l'apprendimento automatico dagli errori" non è una domanda e (ringraziandovi per la gentilezza) non necessita di consiglio, perchè si sa che il Python è un ottimo linguaggio per il Machine Learning. Parlavo di un algoritmo proprietario che sto sviluppando e non ho domanda a tal riguardo. L'ho scritto giusto per scrivere. Grazie ugualmente per la gentilezza. Se è un problema posso cancellare quel rigo perchè non serve a niente ai fini della mia domanda generale della descrizione. L'avevo scritto giusto per scriverlo. La prossima volta starò più attento alla differenza tra domanda e info che non servono. Vi prego di scusarmi @nullptr
 

nullptr

Utente Emerald
26 Novembre 2015
1,096
21
367
351
@donatox7 te la rispiego in diverse parole: per scegliere il linguaggio di programmazione ideale per il machine learning bisogna appurare pure quali sono i requisiti da un problema di dati. Esiste ad esempio MATLAB, Python, R.

Altre domande che non sono chiare (o prive di significato):
g) Dico una stupidaggine: se gli sviluppatori vorrano creare tutti gli algoritmi dei modelli matematici in Php e solo il Machine Learning con il Python, stanno cercando di fregarmi vero?

- E poi? Qualche suggerimento e dritta varia per non farmi fregare?


Ribadisco che se non sei un esperto informatico, devi affidarti a gente seria proprio perchè tu non ne capisci abbastanza (che è ciò che intendevo prima).
 

donatox7

Utente Iron
19 Luglio 2020
26
5
0
17
Avevo intenzione di utilizzare Python per tutto, per questo non mi ero posto il problema della domanda. Allora se mai posterò questa domanda specifica in seguito. Grazie. Intanto @St3ve mi ha risposto alle principali domande della discussione e lo ringrazio. Sto aspettando che mi dia risposta ad altri miei domande. Mi rendo conto che alcune possano sembrare un pò stupide o con poco senso, come queste due che hai riportato. Entrambe sono racchiuse nello stesso pensiero, che molte volte ho pagato molto per ricevere software realizzati male. Io voglio affidarmi a gente seria eccome, ma il problema è che non riesco a trovarne e che quelli che sembrano seri in realtà non lo sono. Per questo stavolta ho pensato di chiedere in anticipo alcune domande, come queste che mi hai riportato. Volevo solo qualche gentile consiglio o suggerimento @nullptr
 

St3ve

Utente Jade
12 Ottobre 2011
2,367
5
1,716
683
c) Hai detto il numero di eventi influenza invece sì, influenza il lavoro. La maggior parte degli scommettitori fa scommesse inserendo match di vari giorni che siano a distanza di 2 o 3 giorni (scommessa con match insieme di oggi, domani, dopodomani). Quindi ad esempio un utente, nel giorno di giovedì, può elaborare le partite di giov/ven/sab/dom. Se consideriamo 10 matchs alla giornata (intendendola come settimanalmente) x 50 tornei/campionati, si hanno 500 match a settimana, di cui la maggior parte divise nei giorni che ho detto sopra (esclusi qualche piccola decina di match negli altri giorni della settimana). Significa che in un giorno di metà settimana l'utente eseguirà tutte quelle operazioni del post di sopra su quasi 500 match contemporaneamente (vabbè non saranno 500, ma sicuramente 400 o 450. Questo quindi cosa comporta? Crash della piattaforma/server? Blocco della piattaforma? O semplicemente rallentamento nella velocità dei calcoli e pertanto maggior attesa dell'utente? Se così, secondo te, in base ai numero delle operazioni che ti ho detto nel post di sopra, di quanto sarà l'attesa dell'utente? 20 secondi?
Ho parlato di eventi nel senso matematico (teoria della probabilità) del termine. Un evento potrebbe essere "McGregor vince contro Nurmagomedov il 2019/09/07" e quello che il tuo programma calcolerà sarà un valore tra 0 e 1 che esprime la probabilità di quell'evento. Quel valore lo calcoli ogni qual volta ottieni una statistica rilevante per quell'evento (e.g., quando esce la notizia che uno dei due si è infortunato durante gli allenamenti). Se 100 mila utenti sono interessati a quell'evento, tutto quello che deve fare (il tuo programma Y, riferendomi al mio post precedente) è andare a leggere il valore che hai già calcolato magari anche molti giorni prima.

a) Hai detto che "il numero di utenti non influenza il carico di lavoro". Perdona la domanda, ne sei sicurissimo 100%? Se sul sito stanno online 20 persone che eseguono tutte quelle operazioni al secondo, o se ci stanno 150 persone, fa lo stesso?
Per comete l'ho spiegata io, influenza molto poco.

b) Riguardo ciò, hai detto che inizialmente posso usare come server anche il pc, va benissimo, ma quali sono i limiti? Quando saprò che sarà arrivato il momento di comprare un server? Ad occhio e croce quanto costa comprare un hardware più potente (i.e., cloud)? So che i prezzi sono vari giustamente, ma non ho proprio idea di quali cifre stiamo parlando. Indicativamente? 300-500 euro? 1000 euro? Ma poi si paga sottoforma di abbonamento annuale? 1000 euro ogni anno ad esempio? Perdona l'ignoranza, ma di server non so proprio nulla.
I limiti sono legati all'hardware del tuo pc e alla velocità della tua linea internet. Capirai che sarà il momento di acquistare hardware più potente nel momento in cui vedrai il tuo servizio andare a rilento: apri il sito web, lo vedi andare piano, decidi di comprare nuovo hardware (o chiedi ai programmatori se è possibile ottimizzare il software invece di aggiungere nuove features). Il cloud computing consiste in un'azienda molto grossa che ha a disposizione tanto hardware (e.g., computer grandi come edifici) e decide di noleggiartene un pochino (scegli tu quanto). Se vuoi tanto hardware può anche essere che ti facciano pagare tipo 300 mila euro al mese. Non necessariamente vuoi tanto hardware. Con il mio discorso volevo farti capire che non devi comprare un Falcon 9 finché non devi andare nello spazio. Il tuo laptop lasciato acceso e connesso ad internet 24h/24 è un punto di partenza accettabile.

d) Quindi l'interfaccia del sito ovviamente dovrà essere in php, ok, naturalmente. Credo che probabilmente per risparmiare tempo si userà Wordpress. Ma il mio dubbio è: sicuro che utilizzando Wordpress (nonostante la tecnologia del sito importi pochissimo) non possa imbattermi in qualche problema? Magari che Wordpress limita alcune cose o rallenta troppo le operazioni di Python visto che ne sono tante?
Il sito web dev'essere fatto con un linguaggio di programmazione adatto a fare siti web. Ce ne sono tanti e PHP è una delle tante scelte accettabili. Il sito web è solo l'interfaccia, non esegue calcoli. Non è nemmeno necessario hostarlo sullo stesso hardware in cui è presente il programma X o in cui è presente il database.

e) Tutti, e dico tutti, gli algoritmi dei modelli matematici possono essere scritti in Python? O c'è bisogno di combinarci un altro linguaggio per fare determiante cose?
Dal punto di vista di calcolabilità, tutti i linguaggi di programmazione sono equivalenti. Python è comodo solo perché ha delle librerie che implementano alcune funzioni matematiche che potrebbero servirti. Con un altro linguaggio magari devi scrivere più codice per fare le stesse cose.

g) Dico una stupidaggine: se gli sviluppatori vorrano creare tutti gli algoritmi dei modelli matematici in Php e solo il Machine Learning con il Python, stanno cercando di fregarmi vero?
No. Non necessariamente.

Quindi ricapitolando devo dire agli sviluppatori che mi serve:
- Un'interfaccia php, utilizzando anche Wordpress nel quale saranno implementati tutti gli algoritmi Python di calcolo
- Che loro utilizzino Python per creare gli algoritmi dei modelli matematici e del Machine Learning
- Che va bene usare anche il pc come server
- E poi? Qualche suggerimento e dritta varia per non farmi fregare?
No. Devi dirgli esattamente quello che ti avevo chiesto di spiegarmi, che sarebbe quello che mi hai detto nel tuo secondo post di questo thread. Glielo devi dire con ancora più dettaglio e glielo dovrai ripetere nel corso dello sviluppo. Devi dirgli qual'è la priorità nr.1 (qualcosa di implementabile nel giro di 2-3 settimane) e dopo che l'hanno sviluppata e l'hai vista con i tuoi occhi (e sei convinto che era quello che volevi) passi alla priorità nr.2. Tu gli dici cosa vuoi ottenere, loro valutano come si può fare: io che non capisco niente di aerei, non vado alla Boeing a dirgli che me devono costruire uno senza usare cacciaviti e bulloni. Spiega cosa vuoi e segui lo sviluppo: puoi (devi!) dare un forte contributo allo sviluppo, ma se non sei pratico di informatica non puoi avere la pretesa di fissare dei requisiti tecnici. Nel messaggio precedente avevo linkato un thread dove parlavo un po' di questa cosa.

Io ti ho proposto delle linee guida su come potrebbe essere strutturato, ma non è detto che il mio consiglio (derivato da quelle poche info che mi hai dato e 15 secondi di ragionamento) sia l'ideale. Più che altro volevo farti capire che quello che tu pensi sia un problema, magari non lo è.

in passato ho avute esperienze non proprio positive con programmatori che mi realizzavano software scadenti e scritti male
Non commissionare un software, partecipa attivamente allo sviluppo. Un team non è formato solo da sviluppatori. Se partecipi allo sviluppo e ottieni un software che ti fa schifo, sarà colpa loro tanto quanto colpa tua.
 

nullptr

Utente Emerald
26 Novembre 2015
1,096
21
367
351
Avevo intenzione di utilizzare Python per tutto, per questo non mi ero posto il problema della domanda
Il titolo, stando all'italiano, Consiglio linguaggio per piattaforma di calcolo e AI? invece mi ha fatto capire altro.

Vedendo questa discussione (e l'altra) che hai aperto, hai detto che non ti serve trascurare nemmeno la performance e quindi ti ho chiesto (per consigliarti un altro eventuale linguaggio di programmazione). Python è il più preferito per la vastità di librerie disponibili come Tensorflow, Keras, sklearn, e varie altre peculiarità - ma non è detto che sia un must.
 
  • Mi piace
Reazioni: donatox7

donatox7

Utente Iron
19 Luglio 2020
26
5
0
17
Ultima modifica:
@St3ve Adesso con la tue tue risposte mi è tutto più chiaro. Ti ringrazio. Vorrei chiederti solo altre 2 domande e poi basta, è una mia curiosità. Mettiamo un attimo da parte il Machine Learning e non lo pensiamo per un attimo.

Nel caso trovassi un buon sviluppare/team di sviluppatori che mi dicono "Possiamo realizzare il tuo progetto, non c'è problema, ma noi non sviluppiamo in Python. Dobbiamo usare un altro linguaggio per i tuoi calcoli e i tuoi modelli matematici" . . . . . a quel punto, riguardo il mio caso, va bene ugualmente accettare anche se utilizzano dei comunissimi linguaggi come Javascript, Java o addirittura C# (anche se ha il Framework.Net ed è legato a Windows?) o altro ancora? In termini di performance non mi cambia niente giusto? (parlo in collegamento alle cose spiegate nella prima parte della discussione)

E poi magari implementare in un secondo momento il Machine Learning con Python, combinandolo agli algoritmi di calcolo dei modelli matematici realizzato in altro linguaggio?
 

nullptr

Utente Emerald
26 Novembre 2015
1,096
21
367
351
a quel punto, riguardo il mio caso, va bene ugualmente accettare anche se utilizzano dei comunissimi linguaggi come Javascript, Java o addirittura C# (anche se ha il Framework.Net ed è legato a Windows?) o altro ancora? In termini di performance non mi cambia niente giusto?
Avevo intenzione di utilizzare Python per tutto
Devi avere le idee chiare, o decidi di farlo scrivere in Python, o decidi di farlo scrivere in qualcos'altro.
In base a ciò che devi fare, la performance del workflow potrebbe cambiare. Ad esempio JavaScript ha la sua libreria TensorFlow.js ma ha delle limitazioni sul supporto dell'hardware acceleration, ed è single-threaded.
 

donatox7

Utente Iron
19 Luglio 2020
26
5
0
17
Ultima modifica:
Va beneeeee, ho riletto meglio la discussione visto che stanotte si era fatto tardi ed ora è un pò più chiaro. Grazie ad entrambi per le risposte