Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Topics - md9327

Pagine: [1] 2 3
1
OpenBar / Un augurio e un abbraccio a tutti!
« il: 22 Dicembre 2014, 10:43:38 »
Ciao ragazzi,
è parecchio tempo che non vengo sul sito e mi dispiace molto.
Colgo l'occasione per fare un saluto e un abbraccio a tutti, e gli auguri per Natale e per il nuovo anno che, speriamo (come sempre) sia meglio di questo...

A U G U R I   !!!!!!!!!!!!!!!!!!!!!!!

2
OpenBar / Ma i fondatori ndove sono spariti?
« il: 16 Luglio 2012, 00:29:54 »
Mi è sfuggito qualcosa, oppure...

Ma i fondatori del presente sito dove sono spariti?

Non per niente, la loro assenza si sente, ed è un bel pò che volevo chiederlo.

Ma, a parte l'assenza, il problema è che siamo sotto le grinfie di ceskho, che è fuori controllo...  :'(

(...oltre al fatto che ormai siamo contaminati tutti dal virus...)

3
Segnalazione bug / rev 4882 - errore salvataggio form
« il: 02 Luglio 2012, 21:51:08 »
Avevo scaricato l'ultima build questa sera, ma mi sono accorto di un crash durante il salvataggio delle Form.

Sono tornato alla 4864.

4
Segnalazione bug / Errore con i tag XmlWriter in gb.xml
« il: 13 Giugno 2012, 22:15:15 »
per vuott, ambassador gambas...  ;D

Ho riscontrato un'altro problema, legato alla libreria gb.xml, in particolare con XMLWriter (ma probabilemnte c'è qualcosa anche con XMLReader).

Faccio un esempio che forse rende meglio l'idea. Io devo scrivere un file xml, con una serie di tag nidificati, dove la maggior parte degli elementi hanno un un'uico valore (Text), come ad esempio:
Codice: [Seleziona]
<Tags>
<Tag1>valore</Tag1>
<Tag2>valore</Tag2>
</Tags>
Come si può notare, Tag1 e Tag2 hanno un valore, e questo viene racchiuso tra l'apertura del tag "<Tag1>", e la sua chiusura "/Tag1>".
Fino a qui la logica credo sia semplice e chiara, e questa è stata finora adottata in tutte le mie applicazioni, compreso pgDesigner (che di file xml ne legge parecchi).

Dovo aver scaricato l'ultima versione di Gambas3 in formato sorgente, oggi è la 4827, ho riscontrato che la lettura ha qualcosa che non và (ancora da chiarire), mentre la scrittura ha un errore, che ho verificato nei sorgenti della classe XmlWriter.class, di cui posto la parte interessata al problema:
Codice: [Seleziona]
Public Sub StartElement(TagName As String, Optional Attributes As String[], Optional Prefix As String, Optional URI As String)
  
  Dim Xmlns, s, sData As String
  Dim i As Integer = 0
  If URI Then
    Xmlns = " xmlns"
    If Prefix Then Xmlns &= ":" & Prefix
    Xmlns &= "=\"" & URI & "\""
  Endif
  If Prefix Then TagName = Prefix & ":" & TagName
  
  sData = "<" & TagName
  
  If Attributes
    If (Attributes.Count Mod 2) Then Attributes.Push("")
    For i = 0 To Attributes.Max Step 2
      sData &= " " & Attributes[i] & "=\"" & Attributes[i + 1] & "\""
    Next
  Endif
  
  sData &= Xmlns
  
  If Not $TagEnded Then 'On ferme le tag précédent
    Write(">" & If($indent, "\n", ""), True)
  Endif
  
  $TagEnded = False
  
  Write(sData)
  
  PileElements.Push(TagName)
  
End

Public Sub EndElement()
  
  Dim tag As String
  
  If Not PileElements.Count Then Return
  
  tag = PileElements.Pop()
  
  If Not $TagEnded Then 'On ferme le tag précédent
    Write(" />" & If($indent, "\n", ""), True) 'Pas de contenu
    $TagEnded = True
  Else
    Write("</" & tag & ">")
  Endif
  
