Italian community of Lazarus and Free Pascal

Programmazione => Lazarus e il web => Topic aperto da: nomorelogic - Gennaio 16, 2013, 04:30:38 pm

Titolo: progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 16, 2013, 04:30:38 pm
Edit (10/03/2013):
Visto che il thread s'è allungato, sotto consiglio di xinyiman metto i riferimenti per provare i sorgenti.


Sorgenti
svn checkout http://svn.code.sf.net/p/lazarusiug/liug/trunk/pspage_module

oppure:

svn checkout https://svn.code.sf.net/p/lazarusiug/liug/trunk/pspage_module


segue post originario ->
____________________________________________________________

3D aperto, ricomincio da qua:

usti, scusa.
<body>
<p:button caption="ciao" id="btn1" onclick="btn1click();"/>
</body>


queste si potrebbero implementare infatti come unit da compilare staticamente o in una DLL in modo da scrivere:
Codice: [Seleziona]
... html...

<%
   interface
   uses uSystemMacro;
%>

... html...

<%
   uSystemMacro.RenderButton('btn1', 'ciao', ['onclick="btn1click()']);
%>


e non solo, la DLL è compilata e magari fa parte del pacchetto, però possiamo anche dare modo di usare DLL fatte con lo script in modo che l'utente finale (che è un programmatore) possa farne di sue:

Codice: [Seleziona]
... html...

<%
   interface
   uses uSystemMacro,         // linkato staticamente nel modulo apache finale
        uSpecialMacroInDll external '.../uSpecialMacroInDll.so';       // dll a caricamento dinamico
   {$I uMyCustomMacro.pas } // qua ci sono le macro da usare tramite interprete
   
%>

... html...

<%
   uSystemMacro.RenderButton('btn1', 'ciao', ['onclick="btn1click()']);

   uSpecialMacroInDll.RenderButton('btn1', 'ciao', ['onclick="btn1click()']);

   RenderButton('btn1', 'ciao', ['onclick="btn1click()']);     // questa è in uMyCustomMacro.pas

   uSystemMacro.RenderForm('form1', 'uForm1.lfm');
%>


Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 16, 2013, 05:08:10 pm
Mamma mia, stai incasinando la grammatica non poco ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 16, 2013, 05:47:27 pm
dici?
beh sono possibilità mica bisogna per forza utilizzarle tutte insieme :)
e poi mi pare che sia ancora sintassi standard(issima) pascal
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 16, 2013, 08:18:07 pm
Topic messo in evidenza
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 16, 2013, 09:21:08 pm
Io direi di tenere la gammatica easy.
quindi <% %> pascal "base".
Mettere nei tag quelli specifici, magari senza inventare nulla di nuovo e prendere dal mondo Java e vedere cosa c'è.
Questo avrebbe un vantaggio che potrebbe rivelarsi vincente per quanto rigurda l'usabilità (nel senso che viene usato). Molti programmatori jsp potrebbero vedere la cosa "famigliare" e provare ad usarlo ;)
No? Se poi la cosa è anche più veloce e rapida delle JSP e meno esosa di risorse ...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 16, 2013, 09:22:16 pm
Magari fare una cosa ancora più semplice per la versione beta ... solo i tag, niente codice custom ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 12:16:59 am
tenere una grammatica facile infatti può essere vincente per far avvicinare gente.
però limitarsi a fare quello che fanno altri linguaggi senza le peculiarità del pascal mi sembra uno spreco :)
direi che si può iniziare con la versione facile (non solo per la beta ma per le cose di uso più comune) riservandosi però di usare delle caratteristiche più avanzate (usando grammatiche particolari).

ad esempio certe "uses" necessarie potrebbero essere inserite automaticamente da un pre-compilatore. del resto se l'interprete ne ha bisogno...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 17, 2013, 09:22:43 am
Sono d'accordo di usare una sintassi semplice..quello che vogliamo è avere un sistema snello, leggibile PASCAL like dove qualsiasi persona può facilmente metterlo in pratica fin da subito. Un'altra cosa comunque da tenere in mente è lo sviluppo di futuri PLUGIN quindi secondo noi avere fin da subito una struttura facilmente integrabile.

La buttiamo lì

creare una pagina tipo prodotti.html.pas

<h1>Prodotti</h1>
 
<table>
  <tr>
    <th>Codice</th>
    <th>Descrizione</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>
 
<%-begin For i := 0 to prodotti.count do %>
  <tr>
    <td><% prodotti.codice%></td>
    <td><% prodotti.descrizione%></td>
    <td><% link_to 'Visualizza', RenderForm('visualizza.html.pas prodotti.codice') %></td>
    <td><% link_to 'Modifica',    RenderForm('modifica.html.pas   prodotti.codice') %></td>
    <td><% link_to 'Cancella',   RenderForm('conferma.html.pas  prodotti.codice') %></td>
  </tr>
<%-end; %>
</table>
 
<br />
 
<%-begin link_to 'Inserisci Prodotto', RenderForm('nuovo.html.pas')%><%-end;%>


Chiaramente dopo bisognerebbe gestire il routing delle pagina.
Poi potremmo avere un css comune per lo stile ed un template tipo

application.html.pas

<html>
... QUI FOGLIO DI STILE SIA PER DESKTOP/MOBILE/ETC
    USO ANCHE DI JS PER PARTICOLARI FUNZIONI TIPO JQUERY ED ALTRI LINGUAGGI
 <body>
      <%-begin renderapp() -end%>   <--- QUA VANNO POI INGLOBATE LE PAGINE tipo prodotti.html.pas
 </body>
</html>

Speriamo di esserci spiegati bene...non ci "insultate"  ;D  ;D  :D

Marco e Samuele




Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 09:52:49 am
Io provoco ;) Per stimolare la discussione :D

 
Codice: [Seleziona]
<!-- variabile precaricata dal controller di pagina, dichiarata in modo che possa essere puntata dal motore di rendering -->
<p:object name="prodotti" />

<h1>Prodotti</h1>
<table>
  <tr>
    <th>Codice</th>
    <th>Descrizione</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>
 
<psp:foreach var="prodotto" collection="${prodotti}" status="statusVar">
  <tr>
    <td><psp:out text="${prodotto.codice}"  /></td>
    <td><psp:out text="${prodotti.descrizione}" /></td>
    <td><psp:action id="actionVisualizza" method="visualizzaProdotto" param="${statusVar.index}" /></td>
    <td><psp:action id="actionModifica" method="modificaProdotto"  param="${statusVar.index}" /></td>
    <td><psp:action id="actionProdotto" method="cancellaProdotto"  param="${statusVar.index}" /></td>
  </tr>
</psp:foreach>
</table>
 
<br />
<psp:page>
  <psp:nclude resource="fogliodistileselezionato.css" type="stylesheet" />
  <!-- in alternativa -->
  <psp:nclude resourceAlias="alias-al-foglio-selezionato" />
  <psp:body>
      <psp:include page="prodotto.psp" />
  </psp:body>
</psp:page>
E jQuery è incluso in modo implicito, e dinamico alla pagina.

Codice: [Seleziona]

type
  TProdottoController = class(TPascalServerPageController)
  published
    procedure visualizzaProdotto(const parameter : TMethodControllerParameter);
    procedure modificaProdotto(const parameter : TMethodControllerParameter);
    procedure cancellaProdotto(const parameter : TMethodControllerParameter);
  end;


Butto lì. Il controller è caricato dentro un dynamic library (in modo che sia agganciabile al volo ed estendibile il framework).

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 17, 2013, 10:28:23 am
C'è da dire interessante....anche se separerei (spero di non aver capito male)..in un'altra pagina...

<psp:page>
  <psp:nclude resource="fogliodistileselezionato.css" type="stylesheet" />
  <!-- in alternativa -->
  <psp:nclude resourceAlias="alias-al-foglio-selezionato" />
  <psp:body>
      <psp:include page="prodotto.psp" />
  </psp:body>
</psp:page>

Ti faccio una domanda...poi come integriamo tutto con APACHE per esempio?

Siamo molto felici che da un post si è aperta questa discussione e spero quanto prima di iniziare a buttare giù qualche pezzo di codice...(apriremo un google code o github...che dite?) anche se ancora è prematuro..

Marco e Samuele.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 10:32:38 am
Diciamo che FreePascal ha già alcune cose per il Web, quindi non sarebbe da reinventare tutto da zero.
Ed in effetti erano 2 le pagine ;)

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 17, 2013, 10:41:22 am
Diciamo che FreePascal ha già alcune cose per il Web, quindi non sarebbe da reinventare tutto da zero.
Ed in effetti erano 2 le pagine ;)

Stilgar

Giusto! L'unica cosa che vorrei evitare è di utilizzare ExtJS per ragioni di licenza...no?....per le pagine stamattina è difficile svegliarsi!  ::)
Marco e Samuele.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 10:54:06 am
@Stilgar
per la beta (wow è già la seconda volta che compare il termine "beta" :D) il preprocessore ci servirà quasi sicuramente ma preferirei limitarmi all'approccio sintattico proposto da asis (grammatica da rivedere ma l'idea la vedo più praticabile, almeno all'inizio).

L'idea di riunire le funzionalità di jsp e php non sono affatto male ma se rimaniamo su sintassi tipo:
Codice: [Seleziona]
    <td><% Writeln(prodotto.codice) %></td>
    <td><% Writeln(prodotto.descrizione %></td>
    <td><% psp.Action('actionVisualizza', 'visualizzaProdotto.html.pas', ['param1=valore1', 'param3=valore2', 'param3=valore3']) %> </td>

Questo perchè, non bimentichiamolo, dobbiamo usare almeno all'inizio un interprete pascal esistente...
Che poi il ns preprocessore possa tradurre:
psp:action id="actionVisualizza" method="visualizzaProdotto" param="${statusVar.index}"
in
<% psp.Action('actionVisualizza', 'visualizzaProdotto.html.pas', ['param1=valore1', 'param3=valore2', 'param3=valore3']) %>
Si può anche fare ma il motore finale è sempre l'interprete e quindi per la beta (e siamo a 3) ragioniamo con sintassi pascal-like e senza dover obbligare nessuno a scrivere classi.


Quindi, secondo me la cosa si va configurando così:

sembra complicato ma otteniamo molti vantaggi:


Edit:
si potrebbe configurare il modulo apache per lavorare in due modi:
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 10:55:40 am
Diciamo che FreePascal ha già alcune cose per il Web, quindi non sarebbe da reinventare tutto da zero.
Ed in effetti erano 2 le pagine ;)

Stilgar

Giusto! L'unica cosa che vorrei evitare è di utilizzare ExtJS per ragioni di licenza...no?....per le pagine stamattina è difficile svegliarsi!  ::)
Marco e Samuele.

però chi vuole usare ExtJs dovrà essere libero di poterlo fare :)
ma a questo penseremo in un secondo momento
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 17, 2013, 11:35:32 am
Citazione
però chi vuole usare ExtJs dovrà essere libero di poterlo fare :)
ma a questo penseremo in un secondo momento

Ovviamente SI sono d'accordo; scusate è vero ce ne occuperemo poi in fase di rendering di una form vera e propria
ma già impostando funzioni semplici copriamo il 90% di esigenze..secondo noi... (scusate non ci picchiate ma l'arma vincente di
Rails è proprio quella di avere pagine semplici non complesse...espandibili e customizzabili..vedi twitter scritto in ROR)

Marco e Samuele.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 11:59:28 am
A me la doppia estensione non piace ;)
"html.pas"

alla fine comanda l'ultima.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 12:27:10 pm
Codice: [Seleziona]
    <td><% Writeln(prodotto.codice) %></td>
    <td><% Writeln(prodotto.descrizione %></td>
    <td><% psp.Action('actionVisualizza', 'visualizzaProdotto.html.pas', ['param1=valore1', 'param3=valore2', 'param3=valore3']) %> </td>

mi ero dimenticato di ragionare in pascal :D

Codice: [Seleziona]
Writeln( Format('<td>%s</td><td>%s</td><td>%s</td>', 
                [ prodotto.codice,
                  prodotto.descrizione,
                  psp.Action('actionVisualizza', 'visualizzaProdotto.html.pas', ['param1=valore1', 'param3=valore2', 'param3=valore3'])               
                ]) )   
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 12:37:04 pm
Oddio nomore, così mi piace molto meno.
Ticorda troppo un CGI.

Non sono più pagine, ma programmi.
A questo punto possiamo dire di compilare in java da freepascal e lanciarlo dentro un tomcat ...

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 12:44:43 pm
Non sono più pagine, ma programmi.

vabbè uno poi programma come gli pare no? ;)

stili a parte, secondo me è ora di "battezzare" qualcosa qua e la: iniziamo a crearci un vocabolario per dare alle "cose" il loro nome :)

ad esempio:
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 01:25:34 pm
qualcuno di voi ha mai provato instantfpc?
http://wiki.lazarus.freepascal.org/InstantFPC (http://wiki.lazarus.freepascal.org/InstantFPC)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 01:58:12 pm
Ok, da quello che leggo c'è già qualche cosa rispetto a quello che suggerivi ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 02:42:51 pm
già ma richiede la presenza del compilatore fpc...
una garanzia in più nel caso di compilazione in progetto binario a parte ma un ostacolo nella diffusione del modulo.
poi non vorrei che si finisse per avere gli stessi problemi del cgi.

voi che ne dite?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 02:43:57 pm
Che stiamo già prendendo strade diverse ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 02:44:50 pm
Diciamo che FreePascal ha già alcune cose per il Web, quindi non sarebbe da reinventare tutto da zero.
Ed in effetti erano 2 le pagine ;)

ora provoco io ;)
visto che per "psp" c'è bisogno di un file aggiuntivo, perchè non dovrebbe essere un lfm?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 03:13:44 pm
nomore, ma cosa vuoi fare? Delphi for php?
Nessun problema, ci metteremo un paio d'anni ;)

Si parlava di fare delle "cose webbe" che non imponessero il caricare binario all'interno del server web.
Per questo la questione del action controller era una attimo forzato.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 03:24:34 pm
nomore, ma cosa vuoi fare? Delphi for php?
Nessun problema, ci metteremo un paio d'anni ;)

ah beh perchè senno in 2 settimane facciamo tutto :D
ok, ok... non provoco più ;)


Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 03:26:15 pm
Che stiamo già prendendo strade diverse ;)

quella dell'interprete come la vedete?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 17, 2013, 03:41:36 pm
Nomore,

Per quanto riguarda il nome non saprei che so PasWeb LazWeb bo! dovrebbe essere un nome facilmente leggibile...
Per le estensioni doppie era un modo per capire sintatticamente quello che si andava a costruire
esempio:
prodotti.html.pas = Pagina con tag html
prodotti.pas         = Pagina con script puro
prodotti.plug.pas = Pagina di plugin
prodotti.js.pas     = Pagina con script jquery

Ma questa era un'idea personale...poi è chiaro che comanda l'ultima..ritengo come hai detto che non è bellissima ma capibile.

I sotto progetti secondo me vanno strutturati...però dovremo prima farci un'idea di quello che sappiamo fare...perchè quando partiremo dovremo cercare di non sovrapporci e avere un beta quanto prima...  :D

Marco e Samuele.

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 17, 2013, 04:35:56 pm
sinceramente?! ancora non si e' capito cosa dovrebbe fare questo progetto. si parla di cgi di script. ma proprio non riesco a starvi dietro. innanzitutto decidiamo quale deve essere il risultato: rich internet application?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 05:36:15 pm
sinceramente?! ancora non si e' capito cosa dovrebbe fare questo progetto. si parla di cgi di script. ma proprio non riesco a starvi dietro. innanzitutto decidiamo quale deve essere il risultato: rich internet application?!

in effetti finora abbiamo parlato di come si può ottenere un html per il browser, il contenuto e come renderizzarlo è un altro argomento interessante.
RIA è una problematica relativa al rendering, di sicuro ci si deve arrivare ma il problema va capito a partire da come ti piacerebbe scrivere il codice.

Tu hai molta esperienza in questo campo: usi ExtPascal per creare un WebServer standalone o modulo apache che sia.
Ponendo il caso che ExtPascal sia una specie di plugin, come lo scriveresti se embedded in un sorgente html alla jsp?
Nel caso si trovasse un modo adeguato si potrebbero fare delle prove per usarlo da un interprete pascal.

Edit:
credo che difficilmente, nel caso ci sarà veramente una beta, riusciremo a farci stare dentro ExPascal, ExtJs o altro. se però si inizia a scrivere la beta, si può parallelamente iniziare a scrivere (se c'è gente) qualcosa per il dopo-beta che abbia a che fare con RIA.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 17, 2013, 06:08:26 pm
Anche noi pensiamo che per arrivare a scrivere una RIA vera e propria che comunque sarà influenzata pesantemente da quello che attualmente si ha a disposizione (non è pensabile rimettersi a scrivere i componenti tipo button,edit..etc quando abbiamo +10 top library che già lo fanno...) bisogna creare un sistema semplice e snello per scrivere una pagina html con tag PASCAL interpretabili. Questo sviluppo poi dovrà essere completato con plugin sempre più user-friendly, GUI e quant'altro...ma adesso il problema è la base..il core.

Marco e Samuele.

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 17, 2013, 06:24:35 pm
ok, ok... non provoco più ;)

ho cambiato idea: provoco ancora! :D
http://wiki.lazarus.freepascal.org/DELPHI_FORM_TO_HTML_CONVERTER (http://wiki.lazarus.freepascal.org/DELPHI_FORM_TO_HTML_CONVERTER)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 17, 2013, 08:38:25 pm
Voglio fare una domanda...ipotizziamo che abbiamo fatto la beta, una delle cose più probabili è la necessità di connettersi ad un database, ipotizziamo anche che non produciamo una cgi, con cosa ci colleghiamo?! Riscriviamo le zeos in modo tale che rilascino codice php?! Per collegarsi ai vari db?!

