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 - Mario

Pagine: [1] 2
1
OpenBar / [Romanzo] Dove la notte inizia
« il: 31 Maggio 2010, 15:01:39 »
Ciao a tutti,

visto che sono stato sollecitato a scrivere qualcosa per non essere "scancellato" dal forum, ne approfitto per fare due cose.
La prima è di scusarmi, ma sinceramente sto passando un periodo di intensissimo lavoro, per fortuna, per cui ho lasciato un po' il nostro amico gamberetto. Ma è solo temporaneo :)

Il secondo è che tra i vari impegni (oltre a lavoro e musica) adesso sono diventato anche scrittore :)
La "Spoon River" ha pubblicato nella serie "Dark Side" un mio romanzo, dal titolo "Dove la notte inizia", che sta ottenendo un discreto successo.
Ovviamente essendo un'opera prima di un autore invisibile, devo fare pubblicità, per cui mi scuso se vado contro qualche regola del forum pubblicizzando un prodotto da acquistare (ma costa poco!:D).
Insomma, se non sapete cosa leggere nelle vacanze, potete pensare di leggere il mio lavoro, così dopo avrete la irripetibile occasione di elogiare (o insultare) l'Autore in persona! :D

2
Programmazione (Gambas 2) / Ancora su Midi e Musica
« il: 14 Gennaio 2009, 08:05:45 »
Ciao a tutti e buon anno, visto che non vi ho ancora fatto gli auguri! :-)

Tempo fa avevo cominciato a interessarmi di Midi, e avevo trovato diverse risposte in giro per la rete.
Ora però vorrei approfondire una cosa per la quale non so veramente da dove cominciare.
Mi piacerebbe realizzare un programma che esegua i file midi: come sapete nella gestione attiva di un file Midi è molto importante la tempistica del brano. Posso avere un pezzo che "va" a 120 battute al minuto, a 80, a 150 eccetera. Questo vuole dire, nel caso del 120 bpm, che ogni 0,5 secondi c'è un quarto di misura, che ogni 0,25 c'è un ottavo, eccetera.
Mi chiedo come è possibile, all'interno di un programma, stabilire "quando" inviare il segnale midi della nota da suonare ai vari strumenti. E in che modo sincronizzare gli invii in modo che siano "coerenti" con il brano.

So che esiste l'oggetto timer, ma non so se è possibile usarlo per una cosa del genere.

Insomma, sono un po' confuso: come posso impostare un programma del genere?
O, almeno, come lo impostereste voi? :)

3
Programmazione (Gambas 2) / Utilizzo diretto di SQL
« il: 16 Ottobre 2008, 12:43:11 »
Ehilà!
Tutto bene? :)

Una cosa che non riesco a far funzionare (probabile problema di AMD64...) è l'ODBC verso gli AS/400 all'interno di Gambas.
Trafficando però ho visto che i comandi SQL dati in isql funzionano normalmente, per cui mi sorge la domanda: è possibile utilizzare chiamate dirette a SQL dentro Gambas, evitando l'uso diretto dell'ODBC?

:)

Ciau

Mario

4
Programmazione (Gambas 2) / Questione di stile
« il: 13 Settembre 2008, 18:07:14 »
Ciao a tutti :)

Una delle ultime cose che si imparano, quando si decide di studiare un linguaggio, è "lo stile" con cui immettere le specifiche. Purtroppo ho vissuto dei drammi esistenziali quando ho dovuto mettere mano a programmi scritti da colleghi senza un minimo di stile, e questo sarebbe il meno, ma anche senza nessun commento!
Sfilze di istruzioni una dietro l'altra senza che si capisca quando inizia un blocco e quando finisce.

Memore di questo cerco di scrivere codice con un minimo di criterio, inserendo commenti dove mi sembrano necessari, e indentando le istruzioni nidificate.
Ma è sufficiente?
Probabilmente no. C'è anche da fare i conti con i nomi dei campi e delle funzioni.
Sul mio sistema preferito (l'AS/400), fino all'RPGIII i nomi dei campi non potevano superare i sei caratteri (avete letto bene: 6 caratteri!!) e questo causava dei salti mortali per riuscire a dare un nome decente alle variabili.
Ecco per esempio che un campo che doveva contenere l'Imponibile Iva poteva essere IMPNIV, e l'importo iva invece era IMPIVA. Ma come chiamare un campo che conteneva il totale degli importi esenti? TOIMES? E vi pare chiaro?
Ovviamente in Gambas un campo del genere potrebbe essere scritto "a gobba di dromedario", TotaleImportiEsenti, tanto per dire, diventando autoesplicativo, quindi senza necessità di commenti.
E la funzione che calcola il totale degli importi esenti potrebbe essere CalcolaTotaleImportiEsenti()... Autoesplicativo, ma sembra quasi un romanzo :)