End
il codice applica una logica errata, o perlomeno parte da un presupposto non completamente corretto. In pratica il tag viene aperto e chiuso tramite lo stato della variabile $TagEnded, non tenendo conto che potrebbe esserci un valore Text in mezzo. Questo causa la scrittura errata del tag, come da esempio:
Codice: [Seleziona]
<Tag1valore />
<Tag2valore />
in pratica unisce il nome del tag con il valore stesso.
La sequenza con cui viene aperto e chiuso il tag, e associato a questo un valore è come da esempio:
Codice: [Seleziona]
DIM oXml As XmlWriter
...
oXml.StartElement("Tag1")
oXml.Text("valore")
oXml.EndElement()

Con la versione 3.1.1 la cosa funzionava, ma ora con gli ultimi aggiornamenti non và più. Non sò se dalla 3.1.1, le build successive riportano tutte lo stesso problema, ma di sicuro la 4827.

Caro vuott, dato che scrivere direttamente a Benoit mi è sempre restato piuttosto difficoltoso, sarebbe di gran utilità (e non solo per me), notificare a Minisini questo problema, per poter correggere al più presto.
Tieni conto che il pezzo di sorgente ad inizio post è estratto dalla classe inclusa nei sorgenti di gambas, ed è scritta nello stesso linguaggio, per cui è semplice sistemarla.

Grazie