Secondo me è importante anche snocciolare il dopo beta prima di aver fretta di partire...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 09:36:30 pm
xinyiman, la connettività verso un db è cruciale perchè non rimanga una cosa da nerds.
Al giorno d'oggi cosa ti aspetti da un FW Web?
Connettività verso DB e Ajax a manetta per non ricaricare tutto ad ogni pisciata di cane.
Io rimango della mia idea.
Si fanno delle librerie di tag base. (Ricordatevi che abbiamo già il lettore di "template" gratis, senza dover reinventarsi parser e madonne varie). Anche se a normore sta antipatico, il documento XML che ne esce come template è già pronto all'uso.
Basta scrivere solo la gestione dei tag specifici.
Dare supporto ajax nelle chiamate.
Poi volete fare altre cose? Si possono aggiungere dopo, non diventando ebeti mettendo tutto e subito.
1) Tenete conto che si tratterebbe di mettere assieme tutte cose che ci sono già. (per gli imprenditori che bazzicano questo forum = bassi costi di startup).
2) JQuery ha una botta di plugin già pronti per fare moltissime cose. Quello che manca (se manca) si può fare. JQuery UI ha abbastanza widget per iniziare. E JQuery è una sorta di "garanzia" (Good References?)
3) Le tag libraries standard creerebbero dei paletti dove l'utente non ha molti spazi per dare la "colpa" del "non va na madonna" (avrei usato un'atra espressione, ma il forum è pubblico).
4) La sintassi "pascaliana" è un plus ma anche un handicap. Teniamo conto che la maggior parte degli sviluppatori web conoscono : JSP, ASP, APS.net, PHP.
Se diamo una cosa a loro familiare in mano, magari un attimo più veloce e performante, magari la cosa è più digeribile ai "neofiti".
Butto lì alcuni concetti.
Lavoro "tosto" da fare.
1) Capire quali tag servono.
2) Creare una priorità alle varie librerie.
3) Creare delle utilities che vadano bene oggi e dopodomani, senza doverle rimaneggiare ad ogni rilascio.
4) Prevedere l'uso di SVG appena IE inizia a supportarlo (formato grafico w3c).
Continuo? ;)

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 09:42:32 pm
A proposito, poi ci sarà da scrivere un IDE a parte per lo svilippo.
Magari è quello che potrebbe diventare un attimino fonte di dindini ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 17, 2013, 09:43:57 pm
Stilgar concordo con te, approfondiamo un attimo il discorso di scrivere tag?! Che idea hai in mente?!

Snoccioliamo i dettagli?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 09:51:58 pm
Oddio, quello lo vedo come un problema secondario, in questa fase.
Servono tag per la gestione di cicli, DML (e DDL? Se usiamo Zeus come connettore, non ci sono problemi di sorta).
L'uso di queste cose prevede un rtti molto pesante e preciso. ;)

Adesso, il mio "problema" non è tanto la parte "web" pura, ma la parte "server".
Mi spiego, meglio.
Nel mondo Java esistono 2 entità che coesistono nei JSP container.
JSP (appunto) e Servlet.
Alla fine sono la spessa identica cosa, ma le prepari con due approci radicalmente diversi.
Le JSP le scrivi in XML (in soldoni) e le servlet le scrivi in java puro.
Il problema che abbiamo è il deploy. Quello è uno scoglio duretto da digerire.
Questo per quale motivo?
Le WebApplication di java usano le servlet (al giorno d'oggi) per fare il lavoro di back end e le jsp quello di front end.
La forzatura che proponevo qualche post fa ricalca questa filosofia.
Gli action controller, altro non sono che servlet specializzate.
Quello che sto cercando di immaginare è il meccanismo che permetta di deployare le "applicazioni" a caldo, in un apache, tanto per iniziare.
Ci sarebbe il modulo per poter interagire con Apache da sfruttare, ma poi?
L'unica strada che al momento vedo praticabile fin da subito, con basso costo di partenza è l'uso di DLL caricate e scaricate on demand.
Quindi mettere in piedi un meccanismo tipo loader applicativo.
Ma non l'ho ancora sognato ;) Quindi è ancora abbastanza fumoso al momento ;)

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 09:54:11 pm
insomma, se siamo d'accordo su cosa deve scrivere l'utente (xml) il problema a questo punto è il motore (core come dicevano sopra).
Deve essere snello è robusto. ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 17, 2013, 10:02:10 pm
xinyiman, per ogni tag che metti in pagina, se non è un tag html, fai partire una classe.
Tutte devono implementare un'intergaccia (ITag per comodità e poca fantasia).
A queste devi passare uno stream (in modo che la generazione della pagina sia pezzo per pezzo tutta in memoria).
Esitono 3 macro categorie di tag.
1) One Shot. (quelle che si aprono e si chiudono senza sotto tag)
2) Quelle con "body". (quelle che possono avere sotto tag).
3) Quelle con ricircolo (vedi una tabella, quella per ogni riga ricorcola, idem per le righe, ricircola le colonne).

Poi basta farsi una letta delle specifiche jsp per avere l'ossatura di quello che c'è da fare ;)
Nulla di incasinato dal punto di vista del design.
Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 18, 2013, 08:46:40 am
Gli action controller, altro non sono che servlet specializzate.
Quello che sto cercando di immaginare è il meccanismo che permetta di deployare le "applicazioni" a caldo, in un apache, tanto per iniziare.
Ci sarebbe il modulo per poter interagire con Apache da sfruttare, ma poi?
L'unica strada che al momento vedo praticabile fin da subito, con basso costo di partenza è l'uso di DLL caricate e scaricate on demand.
Quindi mettere in piedi un meccanismo tipo loader applicativo.
Ma non l'ho ancora sognato ;) Quindi è ancora abbastanza fumoso al momento ;)

quando posto sono solo opinioni e/o idee, spero di non aver scritto in tono autoritario perchè, nel caso, chiarisco subito che non avevo dictact in testa :)

evitare file esterni, che siano xml o altro, era un modo per semplificare il lavoro iniziale abbassando il target della beta
l'idea era quella di mettere questi tag embedded nell'html, costruire un meccanismo che gira e poi riflettere di nuovo
del resto ci sono gli stress test da fare, paragonare i tempi con altri strumenti ed molto altro ancora

però non ho capito la strada che hai in mente: nessun modulo ma varie dll?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 18, 2013, 09:25:13 am
In pratica "l'applicazione" è una DLL. Questa ha dentro sia gli xml, sia il codice.
Diciamo che il modulo di connessione con il web server sarebbe una cosa "scritta" una volta e usate per tutte.
Diciamo che sono le basi per un vero application server.
Il modulo caricherebbe e scaricherebbe l'applicazione in caso di aggiornamento ;)

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 18, 2013, 10:16:56 am
per fare questo non è complicato
il modulo apache c'è e si occupa di caricare dinamicamente le dll di turno.
magari anche con una interfaccia web per la manutenzione dei plugin.

tornando ai plugin... la cosa mi piace perchè a cose funzionanti uno può anche implementare "server pages" differenti e/o farsi il suo application server e la cosa non è male :)

forse l'interprete pascal dovrebbe essere un plugin del modulo apache così come lo dovrebbe essere la parte "server pages" (ovviamente i 2 plugin devono comunicare).
in questo modo il modulo dovrebbe caricare/scariacre le dll/plugin e smistarci le chiamate.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 18, 2013, 03:06:02 pm
Allora Ragazzi,
secondo noi è necessario fare un po di chiarezza leggo i post di Stilgar, nomore sono molto interessanti ma mi rendo conto anche molto teorici (forse xinyiman sul primo post quando diceva allora che si fa...in pratica aveva un po di ragione...  ;)  :D )
Proviamo a schematizzare il tutto..che ne dite? Rendere le idee tecniche/teoriche in modo comprensibile a tutti..siamo pochi che scriviamo ma sono sicuro che gli altri del forum leggono e magari si chiedono "ma questi de che parlano in pratica??"....Scusate magari sbagliamo però a volte anche noi facciamo fatica a capire le varie sfumature di quello che abbiamo intensione di implementare. Accettiamo critiche! ahahahah :)
Marco e Samuele.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 18, 2013, 04:27:07 pm
avete dannatamente ragione :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 18, 2013, 04:33:48 pm
http://www.tutorialspoint.com/jsp/index.htm (http://www.tutorialspoint.com/jsp/index.htm)

Diciamo che questo giustamente è orentato a Java.
Basta pensare che i pezzi "java" diventino ObjectPascal ;)


Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 18, 2013, 05:02:08 pm
io ripropongo il link di qualche post fa
http://www.yanniel.info/2011/12/pascal-server-pages-script.html (http://www.yanniel.info/2011/12/pascal-server-pages-script.html)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 18, 2013, 07:51:06 pm
sto guardando un po' in giro ed ho trovato un progetto abbandonato nel 2004
il codice è per delphi/kylix

http://sourceforge.net/projects/npascal/?source=dlp (http://sourceforge.net/projects/npascal/?source=dlp)

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 19, 2013, 11:02:37 am
un po' di codice

Sono partito dall'interprete pascal script di rem object e l'ho testato con lazarus 1.04, win7 32 bit.
Andrebbe testato su tutte le piattaforme se quindi qualcuno vuol fare qualche prova può anche segnalare conquale sistema è stata fatta.

Per scaricarlo, usate svn: http://code.remobjects.com/svn/pascalscript
e fate il checkout in [...]\lazarus\components\pascalscript

All'interno trovate il file LPK per installare il tutto.
Fatto questo potete scaricare l'esempio che ho provato io (tra l'altro trovate molti esempi nella cartella pascalscript\samples): si tratta di un progetto adattato.
In pratica:

Quando lanciate fon F9, aggiungete un semplice
Writeln('ciao');
e poi lanciate la compilazione: vedrete il risultato in Memo2.

La mia idea era quella di salvare il compilato per poi ricaricarlo e mandarlo in esecuzione ma non ci sono riuscito in quanto la procedura "Writeln" è importata (vedete in compilazione) ma non sono riuscito a fare la stessa cosa caricando il compilato...

Questo interprete ha molte possibilità, dategli un'occhiata, ma riassumendo:

credo sia una buona base di partenza, fate delle prove anche voi e ditemi cosa ne pensate.

Edit:
interagire con componenti e procedure nel binario vuol dire poter usare tutti i componenti compilati che ci vengono in mente dall'interno dello script.
Se siete d'accordo si può anche tirar fuori del codice da far interpretare (tipo <psp:page> di qualche post fa) e vedere come si potrebbe renderizzarlo.

Approcci diversi sono i benvenuti ma come è giò stato sottolineato iniziamo a ragionare con del codice sotto :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 19, 2013, 11:26:17 am
giusto per spiegare cosa intendevo con preprocessore

ad esempio codice tipo
Codice: [Seleziona]
<html> 
<head><title>bla bla bla</title></head>
<body>
<p>
   Ora e Data: <%= Write('Sono le ore ' + FormatDateTime('hh:nn di ddd dd mmm yyyy', Now)) %>
</p>
</body>
</html>

potrebbe essere trasformato in questo sorgente e poi compilato:
Codice: [Seleziona]
Write('<html>');
Write('<head><title>bla bla bla</title></head>');
Writeln('<body>');
Write('<p> Ora e Data: ');
Write('Sono le ore ' + FormatDateTime('hh:nn di ddd dd mmm yyyy', Now));
Writeln('</p>');
Writeln('</body> </html> ');

una volta compilato è pronto per essere richiamato ed eseguito dal modulo apache.

lo so che è un approccio cgi (ma non ha i difetti del cgi: non deve essere caricato in memoria un binario per ogni richiesta web); intanto riflettiamoci sopra e vediamo alternative ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 19, 2013, 04:20:24 pm
Nomore, mi sembra carino. Nei prossimi giorni quando ho del tempo libero lo provo sicuramente.

 :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 20, 2013, 03:35:47 pm
allora iniziamo a provare da qua, ci ho lavorato un po' sopra ed è una base per andare avanti in varie direzioni.

si tratta di un progetto per console.
all'interno della root del progetto trovate una cartella (webpas) con uno script pronto all'uso.
una volta compilato correttamente il progetto lpitr (non c'è uno nome, sta per: lazaruspascal.it runtime :D) basta andare in una shell del dos e lanciarlo con:
Codice: [Seleziona]
lpitr.exe >index.html
produrrà un file da "navigare" col browser

cose da fare:
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 21, 2013, 09:25:57 am
Nomore, provo tutto...  ;D ci siamo un pochino rilasciati nel weekend....ne approfitto buongiorno e buon inizio settimana...

Marco e Samuele.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 21, 2013, 12:05:23 pm
Allora ho studiato il tutto in effetti è molto interessante....ma non ho ben capito come si schematizza la cosa...mi immaginavo questo...vi faccio un esempio

Linux/Win ---> Apache 2.0 --> MODULO APACHE PASCAL (interprete) --> OUTPUT html

Esempio:

  <html>
   <body>
       <% writeln('ciao mondo...'); %>
   </body>
  </html>

---> http//localhost/app/prova.html.pas ---> Modulo apache --> Interprete --> Output --->


  <html>
   <body>
       <p>ciao mondo..</p>
   </body>
  </html>

e' questo quello che facciamo????
Marco e Samuele.

Edit: mi basavo su http://wiki.freepascal.org/FPC_and_Apache_Modules e sto leggendo come scrivere moduli apache...non è più semplice...inveci di avere un compilato? Diteci se diciamo stronzxxx comunque domani farò un piccolo modulo apache poi faccio qualche prova e posto il codice...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 21, 2013, 03:38:18 pm
sono contento che lo troviate interessante,
a breve cercherò di spiegare per bene come si può schematizzare la cosa.

nel frattempo se provate a scrivere un modulo per apache, leggete anche questo:
http://opensoft.homeip.net:8080/articles/apache.pdf (http://opensoft.homeip.net:8080/articles/apache.pdf)

non dimenticate che a dicembre 2012 è uscita la versione 2.4.x di apache: evitatela, usate la 2.2.x, in quanto potrebbe non essere compatibile con la documentazione fpc attualmente  a disposizione.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 21, 2013, 08:18:58 pm
@aesis
oggi non ho avuto modo di fare uno schema come si deve, comunque, sintetizzando, dovrebbe essere così:
si fa un modulo apache che ha
1) preprocessore (sviluppato da noi)
2) compilatore pcode pascal (quello in pascal script)
3) interprete pcode pascal (quello in pascal script)

operativamente lato sviluppo:
1) il programmatore, con un editor o un ide che sia, produce un file "index.psp"
2) il programmatore lancia l'url da un browser che invia la richiesta ad apache che la gira al ns modulo
3) il ns modulo:
Codice: [Seleziona]
se timestamp(index.psp) <> timestamp(index.pcode) then
   index.psp -> tramite preprocessore creazione -> index.pas
   index.pas -> tramite compilatore creazione -> index.pcode
   index.pcode -> timestamp impostata uguale a quella di -> index.psp
fine se
response := execute(index.pcode)
alla fine dello svilupppo, sul server web in produzione ci vanno tutti *.pcode

operativamente lato utente finale:
1) su un browser si inserisce l'url: [...]\index.psp
2) apache gira la richiesta al ns modulo
3) il ns modulo:
Codice: [Seleziona]
response := execute(index.pcode)


spero di essere stato chiaro e obiezioni e critiche sono le benvenute :)

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 21, 2013, 08:27:45 pm
ora voglio fare delle domande io riguardo il codice e spero di ricevere molti spunti perchè a questo punto è ora di pensare al preprocessore.
premetto che non sono una cima in sviluppo web e quindi portate pazienza se sparo qualche boiata :P
 in rete ho trovato questo esempio in jps:

Codice: [Seleziona]
<HTML>
    <HEAD>
        <TITLE>Login using jsp</TITLE>
    </HEAD>
 
    <BODY>
        <H1>LOGIN FORM</H1>
        <%
        String myname =  (String)session.getAttribute("username");
       
        if(myname!=null)
            {
             out.println("Welcome  "+myname+"  , <a href=\"logout.jsp\" >Logout</a>");
            }
        else
            {
            %>
            <form action="checkLogin.jsp">
                <table>
                    <tr>
                        <td> Username  : </td><td> <input name="username" size=15 type="text" /> </td>
                    </tr>
                    <tr>
                        <td> Password  : </td><td> <input name="password" size=15 type="text" /> </td>
                    </tr>
                </table>
                <input type="submit" value="login" />
            </form>
            <%
            }
         
             
            %>
         
    </BODY>
</HTML>


traducendolo così come lo vedo, io scriverei qualcosa come:
Codice: [Seleziona]
<HTML>
    <HEAD>
        <TITLE>Login using pasp</TITLE>
    </HEAD>
    <BODY>
        <H1>LOGIN FORM</H1>
        <% var myname: string; %>

        <%
        myname := pasp.session.getAttribute('username');
        if(myname <> '') then
             Writeln('Welcome ' + myname + ' <a href="logout.pasp" >Logout</a>")
        else
            begin
        %>
            <form action="checkLogin.pasp">
                <table>
                    <tr>
                        <td> Username  : </td><td> <input name="username" size=15 type="text" /> </td>
                    </tr>
                    <tr>
                        <td> Password  : </td><td> <input name="password" size=15 type="text" /> </td>
                    </tr>
                </table>
                <input type="submit" value="login" />
            </form>
        <%
            end;
        %>
    </BODY>
</HTML>

però girando per il web ho trovato anche un'altra sintassi che credo sia quella a cui si riferiva Stilgar quando diceva di usare XML con un parse:
Codice: [Seleziona]
<HTML>
    <HEAD>
        <TITLE>Login using pasp</TITLE>
    </HEAD>
    <BODY>
        <H1>LOGIN FORM</H1>
        <p:var myname: string; />
        <p:set myname := pasp.session.getAttribute('username'); />
        <p:if(myname <> '') then />
        <p:writeln('Welcome ' + myname + ' <a href="logout.pasp" >Logout</a>") />
        <p:else />
            <form action="checkLogin.pasp">
                <table>
                    <tr>
                        <td> Username  : </td><td> <input name="username" size=15 type="text" /> </td>
                    </tr>
                    <tr>
                        <td> Password  : </td><td> <input name="password" size=15 type="text" /> </td>
                    </tr>
                </table>
                <input type="submit" value="login" />
            </form>
        <p:end />
    </BODY>
</HTML>


ora: chi mi chiarisce come mai il jsp ha 2 sintassi?

poi, premesso che il preprocessore, qualunque sia la sintassi che scegliamo, deve generare qualcosa che l'interprete pascal script può eseguire,
secondo voi come scrivereste il codice sorgente psp?



Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 21, 2013, 10:11:24 pm
allora iniziamo a provare da qua, ci ho lavorato un po' sopra ed è una base per andare avanti in varie direzioni.

si tratta di un progetto per console.
all'interno della root del progetto trovate una cartella (webpas) con uno script pronto all'uso.
una volta compilato correttamente il progetto lpitr (non c'è uno nome, sta per: lazaruspascal.it runtime :D) basta andare in una shell del dos e lanciarlo con:
Codice: [Seleziona]
lpitr.exe >index.html
produrrà un file da "navigare" col browser

cose da fare:
  • inserire un parametro per indicare lo script da lanciare(emh... ora la path è una costante nel codice :P)
  • vedere come si può usare una funzione tipo FormatDateTime senza dichiararla in OnUses (c'è il componente import date utils ma ancora non l'ho fatto funzionare)
  • salvare il compilato nella stessa cartella del sorgente con estensione .psp
  • far partire la compilazione solo quando il .pas ha il timestamp dell'ultima omdifica diverso dal .psp; se sono uguali non si compila ma si carica il .psp nell'executor
  • varie ed eventuali

Ho provato mi da errore in fase di compilazione su xubuntu a 32 bit:

lpitr.lpr(0,0) Fatal: Can not find unit uPSCompiler used by lpitr.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 21, 2013, 11:32:34 pm
in progetto -> opzioni -> percorsi (-Fu)
messa la path [...]/lazarus/components/pascalscript/source?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 22, 2013, 09:47:27 am
Citazione

ora: chi mi chiarisce come mai il jsp ha 2 sintassi?

poi, premesso che il preprocessore, qualunque sia la sintassi che scegliamo, deve generare qualcosa che l'interprete pascal script può eseguire,
secondo voi come scrivereste il codice sorgente psp?

Non so...però mi sembra di aver capito che dalla versione 2.0 è supportato un tipo di sintassi diversa..."A primary feature of JSP technology version 2.0 is its support for an expression language (EL)"

rimando alla  JavaServer Pages Standard Tag Library - http://docs.oracle.com/javaee/5/tutorial/doc/bnakq.html (http://docs.oracle.com/javaee/5/tutorial/doc/bnakq.html)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 22, 2013, 05:08:32 pm
Ok no more, fatto. Carino, ma esattamente come pensi che da qui si possa estendere la cosa esattamente?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 22, 2013, 05:09:58 pm
Inoltre mi sono permesso di modificare questo:

if not LoadScript('webpas\script01.pas', ErrorMsg) then

in questo

if not LoadScript('webpas' + System.DirectorySeparator + 'script01.pas', ErrorMsg) then

Almeno rimane multi piattaforma.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 22, 2013, 06:03:04 pm
Ok no more, fatto. Carino, ma esattamente come pensi che da qui si possa estendere la cosa esattamente?!

per estensione intendi accesso a db, ria, application server o plugin? :)
ho una idea per ogni cosa e, bene o male, lo standard dovrebbe essere linkato staticamente nel modulo (o DLL statiche): in questo modo già installando il modulo si può iniziare a lavorare.
pensavo che le estensioni (o sostituzioni dello standard) potrebbero passare per delle DLL che il ns modulo apache carica/scarica dinamicamente.

ci sono molte analogie con il mod_perl di apache (anche quello è basato su un interprete perl residente in memogia e ha i plugin caricati dinamicamente).



Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 22, 2013, 09:42:21 pm
Inoltre mi sono permesso di modificare questo:

if not LoadScript('webpas\script01.pas', ErrorMsg) then

in questo

if not LoadScript('webpas' + System.DirectorySeparator + 'script01.pas', ErrorMsg) then

Almeno rimane multi piattaforma.
Mamma mia ... "stai a guardar er capello" ;)
Per una bozza d'esempio vai subito a controllare il cross platform :D
Sei una sagoma ;)
Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 23, 2013, 05:45:33 am
Inoltre mi sono permesso di modificare questo:

if not LoadScript('webpas\script01.pas', ErrorMsg) then

in questo

if not LoadScript('webpas' + System.DirectorySeparator + 'script01.pas', ErrorMsg) then

Almeno rimane multi piattaforma.


Mamma mia ... "stai a guardar er capello" ;)
Per una bozza d'esempio vai subito a controllare il cross platform :D
Sei una sagoma ;)
Stilgar

che vuoi farci deformazione professionale :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 24, 2013, 11:42:00 am
Nomore, ho sistemato il tuo esempio ora si può vedere la data, ovviamente la costante da me definita per impostare la data deve poi essere decisa tutti insieme.

Fammi sapere che ne pensi della mia soluzione.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 24, 2013, 01:00:03 pm
ottimo :)
appena ho modo gli do un'occhiata
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 24, 2013, 05:37:14 pm
ho da poco avuto la conferma che pascalscript non viene compilato sotto linux 64 bit...  :(

qualcuno ha provato sotto win64?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 24, 2013, 08:26:32 pm
Ho fatto progressi lato scripting: sono riuscito ad importare le funzioni più importanti di DateUtils grazie all'uso di un componente già previsto nel pacchetto.
Tra l'altro la cosa è utile anche per capire come possiamo importare nello script procedure da unit scritte da noi (in modo dinamico: quando serve allo script).

Appena riesco a organizzare in modo decente il codice lo posto così chi ha voglia può fare altre prove in altre direzioni: uso di classi e istanze (tipo creare un dataset nel progetto binario e farlo usare dallo script), condivisione di variabili ed aree di memoria, ecc...

@xinyman
Interessante il tipo di modifica con #DATA# poichè permette un search/replace pre compilazione: una specie di preprocessore insomma.

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 25, 2013, 01:17:16 am
posto alcune modifiche

nello script c'è "uses DateUtils" e quindi si possono usare funzioni tipo:

ho anche suddiviso compilazione ed esecuzione dello script
ora ci vorrebbe poter salvare il compilato per poi ricaricarlo ed eseguirlo
e ci vorrebbe anche che il tutto funzionasse su 64 bit... speriamo bene
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 25, 2013, 10:17:03 pm
Provato, sembra funzionare bene. Io purtroppo ora non saprei per il 64 bit, però diciamo che per il resto è incoraggiante!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 26, 2013, 01:50:48 am
Siamo ripartiti con lo scrivere il codice prima di finire le specifiche?
:p
hihi
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 26, 2013, 10:47:36 am
Provato, sembra funzionare bene. Io purtroppo ora non saprei per il 64 bit, però diciamo che per il resto è incoraggiante!

risolto anche il problema dei 64bit, avevo, ehm... scaricato dal vecchio repository  ::)
http://connect.remobjects.com/discussion/2876/fpc-cant-compile-package-pascalscript-lpk-on-linux-64-bit#latest (http://connect.remobjects.com/discussion/2876/fpc-cant-compile-package-pascalscript-lpk-on-linux-64-bit#latest)

il giusto repository è questo: https://github.com/remobjects/pascalscript (https://github.com/remobjects/pascalscript)
per fortuna la fix era già stata fatta, ho scaricato, compilato il package ricostruito l'ide: tutto ok :)
oggi se riesco ricompilo il tutto sotto linux 64



Edit:
per chi ha già scaricato pascal script, non mi picchiate, ma è meglio riscaricare da github
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 26, 2013, 10:51:20 am
Siamo ripartiti con lo scrivere il codice prima di finire le specifiche?
:p
hihi

che vuoi farci?
si teorizza, teorizza e teorizza ancora ma la vera adrenalina viene tutta da...
http://www.youtube.com/watch?v=rdkecMOT1ko (http://www.youtube.com/watch?v=rdkecMOT1ko)

:D
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Gennaio 26, 2013, 11:42:31 am
porca paletta... manca il "mi piace" ...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 26, 2013, 07:55:12 pm
molto bene anche il problema dei 64 bit non sussiste. il prossimo passo?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 27, 2013, 12:25:29 am
ora come ora sto sbattendo la testa per salvare lo script compilato in pcode e poi ricaricarlo per eseguirlo senza la compilazione.
credevo fosse banale ma devo essermi impuntato da qualche parte: ricaricando il file in una stringa i vari #0 me la fanno risultare troncata...
mi sa tanto che a breve posto il lavoro così magari qualcuno mi può aiutare. deve esserci qualche differenza con delphi che non conosco ancora bene.

per l'immediato futuro ci sarebbe bisogno di un modulo dll per apache compilabile linux/win 32/64 bit
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 27, 2013, 11:20:56 am
Scoglio superato, fortuna esiste il debugger :P

Il codice è incasinato ma funziona! Datemi un po' di tempo che lo sistemo e lo posto.

Un altro fronte sul quale ci si può muovere (oltre al modulo apache) potrebbe essere quello di capire come connettersi ad un db.
PascalScript offre anche un componente che permette di usare i dataset...

Premesso che altri modi di accesso li possiamo/dobbiamo implementare noi (es: via zeos o magari OPF) si tratta comunque di una risorsa che si *deve* poter sfruttare visto che è già pronta e soprattutto di sicuro cross platform.
Quindi, lato DB si possono sperimentare:
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 27, 2013, 06:04:28 pm
Ola, gli eventi sembrano procedere bene...non mi è ancora poi ben chiaro come funzionerà il discorso db. Insomma questo nostro progetto dovrà poi creare pagine html (con un nostro codice scripting) ma come è possibile renderlo un codice client-server senza usare le cgi?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 28, 2013, 12:00:01 am
Intanto allego il progetto riorganizzato. E' un po' più pulito e chiaro sul funzionamento nonostante si tratta sempre di una prova.

Per l'accesso ai db pensavo di prevederlo in 2 modi:

Prossimamente pensavo di vedermi il funzionamento per l'accesso ai db usando direttamente del codice pascal script: se funziona intanto abbiamo qualcosa per partire.

Quello che mi preoccupa un po' di più è fare un modulo apache con tanto di thread safe per le ns procedure. Onestamente la mancanza dei WebModule di Delphi mi fa nascere qualche dubbio, spero che si riesca a venirne a capo. :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: aesis - Gennaio 29, 2013, 10:33:44 am
(divagazione: sto seguendo ma ha casa con 39 di febbre che non mi lascia in pace...ma provo e vi seguo....)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Gennaio 29, 2013, 02:14:16 pm
Nomore, ho provato l'ultimo allegato e devo dire che è molto promettente. Il prossimo passo?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Gennaio 30, 2013, 08:51:10 am

l'idea è quella di poter scrivere nello script qualcosa tipo:
Codice: [Seleziona]
ExecuteQuery('127.0.0.1', 'PROVE_LPITR.FDB', 'SYSDBA', 'masterkey', 'select * from tablename', d)
e, una volta eseguita la query:
Codice: [Seleziona]
Out_Write('<br>' + IntToStr(d.RecordCount);
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 01, 2013, 02:45:53 pm
appena posso provo a fare qualcosa...sono super incasinato e non so dare previsioni
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 01, 2013, 03:30:56 pm
incasinato anche io
però ho fatto funzionare firebird!  8)

un po' di tempo che rendo i sorgenti decenti e poi posto :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 01, 2013, 09:27:11 pm
oooooook
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 02, 2013, 12:22:26 pm
finalmente sono riuscito a dare un'organizzata al tutto

what's new:

Notare che i parametri d'accesso al db nonché il dataset risultante sono tutti definiti nello script :)

ora, lo script l'ho scritto a mano alla "cgi": bisognerebbe pensare ad una sintassi alla "psp" per poter poi generare in automatico script03.pas.

di lavoro ce n'è molto ma la strada sembra promettente :)

per chi può sperimentare le strade sono molte:
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 02, 2013, 05:04:02 pm
Ciao Nomore, ho provato e sembra funzionare. Una cosa sola, prova a sostituire il TIBConnection con una ZConnection, così ottieni la possibilità di passare da un dbms all'altro.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 03, 2013, 11:31:30 am
Ciao Nomore, ho provato e sembra funzionare. Una cosa sola, prova a sostituire il TIBConnection con una ZConnection, così ottieni la possibilità di passare da un dbms all'altro.

provare con
./lpitr -s webpas/script04.pas >out4.html

attualmente il protocollo (x fb 2.5) è fisso nel sorgente, se fate prove con altri db, potete anche prevederlo come parametro in Z_CreateDatasetByQuery di modo da chiamarlo direttamente da script.

Notare che la differenza tra script03.pas e script04.pas è solo nella chiamata alla funzione Z_CreateDatasetByQuery :)

Se poi qualcuno vuole si può fare una funzione;
Codice: [Seleziona]
function CreateDatasetByQuery(Engine, protocol: string; HostName, DbName, User, Pass, Sql: string): TDataset

per permettere a chi fa lo script di scrivere a scelta:
Codice: [Seleziona]
DS := CreateDatasetByQuery('zeos', 'firebirdd2.5', 192.168.0.23, 'PROVE.FDB', 'SYSDBA', 'masterkey', 'select * from utenti');

oppure

Codice: [Seleziona]
DS := CreateDatasetByQuery('IbConnection', '', 192.168.0.23, 'PROVE.FDB', 'SYSDBA', 'masterkey', 'select * from utenti');

oppure

Codice: [Seleziona]
DS := CreateDatasetByQuery('altro tipo', 'protocollo', 192.168.0.23, 'PROVE.FDB', 'SYSDBA', 'masterkey', 'select * from utenti');

così da script si sceglie anche l'engine per l'accesso ai dati cambiando 1 o 2 parametri ma il sorgente rimane immutato.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 04, 2013, 03:26:25 pm
Nell'ultima versione allegata non hai messo la cartella sql, se qualcuno vuole provare fatica. Inoltre pensavo, sarebbe cosa buona e giusta integrare fin da subito un parser matematico nativo, se non sbaglio microgeos2000 tempo fa ne aveva postato uno suo. Se lui fosse daccordo potremmo inserirlo subito. Potrebbe tornare davvero molto comodo...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 07, 2013, 08:48:48 am
pardon, questo m'era sfuggito :P

anche se non sto postando non vuol dire che sto fermo ;) sto facendo prove con apache: è un po' dura ma non sono lontanissimo.
in pratica sono riuscito a compilare un modulo apache e a farlo girare ma non con WebModule. purtroppo in giro per la rete ci sono un sacco di esempi che per una ragione o per l'altra non vanno...
vorrei farlo con il WebModule perchè partirei un paio di gradini più in alto e un paio di gradini, in questo caso, fanno molto :D
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 07, 2013, 06:04:14 pm
Non avevo dubbi che tu fossi produttivo  ;)
Attendo tue notizie
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 14, 2013, 09:12:54 am
Sorgenti
ho preparato un progettino di esempio e l'ho postato su svn
per prelevarlo:
svn checkout http://svn.code.sf.net/p/lazarusiug/liug/trunk/pspage_module

oppure:
svn checkout https://svn.code.sf.net/p/lazarusiug/liug/trunk/pspage_module

Situazione
Attualmente il modulo è stato testato con apache 2.2 sotto linux 64 bit, spero qualcuno abbia possibilità di testarlo anche sotto altre piattaforme.

Per il modulo ho sfruttato WebModule ed il funzionamento è ancora abbastanza basilare, come troverete nel file leggimi.txt per ora risponde ai seguenti url:

Quello che ora mi blocca è che non riesco a compilare il modulo se metto in uses il pascal script. Sembra infatti che il pascal script abbia bisogno di TControls della LCL e, quando fornisco tutte le path, mi da un errore in compilazione (mi viene suggerito di compilare con -fPIC ma già è così...).
Credo sia l'ultimo scoglio e poi si può iniziare a fare delle prove serie.


Leggimi.txt


-----------------------------------------
Quick Start
-----------------------------------------

Per testare il modulo:
1) compilazione (Attualmente non ho ancora individuato tutte le
opzioni di compilazione per cui preferisco compilare da linea di
comando: usare il comando nello script: compile.sh).

2) spegnere il demone/servizio apache (nel mio sistema bisogna
eseguire il comando contenuto in: stop.sh)

3) fare il deploy, ovvero copiare il modulo apache nella cartella dei
suoi moduli (vedi script: deploy.sh)

4) Assicurarsi che apache sia configurato correttamente (vedi
"Configurazione apache")

5) far ripartire il demone/servizio di apache (start.sh)

6) aprire un browser e provare i seguenti indirizzi:
- 127.0.0.1
- http://127.0.0.1/prova/index.pspage
- http://127.0.0.1/pspage/index.pspage
- http://127.0.0.1/pspage/paginainesistente



-----------------------------------------
Configurazione apache
-----------------------------------------
# abilita unicode e, con esso, i caratteri accentati
AddDefaultCharset UTF-8

# caricamento modulo pspage_module
LoadModule pspage_module modules/pspage_module.so
<Location /pspage>
SetHandler pspage_module
</Location>

# tutti i file con estensione .pspage al modulo
AddHandler pspage_module pspage
AddType application/x-httpd-pspage .pspage


-----------------------------------------
Ambienti testati
-----------------------------------------

nomorelogic
Linux Mint 13 - 64 bit
Lazarus 1.0.4
FPC 2.6.0
apache 2.2

-----------------------------------------
Riferimenti ambiente apache
-----------------------------------------

Apache 2.2 / Linux Mint 13
Document Root  : /var/www
Configurazione : /etc/apache2/apache2.conf
Moduli         : /etc/apache2/modules






Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 14, 2013, 12:00:47 pm
ho rimediato ad una dimenticanza nel commit originario

Ora nella cartella del progetto c'è anche una sottocartella www che rappresenta il contenuto del document root.
Bisogna quindi copiare il contenuto di www nella document root del vostro apache.
Nel mio sistema (e nella maggior parte del linux) è: /var/www
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 15, 2013, 09:18:30 am
sono riuscito a compilare e a far funzionare pascal script!

riorganizzo il codice e posto su svn
:)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 15, 2013, 01:52:04 pm
allora provo poi la versione nuova :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 17, 2013, 10:31:25 am
ok la versione di prova funziona
per chi volesse: fare il checkout e provare con apache è alla portata (solamente script01)

i DB non sono ancora implementati in quanto meritano un po' di design prima di fare del codice
in poche parole si può ripartire con un po' di teoria ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 19, 2013, 12:12:17 pm
prometto che nei prox giorni lo provo. cosa dici?! e' arrivato il momento di coinvolgere anche la comunita' internazionale oppure no?! aspettiamo che siano operativi i db?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 19, 2013, 02:58:33 pm
Ho provato a fare come dici nel file leggimi.txt ma mi sa che è incompleto. Dove dobbiamo copiare gli script perchè li legga?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 19, 2013, 03:17:32 pm
Ho provato a fare come dici nel file leggimi.txt ma mi sa che è incompleto. Dove dobbiamo copiare gli script perchè li legga?!

se usi linux gli script vanno sotto: /var/www/pspage
se usi apache sotto windows onestamente non so :)

hai modificato anche apache2.conf?


Edit:
su che piattaforma hai compilato?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 19, 2013, 03:22:00 pm
prometto che nei prox giorni lo provo. cosa dici?! e' arrivato il momento di coinvolgere anche la comunita' internazionale oppure no?! aspettiamo che siano operativi i db?!

direi di aspettare anche il funzionamento dei db e 2/3 script carucci e funzionanti
poi bisognerebbe rivedere il codice per evitare che ci siano metodi e/o variabili e/o altro in italiano
poi un po' di documentazione: una specie di white paper con le indicazioni di quello che si vuole fare e, last but not least, il leggimi.txt dovrebbe diventare readme.txt con le indicazioni sia per win che per linux

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 19, 2013, 03:33:34 pm
Ho provato a fare come dici nel file leggimi.txt ma mi sa che è incompleto. Dove dobbiamo copiare gli script perchè li legga?!

se usi linux gli script vanno sotto: /var/www/pspage
se usi apache sotto windows onestamente non so :)

hai modificato anche apache2.conf?

Edit:
su che piattaforma hai compilato?

Fatto, funziona lo script01

http://127.0.0.1/pspage/script01.pspage

Ho compilato su xubuntu a 32 bit con apache (test positivo)

