DOMANDA programmazione web CGI in C rispetto al PHP

BigIssue

Utente Attivo
221
18
CPU
intel dual core n3050
Scheda Madre
asus x540s
RAM
4gb
GPU
intel HD
OS
Windows 10
Studio tutto a basso livello: elettronica, assembly, C, algoritmi e mi manca da vedere la programmazione web.
Ho letto che con Common Gataway Interface è possibile chiamare un eseguibile scritto in C/C++ che butta fuori output html in maniera dinamica al web server . Sulla rete faccio fatica a trovare come.

Sapete farmi un esempio di come si utilizza l'interfaccia CGI? cosa devo installare e come si programma.
un programma main in c che legge la richiesta in post html e ne stampa in html la richiesta post.

Una domanda: ma come si puo utilizare seriamente Webassembly se non puoi:
  1. modificare e interagire con il Document Object Model
  2. inviare e ricervere da client richieste Ajax



CIao, Nicola.
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,413
11,490
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
Domanda banale, non ti conviene forse prima approfondire bene un argomento?
Lavorando in questo campo occorre avere una base forte in qualcosa e non concetti base di ogni cosa... rischi poi di scrivere codice a capponate
 

BigIssue

Utente Attivo
221
18
CPU
intel dual core n3050
Scheda Madre
asus x540s
RAM
4gb
GPU
intel HD
OS
Windows 10
webssembly come dicono è sfruttato per calcoli intensivi. E' vero che dopo ci sono le api javascript per comunicare con webassembly ma pensavo fosse qualcosa di piu "crudo" che si potesse accedere al dom e fare chiamate ajax.

CGI e' solo per avere un idea.
Come si fa a fare una cosa del genere in C preso dal php?

HTML:
<h1><?php echo $_POST["title"];?></h1>
Post unito automaticamente:

Domanda banale, non ti conviene forse prima approfondire bene un argomento?
Si però volevo fare pratica con alcuni esempi in CGI cioè provare a utilizzare un programma in C e rispondere alla richiesta del web server. Elettronica la sto studiando per capire la raspberry o in generale i sistemi embedded. Assemby per ora lo messo da parte, ho letto qualcosa giusto per le differenze tra stack heap dati e variabili globali.
Algoritmi sto preparando un esame in unimi e spero di passarlo.
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,413
11,490
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
Algoritmi e Strutture Dati è la bestia nera di chiunque, un corso teorico, ma poco utile all'atto pratico lavorativo
 
  • Mi piace
Reazioni: Edmund Blackadder

BigIssue

Utente Attivo
221
18
CPU
intel dual core n3050
Scheda Madre
asus x540s
RAM
4gb
GPU
intel HD
OS
Windows 10
Algoritmi e Strutture Dati è la bestia nera di chiunque, un corso teorico, ma poco utile all'atto pratico lavorativo
Si si, si imparano gli alberi binari di ricerca: avl,rosso-neri,btree.
Poi le funzioni hash con ispezione lineare, quadratica e hashing doppio.
Poi gli algoritmi di ordinamento: selection sort, merge sort, heap sort, quick sort, radix sort, bucket sort e altri. Sono molti.
Poi i grafi, le loro visite in profondita e ampiezza con alberi di copertura minima, cammini minimi: algoritmi come dijkstra, kruskal e prim.
e altri argomenti che non sto ad elencarli tutti.


E' tosto perchè non centra molto con la programmazione che si fa abitualmente. Si usano spesso puntatori per descrivere.
 

icox

Utente Attivo
497
246
Algoritmi e Strutture Dati è la bestia nera di chiunque, un corso teorico, ma poco utile all'atto pratico lavorativo
Teorico e poco utile?? E' uno dei corsi piu' utili del percorso di studi! Al contrario degli esami che prevedono esercizi scimmia con il linguaggio di turno, ASD ti fornisce gli strumenti fondamentali per capire quale struttura dati usare (e come usarla) "nel mondo reale con problemi reali", indipendentemente dal contesto in cui si lavora.
 

BigIssue