5
Segnalazione bug / Errori casuali nel salvataggio sorgenti
« il: 13 Giugno 2012, 19:37:43 »
Apro un'altra discussione in merito ad alcuni problemi che, inizialmente erano solo fastidiosi, ma ora sono diventati bloccanti, tant'è che non riesco più a scrivere una riga di codice, e non riesco a capirne il motivo.
Stò cercando di capire il perchè, ma ancora non ho trovato nulla a riguardo. Sò solo che Gambas3 và in crash quando si tenta di compilare il progetto, dopo aver fatto modifiche ai sorgenti, e dopo un errore di salvataggio.
Finora ero riuscito a evitare il problema riaggiornando (refresh) la tree contenente l'elenco dei file di progetto, ma ora và in crash in ogni caso, segnalandomi un errore proprio sulla tree, perchè non riesce più a gestire la struttura gerarchica dei file. Ora addirittura non carica neanche le classi, casualmente, crashando brutalmente.
Ho provato ad reinstallare Gambas3, ma il problema resta imperterrito a rovinarmi la vita...  >:(

E' da tener presente che il tutto accade con Gambas3 installato tramite pacchetti forniti dai repository ufficiali Fedora 16. Ora stò cercando di compilare e installare dai sorgenti, ma la compilazione si blocca sul "make", per un errore di mancanza di configurazione sulla libreria pg.html...

Con Gambas2 non ho mai incontrato problemi simili, e infatti si compila correttamente dai sorgenti...

Succede anche a voi?

6
Segnalazione bug / Coesistenza tra Gambas2 e Gambas3
« il: 13 Giugno 2012, 19:26:59 »
Da quando ho deciso di basarmi sui repository di Fedora 16 per scaricarmi Gambas3, non ho potuto farlo coesistere con il vecchio Gambas2, in quanto l'installazione si blocca a causa di una sovrapposizione della libreria gb.script che non posso evitare di installare in quanto da questa ne dipendono altre.
In realtà c'ero riuscito, installando Gambas3 da repository, e installare Gambas2 da sorgenti. In questo caso la cosa funzionava.

Ora, mi piacerebbe sapere se questo problema è comune anche in altre distro, oppure qualcuno è riuscito a far coesistere entrambe le versioni scaricate come pacchetto.

Mi fare sapere?

Grazie

7
Linux / MariaDB un nuovo motore di database MySQL like
« il: 17 Maggio 2011, 19:06:43 »
STavo facendo alcune ricerche su internet, e mi sono imbattuto in un applicativo (Drupal) che indicava, come possibile database di appoggio, un certo MARIADB...

Incuriosito, oltre dal nome anche dal fatto di non averlo mai sentito nominare, sono andato sul link proposto:

http://mariadb.org/

e in effetti esiste, e pare sia un progetto derivato dal MySQL iniziale, e poi andato avanti a parte, portando però ulteriori novità rispetto al MySQL standard.

Dat un'occhiata, perchè potrebbe essere un'alternativa valida, visto che MySQL è comunque un prodotto fornito ora da Oracle...

9
Programmazione / Idea su una libreria comune e condivisa
« il: 10 Maggio 2011, 21:44:04 »
Avevo già in mente di proporla a suo tempo, quando ho iniziato a concentrare pezzi di codice all'interno della libreria CLib.

In parole povere, l'idea sarebbe quella di riunire in un'unica libreria, o framework, tutte quelle funzioni, classi e oggetti che ognuno di noi ha contribuito a creare e a distribuire alla comunità Gambas. Ho visto creare molti bei pezzi di software, e popolare il repository di questo sito, ma ho pure notato che tutto ciò ha contribuito a frastagliare il nostro lavoro in tanti singoli pezzetti, non ottimizzati, separati tra loro.

La mia idea sarebbe quella di creare una sorta di blocco unico (chiamatelo pure framework, anche se la parola non mi piace molto), composto da varie classi o oggetti, ma raggruppati, unificati e standardizzati in un'unica libreria di utility.

Come esempio porto quello di CLib, dove stò tentando di fare questa cosa, ma sarebbe carino che questa logica venga espansa a livello globale. E' sottonteso che quello di CLib non vuole essere un campione di quello che ho in mente, ma solo un'idea su una possibile implementazione, d'accordo con tutti gli amici di questo forum.

Che ne dite?

Potrebbe diventare un pezzo importante di/per Gambas, e magari portare più popolarità e prestigio a questo sito...

10
Linux / Sito utile per configurare varie distro Linux
« il: 12 Aprile 2011, 15:57:44 »
Era già da tempo che conoscevo questo sito, anche perchè qualsiasi tutorial è sempre andato a buon fine...

Questo è un sito giapponese (niente paura, è scritto anche in english, e c'è poco da tradurre), che offre dei tutorial perfettamente funzionati per configurare le distribuzioni Linux più conosciute. Più che tutorial vengono proprio descritti passo per passo, tutto quello che tocca fare e scrivere per attivare le varie funzionalità del sistema operativo (es. un web server, o un mail server).
Io le ho testate con Fedora è funzionano tutte, nessuna esclusa.
I passi da seguire sono anche corredati da immagini pratiche, meglio di così non si può.

Il link è questo:

http://www.server-world.info/en/

11
Progetti degli utenti / Clib - Libreria componenti per Gambas3
« il: 15 Marzo 2011, 23:12:56 »
Visto che in questo periodo m'ha preso del matto, ho iniziato a creare qualche componente, che ho pure pubblicato nel forum (vedi CTable e CDatabase).
A questo punto mi sono detto: "perchè non creare una sorta di libreria. ma non a livello di sorgenti da inserire nei progetti, ma che segue la logica di quelle che accompagnano Gambas?".
Tempo fà avevo iniziato a studiarmi la creazione dei componenti in Gambas2, ma poi per cause indipendenti da questo, avevo abbandonato.
Dopo aver seguito con attenzione i lavori fatti da Milio, e letto con altrettanta cura la documentazione sul wiki (sempre del nostro Milio), mi sono deciso a riprendere la cosa, e fare qualcosa di concreto.
Oltre a ciò, nel tempo avevo creato una serie di classi e utility, che alla fine ho reputato troppo dispersive, e ho pensato di concentrare il tutto in una libreria (o una serie di librerie), sotto lo stesso tetto.
Così è nata CLib...
Il nome non è stato proprio scelto pensando a qualcosa in particolare, ma solo perchè avevo iniziato a scrivere i sorgenti, prefissando le classi con il carattere "C".
Quello che è in allegato a questo post, è la prima versione della libreria che, in realtà è composta da una serie di file componenti, ma prefissati tutti con il nome di "gb.clib.*".
Ho pensato di separare le classi della libreria in file separati, rendendo la cosa un pò più leggera. Nelle applicazioni si può così selezionare le sole librerie necessarie.
Sempre in allegato ho aggiunto un tar, contenente alcuni esempi significativi, che poi ho usato proprio per i test della libreria.
Il file compresso della libreria contiene i soli file di libreria, e i file necessari all'ambiente ide di gambas, di identificarli e popolare (se è il caso) le toolbar degli oggetti grafici. Alla toolbar, una volta aggiunto un componente della CLib, si aggiungerà un'altra scheda, nominata CLIB, dove verranno posizionati tutti gli oggetti grafici componenti la libreria.

Oltre a questo, stavo pensando che se qualcuno avesse ulteriori idee di nuovi componenti da aggiungere alla libreria, sarebbe una bella cosa. Anche se solo a livello di idea, potrebbe essere interessante per qualcuno implementarla e aggiungerla alla medesima libreria (me stesso compreso).

Sulla base dell'esperienza acquisita, cercherò di implementare questa libreria aggiungendo componenti già fatti, opportunamente aggiustati per lo scopo. Questo lo stò già attuando, estrapolando pezzi di codice da pgDesigner e altre cose che ho fatto (vedi CDatabase).

Per finire, e sempre nel file compresso della libreria, trovere uno script che ho opportunamente creato per installare i componenti, secondo lo schema imposta da Gambas. Devo però avvertire che lo script è stato testato su Fedora, per cui se qualcuno trova problemi con la sua distribuzione, me lo faccia sapere, e cercheremo di aggiustarlo in mod da renderlo funzionante su tutte le distribuzioni Linux. Dal canto mio, stò mettendo in piedi qualche ambiente virtuale per fare io stesso dei test.

L'installazione è relativamente semplice, è sufficiente scaricare il file compresso e decomprimerlo in una cartella temporanea. Dopo di che, si deve eseguire lo script "clib-install.sh" come utente root (per gli ubuntiani usare ovviamente sudo). Lo script poi farà il resto, copiando i file nelle giuste cartelle di sistema.
NOTA BENE: dsato che, come ho accennato pocanzi, lo script è stato testato solo su Fedora, sarebbe bene dargli un'occhiata, evidenziando le directory su cui lavora e, magari segnalandomi in anticipo eventuali discordanze. In realtà, se lo script non trova le directory giuste dovrebbe non fare nulla, e emettere solo errori. COmunque è bene dargli un'occhiata prima. Tenete presente che non mi assumo responsabilità su eventuali casini...  ;D

Aspetto le vostre critiche e impressioni, oltre che suggerimenti...  :ciao:

12
Progetti degli utenti / Classe CDatabase
« il: 07 Marzo 2011, 21:56:10 »
Una nuova libreria, non legata a CTable, ma presto ne creeò una che collega le due.

La nuova libreria l'ho intitolata CDatabase, e contiene alcune classi per la gestione di database (SQLite, PostgreSQL e MySQL).
Le classi sono derivate da quelle utilizzate in pgDesigner, opportunamente ripulite e rese più dinamiche.

Lo scopo è quello di creare uno strato software, che funga da collegamento tra un database (e le sue funzioni) e l'applicazione. A differenza dagli oggetti che fornisce Gambas, le classi contenute in questa libreria non sono utilizzabili esclusivamente e direttamente con il database, e permettono di gestire le informazioni anche a database chiuso.

Nella lista seguente, l'elenco delle classi:

CDBConnectionGestione della connessione. Utilizza l'oggetto Connection di Gambas, ma apre ogni volta una connessione per ogni query.
CDBErrorOggetto Error della libreria. Mantiene le informazioni circa gli errori.
CDBFieldClasse per le informazioni di uno specifico campo di tabella.
CDBLoginClasse dati di login. Il passaggio delle informazioni di connessione tra i vari oggetti della libreria viene effettuato tramite questo oggetti.
CDBRecordClasse dati di un record. Mantiene e gestisce i dati di un singolo record.
CDBResultClasse dati result. Mantiene e gestisce i record.
CDBDriverClasse padre di tutte le seguenti sottoclassi. Definisce i metodi per l'interrogazione di un database (liste oggetti, oppure informazioni dettagliate sulla struttura di una tabella, e via dicendo...
CDBMySQLDriver
CDBPostgreSQLDriver
CDBSQLiteDriver
Classi base per i driver relativi ai vari database gestiti dalla libreria.
CDBMySQL<x>DriverDriver per MySQL versione <x> (per ora solo la 5.0).
CDBPostgreSQL<x>DriverDriver per PostgreSQL versione <x> (dalla 7.0 fino alla 9.0).
CDBSQLite<x>DriverDriver per SQLite versione <x> (dalla 2.x fino alla 3.x). E' da tener presente che l'uso di queste librerie dipende dalla presenza del relativo motore nel sistema.

Nel file compresso ho inserito anche qualche esempio (grafico e non), con cui fare delle prove.

Notare che, come per CTable, la libreria è stata creata su Gambas3, ma molto probabilmente funziona anche su Gambas2, dato che non ho usato funzionalità specifiche della nuova versione.

Fatemi sapere le vostre impressioni.

Bye da MDczfv...  :P

13
Progetti degli utenti / Classe CTable
« il: 21 Febbraio 2011, 23:37:23 »
Un salutone e un abbraccio a tutti.
Mi dispiace che non sono con voi da un bel pò di tempo, e ho anche notato che qualcuno mi ha pure cercato anche in altre bande.
Purtroppo la situazione non mi permette di avere molto tempo da dedicare al diletto ma, ad ogni modo, quel pochino che riesco a racimolare, penso sempre a questa banda di matti...  ;D

Comunque, e sempre sperando di poter ritornare a pieno regime, e come accennato, ho utilizzato qualche oretta la notte per scrivere qualcosina.

In allegato ho messo i sorgenti di una serie di classi e, in particolare, ho voluto riscrivere la classe TableView in modo da espanderne le sue potenzialità, particolarmente in fase di editing.
Preso spunto da qualche studio fatto in Java, ho riscritto la classe TableView, aggiungendo la possibilità di gestire più tipologie di dato, sia in fase di editing, sia in fase di rendering.
La cosa un pochino fastidiosa su cui ho penato un pochino è stata l'utilizzo in Gambas di alcune classi statiche non modificabile, quelle che nella documentazione iniziano con un punto, come appunto esistono nella GridView (che è una classe scritta in C++).
Dato che non volevo mettere le mani sui sorgenti in C++, oltre anche a motivi puramente didattici, ho preso i sorgenti di TableView e l'ho riscritta, utilizzando come base la classe UserControl.
Ad ogni modo, ho riscritto questa classe in modo da poter gestire graficamente più tipologie di dato, diversamente da quanto impostato nella classe originale TableView, aggiungendo vari ComboBox, ButtonBox, CheckBox, CurrencyBox, DateBox, DateTimeBox, IPAddressBox, MaskBox, NumberBox, PercentBox, SpinBox, TextBox e TimeBox. Oggetti che di norma si mettono in una form, e che possono essere sicuramente utili gestiti anche in una griglia di dati.
Molti dei componenti che ho menzionato sono stati da me creati, alcuni riscrivendo oggetti già presenti in Gambas, ecc.
Per poter gestire le classi nascoste, sono dovuto ricorrere a sistemi articolati, creando opportuni oggetti e gestendone gli eventi alla modifica di una qualsiasi loro proprietà. Questo mi ha permesso di gestire in modo dinamico le classi nascoste (es. ".GridViewData").

Sia il rendering (ovvero la presentazione del dato nella griglia), sia l'editing, vengono gestiti da opportune classi manipolate a livello di programmazione. Da queste è anche possibile derivarne di ulteriori aggiungendo ulteriori caratteristiche. La classe madre CTable gestirà le cose per voi, ma senza sapere cosa accade nelle sottoclassi.

Prima di procedere nella creazione della tabella (o griglia), è necessario creare una serie di colonne (a vostra discrezione) utilizzando per ognuna la classe CTableColumn e aggiungerle alla CTable attraverso le funzioni preposte. Per ogni colonna ho inserito anche la possibilità di renderla visibile o meno, questo perchè l'array dei dati potrebbe avere dei campi che devono essere mantenuti nascosti. Altre caratteristiche sono prese dalle proprietà .GridViewColumns e .GridViewColumn.
Ho anche aggiunto la funzione di sorting su singola colonna, che tiene conto del tipo e cerca di ottimizzare la procedura di sort.

Una volta definite le colonne, per visualizzare una rappresentazione dei vostri dati, basta passare a CTable un array di tipo Variant[] (righe), e in ogni elemento un'altro array di Variant[] (colonne).

Comunque, nel file compresso è presente anche una form di esempio. Non è proprio completa, ma dà un'idea delle funzionalità.

Nota per l'esperto di creazione classi di esportazioni (sapete chi...  :D ):
Nonostante abbia gestito le cose per poter creare classi esportabili, ho qualche problema nel caricarle come librerie esterne di altri progetti. Se hai tempo, magari gli dai un'occhiata, e vedi dove sbaglio.

NOTA IMPORTANTE!!!
La libreria è stata creata utilizzando Gambas3 e, nonostante i vari checkout dal repository, non mi ha dato problemi con le librerie, ma sicuramente ha altri problemi che spero risolvano. Devo dire che è migliorato in qualche cosina, specialmente riguardo lo sviluppo di applicazioni, ma di cose da fare ce ne sono... ;)

Ragazzi! Un salutone a tutti.

Citazione
[se volete scrivetemi direttamente alla mia mail, quella la leggo costantemente...]

14
Fedora e derivate / Repository Fedora fermi a 2.20.2
« il: 19 Novembre 2010, 15:08:53 »
E' strano, di solito i repository ufficiali di Fedora, dopo qualche settimana, hanno sempre aggiornato la versione di Gambas, ma ora si sono fermati alla 2.20.2 (la precedente...).
Le cose sono tre:
1) si sono dimenticati del progetto (che a suo tempo seguivo io come distributore privato)
2) la versione 2.21 non la considerano stabile...
3) stanno attendendo il nuovo Gambas3