Risultato:

Testing lpitr "framework"

Ora e Data (const): sono le ore #$DATA$# Ora e Data (uses DateUtils): sono le ore 15:32:52 del 19 Feb 2013
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 19, 2013, 03:38:19 pm
grande :)

ci vorrebbero dei test anche su win
io credo di poter provare a 32 bit, appena fatto faccio sapere
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 19, 2013, 03:45:53 pm
Perfetto :)

Tra le cose che hai elencato direi che sarebbe bello avere fin da subito la possibilità delle librerie crittografiche. Ad esempio DCPcrypt è già esistente, sarebbe davvero parecchio innovativo averlo tra le nostre opzioni.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 19, 2013, 05:10:37 pm
Tra le cose che hai elencato direi che sarebbe bello avere fin da subito la possibilità delle librerie crittografiche. Ad esempio DCPcrypt è già esistente, sarebbe davvero parecchio innovativo averlo tra le nostre opzioni.

intendi dare la possibilità di salvare sui vari db dei dati cifrati?

questa e le altre cose che ci verranno in mente saranno da mettere nella white paper (e così Stilgard non ci critica troppo ;) )
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Febbraio 19, 2013, 09:47:39 pm
hahahaha
Ma dai. Non critico. Prendo solo per i fondelli ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Febbraio 19, 2013, 10:21:28 pm
PS:
A parte il comando sudo nello shell script ...(mi fa venire i sudori freddi).
Per utonti Windows?

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 20, 2013, 12:41:15 pm
A parte il comando sudo nello shell script ...(mi fa venire i sudori freddi).

beh io sono piuttosto pigro e per compilare, stoppare apache, fare il deploy e poi start... ci vogliono troppe energie... :D
in pratica in una shell lancio:
./compile && ./stop && ./deploy (così dopo averlo scritto 1 volta: tasto freccia su + invio)
se tutto va bene in un colpo solo faccio tutto, se qualcosa va male la sequenza si ferma dov'è avvenuto l'errore


Per utonti Windows?

dovrebbe funzionare ugualmente solo che nella vm con win7 non ho più molto spazio...
a breve cmq trovo il modo di provare di sicuro
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Febbraio 20, 2013, 03:19:33 pm
http://sourceforge.net/projects/want/
Conosci questo progetto?
Nascie da ANT di Apache come porting per Delphi.
Magari riesci ad aggiungere i task per apache httpd... Sai mai che ne fai un tool completo per il redeploy automatico. ;)
Per fp, diventerebbe fpant ... a sto punto lo chiamiamo panter , il formicatore pascaliano .... ;)
Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Febbraio 20, 2013, 03:23:27 pm
Già fatto il porting ... http://sourceforge.net/p/want/code/803/tree/branches/fpc_port/
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 20, 2013, 04:00:06 pm
beh almeno mettiamo in piedi un progetto decente prima ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 23, 2013, 01:24:09 pm
provato windows xp: ci siamo!

il codice è su subversion
vi anticipo il setup:

-----------------------------------------
Note Installazione Windows
-----------------------------------------

Segue un breve guida per installare un ambiente di sviluppo con:
- Apache 2.2.21
- PHP
- MySql
- Tomcat

Si tratta della soluzione che ho adottato io, non è necessariamente l'unica.
Ho provato questa installazione per i seguenti motivi:
- ho scelto xampp semplicemente perchè ho visto che da la possibilità di usare
  i servizi (apache, php, mysql) senza la necessità di installarli;
  per questo motivo, più ambienti di sviluppo web (esatto: più di una versione
  apache, più di un MySql, ecc) possono coesistere nello stesso pc senza dover
  fare operazioni di installazione/disinstallazione; è la soluzione per me
  ideale in un ambiente di sviluppo
- ho scelto la versione xampp 1.1.7 perchè è l'ultima con Apache 2.2.x.
  Il web server con il quale ho iniziato a fare le prove di sviluppo ed il
  WebModule che uso con lazarus fanno tutti e 2 riferimento alla 2.2.x di Apache.
  Quando il tutto girerà con la 2.2.x passerò a testare la 2.4.x di apache. Se
  qualcuno vuol provare direttamente la 2.4.x e postare le modifiche al progetto
  è il benvenuto :)
- c'è anche MySql: dovevo comunque installarlo perchè è sicuramente incluso tra
  i db che dovranno funzionare con pspage
- c'è anche PHP: magari può essermi utile per prendere spunti e convertire script
  funzionanti
- c'è anche Tomcat: è moooooooolto presto ma intanto... c'è


-----------------------------------------
Installazione
-----------------------------------------

1) scaricare xampp 1.1.7
   http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.7.7/xampp-win32-1.7.7-VC9.7z/download
   
2) decompressione in (per ora non cambiate cartella, alcuni servizi non partirebbero)
   C:\xampp
     
3) test installazione
   lanciare XAMPP Control Panel: C:\xampp\xampp-control.exe   
   cliccare su [Start] relativo ad apache
   aprire un browser su: http://127.0.0.1/
   sul pannello a sinistra, cliccare su: stato, phpinfo(), perlinfo()
   in questo modo potete verificare il funzionamento di xampp in generale
   per testare apache, aprire il browser su: http://127.0.0.1/index.html

4) scaricare i sorgenti di pspage da https://svn.code.sf.net/p/lazarusiug/liug
   nella root dei sorgenti, modificate: CMD-COMPILE.BAT
   ed impostate le variabili per farle puntare alle path della vostra
   installazione di lazarus/freepascal (FPC = fullpath del compilatore)
   SET LAZARUS=C:\development\lazarus
   SET FPC=C:\development\fpc\bin\i386-win32\fpc.exe
   SET LPKS=C:\development\lazarus\components
   
5) provate a compilare con lo script, ci saranno diversi warning dovuti a
   pascalscript ma se la compilazione va a buon fine ci siamo.
   
6) con XAMPP control panel, spegnete apache e tutti gli altri servizi
   modificate il file: C:\xampp\apache\conf\httpd.conf
   aggiungendo le righe sotto:
   # abilita unicode e, con esso, i caratteri accentati
   AddDefaultCharset UTF-8

   # caricamento modulo pspage_module
   LoadModule pspage_module modules/pspage_module.so
   <Location /pspage>
   SetHandler pspage_module
   </Location>

   # tutti i file con estensione .pspage al modulo
   AddHandler pspage_module pspage
   AddType application/x-httpd-pspage .pspage

7) Copiate pspage_module.so (ottenuto con la compilazione al punto 5) nella
   cartella dei moduli di apache, nel nostro caso in:
   C:\xampp\apache\modules
   
8 ) creare la cartella "pspage" nella document root di apache:
   C:\xampp\htdocs\pspage

   copiare dall'ambiente di sviluppo di pspage:
   .\www\pspage\script01.pspage
   in
   C:\xampp\htdocs\pspage\script01.pspage
     

9 ) Lanciare XAMPP Control Panel e lanciare apache

10) Provate il seguente indirizzo:
   http://127.0.0.1/pspage/script01.pspage
   se visualizzate: Testing pspage "framework"
   FUNZIONA!
   
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 23, 2013, 06:21:54 pm
Scusa nomorelogic, quello che hai scritto serve solo per windows?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 23, 2013, 07:19:33 pm
si, serve per usare il modulo apache sotto windows
per linux x64 ci sto sviluppando io, per linux x32 se non ho capito male hai compilato tu vero?

e i sorgenti finora sono unici :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 23, 2013, 07:27:46 pm
si, serve per usare il modulo apache sotto windows
per linux x64 ci sto sviluppando io, per linux x32 se non ho capito male hai compilato tu vero?

e i sorgenti finora sono unici :)
Si per linux x32 me ne ero accorto :)

Volevo solo sapere se avevi già implementto i db?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 23, 2013, 08:12:56 pm
Volevo solo sapere se avevi già implementto i db?!

ci sto lavorando, li sto implementando come plugin...
in questo modo prendo 2 piccioni con una fava :D

in poche parole vorrei fare in modo che un certo plugin viene caricato in memoria solo se in "uses" sullo script 8)
e l'uso dei database ci cascano a fagiolo come problematica

non credo di essere lontano
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 24, 2013, 11:21:10 am
gran figata. complimenti  :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 24, 2013, 12:08:37 pm
si, mi ritarda un po' nella partenza ma credo che alla fine la cosa sia molto più interessante.

a proposito, ho scoperto da poco SqlConnector (Sqldb) ed ho qualche problema
ho fatto un altro post nella sezione database.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 24, 2013, 03:17:39 pm
si, mi ritarda un po' nella partenza ma credo che alla fine la cosa sia molto più interessante.

a proposito, ho scoperto da poco SqlConnector (Sqldb) ed ho qualche problema
ho fatto un altro post nella sezione database.
Non ho capito, ma non doveva andare avanti il discorso con zeos?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 24, 2013, 03:27:32 pm
Tra l'altro, una cosa che darebbe un alto valore aggiunto al progetto è l'implementazione di lazreport. Perchè da quanto ne so è davvero difficile generare dei report per il web. Io ho fatto una cosa in raudus che usa lazreport, quindi direi che si può implementare tranquillamente anche qui.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 24, 2013, 03:37:55 pm
Non ho capito, ma non doveva andare avanti il discorso con zeos?!

beh io direi tutti e due :)
visto che zeos è un package aggiuntivo (e onestamente ancora non mi è chiaro se funziona su tutte le piattaforme) sono ripartito da sqldb. cmq tutti e 2 saranno plugin allo stesso livello quindi chi scrive gli script deciderà quale motore db usare.

Comunque sia, negli script non si useranno i componenti zeos o sqldb ma metodi del plugin che faranno da wrapper nell'uso di questi componenti. In questo modo chi scrive script non si dovrà preoccupare di liberare le risorse allocate, non si istanzierà nulla insomma e non ci sarà il problema di dover liberare nulla: tutto gestito dal plugin.

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 24, 2013, 03:40:25 pm
Non ho capito, ma non doveva andare avanti il discorso con zeos?!

beh io direi tutti e due :)
visto che zeos è un package aggiuntivo (e onestamente ancora non mi è chiaro se funziona su tutte le piattaforme) sono ripartito da sqldb. cmq tutti e 2 saranno plugin allo stesso livello quindi chi scrive gli script deciderà quale motore db usare.

Comunque sia, negli script non si useranno i componenti zeos o sqldb ma metodi del plugin che faranno da wrapper nell'uso di questi componenti. In questo modo chi scrive script non si dovrà preoccupare di liberare le risorse allocate, non si istanzierà nulla insomma e non ci sarà il problema di dover liberare nulla: tutto gestito dal plugin.
Si quello lo avevo intuito, ma pensavo optassi solo per zeos
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 24, 2013, 03:45:41 pm
Si quello lo avevo intuito, ma pensavo optassi solo per zeos

si ma se poi su una piattaforma da problemi...
credo che partire con 2 db engine sia più sicuro
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 24, 2013, 04:09:05 pm
Si quello lo avevo intuito, ma pensavo optassi solo per zeos

si ma se poi su una piattaforma da problemi...
credo che partire con 2 db engine sia più sicuro
Si in effetti. Hai letto il mio post su lazreport da implementare?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 24, 2013, 05:09:24 pm
Hai letto il mio post su lazreport da implementare?!

avevo letto ed anche risposto solo che non ho capito perchè ma la risposta s'è persa e non me n'ero neanche accorto.

comunque dicevo che sono d'accordissimo con il prevedere qualcosa per fare dei report. io lazreport non lo conosco bene ma se puoi darmi una mano in questo senso possiamo operare su 2 fronti: io potrei preparare un plugin per i report e tu il report vero e proprio.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Febbraio 24, 2013, 05:37:37 pm
Hai letto il mio post su lazreport da implementare?!

avevo letto ed anche risposto solo che non ho capito perchè ma la risposta s'è persa e non me n'ero neanche accorto.

comunque dicevo che sono d'accordissimo con il prevedere qualcosa per fare dei report. io lazreport non lo conosco bene ma se puoi darmi una mano in questo senso possiamo operare su 2 fronti: io potrei preparare un plugin per i report e tu il report vero e proprio.

Direi che si può fare. Tu fai la tua parte e poi mi dici esattamente cosa deve fare la mia
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Febbraio 25, 2013, 10:40:26 am
Direi che si può fare. Tu fai la tua parte e poi mi dici esattamente cosa deve fare la mia

ok mettiamo in coda anche i report ;)
spero di finire i db in settimana...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 01, 2013, 03:56:09 pm
Ho avuto qualche difficoltà, però ho trovato il modo di uscire dalla selva oscura: i db ci sono anche se i plugin non sono ancora come servono...
Sicuramente per ottimizzare al massimo le cose ci sarà bisogno d'aiuto, ma qualcosa di interessante da provare a breve riuscirò a postarlo.

Intanto, c'è bisogno di implementare un log.
Apache ne ha uno suo, non lo vorrei però usare per il debug: ne avete uno affidabilissimo e leggerissimo?

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 01, 2013, 04:27:12 pm
Log4fp

edit
Codice: [Seleziona]
https://svn.code.sf.net/p/lazarusiug/liug/trunk/PBatis/src/logging/Log4fp.pas

Compila per FP ;)

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 01, 2013, 05:52:54 pm
è un porting di log4delphi immagino
i sorgenti sono aggiornati?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 01, 2013, 05:59:52 pm
L'ho modificato io da poco ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 01, 2013, 07:24:54 pm
Stilgar sei immischiato ovunque :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 02, 2013, 03:40:36 pm
Quando questo strumento sarà operativo ho già in mente un bel progetto da tirare su. Dobbiamo però trovare qualcuno che si occupi dell'implementazione e/o di jquery (che secondo me andrebbe assolutamente implementata in quanto è famosissima) e/o di ExtJS.

Inoltre per partire alla grande secondo me bisognerebbe dare l'accesso ad un db non relazionale. Tipo Cassandra questo perchè iniziano a ritagliarsi (giustamente) la loro fetta di mercato.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 02, 2013, 09:45:37 pm
Per JQuery posso aiutare io. Ci ho smanettato qualche cosa ;) Poi dipende dal livello di "customizzazione" che volete.
Cassandra non è il DB di sfacebuk?
Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 02, 2013, 09:58:16 pm
Per JQuery posso aiutare io. Ci ho smanettato qualche cosa ;) Poi dipende dal livello di "customizzazione" che volete.
Cassandra non è il DB di sfacebuk?
Stilgar

Perfetto Stilgar, e io sto preparando una guida per usare extjs con una cgi, poi quando avremo una versione 0.1 di questo progetto allora l'aggiornerò per i nostri loschi piani di conquista del mondo.

Tra l'altro che nome vogliamo dargli!? io suggerisco KORG. Voi?!

EDIT: esatto Cassandra è il DB di sfacebuk
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 03, 2013, 10:31:01 am
Per JQuery posso aiutare io. Ci ho smanettato qualche cosa ;) Poi dipende dal livello di "customizzazione" che volete.
Cassandra non è il DB di sfacebuk?

beh...
allora inizia a organizzarti le idee ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 03, 2013, 10:35:56 am
Perfetto Stilgar, e io sto preparando una guida per usare extjs con una cgi

fantastico, sarà il primo caso ingiro se non ho capito male di un page server che fa usare extjs?


quando avremo una versione 0.1 di questo progetto allora l'aggiornerò per i nostri loschi piani di conquista del mondo.

yeaaaa!
mi ricorda "fantaman" :D


Tra l'altro che nome vogliamo dargli!? io suggerisco KORG. Voi?!

KORG vuol dire?

io nel codice (dovendo costruire delle classi) ho iniziato con PsPage (Pascal Server PAGEs) ma siamo ancora all'inizio: un serarch/replace non sconvolge l'albero dei sorgenti ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 03, 2013, 10:44:23 am
tra l'altro...
abbiamo bisogno di un database che ci caratterizzi, servirà come punto di riferimento sia per lo sviluppo che per eventuali demo.

questo database:

xinyinam, avevi detto di avere un progetto in mente, è una cosa privata o è utilizzabile in un progetto open soruce?

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 03, 2013, 03:40:20 pm
ho postato le ultime fix ed aggiornato la documentazione in doc

attualmente:
- fornito un command line per lavorare agevolmente senza apache (pspagecmdline)
- testato con apache 2.2.x sia sotto linux x64 che sotto win x32
- utilizzo dbrms tramite plugin che usa sqldb
- nel plugind con sqldb, implementato solamente l'uso di firebird

per il prossimo step avrei voluto fare un esempio di login

a login funzionante, a scelta:
- implementazione di altri db (a chi diamo la precedenza? io direi mysql)
- nuovo plugin per accesso ai db tramite zeos
- reportistica
- template (fpc ha un sistema di template molto interessante, vorrei farlo usare negli script, a occhio è una vera figata)

quando qualcuno può provare altre cose (extjs, jquery, ecc...) possiamo coordinarci, io intanto procedo così se non emergono altre priorità.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 03, 2013, 03:53:13 pm
nomore direi che stai facendo un lavoro egregio.  bravo
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 03, 2013, 10:21:40 pm

KORG vuol dire?

io nel codice (dovendo costruire delle classi) ho iniziato con PsPage (Pascal Server PAGEs) ma siamo ancora all'inizio: un serarch/replace non sconvolge l'albero dei sorgenti ;)

Guarda era un personaggio marginale relegato nel cyberspazio del fumetto Martin Mystere. Lascia perdere è molto più sensato il nome che hai pensato tu. Ero stanco quando l'ho proposto :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 03, 2013, 11:11:35 pm
Guarda era un personaggio marginale relegato nel cyberspazio del fumetto Martin Mystere

ah ecco, perchè non l'avevo capito, io ho letto solo dylan dog e natan never ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 03, 2013, 11:53:06 pm
nomore direi che stai facendo un lavoro egregio.  bravo

speriamo bene...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 04, 2013, 09:52:59 am
Possiamo anche mettere nomi a capocchia per ogni rilascio ... ma è un problema secondario ....
(Ogni Rilascio ha un tag SVN che riporta il nome del rilascio a cui appartiene la versione).

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 04, 2013, 03:14:22 pm
alla ubuntu/linuxmint?
romanticoni... :D
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 04, 2013, 03:19:00 pm
Opterei per un nome unico con numeri di versione. E' più semplice.

Dobbiamo poi trovare l'animaletto come logo
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 04, 2013, 03:22:07 pm
Logo ... lo go .. (ok, pessima battuta in padovano ;) )
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 04, 2013, 04:36:49 pm
un ghepardo con il casco da astronauta per andare nel cyberspazio? :D
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 04, 2013, 04:39:08 pm
un ghepardo con la piuma d apache in testa?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 04, 2013, 04:39:37 pm
O un ghepardo vestito da spiderman sarebbe più adeguato ...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 04, 2013, 05:01:33 pm
un ghepardo con la piuma d apache in testa?!