Insomma, lo stile in un programma ha una sua precisa importanza.
Voi come affrontate il "problema", se così si può chiamare, della "calligrafia" di un codice?

5
Domande tecniche (Gambas 2) / Gestione journal in fase di prova
« il: 11 Settembre 2008, 15:22:46 »
Ehilà!

Ho un dubbietto :)

Sto facendo un progettino che lavora su un DB Sqlite.
Ho verificato che il programma effettua correttamente tutti gli aggiornamenti facendo il test. Quando esco dall'applicazione sembra che le modifiche vengano perdute.
E' possibile che in fase di test l'ambiente di sviluppo mi faccia un rollback quando esco?

Grazie :)

6
Domande tecniche (Gambas 2) / Utilizzo di librerie esterne
« il: 07 Settembre 2008, 14:14:04 »
Ehilà! :)

Qualche tempo fa ho fatto una domanda sulle API, e la risposta è arrivata subito: grazie!

Adesso ho un altro dubbio: va bene il modo per importare una API (o libreria esterna o DLL, chiamatela come vi pare, credo che il concetto sia sempre simile), ma esiste una possibilità all'interno di Gambas per vedere quali sono i comandi veri e propri presenti nella libreria?
Immagino che la documentazione su Internet sia importante e forse preferibile, ma mi chiedevo se in Gambas fosse presente una specie di analizzatore o un explorer di oggetti esterni.

Ciao e grazie, come sempre

Mario

7
Domande tecniche (Gambas 2) / Una domanda sugli oggetti
« il: 23 Agosto 2008, 18:20:53 »
Ehilà! Ben tornati dalle vacanze!!

Mentre me ne stavo con le pal... ehm, con i piedi a mollo nel Golfo dell'Asinara, riflettevo e facevo delle prove sul mio fido portatile per vedere se riesco a capire meglio l'uso degli oggetti.
Mi sono venuti diversi dubbi, ma uno in particolare mi ha dato da pensare parecchio e non sono riuscito a darmi una risposta.

Sto realizzando un progettino per la gestione della fatturazione (sono libero professionista) che mi permetta anche di capire come funziona il nostro Gambas.
Non conoscendo la programmazione OO l'ho fatto in maniera, diciamo così, tradizionale. Poi ho deciso di fare un nuovo progetto dove invece vorrei utilizzare le funzioni degli oggetti.
Uno di questi oggetti potrebbe essere, per esempio, la classe dei Clienti, che possiamo chiamare clsCliente.
Ho visto che quando si creano nuove proprietà (che direi che possiamo assimilare ai campi di un record), si creano automaticamente delle funzioni GET e SET, che servono per leggere o modificare ogni proprietà.
Molto bello, ma mi ha fatto venire questo dubbio: io ho i dati del mio cliente su un record che si trova in un file (oppure i dati verranno prima o poi scritti su tale record), in che modo devo leggerli da tale file?
Mi spiego meglio, perché detta così non si capisce: quando scrivo il codice per la funzione GET del campo RagioneSociale, tanto per dire, devo fare in modo che mi venga recuperato il record e mi venga letto il campo? E la stessa cosa devo fare con il SET?
Perché mi dà l'impressione che in questo modo la cosa diventi molto ma molto pesante da eseguire, no?

La risposta che mi sono dato, ma che non mi convince del tutto, è una cosa come questa: quando creo la funzione (non si chiama funzione, ma non ricordo come si chiama... forse metodo?) che CREA una nuova istanza del nostro codice, posso accettare un parametro di input che potrebbe essere, tanto per dire, il codice del cliente. A questo punto, vado sul DB e se il codice esiste popolo tutti i campi con i valori che mi interessano, pronti da essere forniti con il nostro GET, altrimenti creo un record vuoto e inizializzo tutti i campi a zero (o a blank o a quello che serve, insomma...)
E' così che si dovrebbe fare?
A me non sembra male, anche perché a questo punto anche i metodi come SEARCH oppure SearchByName, che permetta di ricercare un codice attraverso la ragione sociale, avrebbero decisamente un senso, no?

