CSS nutzen
Moderator: Moderatoren
CSS nutzen
Hallo zusammen,
habe endlich mal den WAA mit Apache installiert und verzweifle gerade, weil ich es nicht schaffe CSS einzubinden. Kann mir einer sagen, wie und wo ich das einfügen muss?
habe endlich mal den WAA mit Apache installiert und verzweifle gerade, weil ich es nicht schaffe CSS einzubinden. Kann mir einer sagen, wie und wo ich das einfügen muss?
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: CSS nutzen
Moin,
Du erstellst eine Datei mit den von dir gewünschten Definitionen und verlinkst die in deinen html-Dateien (im Header).
https://wiki.selfhtml.org ist ein guter Punkt für grundlegende Informationen auch dazu.
Viele Grüße,
Martin
Du erstellst eine Datei mit den von dir gewünschten Definitionen und verlinkst die in deinen html-Dateien (im Header).
https://wiki.selfhtml.org ist ein guter Punkt für grundlegende Informationen auch dazu.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 71 Mal
Re: CSS nutzen
das es aber nicht immer so mal eben geht, solltest Du auch in den letzten Wochen erkannt haben, Martin.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: CSS nutzen
Ich schreibe mal so: bei mir tut es das, was es soll
Siehst du ja auch bei der Anmeldeseite.
Viele Grüße,
Martin
Siehst du ja auch bei der Anmeldeseite.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Re: CSS nutzen
Ok, CSS, HTML, PHP oder auch JavaScript an sich ist kein Problem. Ich komme scheinbar mit den ganzen Pfaden nicht klar. Einfach
type="text/css" mit oHTML:put() ausgeben klappt nicht. Da findet der keine Datei, egal wo ich die hin kopiere. Die Datenbanken findet er, aber die CSS Dateien nicht.
Muss ich für das folgende einen neuen Thread aufmachen, oder kann mir einer sagen, warum der in der Function WW_SKIP die Var nicht findet???
Das ist noch nicht fertig, aber ich habe keinen Plan warum ich in der Function WW_SKIP nicht auf das versteckte Eingabefeld zugreifen kann. WW_RECNO ist immer vom Typ "U". Dass das Vorrücken noch nicht fertig ist, ist mir klar. Es geht nur um die Sichtbarkeit des INPUT-Feldes
FUNCTION SchulVerwaltung( oHtml)
LOCAL aAlias
oHTML:put('<FORM ACTION="/cgi-bin/waa1gate.exe" METHOD=POST>')
oHTML:put('<h1><center>Schulverwaltung</center></h1>')
oHTML:put('<INPUT TYPE=hidden NAME="WW_RECNO" VALUE=1>')
use anmelde shared new
aAlias:=alias()
oHTML:put('<TABLE ALIGN=CENTER CELLPADDING=10 CELLSPACING=10>')
oHTML:put('<tr>')
oHTML:put('<td>Schule</td><td><input type="text" NAME="SCHULE" VALUE="'+(aAlias)->schule+'"></td>')
oHTML:put('</tr>')
oHTML:put('</table>')
oHTML:put('<A HREF=/cgi-bin/waa1gate.exe?WAA_PACKAGE=Main&WAA_FORM=WW_SKIP>Vor</A>')
oHtml:formEnd()
oHTML:put('</body></html>')
dbclosearea()
RETURN .T.
FUNCTION WW_SKIP(oHTML)
local cRec:=oHTML:getVar( "WW_RECNO" )
oHTML:setVar( "WW_RECNO",str(val(cRec)+1))
return .T.
type="text/css" mit oHTML:put() ausgeben klappt nicht. Da findet der keine Datei, egal wo ich die hin kopiere. Die Datenbanken findet er, aber die CSS Dateien nicht.
Muss ich für das folgende einen neuen Thread aufmachen, oder kann mir einer sagen, warum der in der Function WW_SKIP die Var nicht findet???
Das ist noch nicht fertig, aber ich habe keinen Plan warum ich in der Function WW_SKIP nicht auf das versteckte Eingabefeld zugreifen kann. WW_RECNO ist immer vom Typ "U". Dass das Vorrücken noch nicht fertig ist, ist mir klar. Es geht nur um die Sichtbarkeit des INPUT-Feldes
FUNCTION SchulVerwaltung( oHtml)
LOCAL aAlias
oHTML:put('<FORM ACTION="/cgi-bin/waa1gate.exe" METHOD=POST>')
oHTML:put('<h1><center>Schulverwaltung</center></h1>')
oHTML:put('<INPUT TYPE=hidden NAME="WW_RECNO" VALUE=1>')
use anmelde shared new
aAlias:=alias()
oHTML:put('<TABLE ALIGN=CENTER CELLPADDING=10 CELLSPACING=10>')
oHTML:put('<tr>')
oHTML:put('<td>Schule</td><td><input type="text" NAME="SCHULE" VALUE="'+(aAlias)->schule+'"></td>')
oHTML:put('</tr>')
oHTML:put('</table>')
oHTML:put('<A HREF=/cgi-bin/waa1gate.exe?WAA_PACKAGE=Main&WAA_FORM=WW_SKIP>Vor</A>')
oHtml:formEnd()
oHTML:put('</body></html>')
dbclosearea()
RETURN .T.
FUNCTION WW_SKIP(oHTML)
local cRec:=oHTML:getVar( "WW_RECNO" )
oHTML:setVar( "WW_RECNO",str(val(cRec)+1))
return .T.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: CSS nutzen
Wenn du noch am Anfang deines Projekt stehst würde ich dir unbedingt empfehlen xb2.net anzuschauen bezw. die entsprechende DEMO herunterzuladen und zu testen. Sicher es ist ein Zusatzprodukt. Ich kam damit jedoch viel schneller zu guten Web Apps und dies ohne die vielen Einschränkungen und der Zwangsjacke von WAA ....
Gruss Carlo
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: CSS nutzen
Da stimme ich Carlo zu. Der WAA ist wirklich kein Mittel der Wahl mehr. Xb2.Net oder wenigstens CXP. Mit HttpEndpoint braucht man da auch keinen IIS oder Apache mehr.
Die Nutzung von CSS, JS und ähnlichen hat vordergründig wenig mit Xbase++ zu tun. Man erzeugt ja so oder so HTML-Dokumente, die derlei nutzen, und aus der Anwendung heraus muss das gleiche entstehen, das man auch ohne Xbase++ z.B. im Editor erzeugen würde. Es gibt also Script-Segmente und Verweise auf Ressourcen (Bootstrap, vue.js usw. - all das kann man auch einbinden!) und eben die Verwendung von Scripten und CSS. Bis auf etwaige Platzhalter oder aus der Anwendung heraus erzeugte Elemente gleicht sich das, vor allem im Ergebnis. Der Server muss es nur sehen und ggf. auch durchreichen. Debuggen im Browser ist da ein guter erster Schritt, um etwaige Fehler zu finden.
Lad Dir mal Xb2.Net als Demo und schau Dir das TimeClock-Beispiel an. Das ist robust, übersichtlich und einfach zu adaptieren. Es zeigt, wie man Tabellen allgemeingültig browsen kann - und vieles mehr. Das ist noch nicht sonderlich interaktiv, aber ein sehr guter Anfang.
Die Nutzung von CSS, JS und ähnlichen hat vordergründig wenig mit Xbase++ zu tun. Man erzeugt ja so oder so HTML-Dokumente, die derlei nutzen, und aus der Anwendung heraus muss das gleiche entstehen, das man auch ohne Xbase++ z.B. im Editor erzeugen würde. Es gibt also Script-Segmente und Verweise auf Ressourcen (Bootstrap, vue.js usw. - all das kann man auch einbinden!) und eben die Verwendung von Scripten und CSS. Bis auf etwaige Platzhalter oder aus der Anwendung heraus erzeugte Elemente gleicht sich das, vor allem im Ergebnis. Der Server muss es nur sehen und ggf. auch durchreichen. Debuggen im Browser ist da ein guter erster Schritt, um etwaige Fehler zu finden.
Lad Dir mal Xb2.Net als Demo und schau Dir das TimeClock-Beispiel an. Das ist robust, übersichtlich und einfach zu adaptieren. Es zeigt, wie man Tabellen allgemeingültig browsen kann - und vieles mehr. Das ist noch nicht sonderlich interaktiv, aber ein sehr guter Anfang.
Herzlich,
Tom
Tom
Re: CSS nutzen
Herzlichen Dank für die Tipps. Ich werde mir die Sachen ansehen. Wie immer, so ist es auch diesmal eine schnelle Lösung für eine kleines Projekt, dass in seiner Art einmalig und deswegen wenig aufwändig sein soll. Ich habe Lösungen für die Probleme gefunden. Denoch vielen Dank für die Hinweise...
- Armin
- Rekursionen-Architekt
- Beiträge: 394
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: CSS nutzen
Hallo volkrrr,
diesem HREF musst Du alle Deine Variablen, die Du im Server sehen willst, mitgeben.
Nur mit SUBMIT werden automatisch alle "INPUT"-Elemente mit "name"-Attribut übertragen
Im DOCUMENTROOT steht auch das Start-HTML (z.B. index.htm)
z.B. DOCUMENTROOT\css
<link id="css" REL="STYLESHEET" HREF="/css/meincss.css" TYPE="text/css">
Grüße, Armin
Code: Alles auswählen
oHTML:put('<A HREF=/cgi-bin/waa1gate.exe?WAA_PACKAGE=Main&WAA_FORM=WW_SKIP&WAA_FORM=WW_SKIP&WW_RECNO=1>Vor</A>')
Nur mit SUBMIT werden automatisch alle "INPUT"-Elemente mit "name"-Attribut übertragen
Nichts gegen xb2net - aber ich nutze auch den WAA und weiß nichts von vielen Einschränkungen und Zwangsjacke...Carlos: Ich kam damit jedoch viel schneller zu guten Web Apps und dies ohne die vielen Einschränkungen und der Zwangsjacke von WAA ....
Die Pfade sind in diesem Fall relational zum DOCUMENTROOT.Ich komme scheinbar mit den ganzen Pfaden nicht klar. Einfach
type="text/css" mit oHTML:put() ausgeben klappt nicht. Da findet der keine Datei, egal wo ich die hin kopiere.
Im DOCUMENTROOT steht auch das Start-HTML (z.B. index.htm)
z.B. DOCUMENTROOT\css
<link id="css" REL="STYLESHEET" HREF="/css/meincss.css" TYPE="text/css">
Grüße, Armin
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: CSS nutzen
Hallo Armin
das grösste Problem dabei ist dass du einen Webserver wie Apache oder ISS installieren und benutzen musst. Dazu musst du darauf noch ein Gateway installieren der dir einen Teil der Anforderungen an den WAA weiterreicht. Dabei hast du nicht nur einen erheblichen Mehraufwand an Installation und Konfiguration, eine verzögerte Anwortzeit da ja Anfrage und Antwort über das Gateway laufen, dazu hast du 2 Blackboxen (Gateway und WAA) die dazu noch ohne Source-Code sind. Bei Problemen bist du dann richtig platt. Von beiden Modulen ist ja die Funktion richtig nebulös. Dazu kommt dass du mit diese Architektur viele viele Aufgabe gar nicht bewältigen kannst.
Wenn du mit WAA zufrieden bist ist das für dich eine wirklich gute Sache.
Eine XB2net Anwendung kannst du einfach in ein Verzeichnis kopieren und die EXE (den Webserver) starten. Und es läuft.
Ich habe mich selbst einige Zeit mit WAA abgemüht. Zum Glück bin ich umgestiegen. Die Web-App lief massiv schneller und die damals zum Teil tägliche Abstürzte bei der benutzung von L&L waren beseitigt. Heute hat die APP einen Funktionsumfang die mit WAA nicht mehr umzusetzten wären.
Gruss Carlo
das grösste Problem dabei ist dass du einen Webserver wie Apache oder ISS installieren und benutzen musst. Dazu musst du darauf noch ein Gateway installieren der dir einen Teil der Anforderungen an den WAA weiterreicht. Dabei hast du nicht nur einen erheblichen Mehraufwand an Installation und Konfiguration, eine verzögerte Anwortzeit da ja Anfrage und Antwort über das Gateway laufen, dazu hast du 2 Blackboxen (Gateway und WAA) die dazu noch ohne Source-Code sind. Bei Problemen bist du dann richtig platt. Von beiden Modulen ist ja die Funktion richtig nebulös. Dazu kommt dass du mit diese Architektur viele viele Aufgabe gar nicht bewältigen kannst.
Wenn du mit WAA zufrieden bist ist das für dich eine wirklich gute Sache.
Eine XB2net Anwendung kannst du einfach in ein Verzeichnis kopieren und die EXE (den Webserver) starten. Und es läuft.
Ich habe mich selbst einige Zeit mit WAA abgemüht. Zum Glück bin ich umgestiegen. Die Web-App lief massiv schneller und die damals zum Teil tägliche Abstürzte bei der benutzung von L&L waren beseitigt. Heute hat die APP einen Funktionsumfang die mit WAA nicht mehr umzusetzten wären.
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Armin
- Rekursionen-Architekt
- Beiträge: 394
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: CSS nutzen
Hallo Carlo,
ich würde heute auch XB2NET nehmen.
Aber anscheinend hat Alaska das Problem mittlerweile zumindest erkannt und ein PDR daraus gemacht.
Der Hauptnachteil ist nach meiner Meinung, dass der WAA nicht als Service läuft. Ich habe es bereits mit einem Serviceloader probiert, aber es hat nicht funktioniert. Wieso Alaska den WAA nicht auch als Service ohne Oberfläche bringt, kann ich nicht verstehen.
Dadurch muss der Rechner, auf dem der WAA läuft immer angemeldet sein.
Und das grösste Problem sehe ich in der mangelnden, bzw. nicht durchgängigen UTF8-Unterstützung. Aber das hat XB2NET auch, weil das ja an Xbase++ liegt. Bei der Zeichensatz-Umsetzerei können immer wieder Zeichen verloren gehen und eine wirkliche Internationalisierung ist schwierig.
Liegt xb2net mit Quellcode vor?
Grüße, Armin
ich würde heute auch XB2NET nehmen.
Das sehe ich nicht einmal als Problem oder Nachteil - eher sogar als Vorteil! Mit z.B. dem Apache kann ich alles denkbare realisieren. Der Apache ist sozusagen Standard. Und einen Apache zu installieren ist ja wirklich kein Problem.das grösste Problem dabei ist dass du einen Webserver wie Apache oder ISS installieren und benutzen musst
Ich bin nicht 100% zufrieden (siehe viewtopic.php?f=33&t=10185&p=127133#p127133)Wenn du mit WAA zufrieden bist ist das für dich eine wirklich gute Sache.
Aber anscheinend hat Alaska das Problem mittlerweile zumindest erkannt und ein PDR daraus gemacht.
Der Hauptnachteil ist nach meiner Meinung, dass der WAA nicht als Service läuft. Ich habe es bereits mit einem Serviceloader probiert, aber es hat nicht funktioniert. Wieso Alaska den WAA nicht auch als Service ohne Oberfläche bringt, kann ich nicht verstehen.
Dadurch muss der Rechner, auf dem der WAA läuft immer angemeldet sein.
Und das grösste Problem sehe ich in der mangelnden, bzw. nicht durchgängigen UTF8-Unterstützung. Aber das hat XB2NET auch, weil das ja an Xbase++ liegt. Bei der Zeichensatz-Umsetzerei können immer wieder Zeichen verloren gehen und eine wirkliche Internationalisierung ist schwierig.
Liegt xb2net mit Quellcode vor?
Grüße, Armin
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: CSS nutzen
Hallo Armin
xb2net läuft als Service. Ich bin der Meinung dass es als Service noch einiges schneller läuft ...
Auch UTF8 ist kein Problem jedenfalls zusammen mit Nativ Postgres.
Das Problem beginnt erst wenn du mit Stringfunktionen arbeiten willst musst ...
Für mich reicht der OEM oder Ansi Zeichensatz aus.
Es hat sich für uns als die beste Lösung gezeigt auf der Webseite kosequent UFT8 zu verwenden, auch weil es für vieles Vorausetzung ist und auf der Serverseite ANSI. Anfangs hatte ich die Datenbanken auch auf UTF8 aber das Handling wurde zu umständlich.
(Zerlege mal einen String.)
Ich hoffe dass die Xbase Stringfunktionen nie auf UTF8 umgestellt werden weil dann ist die Verarbeitung von Binären Daten nicht mehr möglich.
Das ist auch noch immer einer der wichtigsten Anforderungspunkte meines Kunden/Projekts.
Mittlerweile habe ich darin auch sehr viele Zusätze erstellt, Erweiterungen und Anpassungen vorgenommen. Ohne Sourcecode wären alle meine Projekte tot.
Gruss Carlo
xb2net läuft als Service. Ich bin der Meinung dass es als Service noch einiges schneller läuft ...
Auch UTF8 ist kein Problem jedenfalls zusammen mit Nativ Postgres.
Das Problem beginnt erst wenn du mit Stringfunktionen arbeiten willst musst ...
Für mich reicht der OEM oder Ansi Zeichensatz aus.
Es hat sich für uns als die beste Lösung gezeigt auf der Webseite kosequent UFT8 zu verwenden, auch weil es für vieles Vorausetzung ist und auf der Serverseite ANSI. Anfangs hatte ich die Datenbanken auch auf UTF8 aber das Handling wurde zu umständlich.
(Zerlege mal einen String.)
Ich hoffe dass die Xbase Stringfunktionen nie auf UTF8 umgestellt werden weil dann ist die Verarbeitung von Binären Daten nicht mehr möglich.
Als ich begonnen habe: Ja. Am besten Boris fragen.Liegt xb2net mit Quellcode vor?
Das ist auch noch immer einer der wichtigsten Anforderungspunkte meines Kunden/Projekts.
Mittlerweile habe ich darin auch sehr viele Zusätze erstellt, Erweiterungen und Anpassungen vorgenommen. Ohne Sourcecode wären alle meine Projekte tot.
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Armin
- Rekursionen-Architekt
- Beiträge: 394
- Registriert: Mo, 26. Sep 2005 12:09
- Wohnort: 75331 Engelsbrand
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: CSS nutzen
Hallo Carlos,
Was machst Du mit Zeichen, die in der UTF8 Webseite eingegeben wurden und die es nicht in ANSI/ASCII gibt?
Grüße, Armin
naja, das ist unvermeidlichAuch UTF8 ist kein Problem jedenfalls zusammen mit Nativ Postgres.
Das Problem beginnt erst wenn du mit Stringfunktionen arbeiten willst musst ...
Dafür muss es dann extra Funktionen zum Umsetzen geben. Aber deshalb auf UTF8-Stringverarbeitung zu verzichten...Ich hoffe dass die Xbase Stringfunktionen nie auf UTF8 umgestellt werden weil dann ist die Verarbeitung von Binären Daten nicht mehr möglich.
Was machst Du mit Zeichen, die in der UTF8 Webseite eingegeben wurden und die es nicht in ANSI/ASCII gibt?
Grüße, Armin
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: CSS nutzen
Hallo Armin
Auf die schnelle: Ich weiss es nicht! Das ist die Sache der Umwandlungsfunktion. Ich muss dem nachgehen was die macht....
Hast du schon Erfahrungen damit gemacht?
Gruss Carlo
Das ist eine sehr sehr gute Frage!!Was machst Du mit Zeichen, die in der UTF8 Webseite eingegeben wurden und die es nicht in ANSI/ASCII gibt?
Auf die schnelle: Ich weiss es nicht! Das ist die Sache der Umwandlungsfunktion. Ich muss dem nachgehen was die macht....
Hast du schon Erfahrungen damit gemacht?
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: CSS nutzen
Hallo Armin
ich habe ein wenig experimentiert.
UTF8 Zeichen die es unter ANSI nicht gibt wandlet die Umwandlungsfunktion in ein einzelnes Zeichen um.
Das sieht dann z.B. so aus:
Gruss Carlo
ich habe ein wenig experimentiert.
UTF8 Zeichen die es unter ANSI nicht gibt wandlet die Umwandlungsfunktion in ein einzelnes Zeichen um.
Das sieht dann z.B. so aus:
Ich muss nur Deutsch/Englisch und möglichkeiten von Italienisch/Französisch abdecken so ist es für mich kein grosses Problem wenn Zeichen ausserhalb dieses Spachraums nicht korrekt angezeigt werden. Hauptsache das Zeichen wird als irgendein Zeichen angezeigt. Das ist zum Glück so.GgGgKkOoOo??j????????????????????
Gruss Carlo
Valar Morghulis
Gruss Carlo
Gruss Carlo