ok è abbastanza folle: +1
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 04, 2013, 05:03:06 pm
O un ghepardo vestito da spiderman sarebbe più adeguato ...

spiderman che c'entra? non è OT?
(invece il ghepardo con la piuma.... hahahahahaha)

IDEA!
il ghepardo che fa il surf sulla piuma di apache!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 04, 2013, 05:06:21 pm
Nomore ... web=raganatela ... il ghepardo che corre sulla raganatela ... mi sembrava evocativo.
Altrimenti ti leghi mani piedi e pisel... ad apache ;)

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 04, 2013, 05:14:11 pm
O un ghepardo vestito da spiderman sarebbe più adeguato ...
hahahahaha
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 04, 2013, 05:16:02 pm
Nomore ... web=raganatela ... il ghepardo che corre sulla raganatela ... mi sembrava evocativo.

è che io sono antico, per me web=tela, quella di Penelope
con un ghepardo di legno (alla Ulisse) dite che qualcuno ci prende per scemi? :P
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 04, 2013, 05:19:41 pm
E chi se ne frega ;) Mi piace l'idea :D
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 04, 2013, 05:29:50 pm
E chi se ne frega ;) Mi piace l'idea :D

ma che il ghepardo di legno? :O
lo mettiamo alle votazioni allora :D
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 04, 2013, 05:40:42 pm
hihi.
Trovo un sacco di significati al "legno" ;)
1) Non ti piace? Fattelo di legno.
2) E' una grande troiata...
3) ....
Continuo?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 05, 2013, 03:49:29 pm
mi sa tanto che mi sono procurato altro lavoro...
vorrei rendere visibile all'interno degli script in pascal le istanze Request e (forse) Response.
Response alla fine non è un grosso problema: le stringhe sono già passate per riferimento e la copia in Response non è dispendiosa.
Però per Request il problema è diverso: non si tratta solo di stringhe. Ci sarebbe modo di aggirare il problema con un paio di funzioni ma così dovrei copiare dei valori in memoria; se riesco a far usare l'istanza già creata da dentro lo script si otterrebbe un risparmio di tempo e risorse non indifferente...

Vi tengo aggiornati...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 05, 2013, 03:51:56 pm
Usa un "wrapper" che funga da facade.
Le request non sarà una "classe usabile" ma solo un'interfaccia.
L'implementaziona andrà a prendere i dati dove sono già presenti. Senza nuove "move" e/o "copie" in memoria.

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 05, 2013, 04:20:00 pm
nel senso di usare class method (proc e func) evitando di istanziare (tipo class helper insomma ma senza una istanza da helpare)?
E' una delle ipotesi, anzi, non è affatto male.
Ha anche il pro di poterci implementare anche altri class method che non hanno a che fare con la request ma che servono comunque a interfacciare gli script con il ns modulo.

Come alternativa ho anche la possibilità di registrare l'istanza Request nel motore di pascal script che, a cose fatte, mi solleverebbe dal tenere allineati i sorgenti del wrapper...
Però così non so che succede se negli script ci vengono messe delle istruzioni dannose che operano direttamente nella Request.
Secondo voi si possono far danni con l'oggetto Request?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 05, 2013, 04:23:50 pm
Ma la request è fondamentalmente una serie di get ... che senso ha cambiare le cose di una request?
Solo quando la popoli (visione framework), ma quando la usi (pagina) non ha proprio senso ;)
Con un'interfaccia sei a cavallo.
Solo get a manetta, l'implementazione ha i set, l'utilizzatore ha solo l'interfaccia in mano ;)

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 05, 2013, 04:30:24 pm
Ma la request è fondamentalmente una serie di get ... che senso ha cambiare le cose di una request?

non lo so che senso ha, la domanda che mi faccio (da buon antenato di San Tommaso) è: è possibile? ;)


Edit:
cmq con una classe che fa da wrapper è più facile anche controllare
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 05, 2013, 04:35:53 pm
Se esponi solo le get e nasconti le set, non solo ha evitato casini, ma ti semplifichi pure la vita.
Se vogliono avere la possibità di modificare la request ... al massimo configuri un "listener" che in fase di "popolamento della request" possa essere interpellato per avere della "customizzazioni" ... ma in seconda battuta. Ora pensa a farlo "robusto" ;)

Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 09, 2013, 11:54:14 am
piano piano ma si procede, purtroppo il lavoro non mi lascia troppo tempo libero
comunque:

- ho reso fruibile dagli script anche i dati dell'oggetto request; non ho passato il riferimento al vero oggetto ma ho fatto un wrapper che restituisce il contenuto di alcuni campi (fidarsi è bene ma no fidarsi è meglio ;) )
- ho fatto uno script per il login (in realtà gli script sono 2: script02_login.pas e script02_check.pas; per testarlo lanciate dal browser script02_login.pas e, tramite un submit, verrà richiamato l'altro)
- ho incluso i nuovi script in svn
- ho incluso anche l'sql per la creazione del database che serve per il test del login

io procedo, ma si potrebbe iniziare a pensare ad una micro applicazione per portare avanti i lavori
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 09, 2013, 03:01:37 pm
Bene, solo una cosa. Che intendi con:

"ma si potrebbe iniziare a pensare ad una micro applicazione per portare avanti i lavori"
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 09, 2013, 03:18:06 pm
Una demo ... immagino....
Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 09, 2013, 04:22:08 pm
si una demo

non siamo di sicuro ad un punto fermo ma mi rendo conto che è il momento di trovarsi in mezzo ai problemi reali di sviluppo per decidere come/cosa implementare, ad esempio:

sto dando un'occhiata a html5 e jquery, sono alla portata con questo sistema e credo che lo sia anche extjs però bisogna inventarsi un'applicazioncina (fish fact?)

tra l'altro ho visto che programmare per il web col pascal è uno spettacolo :)
se guardate lo script02_check.pas vi renderete conto com'è logico e semplice fare ad esempio delle nested procedure per semplificare il codice. si potrebbe ipotizzare un unico script per una piccola applicazione. si potrebbe anche ipotizzare un unico script anche per una maxi applicazione se si riesce a metter su un meccanismo di "include" per tenere basso il nr di righe del file principale.

ovviamente questo è sempre lo strato sottostante, quando questo funzionerà bisognerà far generare i .pas dai .pspage che saranno scritti in xml

le possibilità sono veramente molte


Edit:
ci sarebbe anche bisogno di un editor non tanto per il syntax highlight quanto per l'autocompletamento
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 09, 2013, 04:37:22 pm
Allora, per la demo, direi la solita e vetusta gestione degli utenti.
Ha la sua complessità ma non è esagerata.
1) CRUD Utenti.
2) ACL Utenti.
Insomma nulla di spaventoso. (Sempre che tu non abbia già in mente come fare queste cose "embedded" nel sistema.

EDIT:
L'editor può venire in un secondo momento ;) Non credi :p
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 09, 2013, 07:25:10 pm
Allora, per la demo, direi la solita e vetusta gestione degli utenti.
Ha la sua complessità ma non è esagerata.
1) CRUD Utenti.
2) ACL Utenti.
Insomma nulla di spaventoso. (Sempre che tu non abbia già in mente come fare queste cose "embedded" nel sistema.

embedded: non è escluso ma una gestione utenti embedded la vedo analizzabile solo a framework finito
ACL: già solo questo argomento è un mondo a parte, si può comunque fare (con ovvie limitazioni) nell'ottica di gestire qualcosa
quasi quasi sarebbe il caso di prendere spunto da qualcosa di esistente... un SMF (destinato a lazaruspascal.it) riscritto?
ma perchè mi vengono queste idee? e soprattutto, perchè le scrivo?  :o


L'editor può venire in un secondo momento ;) Non credi :p

senza dubbio, ma sarebbe un sacco figo ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 09, 2013, 09:24:31 pm
Nomore, sarebbe meglio che tu mettessi il link al progetto nel primo post di questo 3d. Così chi vuole provarlo non deve scorrersi N pagine alla ricerca.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 10, 2013, 10:57:01 am
fatto
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 10, 2013, 12:26:57 pm
Ciao Nomore, inizio a fare le pulci, in senso costruttivo (almeno l'obiettivo è quello):
Prima cavolatina:
Passare il metodo da
Codice: [Seleziona]
    // write into response
    procedure Out_Write(Data: string); 
a
Codice: [Seleziona]
  function Out_Write(const data: string) : TPsPage;

In questo modo ottieni:
Codice: [Seleziona]
   Out_Write('<td width="78">Username</td>').Out_Write('<td width="6">:</td>').Out_Write('<td width="294"><input name="myusername" type="text" id="myusername"></td>');
 
Altra cosa ... Out_Write ... carino ma pensavo ... avere solo la classe "out" e i vari metodi di "print" o "write"?
Codice: [Seleziona]
  TPrintStream = class(THandleStream)
  private
    fAutoFlush: boolean;
    fTrouble:   boolean;
    fClosing:   boolean;
    procedure Write(const buf: array of char); reintroduce; overload;
    procedure Write(const s: string); reintroduce; overload;
  private
    procedure ensureOpen(); overload; virtual;
    procedure newLine(); overload; virtual;
  protected
    procedure setError(); overload; virtual;
  public
    constructor Create(aHandle: THandle; const autoFlush: boolean = False); overload;
    function checkError(): boolean; overload; virtual;
    procedure Close(); overload;
    procedure flush(); overload;
    function print(const b: boolean): TPrintStream; overload; virtual;
    function print(const c: char): TPrintStream; overload; virtual;
    function print(const d: double): TPrintStream; overload; virtual;
    function print(const f: single): TPrintStream; overload; virtual;
    function print(const i: integer): TPrintStream; overload; virtual;
    function print(const l: int64): TPrintStream; overload; virtual;
    function print(const obj: Pointer): TPrintStream; overload; virtual;
    function print(const s: array of char): TPrintStream; overload; virtual;
    function print(const s: string): TPrintStream; overload; virtual;
    function print(const x: WideString): TPrintStream; overload; virtual;
    function println(): TPrintStream; overload; virtual;
    function println(const x: array of char): TPrintStream; overload; virtual;
    function println(const x: boolean): TPrintStream; overload; virtual;
    function println(const x: char): TPrintStream; overload; virtual;
    function println(const x: double): TPrintStream; overload; virtual;
    function println(const x: int64): TPrintStream; overload; virtual;
    function println(const x: integer): TPrintStream; overload; virtual;
    function println(const x: Pointer): TPrintStream; overload; virtual;
    function println(const x: single): TPrintStream; overload; virtual;
    function println(const x: string): TPrintStream; overload; virtual;
    function println(const x: WideString): TPrintStream; overload; virtual;
  end;
Codice: [Seleziona]

{ TPrintStream }

function TPrintStream.checkError: boolean;
begin
  Result := fTrouble;
end;

procedure TPrintStream.Close;
begin
  if not fClosing then
  begin
    fClosing := True;
    {$IFDEF MSWINDOWS}
    CloseHandle(Handle);
    {$ENDIF}
  end;
end;

constructor TPrintStream.Create(aHandle: THandle; const autoFlush: boolean);
begin
  inherited Create(aHandle);
  fAutoFlush := autoFlush;
end;

procedure TPrintStream.ensureOpen;
begin
  assert(Handle <> 0);
end;

procedure TPrintStream.flush;
begin
  {$IFDEF MSWINDOWS}
  Windows.FlushFileBuffers(Handle);
  {$ENDIF}
end;

procedure TPrintStream.newLine;
begin
  Write(system.LineEnding);
  if fAutoFlush then
  begin
    flush;
  end;
end;

function TPrintStream.print(const i: integer): TPrintStream;
begin
  Write(Format('%d', [i]));
  Result := self;
end;

function TPrintStream.print(const f: single): TPrintStream;
begin
  Write(Format('%g', [f]));
  Result := self;
end;

function TPrintStream.print(const b: boolean): TPrintStream;
begin
  Write(BoolToStr(b, True));
  Result := self;
end;

function TPrintStream.print(const c: char): TPrintStream;
begin
  Write(C);
  Result := self;
end;

function TPrintStream.print(const d: double): TPrintStream;
begin
  Result := print(Format('%g', [d]));
end;

function TPrintStream.print(const obj: Pointer): TPrintStream;
begin
  Write(Format('%f', [obj]));
  Result := self;
end;

function TPrintStream.print(const s: string): TPrintStream;
begin
  Write(s);
  Result := self;
end;

function TPrintStream.print(const s: array of char): TPrintStream;
begin
  Result := print(string(s));
end;

function TPrintStream.println(const x: integer): TPrintStream;
begin
  print(x);
  newLine;
  Result := self;
end;

function TPrintStream.println(const x: single): TPrintStream;
begin
  print(x);
  newLine;
  Result := self;
end;

function TPrintStream.println(const x: double): TPrintStream;
begin
  print(x);
  newLine;
  Result := self;
end;

function TPrintStream.println: TPrintStream;
begin
  newLine;
  Result := self;
end;

function TPrintStream.println(const x: boolean): TPrintStream;
begin
  print(x);
  newLine;
  Result := self;
end;

function TPrintStream.println(const x: char): TPrintStream;
begin
  print(x);
  newLine;
  Result := self;
end;

function TPrintStream.print(const l: int64): TPrintStream;
begin
  print(l);
  newLine;
  Result := self;
end;

function TPrintStream.println(const x: Pointer): TPrintStream;
begin
  print(x);
  newLine;
  Result := self;
end;

function TPrintStream.println(const x: string): TPrintStream;
begin
  print(x);
  newLine;
  Result := self;
end;

function TPrintStream.println(const x: array of char): TPrintStream;
begin
  print(x);
  newLine;
  Result := self;
end;

function TPrintStream.println(const x: int64): TPrintStream;
begin
  print(x);
  newLine;
  Result := self;
end;

procedure TPrintStream.setError;
begin
  fTrouble := True;
end;

procedure TPrintStream.Write(const buf: array of char);
begin
  ensureOpen;
  inherited Write(buf[0], length(buf));
end;

procedure TPrintStream.Write(const s: string);
begin
  ensureOpen;
  inherited Write(s[1], Length(S));
end;

function TPrintStream.print(const x: WideString): TPrintStream;
begin
  Result := print(WideCharToString(PWideChar(x)));
end;

function TPrintStream.println(const x: WideString): TPrintStream;
begin
  print(x);
  newLine;
  Result := self;
end;
Questo approccio ti da anche la possibilità di passare "tipi" non stringa.
Codice: [Seleziona]
   out.print('<td width="78">Username</td>').print('<td width="6">:</td>').print('<td width="294"><input name="myusername" type="text" id="myusername"></td>').println();
;)
Tanto per fare il "guastafeste" :p
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 10, 2013, 12:34:05 pm
Ops ... mettilo come memory stream ... non handle ... ti ho copiato la classe che serve per scrivere sui file :(
Puoi adattarla per scrivere in memoria ...
La puoi ribatezzare TMemoryPrintStream ... così eviti di usare un TStringList come buffer interno ;)
Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 10, 2013, 03:35:43 pm
Altra cosa ... Out_Write ... carino ma pensavo ... avere solo la classe "out" e i vari metodi di "print" o "write"?

questa è un'ottima idea :)
però credo di continuare ad utilizzare la TStrings in quanto l'oggetto response del web module, indovina un po', è una TStringList...
alla fine della composizione passo l'intera stringa per riferimento: molto veloce

stavo pensando a qualcosa tipo:
Codice: [Seleziona]
TPrintSystem = class
public
   function print(s: string): TPrintSystem; // con i vari overload

  // forse anche delle cose tipo
  function br: TPrintSystem; // inserisce '<br>'
end;

TPsPage = class
public
   property Out: TPrintSystem read FOut write FOut;
end;


così si può fare:
Codice: [Seleziona]
   Out.print('Welcome ...').br.print('User name:')

non so quanto sarà utile nei tag <psp:....> però, visto che si potrà scrivere in tutti e 2 i modi...
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 10, 2013, 04:28:05 pm
hahaha.
Occhio che se inizi a mettere pezzi di html (cfr BR) rischi di mettere tutti i tag ;)
Stilgar
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 10, 2013, 04:34:24 pm
infatti c'era il commento
 ;D
// forse anche delle cose tipo
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 13, 2013, 09:36:20 am
ho preparato altri 2 script (non sono ancora su svn, ma presto li metto):

i presupposti sembrano esserci tutti, manca solo il tempo e le persone per sviluppare a testa bassa :)

credo che ora sistemerò i sorgenti e farò un po' di documentazione in inglese per vedere se c'è qualcuno che può dare una mano
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 13, 2013, 02:26:09 pm
Allora nei prossimi giorni appena i due script saranno su svn li proverò sicuramente per darti un parere  :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 13, 2013, 03:15:24 pm
li ho messi su, per il login su un singolo script puoi guardare:
- script06_login_single.pas

per fare il login via ajax invece:
- script05_login_ajax.pas (form con il login dove, alla pressione di un bottone, si lancia una chiamata ajax a "script05_ajax_check.pas")
- script05_ajax_check.pas (script che elabora la richiesta ajax, in questo caso deve essere fatta con POST)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 13, 2013, 03:25:32 pm
Le dipendenze esterne ... fatto lo snapshot?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 13, 2013, 05:44:08 pm
ancora no :P

m'ero imballato con l'ajax e volevo che a rispondere fosse un programma scritto in pascal script ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 18, 2013, 06:55:55 pm
Ho fatto un piccolo test con la pagina

script02_login.pas

mi compare correttamente la schermata di login, quando invece effettuo il login mi esce:

*** PSPAGE ERROR ***
Compile failed... [Error] (2:17): Unable to register type TDATASETERROREVENT

Cosa ho sbagliato?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 18, 2013, 07:39:08 pm
c'è una riga da commentare nella unit uPSC_DB
devi andare alla riga 891 e commentare l'AddType, tipo:
Codice: [Seleziona]
// cl.addTypeS('TDATASETERROREVENT', 'Procedure ( DATASET : TDATASET; E : TObject' +'; var ACTION : TDATAACTION)');

appena avrò incluso i sorgenti in svn questo problema non ci sarà più :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 18, 2013, 08:57:04 pm
Scusa ma non trovo la unit. In quale cartella si trova?!

c'è una riga da commentare nella unit uPSC_DB
devi andare alla riga 891 e commentare l'AddType, tipo:
Codice: [Seleziona]
// cl.addTypeS('TDATASETERROREVENT', 'Procedure ( DATASET : TDATASET; E : TObject' +'; var ACTION : TDATAACTION)');

appena avrò incluso i sorgenti in svn questo problema non ci sarà più :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 19, 2013, 08:47:33 am
è nei sorgenti di pascal script
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 19, 2013, 03:17:24 pm
ho postato su svn:
- sorgenti pascal script
- cambiato le path in opzioni progetto per la compilazione del command line