Utente Attivo
221
18
CPU
intel dual core n3050
Scheda Madre
asus x540s
RAM
4gb
GPU
intel HD
OS
Windows 10
E' tosto perchè non centra molto con la programmazione che si fa abitualmente. Si usano spesso puntatori per descrivere.
@icox di solito oltre agli array non si va oltre. Invece sapendo ASD...
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,413
11,490
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
Dipende da come lavorate e cosa usate...
io ogni giorno uso liste, hashmap etc...
Dipende tutto da cosa si fa e come la si fa...
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,413
11,490
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
Il problema sono ancora le università che fanno studiare il C (oramai linguaggio utilizzato poco). Quando dovrebbero fare programmazione ad oggetti (che appreso un linguaggio) ti da le basi su altro.
Io feci Java, da Java mi sono spostato su android (java) ora kotlin, tutte le app web (da c#, vb.net, .net) a php.
Fino a fare Hybrid Apps a livello mobile. Ora sto guardando anche Flutter.
 

BigIssue

Utente Attivo
221
18
CPU
intel dual core n3050
Scheda Madre
asus x540s
RAM
4gb
GPU
intel HD
OS
Windows 10
Sto cercando di buttarmi nel mondo dell'embedded quindi C,RUST assembly elettronica dei calcolatori. E' un percorso per niente semplice. La cosa che non mi piace di java è che non si trovano delle GUI desktop fatte bene. Ma puo darsi che mi sbaglio.
Sul mobile le GUI devono essere senza ombra di dubbio fatte bene in java. Io mi ricordo delle grafiche bruttine con le awt o swing. A queste quale sono le alternative. Occhio che andiamo fuori topic.
Hai scelto bene, Flutter è il futuro.
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,413
11,490
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
Su quello basta prendere i package appositi e le gui le migliori
 

pabloski

Utente Èlite
2,868
916
Studio tutto a basso livello: elettronica, assembly, C, algoritmi e mi manca da vedere la programmazione web.
Ho letto che con Common Gataway Interface è possibile chiamare un eseguibile scritto in C/C++ che butta fuori output html in maniera dinamica al web server . Sulla rete faccio fatica a trovare come.

redirect degli stream standard ( input, output, error )

Sapete farmi un esempio di come si utilizza l'interfaccia CGI? cosa devo installare e come si programma.

Il web server. Dopo di che http://httpd.apache.org/docs/2.4/howto/cgi.html

un programma main in c che legge la richiesta in post html e ne stampa in html la richiesta post.

E' un normalissimo programma che legge e scrive tramite le solite funzioni. Solo che gli stream di I/O sono redirezionati in modo da inviare l'output al web server e leggerne l'input.

Una domanda: ma come si puo utilizare seriamente Webassembly se non puoi:
  1. modificare e interagire con il Document Object Model
  2. inviare e ricervere da client richieste Ajax

Ma webassembly non è nato per cooperare con le tecnologie esistenti, quanto piuttosto per sostituirle.

Inoltre puoi comunicare con Javascript https://wasmbyexample.dev/examples/...pt-functions-into-webassembly.rust.en-us.html

E se ti stai chiedendo come creare la GUI di una tipica webapp, la risposta è questa https://wasmbyexample.dev/examples/...reading-and-writing-graphics.rust.en-us.html#

E se il dubbio è "ma tutto questo non sarà lentissimo"? La risposta è "confronta le prestazioni di Atom con quelle di VS Code". Chi vince? Il secondo. E semplicemente perchè __NON USA__ il DOM, ma la Canvas.

Il DOM è un accrocchio, non è una benedizione.
 

Edmund Blackadder

Utente Attivo
327
171
Al contrario degli esami che prevedono esercizi scimmia con il linguaggio di turno
Menomale che ci sono le scimmie che trasformano chiacchiere su un pezzo di carta in programmi che funzionano.

"nel mondo reale con problemi reali"
Non sono d'accordo, i corsi di ASD sono così astratti da sembrare fantascienza: problemi (matematici) creati ad hoc che non incontrerai mai nella vita e pseudocodice di dieci righe che poi implementato diventano cento. Chi ha mai utilizzato l'algoritmo di Fibonacci per lo sviluppo di un sito web? Chi si è mai messo ad implementare l'Heapsort per ordinare array che nel peggiore dei casi avranno cento elementi? Chi utilizzerebbe alberi RB per un'applicazione di e-commerce?

Ovviamente non sto dicendo che sono cose inutili, ma algoritmi e strutture dati del genere trovano spazio esclusivamente in ambiti avanzati.

di solito oltre agli array non si va oltre. Invece sapendo ASD...
Fermasi agli array non vuol dire studiare un linguaggio ma piuttosto averne una conoscenza superficiale. Per sfruttarlo appieno bisogna lavorarci molto perché ogni linguaggio ha funzioni e strutture uniche che si imparano usandole. Per esempio ASD non ti insegna le potenzialità dell'ereditarietà in Java: è un corso teorico, ma se vuoi scrivere veramente un bel codice devi scontrarti con il linguaggio e scendere nel dettaglio.

Sto cercando di buttarmi nel mondo dell'embedded quindi C,RUST assembly elettronica dei calcolatori.
Complimenti è un ambito non facile. Di Rust ne sento parlare ovunque e molti programmi che utilizzo sono scritti con lui: tra Rust e C cosa preferisci?

Il problema sono ancora le università che fanno studiare il C (oramai linguaggio utilizzato poco). Quando dovrebbero fare programmazione ad oggetti (che appreso un linguaggio) ti da le basi su altro.
Concordo, andrebbe studiato opzionalmente. Quando programmavo in C metà del tempo lo passavo a chiedermi perché il programma non funzionasse, quando sono passato a Java/Javascript/Python il tempo lo passavo a chiedermi come rendere migliore il mio codice e come modularizzarlo per incrementare il riutilizzo, quale costrutto utilizzare oppure no, quali erano le best practice, ecc.
 

BigIssue

Utente Attivo
221
18
CPU
intel dual core n3050
Scheda Madre
asus x540s
RAM
4gb
GPU
intel HD
OS
Windows 10
Concordo, andrebbe studiato opzionalmente. Quando programmavo in C metà del tempo lo passavo a chiedermi perché il programma non funzionasse, quando sono passato a Java/Javascript/Python il tempo lo passavo a chiedermi come rendere migliore il mio codice e come modularizzarlo per incrementare il riutilizzo, quale costrutto utilizzare oppure no, quali erano le best practice, ecc.
Cio che mi sta succedendo. Sto allocando memoria a piu non posso ? ma tutte le volte mi fa ricredere nelle certezze che ho con i puntatori. Allora ti domandi non li hai studiati bene?

Il RUST deve essere limitato in qualche sua parte rispetto al C. Altrimenti scusa si riuscirebbe anche in C a scrivere framework per il web. Con RUST programmi anche il web oltre che per l'embedded. Con il C sto capendo ma mi pare tramite protocollo. Si lavora sul header http. e si manda l'output con proprio la richiesta http.
 
  • Haha
Reazioni: Edmund Blackadder

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!