Ho provato a guardare qualche esempio che contenga delle classi, ma sinceramente sono troppo "avanzati" per il mio livello di conoscenza :)

Come sempre, grazie per l'attenzione e per l'aiuto :)

8
Programmazione (Gambas 2) / Gambas e MIDI
« il: 21 Luglio 2008, 10:04:30 »
Ciao a tutti

Ogni tanto mi tornano in mente idee sulle quali avrei sempre voluto lavorare, ma che ho dovuto lasciare in un angolo per mancanza dello strumento giusto.

Come forse ho accennato io suono le tastiere in un gruppo, e mi piacerebbe sfruttare Gambas per costruirmi uno strumento di controllo delle tastiere fatto in un certo modo.
So che nel mondo Windows c'è un programma di cui non ricordo il nome, che permette di impostare delle stringhe di comando da inviare ai vari strumenti, di costruire un setup di strumentazione e di controllare le varie periferiche MIDI in base alle loro caratteristiche.
Intendiamoci, so benissimo che è un lavorone, ma mi piacerebbe almeno cominciare a pensarci su...
Ad esempio immagino che la gestione cambi (e di parecchio) se l'interfaccia midi è su porta USB piuttosto che integrata (la famosa porta joystick dei desktop...), però immagino che, una volta superato il problema interfaccia, il dialogo sia più o meno simile in ogni caso.

Io credo che il mio obiettivo principale sia piuttosto semplice: uso tre apparati midi (quattro se contiamo anche la batteria elettronica). Vorrei fare in modo che richiamando un determinato setup (che potrebbe essere il nome del brano da eseguire), il programma mandasse alle enne apparecchiature una serie di segnali per impostare il suono da eseguire, la velocità di clock se necessario, e magari anche cose aggiuntive come il volume e altro...
Quindi, per ora almeno, non pretendo di inviare stringhe complesse con i brani da eseguire (anche se mi piacerebbe... :-) )
Altra cosa interessante sarebbe di impostare il progetto come una specie di data base dei comandi: ogni apparato ha codici diversi per fare cose simili, quindi sarebbe bello poter memorizzare la sequenza di comandi per ogni apparato con un apposito editor di sequenze, assegnando un nome generico (come "cambia banco", "imposta velocità" e simili), impostare per ogni apparato un diverso canale midi e poi costruire il tutto in modo molto semplice, una cosa del tipo "canale 1, banco 2, preset 5; canale 2, banco 3 preset 8" o, ancora meglio, "fantom, fiati, ottoni; fb01, strings, violino solo"...
Ovvio che ogni strumento cambia, ma ci sono i manuali apposta ;-)

Qualcuno di voi conosce un sito dove reperire informazioni sulla struttura "esatta" dei comandi midi?
Su internet non ho trovato molto...

9
Programmazione (Gambas 2) / Debug di un programma
« il: 10 Luglio 2008, 15:15:41 »
Ehilà :-)

Ho un nuovo problemino.
Come ho detto altrove, finalmente sono riuscito a far funzionare la versione per Linux dell'ODBC per i sistemi iSeries.
Quando utilizzo l'utility "isql" riesco a connettermi e a interrogare velocemente i dati del sistema centrale (ho provato su diversi sistemi con diverse release e tutte sono Ok).
Ho preparato un programmino per fare delle prove, e dentro ci ho messo una cosa come questa
Codice: [Seleziona]

  db = NEW Connection
 
  'Collegamento all AS/400
  WITH db
    .Type = "odbc"
    .Host = iSeries
    .Login = User
    .Password = Pwd
  END WITH
 
  db.Open

e fin qui tutto bene.

Il problema è che in un altro punto del programma faccio questo
Codice: [Seleziona]

  sql = "select CDCLI, RASCL from ACGXDATV2.ANCL200F order by Rascl"
  dati = db.Exec(sql)

e quando va in esecuzione la seconda riga, mi va in errore generico (#11).
Ovviamente non pretendo che qualcuno mi dica "cosa" non funziona, ma vorrei sapere se esiste il modo per vedere cosa è successo dietro le quinte :-)

Grazie

10
Programmazione (Gambas 2) / Leggere Evolution
« il: 10 Luglio 2008, 09:25:15 »
Ehilà, sono sempre io! :-)

Domanda veloce: per il mio progettino di gestione interventi vorrei fare un modulino dove leggere i dati presenti nel calendario di Evolution per importare semi-automaticamente gli interventi fatti presso i vari clienti.
Ho girellato ma non ho trovato nulla di specifico: come posso fare?