attenzione:
- non ho ancora modificato lo script per la compilazione del modulo apache
- verranno cancellati gli script: stop.sh, start.sh, deploy.sh e conf.sh (se li usate e li avete modificati con le vostre impostazioni, fatene una copia!)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 19, 2013, 04:19:03 pm
Scusa perchè verranno cancellati gli script?! Con cosa li hai sostituiti?!
ho postato su svn:
- sorgenti pascal script
- cambiato le path in opzioni progetto per la compilazione del command line

attenzione:
- non ho ancora modificato lo script per la compilazione del modulo apache
- verranno cancellati gli script: stop.sh, start.sh, deploy.sh e conf.sh (se li usate e li avete modificati con le vostre impostazioni, fatene una copia!)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 19, 2013, 05:40:40 pm
li ho cancellati perchè sono basati sulle path della mia distro linux e non so se sia corretto lasciarli su svn.
molto probabilmente anche tu hai dovuto modificarli

se però servono li reintroduco :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 20, 2013, 09:38:05 am
ho postato sul forum ufficiale

http://www.lazarus.freepascal.org/index.php/topic,20309.msg117087.html#msg117087 (http://www.lazarus.freepascal.org/index.php/topic,20309.msg117087.html#msg117087)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 20, 2013, 09:49:48 am
Well Done ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 20, 2013, 03:40:23 pm
Bravo nomore, ora attendiamo.

Per il resto, si anche io ho dovuto modificare i tuoi script, ma almeno si ha qualcosa con cui partire. Io fossi in te li lascerei e specificherei nella guida che devono apportarci delle semplici modifiche.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 20, 2013, 03:42:53 pm
Visto che sono quelli per linux ... magari mettere dei parametrini?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 20, 2013, 03:44:03 pm
ok, ok "parametriamo" ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 22, 2013, 09:23:22 am
script linux reintrodotti e parametrizzati
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Marzo 22, 2013, 09:27:42 am
(y)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Marzo 29, 2013, 07:55:35 pm
sono (quasi) in dirittura d'arrivo con un parser :)
il codice è da rivedere e sistemare, ma da un template come questo
Codice: [Seleziona]
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Sign in &middot; Twitter Bootstrap</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="ciao">
    <!-- Le styles -->
    <link href="../assets/css/bootstrap.css" rel="stylesheet">
    <style type="text/css">
      body {
        padding-top: 40px;
        padding-bottom: 40px;
        background-color: #f5f5f5;
      }

      .form-signin {
        max-width: 300px;
        padding: 19px 29px 29px;
        margin: 0 auto 20px;
        background-color: #fff;
        border: 1px solid #e5e5e5;
        -webkit-border-radius: 5px;
           -moz-border-radius: 5px;
                border-radius: 5px;
        -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
           -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
                box-shadow: 0 1px 2px rgba(0,0,0,.05);
      }
      .form-signin .form-signin-heading,
      .form-signin .checkbox {
        margin-bottom: 10px;
      }
      .form-signin input[type="text"],
      .form-signin input[type="password"] {
        font-size: 16px;
        height: auto;
        margin-bottom: 15px;
        padding: 7px 9px;
      }

    </style>
    <link href="../assets/css/bootstrap-responsive.css" rel="stylesheet">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="../assets/js/html5shiv.js"></script>
    <![endif]-->

    <!-- Fav and touch icons -->
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
      <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
                    <link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">
                                   <link rel="shortcut icon" href="../assets/ico/favicon.png">
  </head>

  <body>

    <div class="container">

      <form class="form-signin">
        <h2 class="form-signin-heading">Please sign in</h2>
        <#ps:var>
        i: integer;
        s: string;
        <#/ps:var>         
        <#ps:code>
           <#ps:var name="sSql" type="string" quotemode="sql" >
           select *
           from tabella
           where         
           <#/ps:var>         
           for i := 0 to WR.ContentFields.Count - 1 do
             begin
                Out_Write('Campo ' + inttostr(i) + ': ' + WR.ContentFields.FieldValue[i]);
             end;
             Out_Write('<br>Frase SQL = <br>' + sSql);
        <#/ps:code>
     
        <input type="text" class="input-block-level" placeholder="Email address">
        <input type="password" class="input-block-level" placeholder="Password">
        <label class="checkbox">
          <input type="checkbox" value="remember-me"> Remember me
        </label>
        <button class="btn btn-large btn-primary" type="submit">Sign in</button>
      </form>

     

    </div> <!-- /container -->

    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="../assets/js/jquery.js"></script>
    <script src="../assets/js/bootstrap-transition.js"></script>
    <script src="../assets/js/bootstrap-alert.js"></script>
    <script src="../assets/js/bootstrap-modal.js"></script>
    <script src="../assets/js/bootstrap-dropdown.js"></script>
    <script src="../assets/js/bootstrap-scrollspy.js"></script>
    <script src="../assets/js/bootstrap-tab.js"></script>
    <script src="../assets/js/bootstrap-tooltip.js"></script>
    <script src="../assets/js/bootstrap-popover.js"></script>
    <script src="../assets/js/bootstrap-button.js"></script>
    <script src="../assets/js/bootstrap-collapse.js"></script>
    <script src="../assets/js/bootstrap-carousel.js"></script>
    <script src="../assets/js/bootstrap-typeahead.js"></script>

  </body>
</html>

notare i 2 modi di dichiarare una variabile con <#ps:var>!!!
il secondo modo, quello per dichiarare la variabile sSql è una figata :P

riesco ad ottenere uno script come sotto:
Codice: [Seleziona]
program foo;
var   
   i: integer;
   s: string;
   
begin

   sSql:=
      'select * ' +
      'from tabella ' +
      'where ' ;


   Out_Write(
      '<!DOCTYPE html>' +
      '<html lang="en">' +
      '<head>' +
      '<meta charset="utf-8">' +
      '<title>Sign in &middot; Twitter Bootstrap</title>' +
      '<meta name="viewport" content="width=device-width, initial-scale=1.0">' +
      '<meta name="description" content="">' +
      '<meta name="author" content="ciao">' +
      '<!-- Le styles -->' +
      '<link href="../assets/css/bootstrap.css" rel="stylesheet">' +
      '<style type="text/css">' +
      'body {' +
      'padding-top: 40px;' +
      'padding-bottom: 40px;' +
      'background-color: #f5f5f5;' +
      '}' +
      '.form-signin {' +
      'max-width: 300px;' +
      'padding: 19px 29px 29px;' +
      'margin: 0 auto 20px;' +
      'background-color: #fff;' +
      'border: 1px solid #e5e5e5;' +
      '-webkit-border-radius: 5px;' +
      '-moz-border-radius: 5px;' +
      'border-radius: 5px;' +
      '-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);' +
      '-moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);' +
      'box-shadow: 0 1px 2px rgba(0,0,0,.05);' +
      '}' +
      '.form-signin .form-signin-heading,' +
      '.form-signin .checkbox {' +
      'margin-bottom: 10px;' +
      '}' +
      '.form-signin input[type="text"],' +
      '.form-signin input[type="password"] {' +
      'font-size: 16px;' +
      'height: auto;' +
      'margin-bottom: 15px;' +
      'padding: 7px 9px;' +
      '}' +
      '</style>' +
      '<link href="../assets/css/bootstrap-responsive.css" rel="stylesheet">' +
      '<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->' +
      '<!--[if lt IE 9]>' +
      '<script src="../assets/js/html5shiv.js"></script>' +
      '<![endif]-->' +
      '<!-- Fav and touch icons -->' +
      '<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">' +
      '<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">' +
      '<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">' +
      '<link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">' +
      '<link rel="shortcut icon" href="../assets/ico/favicon.png">' +
      '</head>' +
      '<body>' +
      '<div class="container">' +
      '<form class="form-signin">' +
      '<h2 class="form-signin-heading">Please sign in</h2>'
   );

   // BEGIN PASCAL CODE
                     
           for i := 0 to WR.ContentFields.Count - 1 do
             begin
                Out_Write('Campo ' + inttostr(i) + ': ' + WR.ContentFields.FieldValue[i]);
             end;
             Out_Write('<br>Frase SQL = <br>' + sSql);
       
   // END PASCAL CODE
   Out_Write(
      '<input type="text" class="input-block-level" placeholder="Email address">' +
      '<input type="password" class="input-block-level" placeholder="Password">' +
      '<label class="checkbox">' +
      '<input type="checkbox" value="remember-me"> Remember me' +
      '</label>' +
      '<button class="btn btn-large btn-primary" type="submit">Sign in</button>' +
      '</form>' +
      '</div> <!-- /container -->' +
      '<!-- Le javascript' +
      '================================================== -->' +
      '<!-- Placed at the end of the document so the pages load faster -->' +
      '<script src="../assets/js/jquery.js"></script>' +
      '<script src="../assets/js/bootstrap-transition.js"></script>' +
      '<script src="../assets/js/bootstrap-alert.js"></script>' +
      '<script src="../assets/js/bootstrap-modal.js"></script>' +
      '<script src="../assets/js/bootstrap-dropdown.js"></script>' +
      '<script src="../assets/js/bootstrap-scrollspy.js"></script>' +
      '<script src="../assets/js/bootstrap-tab.js"></script>' +
      '<script src="../assets/js/bootstrap-tooltip.js"></script>' +
      '<script src="../assets/js/bootstrap-popover.js"></script>' +
      '<script src="../assets/js/bootstrap-button.js"></script>' +
      '<script src="../assets/js/bootstrap-collapse.js"></script>' +
      '<script src="../assets/js/bootstrap-carousel.js"></script>' +
      '<script src="../assets/js/bootstrap-typeahead.js"></script>' +
      '</body>' +
      '</html>'
   );
end.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Marzo 29, 2013, 08:57:01 pm
Sembra davvero promettente  ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 10, 2013, 08:08:26 pm
eccomi di nuovo
ero rimasto intrappolato in un bug del parser...

in poche parole la prima versione in "brutta copia" mi funzionava mentre con la riscrittura in pspage, causa ulteriori modifiche, avevo introdotto un "piccolo" bug; lasciamo stare, tutto è bene quel che finisce bene :)

ho modificato il parser che si trova nei sorgenti di fpc adattandolo per fargli fare un tipo diverso di parsing

purtroppo il tempo è quello che è, ma il progetto va avanti
a breve posto

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Aprile 10, 2013, 08:48:01 pm
;) Non ho ricevuto nessuna notifica da SF ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 11, 2013, 09:19:47 am
posto appena ho dato al codice una parvenza di grazia :P
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Stilgar - Aprile 11, 2013, 09:39:15 am
hahahahahaha ok.
Allora rimango in trepidante attesa ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 11, 2013, 04:04:51 pm
 :D
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 12, 2013, 09:53:56 am
ho postato, spero di non aver dimenticato nulla

novità:

ho introdotto la variabile WR che da la possibilità di usare l'istanta di TRequest proveniente direttamente da apache; è automaticamente dichiarata negli script (vedere l'esempio script07.pas) e, per ora, le proprietà utilizzabili sono limitate (URL e FIELDS) ma ora che ho trovato il modo non è un problema esporre tutte le proprietà necessarie

ho inglobato i sorgenti di pascal script nell'albero delle cartelle (externalsrc) e rimosso la dipendenza dal pacchetto

ho adattato fpTemplate (con tanto di parser) all'uso con PsPage e gli ho dovuto cambiare nome per evitare conflitti col package fcl-web: fpPsPageTemplate; con questo tipo di modifica (spero tutto vada bene) con un unico parser possiamo scrivere sia in modalità PHP (con codice pascal ambedded) che in modalità JSP; la differenza con PHP sta nel fatto che invece di scrivere codice nei commenti HTML, il codice viene scritto tra 2 tag xml come si farebbe in JSP; per ora ho provato solo la prima modalità (vedi script08.pspage che genera script08.pspas), attualmente è solo un esempio per dimostrarne il funzionamento

nella cartella externalsrc trovate bootstrap.zip: si tratta esattamente di questo http://twitter.github.io/bootstrap/ (http://twitter.github.io/bootstrap/) e l'ho utilizzato per fare delle prove con script08.pspage (almeno anche l'occhio inizia ad essere gratificato :D); questo file va decompresso sia nella document root dei apache (sotto www) che nella root dei sorgenti di pspage se volete testare gli script con il command line

spero di non aver dimenticato nulla, se ci sono problemi, sono qua :P

nomorelogic

Edit:
come documentazione riporto script08.pspage
Codice: [Seleziona]
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Sign in &middot; Twitter Bootstrap</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="ciao">
    <!-- Le styles -->
    <link href="../assets/css/bootstrap.css" rel="stylesheet">
    <style type="text/css">
      body {
        padding-top: 40px;
        padding-bottom: 40px;
        background-color: #f5f5f5;
      }

      .form-signin {
        max-width: 300px;
        padding: 19px 29px 29px;
        margin: 0 auto 20px;
        background-color: #fff;
        border: 1px solid #e5e5e5;
        -webkit-border-radius: 5px;
           -moz-border-radius: 5px;
                border-radius: 5px;
        -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
           -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
                box-shadow: 0 1px 2px rgba(0,0,0,.05);
      }
      .form-signin .form-signin-heading,
      .form-signin .checkbox {
        margin-bottom: 10px;
      }
      .form-signin input[type="text"],
      .form-signin input[type="password"] {
        font-size: 16px;
        height: auto;
        margin-bottom: 15px;
        padding: 7px 9px;
      }

    </style>
    <link href="../assets/css/bootstrap-responsive.css" rel="stylesheet">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="../assets/js/html5shiv.js"></script>
    <![endif]-->

    <!-- Fav and touch icons -->
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">
      <link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">
                    <link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">
                                   <link rel="shortcut icon" href="../assets/ico/favicon.png">
  </head>

  <body>

    <div class="container">

      <form class="form-signin">
        <h2 class="form-signin-heading">Please sign in</h2>
        <#ps:var>
        i: integer;
        s: string;
        <#/ps:var>         
        <#ps:code>
           <#ps:var name="sSql" type="string" quotemode="sql" >
           select *
           from table_name
           where field_name = "a value"
           <#/ps:var>
           Out_Write(WR.URL + '<BR>');         
           for i := 0 to WR.ContentFields.Count - 1 do
             begin
                Out_Write('Campo ' + inttostr(i) + ': ' + WR.ContentFields.Values[i] + '<BR>');
             end;
             Out_Write('<br>Frase SQL = <br>' + sSql);
        <#/ps:code>

        <input type="text" class="input-block-level" placeholder="Email address">
        <input type="password" class="input-block-level" placeholder="Password">
        <label class="checkbox">
          <input type="checkbox" value="remember-me"> Remember me
        </label>
        <button class="btn btn-large btn-primary" type="submit">Sign in</button>
      </form>

     

    </div> <!-- /container -->

    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="../assets/js/jquery.js"></script>
    <script src="../assets/js/bootstrap-transition.js"></script>
    <script src="../assets/js/bootstrap-alert.js"></script>
    <script src="../assets/js/bootstrap-modal.js"></script>
    <script src="../assets/js/bootstrap-dropdown.js"></script>
    <script src="../assets/js/bootstrap-scrollspy.js"></script>
    <script src="../assets/js/bootstrap-tab.js"></script>
    <script src="../assets/js/bootstrap-tooltip.js"></script>
    <script src="../assets/js/bootstrap-popover.js"></script>
    <script src="../assets/js/bootstrap-button.js"></script>
    <script src="../assets/js/bootstrap-collapse.js"></script>
    <script src="../assets/js/bootstrap-carousel.js"></script>
    <script src="../assets/js/bootstrap-typeahead.js"></script>

  </body>
</html>

ed il file generato dal parser:
Codice: [Seleziona]
program foo;
var
   i: integer;
   s: string;
   sSql: string;
begin

   sSql:=
      'select * ' +
      'from table_name ' +
      'where field_name = "a value" ';


   Out_Write(
      '<!DOCTYPE html>' +
      '<html lang="en">' +
      '<head>' +
      '<meta charset="utf-8">' +
      '<title>Sign in &middot; Twitter Bootstrap</title>' +
      '<meta name="viewport" content="width=device-width, initial-scale=1.0">' +
      '<meta name="description" content="">' +
      '<meta name="author" content="ciao">' +
      '<!-- Le styles -->' +
      '<link href="../assets/css/bootstrap.css" rel="stylesheet">' +
      '<style type="text/css">' +
      'body {' +
      'padding-top: 40px;' +
      'padding-bottom: 40px;' +
      'background-color: #f5f5f5;' +
      '}' +
      '.form-signin {' +
      'max-width: 300px;' +
      'padding: 19px 29px 29px;' +
      'margin: 0 auto 20px;' +
      'background-color: #fff;' +
      'border: 1px solid #e5e5e5;' +
      '-webkit-border-radius: 5px;' +
      '-moz-border-radius: 5px;' +
      'border-radius: 5px;' +
      '-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);' +
      '-moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);' +
      'box-shadow: 0 1px 2px rgba(0,0,0,.05);' +
      '}' +
      '.form-signin .form-signin-heading,' +
      '.form-signin .checkbox {' +
      'margin-bottom: 10px;' +
      '}' +
      '.form-signin input[type="text"],' +
      '.form-signin input[type="password"] {' +
      'font-size: 16px;' +
      'height: auto;' +
      'margin-bottom: 15px;' +
      'padding: 7px 9px;' +
      '}' +
      '</style>' +
      '<link href="../assets/css/bootstrap-responsive.css" rel="stylesheet">' +
      '<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->' +
      '<!--[if lt IE 9]>' +
      '<script src="../assets/js/html5shiv.js"></script>' +
      '<![endif]-->' +
      '<!-- Fav and touch icons -->' +
      '<link rel="apple-touch-icon-precomposed" sizes="144x144" href="../assets/ico/apple-touch-icon-144-precomposed.png">' +
      '<link rel="apple-touch-icon-precomposed" sizes="114x114" href="../assets/ico/apple-touch-icon-114-precomposed.png">' +
      '<link rel="apple-touch-icon-precomposed" sizes="72x72" href="../assets/ico/apple-touch-icon-72-precomposed.png">' +
      '<link rel="apple-touch-icon-precomposed" href="../assets/ico/apple-touch-icon-57-precomposed.png">' +
      '<link rel="shortcut icon" href="../assets/ico/favicon.png">' +
      '</head>' +
      '<body>' +
      '<div class="container">' +
      '<form class="form-signin">' +
      '<h2 class="form-signin-heading">Please sign in</h2>'
   );
   // BEGIN PASCAL CODE
           
           Out_Write(WR.URL + '<BR>');         
           for i := 0 to WR.ContentFields.Count - 1 do
             begin
                Out_Write('Campo ' + inttostr(i) + ': ' + WR.ContentFields.Values[i] + '<BR>');
             end;
             Out_Write('<br>Frase SQL = <br>' + sSql);
           // END PASCAL CODE
   Out_Write(
      '<input type="text" class="input-block-level" placeholder="Email address">' +
      '<input type="password" class="input-block-level" placeholder="Password">' +
      '<label class="checkbox">' +
      '<input type="checkbox" value="remember-me"> Remember me' +
      '</label>' +
      '<button class="btn btn-large btn-primary" type="submit">Sign in</button>' +
      '</form>' +
      '</div> <!-- /container -->' +
      '<!-- Le javascript' +
      '================================================== -->' +
      '<!-- Placed at the end of the document so the pages load faster -->' +
      '<script src="../assets/js/jquery.js"></script>' +
      '<script src="../assets/js/bootstrap-transition.js"></script>' +
      '<script src="../assets/js/bootstrap-alert.js"></script>' +
      '<script src="../assets/js/bootstrap-modal.js"></script>' +
      '<script src="../assets/js/bootstrap-dropdown.js"></script>' +
      '<script src="../assets/js/bootstrap-scrollspy.js"></script>' +
      '<script src="../assets/js/bootstrap-tab.js"></script>' +
      '<script src="../assets/js/bootstrap-tooltip.js"></script>' +
      '<script src="../assets/js/bootstrap-popover.js"></script>' +
      '<script src="../assets/js/bootstrap-button.js"></script>' +
      '<script src="../assets/js/bootstrap-collapse.js"></script>' +
      '<script src="../assets/js/bootstrap-carousel.js"></script>' +
      '<script src="../assets/js/bootstrap-typeahead.js"></script>' +
      '</body>' +
      '</html>'
   );