E' vero, di solito stanno molto attenti a non inserire versioni non considerate vere stabili, ma ormai mi sembra passato abbastanza tempo...
Tenendo pure conto che sono ancora disponibili gli ultimi RPM di Gambas1...

Reputo impossibile che si siano dimenticati del progetto, a meno che non l'abbiano proprio escluso (ma nei repos c'è!), e reputo altrettanto inversomile che l'attesa del nuovo Gambas3 blocchi gli aggiornamenti delle precedenti release...


15
Progetti degli utenti / ProjectScan - Creatore report stato progetto
« il: 29 Settembre 2010, 14:20:05 »
Ciao a todos!!!

Dato che a me serviva un qualcosa per poter analizzare a livello sintetico lo stato dei miei progetti, ho creato questo piccolo programmino.

ProjectScan è una piccola applicazione, a riga di comando, che genera un file di testo, con lo stato attuale di un determinato progetto:

- Parametri applicazione
- Lista dei file (moduli, classi, form), in ordine alfabetico, con relativa dimensione e data di ultima modifica
- Per ogni modulo e classe, presenta un elenco delle proprietà, variabili e metodi, separati per tipologia e ordinati alfabeticamente

Usarlo è molto semplice, basta copiare l'eseguibile nella directory del progetto da analizzare, oppure lanciare ProjectScan seguito dal path del progetto.
ProjectScan genera in pochi secondi un file di testo, nominato "project_scan.txt", nella stessa directory da cui si è lanciato il programmino.

Spero dia utile anche a voi.

Al momento metto in allegato solamente l'eseguibile, se qualcuno è interessato anche ai sorgenti, basta farmi un fischio...  :D

Bye

Pagine: [1] 2 3