Grazie a tutti

11
Altri linguaggi / Logica degli oggetti
« il: 09 Luglio 2008, 18:25:27 »
Ciao a tutti

Io provengo dalla programmazione basata sui cicli, e sono già parecchio lontano dalla logica della programmazione basata sugli eventi.
Un altra grossa differenza tra quello che faccio io quotidianamente (programmare in RPG) e Gambas, è l'utilizzo degli oggetti, delle classi e di tutto quello che gira intorno a un linguaggio Object Oriented.

So che faccio una domanda difficile, e non mi aspetto una risposta completa, ma qualche indicazione sì :-)
La domanda potrebbe essere "A cosa servono gli oggetti?", ma sarebbe troppo generica. Forse è meglio "Si può programmare in Gambas, e in altri linguaggi OO, senza usare gli oggetti e le classi?"
E ancora: "A cosa possono servire in un caso pratico le classi?"
E ultima: "Esiste un 'modo' migliore per usare le classi?"

Grazie a tutti, e fate i bravi :-)

12
Domande tecniche (Gambas 2) / Utilizzo di API
« il: 04 Luglio 2008, 19:42:04 »
Ehilà!

Ogni giorno mi vengono delle domande, portate pazienza :-)

Immagino sia possibile in Gambas utilizzare API esterne, sviluppate ad hoc per certe operazioni, ma come si fa?
Mi riferisco a librerie come le .dll di Windows o le .so di Linux

(forse è un argomento un po' avanzato... :-) )

13
Programmazione (Gambas 2) / problema importi con Sqlite
« il: 02 Luglio 2008, 15:45:30 »
Ciao.

Ho "spostato" la gestione del mio progetto per imparare Gambas da MySql e Sqlite, e la cosa pare funzionare abbastanza bene.
Ho solo uno strano problema con un archivio: contiene due campi numerici vicini, uno intero e l'altro con decimali. Quando eseguo un sql con copia dei dati nel secondo campo (quello coi decimali) compare il valore contenuto nell'altro campo, mentre quest'ultimo rimane correttamente valorizzato.
E' un problema legato alla virgola?
Altra cosa: che voi sappiate è possibile spostare i campi all'interno del record?

Per quanto riguarda i campi date, ho deciso di mantenere nel file il formato "aaaa-mm-gg", che mi permette di lavorare con funzioni di estrazione data anche all'interno dell'SQL. E funziona decisamente bene :-)

14
Programmazione (Gambas 2) / Socket e AS/400
« il: 01 Luglio 2008, 09:46:42 »
Salve a tutti :-)

Tempo fa ho fatto un programma di comunicazione tra iSeries che utilizza i socket. Ci ho messo un po' ma questo mi ha permesso di capire la logica di funzionamento.
Ora vorrei fare una cosa simile partendo da Gambas per leggere e scrivere su un socket di un AS/400, ma ho le idee un po' confuse.
Ho provato a guardare gli esempi che ci sono nel forum, ma non mi è chiara la funzione di base.
In pratica: come avvio il collegamento? Se il collegamento richiede autenticazione, come faccio a farla? E come faccio ad eseguire l'input/output sul socket?

In pratica non so NIENTE!! :-D

Nello specifico, vorrei provare a fare un programma di emulazione terminale 5250, in modo da comprendere anche la logica di questo protocollo, ancora molto usato nei sistemi AS/400.

Grazie a tutti :-)

15
Domande tecniche (Gambas 2) / Problemi in reinstallazione
« il: 28 Giugno 2008, 20:38:17 »
Ciao a tutti

Poiché da qualche tempo avevo dei problemi con il mio portatile, ho deciso di fare una bella pulizia e ho reinstallato Ubuntu 8.04 da zero, lasciando le partizioni NTFS che uso per i dati (in comunq con windows).
Tutto abbastanza bene, tranne i soliti pasticcetti, ma uno in particolare mi sta facendo girare le scatole: ho rifatto la procedura di compilazione e installazione di gambas 2.6, l'ultima disponibile, e non c'è verso!
Continua a dirmi che manca il gb.desktop e quindi non avvia nulla.
Io ho un AMD64, ma prima del reset andava tutto bene.
Ho cercato nei post e ho trovato l'elenco dei moduli da installare per configurare tutto: ho messo quasi tutto, tranne quelli di qt perché non mi servono. Non è che sono proprio quelli che mancano a darmi problemi?

Datemi un'idea, pliiiis! :-)

Pagine: [1] 2