end.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 12, 2013, 05:07:06 pm
Grande nomore, parlaci un po di bootstrap e perchè lo hai scelto  :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 12, 2013, 05:23:21 pm
Intanto come mai mi da errore?

Codice: [Seleziona]
francesco@netbook:~/Scaricati/pspage_module$ ./compile.sh 
Free Pascal Compiler version 2.6.0-1 [2012/01/13] for i386
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for i386
Compiling pspage_module.lpr
Compiling udmpspage.pas
Compiling upspage.pas
Fatal: Can't find unit uPSCompiler used by upspage
Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 12, 2013, 06:46:49 pm
perchè su svn non avevo aggiunto la cartella externalsrc ricorsivamente...
riprova ora :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 12, 2013, 07:05:56 pm
Grande nomore, parlaci un po di bootstrap e perchè lo hai scelto  :)

la cosa è piuttosto semplice, cercavo qualcosa come supporto per iniziare a fare degli script un po' più gradevoli e funzionali.
Mi era anche venuta in mente l'idea che si poteva scrivere un'applicazione tipo PhpMyAdmin con lo scopo di forzare su strada lo sviluppo di PsPage usandolo per quello che dovrebbe essere: uno strumento di sviluppo. E poi... intanto ci sarebbe stata un'applicazione utile agli sviluppatori stessi e fatta con PsPage.
ExtPascal ed ExtJs sono ottimi ma sono anche pesanti (Edit: da solo non ci riesco, PsPage è allo stadio iniziale ma l'area di sviluppo è molto vasta: apache, multidatabase, parser, template, multiOS e scripting... lato web per il momento voglio stare leggero :) ) quindi ho cercato qualcosa di minimale e bootstrap... è fatto da quelli di twitter :)

Ho girato un po' sul loro sito ed ho visto che sono pieni di template di esempio, il codice è piuttosto contenuto, mi è piaciuto molto come lo hanno scritto e sembra leggero nel rendering...
script08.pspage l'ho preso da li e l'ho usato come banco di prova :)

voi che ne dite?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 13, 2013, 04:35:04 pm
Codice: [Seleziona]
francesco@netbook:~/Scaricati/pspage_module$ ./compile.sh 
Free Pascal Compiler version 2.6.0-1 [2012/01/13] for i386
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for i386
Compiling pspage_module.lpr
Compiling udmpspage.pas
Compiling upspage.pas
Fatal: Can't find unit fpPsPageTemplate used by upspage
Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)

Dove hai detto che trovo la unit fpPsPageTemplate?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 14, 2013, 10:55:44 am
sempre io che devo aggiungere ricorsivamente su svn...
riprova e speriamo non manchi più nulla :P


Edit:
ho ricontrollato anche sotto win32 quindi ora ci dovrebbe essere tutto quello che serve
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 14, 2013, 03:41:39 pm
Scusa se rompo ma questo?

Codice: [Seleziona]
francesco@netbook:~/Scaricati/pspage_module$ ./compile.sh
Free Pascal Compiler version 2.6.0-1 [2012/01/13] for i386
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for i386
Compiling pspage_module.lpr
Compiling udmpspage.pas
Compiling upspage.pas
Fatal: Can't find unit uPSCompiler used by upspage
Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 14, 2013, 04:41:01 pm
no non rompi ci mancherebbe :)

sembra lo stesso errore del post
Risposta #204 il: Aprile 12

controlla che:
uPsCompiler sia in externalsrc/pascalscript/Source

e che tra i percorsi di compilazione ci siano
    -Fi./externalsrc/pascalscript/Source
    -Fu./externalsrc/pascalscript/Source

in più, questi percorsi devono stare sia sullo script compile.sh che nelle opzioni del progetto se compili pspagecmdline da dentro lazarus



Edit:
per lanciare il command line il comando è il seguente
./pspagecmdline -s www/pspage/script08.pspage
bisogna però accertarsi che il file
www/pspage/script08.pspas
non esista, bisogna cancellarlo prima di lanciare il comando

quando viene lanciato il comando viene dato un errore:
Compile failed...
[Error] (3:4): 'BEGIN' expected
*** PSPAGE ERROR ***
è tutto normale (per ora), controllare il file generato (www/pspage/script08.pspas)

ora che il parser funziona il prossimo step è farci qualcosa di sensato, sto lavorando per qesto :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 14, 2013, 05:23:19 pm
piccola modifica della domenica... (= aggiornate svn)

nel file /etc/pspage/pspage.conf
è ora possibile specificare se si intende forzare la generazione del .pspas
normalmente il .pspas dovrebbe essere generato solo quando c'è stata una modifica al .pspage
però in questa fase di sviluppo... è più comodo che venga generato sempre :P

segue il contenuto del pspage.conf in (/etc/pspage/pspage.conf) per la fase di sviluppo/debug


[PsPage]
Debug=1
LogPath=./tmp/pspage
DebugFileMode=dfSingle
ForcePasGeneration=1



Edit:
da linea comando date
./pspagecmdline -s www/pspage/script08.pspage >script08.html
e poi aprite script08.html con un browser
direi che la cosa inizia a prender forma no? :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 14, 2013, 06:37:52 pm
no non rompi ci mancherebbe :)

sembra lo stesso errore del post
Risposta #204 il: Aprile 12

controlla che:
uPsCompiler sia in externalsrc/pascalscript/Source

e che tra i percorsi di compilazione ci siano
    -Fi./externalsrc/pascalscript/Source
    -Fu./externalsrc/pascalscript/Source

in più, questi percorsi devono stare sia sullo script compile.sh che nelle opzioni del progetto se compili pspagecmdline da dentro lazarus



Edit:
per lanciare il command line il comando è il seguente
./pspagecmdline -s www/pspage/script08.pspage
bisogna però accertarsi che il file
www/pspage/script08.pspas
non esista, bisogna cancellarlo prima di lanciare il comando

quando viene lanciato il comando viene dato un errore:
Compile failed...
[Error] (3:4): 'BEGIN' expected
*** PSPAGE ERROR ***
è tutto normale (per ora), controllare il file generato (www/pspage/script08.pspas)

ora che il parser funziona il prossimo step è farci qualcosa di sensato, sto lavorando per qesto :)

Scusa NoMore, io lancio il compile.sh e continua a darmi l'errore. Non è che in qualche file usi il percorso fisso: externalsrc/pascalscript/Source? Perchè io in realtà ho externalsrc/pascalscript/trunk/Source

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 15, 2013, 08:52:05 am
Scusa NoMore, io lancio il compile.sh e continua a darmi l'errore. Non è che in qualche file usi il percorso fisso: externalsrc/pascalscript/Source? Perchè io in realtà ho externalsrc/pascalscript/trunk/Source

credo di aver capito
ho visto che nel tuo post hai i sorgenti nella cartella Scaricati, quindi probabilmente i tuoi sorgenti di pascalscript sono quelli che ci hai messo manualmente tu dal loro repository

ora li ho inglobati nel progetto e quindi dovresti semplicemente creare una nuova cartella e dare il comando
Codice: [Seleziona]
svn checkout http://svn.code.sf.net/p/lazarusiug/liug/trunk/pspage_module
(invece di http usa https se vuoi fare modifiche ai sorgenti)

una volta fatto il checkout vedrai che i sorgenti di pascalscript sono nella path giusta e compile.sh funzionerà

fammi sapere :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 15, 2013, 05:57:47 pm
Ho fatto quello che hai detto

Codice: [Seleziona]
francesco@netbook:~/Scaricati/pspage_module$ sudo ./compile.sh
Free Pascal Compiler version 2.6.0-1 [2012/01/13] for i386
Copyright (c) 1993-2011 by Florian Klaempfl and others
Target OS: Linux for i386
Compiling pspage_module.lpr
Compiling udmpspage.pas
Compiling upspage.pas
Fatal: Can't find unit uPSCompiler used by upspage
Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)

Mi sento un cretino
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: pnatalo - Aprile 15, 2013, 06:15:26 pm
Salve,
anchi'io sto provando a utilizzare Raudus con Lazarus 1.0.4  in ambiente Windows XP. Gli esempi a corredo del pacchetto funzionano  ma non so come utilizzare Lazreport con Raudus. Ho provato ad ingegnarmi per pubblicare in web un report ma niente da fare.  Sarei gratissimo se potessi / volessi aiutarmi a capire e magari fornirmi o indicarmi dove trovare qualche esempio da studiare.

I pacchetti installati sono: Raudus, Lazreport , Powerpdf e LazreportPdfExport

Grazie in anticipo
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 15, 2013, 06:44:43 pm
Salve,
anchi'io sto provando a utilizzare Raudus con Lazarus 1.0.4  in ambiente Windows XP. Gli esempi a corredo del pacchetto funzionano  ma non so come utilizzare Lazreport con Raudus. Ho provato ad ingegnarmi per pubblicare in web un report ma niente da fare.  Sarei gratissimo se potessi / volessi aiutarmi a capire e magari fornirmi o indicarmi dove trovare qualche esempio da studiare.

I pacchetti installati sono: Raudus, Lazreport , Powerpdf e LazreportPdfExport

Grazie in anticipo
Non è questo il 3d adeguato.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 15, 2013, 08:58:43 pm
Ho compilato, sistemato il tutto e lanciato lo script 8. Ecco cosa ottengo:

: ERROR


The application encountered the following error:

    Error: Unable to create file "/var/www/pspage/script08.pspas"
    Stack trace:
    $04C8ED09
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 16, 2013, 08:52:17 am
apache non può creare il file .pspas, bisogna dare i permessi alla cartella pspage
potresti dare un semplice chmod 777 a /var/www/pspage ma si può evitare

se dai il comando
ps -aef|grep apache

noterai che apache gira anche con l'utente www-data

per cui prova a dare i seguenti comandi:
Codice: [Seleziona]
cd /var/www
sudo chown root:www-data pspage
sudo chmod 775 pspage

al termine dai
ls -l
dovresti avere una situazione simile:
$ ls -l
drwxr-xr-x 5 root root        35 mar  1 06:26 assets
drwxrwxr-x 2 root www-data  4096 apr 14 17:32 pspage



Edit:
wow, non lo provi neanche il command line :)

Edit2:
NB: in assets c'è il contenuto di bootstrap.zip
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 16, 2013, 02:52:33 pm
il commandline non mi interessa, a me interessa che giri bene con apache :)

Comunque con chmod -R 777 /var/www/pspage funziona :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 20, 2013, 08:04:47 pm
ho preparato una demo fishfact 8) con bootstrap, jquery, ajax e db firebird in... pspage

non si tratta di CRUD (per ora) ma solo di navigazione
come pensavo usandolo come ambiente di sviluppo ha fatto subito emergere delle piccole necessità che ora devo sistemare. devo dire che il risultato almeno per ora è veramente ottimo.

ora pensavo di trasformare la demo in modo da non dipendere da un db (per i più pigri ma anche per facilitare i più curiosi che non hanno firebird).

cmq a breve posto il tutto

Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 20, 2013, 09:40:44 pm
grandissimo nomore...un grande passo avanti davvero :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 23, 2013, 08:12:20 pm
postato il tutto, spero abbiate modo di curiosare ;)

per installare procedete come segue

in www trovate:

in particolare, nella cartella data trovate:


nella cartella www/pspage trovate:

ho già individuato il prossimo lavoretto, prima ci metto le mani e poi vi faccio sapere, potrebbe anche essere meglio di questo :P


Edit:
lanciate dal browser:
http://127.0.0.1/pspage/fishfact.pspage
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 29, 2013, 09:38:49 am
Ho provato, sembra andare tutto a buon fine ma poi non riesce a caricare il lavoro nel browser
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 29, 2013, 10:08:42 am
nel senso che il browser rimane bloccato nel caricamento della pagina?

in questo caso potrebbe essere che apache non riesce a raggiungere il database su firebird.
controlla questa sezione nello script:
Codice: [Seleziona]
  <#ps:code uses="db,PSPAGE_SQLDB_PLUGIN">
     <#ps:var>
     DbHandler: integer;
     <#/ps:var>

     DbHandler := GetConnectionHandler('FIREBIRD SQL 2.5',
                                       '10.4.4.42',
                                       'C:\db\fb25\FISHFACT.FDB',
                                       'PSUSER',
                                       'psuser');
  <#/ps:code>

mi sa che mi sono dimenticato di scrivere che bisogna creare un utente PSUSER con password: "psuser" :P
in alternativa puoi mettere utente SYSDBA e la sua password ("masterkey" se non l'hai cambiata)



PS: questo va fatto in tutti e 2 gli script:
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Maggio 08, 2013, 09:04:37 am
rieccomi qua
nei sorgenti nulla di nuovo ma ho provato a lavorare un po' con extjs e json come base dati (nessun database).

questi sorgenti per ora non li posto in svn (sono pigro e non è ancora completo, carica sempre la stessa foto :P) ma li metto volentieri qua per chi vuole provare

1) prima di tutto scaricate l'ultima versione ad oggi di extjs da http://www.sencha.com/products/extjs/download/ (http://www.sencha.com/products/extjs/download/): ext-4.2.0-gpl.zip
2) decomprimete lo zip scaricato in /var/www/extjs
3) create la cartella /var/www/ffextjs42 ed eseguite un chmod 777
4) in /var/ext/ffextjs42, create il file: fishfact_extjs42.pspage e copiateci il contenuto seguente:
Codice: [Seleziona]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Fishfact Demo</title>
    <link rel="stylesheet" type="text/css" href="../extjs/examples/shared/example.css" />

    <!-- GC -->

    <script type="text/javascript" src="../extjs/examples/shared/include-ext.js"></script>
    <script type="text/javascript" src="../extjs/examples/shared/options-toolbar.js"></script>

    <!-- page specific -->
    <script type="text/javascript" src="fishfact_e42_grid.js"></script>
</head>
<body>
    <h1>Fishfact Demo</h1>
    <p>This example show how use pspage with extjs 4.2 and json data file.</p>

    <!-- a place holder for the grid. requires the unique id to be passed in the javascript function, and width and height ! -->
    <div id="example-grid"></div>
</body>
</html>
5) nella stessa cartella create il file fishfact_e42_grid.js con il seguente contenuto
Codice: [Seleziona]
Ext.require([
    'Ext.data.*',
    'Ext.grid.*'
]);



Ext.onReady(function() {

    Ext.define('User',{
        extend: 'Ext.data.Model',
        fields: [
           {name: 'speciesno', type: 'string'},
           {name: 'category', type: 'string'},
           {name: 'commonname', type: 'string'},
           {name: 'speciesname', type: 'string'},
           {name: 'lengthcm', type: 'int'},
           {name: 'lengthin', type: 'int'},
           {name: 'notes', type: 'string'}       
         ]
    });

 var Grid1BiolifeStore = Ext.create('Ext.data.Store', {
        storeId: 'Grid1BiolifeStore',
        model: 'User',
        autoLoad: true,
        proxy: {
            type: 'ajax',
            url : '../data/biolife.json',
            reader: {type: 'json'}
        }
    });


 var Grid1Grid = new Ext.grid.GridPanel({
      store: Grid1BiolifeStore,
      /* renderTo: 'example-grid', */
      title: 'Fish list',
      width: 640,
      height: 210,
        forceFit: true,
        split: true,
        region: 'north',
    columns: [
      {
        id: 'speciesno',
        header: "Species No",
        sortable: true,
        dataIndex: 'speciesno'
      },{
        id: 'category',
        header: "Category",
        sortable: true,
        dataIndex: 'category'
      },{
        id: 'commonname',
        header: "Common Name",
        sortable: true,
        dataIndex: 'commonname'
      },{
        id: 'speciesname',
        header: "Species Name",
        sortable: true,
        dataIndex: 'speciesname'
      },{
        id: 'lengthcm',
        header: "Length (cm)",
        sortable: true,
        dataIndex: 'lengthcm'
      },{
        id: 'lengthin',
        header: "Length (in)",
        sortable: true,
        dataIndex: 'lengthin'
      }
    ]

});


    // define a template to use for the detail view
    var bookTplMarkup = [
        '<TABLE WIDTH=100% CELLPADDING=0 CELLSPACING=0 STYLE="page-break-before: always">',
        '<COL WIDTH=128*>',
        '<COL WIDTH=128*>',
        '<TR>',
        '<TD COLSPAN=2 WIDTH=100% VALIGN=TOP STYLE="border: none; padding: 0cm">',
        '<H3>{commonname}</H3> <a href="{DetailPageURL}" target="_blank">{Title}</a><br/>',
        '</TD>',
        '</TR>',
        '<TR VALIGN=TOP>',
        '<TD WIDTH=50% STYLE="border: none; padding: 0cm">',
        '<img src="../data/ffimg/Angelfish_Blue_Angelfish.gif"><br>',
        '</TD>',
        '<TD WIDTH=50% STYLE="border: none; padding: 0cm">',
        'Species No: {speciesno}<br/>',
        'Category: {category}<br/>',
        'Common Name: {commonname}<br/>',
        'Species Name: {speciesname}<br/>',
        'Length (cm): {lengthcm}<br/>',
        'Length (in): {lengthin}<br/>',
        '</TD>',
        '</TR>',
        '<TR>',
        '<TD COLSPAN=2 WIDTH=100% VALIGN=TOP STYLE="border: none; padding: 0cm">',
        '<H4>Notes:</H4>{notes}',
        '</TD>',
        '</TR>',
        '</TABLE>'

    ];
    var bookTpl = Ext.create('Ext.Template', bookTplMarkup);
   
   
      Ext.create('Ext.Panel', {
        renderTo: 'example-grid',
        frame: true,
        title: 'Biolife',
        width: 580,
        height: 650,
        layout: 'border',
        items: [
            Grid1Grid, {
                id: 'detailPanel',
                title: 'Detail',
                region: 'center',
                bodyPadding: 7,
                bodyStyle: "background: #ffffff;",
                html: 'Please select a fish to see additional details.'
            }
        ]
    });
   


   // update panel body on selection change
    Grid1Grid.getSelectionModel().on('selectionchange', function(sm, selectedRecord) {
        if (selectedRecord.length) {
            var detailPanel = Ext.getCmp('detailPanel');
            detailPanel.update(bookTpl.apply(selectedRecord[0].data));
        }
    });

   


});
6) nella cartella /var/www/data, create il file biolife.json con dentro:
Codice: [Seleziona]
[
    {"speciesno"  : "90020",
     "category"   : "Triggerfishy",
     "commonname" : "Clown Triggerfish",
     "speciesname": "Ballistoides conspicillum",
     "lengthcm"   : 50,
     "lengthin"   : 20,
     "notes"      : "..."
     },
    {"speciesno"  : "90030",
     "category"   : "Snapper",
     "commonname" : "Red Emperor",
     "speciesname": "Lutjanus sebae",
     "lengthcm"   : 60,
     "lengthin"   : 24,
     "notes"      : "..."
     },
     
    {"speciesno" : "90050",                "category"    : "Wrasse",
     "commonname": "Giant Maori Wrasse",   "speciesname": "Cheilinus undulatus",
     "lengthcm": 229,                 "lengthin" : 90,
     "notes": "This is the largest of all the wrasse.  It is found in dense reef areas, feeding on a wide variety of mollusks, fishes, sea urchins, crustaceans, and other invertebrates. In spite of its immense size, divers find it a very wary fish."},
    {"speciesno" : "90070",                "category"    : "Angelfish",
     "commonname": "Blue Angelfish",       "speciesname": "Pomacanthus nauarchus",
     "lengthcm": 30,                  "lengthin" : 12,
     "notes"      : "Habitat is around boulders, caves, coral ledges and crevices in shallow waters.  Swims alone or in groups."},
    {"speciesno" : "90080",                "category"    : "Cod",
     "commonname": "Lunartail Rockcod",    "speciesname": "Variola louti",
     "lengthcm": 80,                  "lengthin" : 31,
     "notes"      : "Also known as the coronation trout.  It is found around coral reefs from shallow to very deep waters.  Feeds primarily on small fishes."},
    {"speciesno" : "90090",                "category"    : "Scorpionfish",
     "commonname": "Firefish",             "speciesname": "Pterois volitans",
     "lengthcm": 38,                  "lengthin" : 15,
     "notes"      : "Also known as the turkeyfish.  Inhabits reef caves and crevices.  The firefish is usually stationary during the day, but feeds actively at night.  Favorite foods are crustaceans."},
    {"speciesno" : "90100",                "category"    : "Butterflyfish",
     "commonname": "Ornate Butterflyfish", "speciesname": "Chaetodon Ornatissimus",
     "lengthcm": 19,                  "lengthin" : 7,
     "notes"      : "Normally seen in pairs around dense coral areas from very shallow to moderate depths.  The butterflyfish feeds mainly on coral polyps and anemones."     },
     
    {"speciesno" : "90110",                "category"    : "Shark",
     "commonname": "Swell Shark",          "speciesname": "Cephaloscyllium ventriosum",
     "lengthcm": 102,                 "lengthin" : 40,
     "notes"      : "Inhabits shallow reef caves and crevices and kelp beds along the coast and offshore islands.  This shark feeds at night on fishes and crustaceans and is totally harmless to divers."},
    {"speciesno" : "90120",                "category"    : "Ray",
     "commonname": "Bat Ray",              "speciesname": "Myliobatis californica",
     "lengthcm": 56,                  "lengthin" : 22,
     "notes"      : "Also know as the grinder ray because of its flat grinding teeth used to crush its meal of crustaceans or invertebrates.  Inhabits bays, sloughs, and kelp beds with sandy bottoms."},
    {"speciesno" : "90130",                "category"    : "Eel",
     "commonname": "California Moray",     "speciesname": "Gymnothorax mordax",
     "lengthcm": 150,                 "lengthin" : 59,
     "notes"      : "This fish hides in a shallow-water lair with just its head protruding during the day.  At night it feeds on octopuses, crustaceans, and small fish close by."},
    {"speciesno" : "90140",                "category"    : "Cod",
     "commonname": "Lingcod",              "speciesname": "Ophiodon elongatus",
     "lengthcm": 150,                 "lengthin" : 59,
     "notes"      : "Widely found from near the shore to very deep waters.  Young fish stay on sand or mud bottoms of bays and inshore areas.  The lingcod is a voracious predator, eating many different fishes and octopuses."},
    {"speciesno" : "90150",                "category"    : "Sculpin",
     "commonname": "Cabezon",              "speciesname": "Scorpaenichthys marmoratus",
     "lengthcm": 99,                  "lengthin" : 39,
     "notes"      : "Often called the great marbled sculpin.  Found over rocky or shell-encrusted bottoms from shallow to moderately deep waters.  It feeds primarily on crustaceans and mollusks."},
    {"speciesno" : "90160",                "category"    : "Spadefish",
     "commonname": "Atlantic Spadefish",   "speciesname": "Chaetodiperus faber",
     "lengthcm": 90,                  "lengthin" : 35,
     "notes"      : "Found in mid-water areas around reefs, wrecks and bridges.  The tiny, all-black juveniles drift motionless in the shallows, looking like leaves and pods of mangrove."},
    {"speciesno" : "90170",                "category"    : "Shark",
     "commonname": "Nurse Shark",          "speciesname": "Ginglymostoma cirratum",
     "lengthcm": 400,                 "lengthin" : 157,
     "notes"      : "Frequently found under rock or reef ledges.  Carnivorous with well-developed organs for scent and vibration detection."},
     
    {"speciesno" : "90180",                "category"    : "Ray",
     "commonname": "Spotted Eagle Ray",    "speciesname": "Aetobatus narinari",
     "lengthcm": 200,                 "lengthin" : 79,
     "notes"      : "Found in reef areas and sandy bottoms.  The spotted eagle ray has a poisonous spine on its tail and incredibly powerful jaws to crush oysters, clams, and numerous crustaceans.  Divers report large schools during breeding season."},
    {"speciesno" : "90190",                "category"    : "Snapper",
     "commonname": "Yellowtail Snapper",   "speciesname": "Ocyurus chrysurus",
     "lengthcm": 75,                  "lengthin" : 30,
     "notes"      : "Prefers to congregate in loose groups in the open water above reef areas.  Has well-developed teeth and usually feeds at night on small fishes, crustaceans, and plankton."},
    {"speciesno" : "90200",                "category"    : "Parrotfish",
     "commonname": "Redband Parrotfish",   "speciesname": "Sparisoma Aurofrenatum",
     "lengthcm": 28,                  "lengthin" : 11,
     "notes"      : "Inhabits reef areas.  The parrotfish's teeth are fused together, enabling them to scrape away hard coral outer skeletons to get at polyps inside.  These fish are thought to be a major factor in reef recycling."},
    {"speciesno" : "90210",                "category"    : "Barracuda",
     "commonname": "Great Barracuda",      "speciesname": "Sphyraena barracuda",
     "lengthcm": 150,                 "lengthin" : 59,
     "notes"      : "Young barracuda live in inshore seagrass beds, while adults range from inshore channels to the open ocean.  The barracuda feeds on a wide variety of fishes."},
    {"speciesno" : "90220",                "category"    : "Grunt",
     "commonname": "French Grunt",         "speciesname": "Haemulon flavolineatum",
     "lengthcm": 30,                  "lengthin" : 12,
     "notes"      : "The French grunt drifts in large groups in sheltered reef areas during the day.  It forages nearby for other fish at night."},
    {"speciesno" : "90230",                "category"    : "Snapper",
     "commonname": "Dog Snapper",          "speciesname": "Lutjanus jocu",
     "lengthcm": 90,                  "lengthin" : 35,
     "notes"      : "This fish is named for its elongated canine teeth at the front of the upper jaw.  It is solitary and wary and stays in the deep reef or submerged wreck areas.  Not very common anywhere."},
     
    {"speciesno" : "90240",                "category"    : "Grouper",
     "commonname": "Nassau Grouper",       "speciesname": "Epinephelus striatus",
     "lengthcm": 91,                  "lengthin" : 36,
     "notes"      : "Found around shallow coral reefs and seagrass beds, feeding mainly on fishes."},

    {"speciesno" : "90250",                "category"    : "Wrasse",
     "commonname": "Bluehead Wrasse",      "speciesname": "Thalassoma bifasciatum",
     "lengthcm": 15,                  "lengthin" : 6,
     "notes"      : "Found in coral reefs, rocky flats, reef sand, and seagrass habitats.  This is one of the most successful ''cleaner fish'' in the tropical West Atlantic.  It feeds on the parasites of other fish, who come to the wrasse to be cleaned."},
    {"speciesno" : "90260",                "category"    : "Jack",
     "commonname": "Yellow Jack",          "speciesname": "Gnathanodon speciousus",
     "lengthcm": 90,                  "lengthin" : 35,
     "notes"      : "Inhabits reef and mid-water areas, feeding on invertebrates and small fishes.  The adult is one of the few jacks without teeth."},
    {"speciesno" : "90270",                "category"    : "Surfperch",
     "commonname": "Redtail Surfperch",    "speciesname": "Amphistichus rhodoterus",
     "lengthcm": 40,                  "lengthin" : 16,
     "notes"      : "Inhabits exposed sandy shorelines to shallow depths.  Feeds on sand-dwelling crustaceans and mollusks."},
    {"speciesno" : "90280",                "category"    : "Croaker",
     "commonname": "White Sea Bass",       "speciesname": "Atractoscion nobilis",
     "lengthcm": 150,                 "lengthin" : 59,
     "notes"      : "Schools are found over rocky bottoms and around kelp forest canopies.  Not a true bass, this is the largest of the croakers on the Pacific Coast.  It feeds in mid-water on squid, anchovies, and sardines."},
    {"speciesno" : "90290",                "category"    : "Greenling",
     "commonname": "Rock Greenling",       "speciesname": "Hexagrammos lagocephalus",
     "lengthcm": 60,                  "lengthin" : 24,
     "notes"      : ""},
    {"speciesno" : "90300",                "category"    : "Wrasse",
     "commonname": "Senorita",             "speciesname": "Oxyjulis californica",
     "lengthcm": 25,                  "lengthin" : 10,
     "notes"      : ""},
    {"speciesno" : "90310",                "category"    : "Smelt",
     "commonname": "Surf Smelt",           "speciesname": "Hypomesus pretiosus",
     "lengthcm": 25,                  "lengthin" : 10,
     "notes"      : ""}
     
     
]
7) l'immagine /var/www/data/ffimg/Angelfish_Blue_Angelfish.gif già l'avete (è su svn), purtroppo per ora carica solo e sempre questa :P
8 ) sul browser mettete l'indirizzo: http://127.0.0.1/ffextjs42/fishfact_extjs42.pspage ed avrete una griglia extjs con tanto di dettaglio (yes, we ajax) quando cliccate su una riga (vedi allegato).

Ora credo che mi fermerò con le demo, quello che c'era da verificare s'è verificato e ci sono molti spunti per sviluppi futuri.
Guardando a come si scrive con pspage ci sono molte cose da fare per migliorare il tutto e credo che sia ora di tornare per un po' alla teoria (la pratica dimostra che la strada è fattibile). Spero di ricevere un sacco di critiche e spunti su tutti i livelli :D



PS:
questa demo, se guardate nel file .pspage, non fa sfoggio dei tag <#pspage> ma non dimenticate che un file pspage è un file html e la traduzione c'è comunque ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Maggio 08, 2013, 01:44:01 pm
Nomore direi che ti meriti davvero un applauso, hai tirato su davvero un bel progetto. Secondo me quello che gli permetterebbe di avere qualcosa in più è la possibilità di avere il sistema di reportistica.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Maggio 08, 2013, 05:29:36 pm
in effetti qualcosa per produrre report servirebbe, forse anche più di un altro motore DB (almeno per ora)

direi che bisognerebbe produrre pdf in modo agevole, qualche idea?


Edit:
@xinyiman
se non ricordo male in passato mi avevi già accennato ad un componente

Edit2:
non ricordavo male: lazreport :)
ancora non lo conosco, gli darò un'occhiata; se ci sono esempi sono i benvenuti :P
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Maggio 08, 2013, 09:04:30 pm
Lazreport lo trovi tra i componenti standard, poi installi anche powerpdf e dopo aggiungi l'addons pdfexport che trovi sempre sotto la cartella di lazreport.

Guarda i messaggi a questa pagina ti torneranno sicuramente utili...poi se serve io sono qui
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: Nephilim - Ottobre 27, 2013, 12:29:24 pm
Scusate...ma questo progetto sta andando avanti o si è fermato cosi? :o
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Ottobre 27, 2013, 03:43:22 pm
"eppur si muove", come verrebbe da dire contro ciò che sembra, piano ma si muove.
dopo un lungo stop, recentemente, mi sono rimesso a pensare ad un sistema per produrre pdf, come da ultimo post.
non ho scelto lazreport ma Free JPDF Pascal https://github.com/jepafi/Free-JPDF-Pascal/ (https://github.com/jepafi/Free-JPDF-Pascal/).

purtroppo alla lentezza, attualmente, no ho risorse per rimediare: si tratta ancora di un esperimento.

comunque sia non è ancora di un prodotto maturo da usare in produzione. :)


Edit:
a scanso di equivoci: con "lentezza" intendevo lentezza nello sviluppo e non performance del modulo ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Ottobre 27, 2013, 07:15:22 pm
Caro Nomorelogic come mai hai scelto quel componente e non lazreport che è il componente ufficiale di lazarus per i report?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Ottobre 27, 2013, 09:07:42 pm
quel progetto è un porting di FPDF http://www.fpdf.org/ (http://www.fpdf.org/) che è una classe per php appunto per la creazione di file pdf.

rispetto a lazreport è più adatto allo scripting (lazreport "obbliga" all'uso di lazarus o quantomeno bisogna avere delle conoscenze in merito, mentre vorrei che per la prima versione sia sufficiente un semplice editor di testo).

dopo averlo provato mi sono convinto anche per la velocità di esecuzione: veramente leggero.
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Ottobre 27, 2013, 09:13:55 pm
In effetti sono motivazioni più che valide :)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 17, 2014, 07:53:18 pm
Nomore, mi piacerebbe testare il progetto sotto raspbian. Ho modificato il file compile.sh e mi restituisce
Codice: [Seleziona]
Free Pascal Compiler version 2.6.2-8+rpi1+b1 [2014/03/25] for arm
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Linux for ARMHF
Compiling pspage_module.lpr
Compiling udmpspage.pas
Compiling upspage.pas
Compiling ./externalsrc/pascalscript/Source/uPSCompiler.pas
Compiling ./externalsrc/pascalscript/Source/uPSUtils.pas
uPSUtils.pas(727,33) Fatal: Internal error 200502052
Fatal: Compilation aborted
Error: /usr/bin/ppcarm returned an error exitcode (normal if you did not specify a source file to be compiled)

Idee?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 17, 2014, 08:08:16 pm
che versione di fpc stai usando?
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 17, 2014, 08:09:45 pm
2.6.2
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 17, 2014, 08:20:12 pm
2.6.2

c'era anche scritto nel tuo post precedente, non l'ho letto...

pare che ci sia un bug quando si compila per ARM con -fPIC
http://bugs.freepascal.org/view.php?id=19729 (http://bugs.freepascal.org/view.php?id=19729)


però... mi hai battuto sul tempo ;)
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: xinyiman - Aprile 17, 2014, 08:21:17 pm
Quindi come ovviare?!
Titolo: Re:progetto web forum lazaruspascal.it
Inserito da: nomorelogic - Aprile 17, 2014, 11:43:22 pm
il bug è stato risolto nella versione 2.7.1, la trunk.

bisognerebbe provare a compilare dopo aver installato quella versione di fpc sul raspberry...

ho trovato questo articolo ed al suo interno c'è scritto come installare fpc 2.7.1 da subversion, c'è anche lo script ;)

il link è
http://www.michellcomputing.co.uk/blog/2012/11/lazarus-on-the-raspberry-pi/ (http://www.michellcomputing.co.uk/blog/2012/11/lazarus-on-the-raspberry-pi/)

ti anticipo lo script (nel link anche lo script per lazarus)

Codice: [Seleziona]
# Goto FreePascal folder.
cd ~/FreePascal

# Initial checkout to 2.7.1 folder (only required on first run).
# svn co http://svn.freepascal.org/svn/fpc/trunk 2.7.1

# Update previous checkout snapshot.
svn up 2.7.1

# Export the checkout to working folder.
svn export --force 2.7.1 fpctmp

# Change to fpc working folder.
cd fpctmp
 
# Build the compiler.
make all OPT='-gl -O3p3' -j 8 FPMAKEOPT="-T 8" FPC=/usr/lib/fpc/2.6.0/ppcarm

# Install compiler.
sudo make install PP=compiler/ppcarm PREFIX=/usr -j 8 FPMAKEOPT="-T 8"

# Symlink the installed compiler.
sudo rm -f /usr/bin/ppcarm
sudo ln -s /usr/lib/fpc/2.7.1/ppcarm /usr/bin/ppcarm

# Install sources.
sudo make install sourceinstall PREFIX=/usr

# Symlink source path.
sudo rm -f /usr/share/fpcsrc
sudo ln -sf /usr/share/src/fpc-2.7.1/fpc /usr/share/fpcsrc

# Create fpc.cfg.
sudo /usr/lib/fpc/2.7.1/samplecfg /usr/lib/fpc/2.7.1 /etc

# Remove working folder.
cd ..
rm -rf fpctmp

Se ci provi prima di me, fai sapere come va a finire che sono interesato anche io ;)



Edit:
nello script, la riga
Codice: [Seleziona]
make all OPT='-gl -O3p3' -j 8 FPMAKEOPT="-T 8" FPC=/usr/lib/fpc/2.6.0/ppcarm
serve a costruire il compilatore 2.7.1 usando fpc 2.6.0
tu hai installata la versione 2.6.2, cerca la fullpath giusta ;)

Edit 2:
se leggi nell'articolo, il tizio dice che ha dovuto usare una SD card da 8GB e di aver ridotto la RAM dedicata alla GPU da 128 a 64 MB