* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Ottobre 12, 2024, 03:30:47 am

Inserisci il nome utente, la password e la durata della sessione.

93 Visitatori, 0 Utenti

Autore Topic: un blog?  (Letto 26733 volte)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1347
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:un blog?
« Risposta #75 il: Aprile 11, 2023, 10:29:55 am »
Aggiornato il blog INSTALLARE LAZARUS SU WINDOWS con i link ai nuovi pacchetti di installazione (Lazarus 2.2.6 / FPC 3.2.2).

Aggiornato anche "Installazione di Lazarus in Linux – Risoluzione problemi" sempre con l'aggiornamento dei link e l'aggiornamento del repository privato remoto (usato dal curl).

Ciao ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

tito_livio

  • Full Member
  • ***
  • Post: 161
  • Karma: +4/-0
Re:un blog?
« Risposta #76 il: Aprile 12, 2023, 07:58:52 pm »
Grazie per il lavoro

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3263
  • Karma: +12/-0
Re:un blog?
« Risposta #77 il: Maggio 18, 2023, 11:22:41 am »
Volevo avvisare tutti che ho realizzato una mini guida su come implementare un'applicazione con web server embedded con il protocollo HTTPS attivo.

https://blog.lazaruspascal.it/2023/05/18/creare-un-web-server-https/
Ieri è passato, domani è futuro, oggi è un dono...

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1347
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:un blog?
« Risposta #78 il: Maggio 18, 2023, 12:19:30 pm »
Bello, e solo con i componenti di FPC  ;D

Per le librerie SSL, ti indirizzerei qui: https://github.com/IndySockets/OpenSSL-Binaries

E' il repository di Indy, sono testate e funzionanti.

La 1.0.2u è l'ultima versione della release 1.0, supporta fino a TLS 1.2

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3263
  • Karma: +12/-0
Re:un blog?
« Risposta #79 il: Maggio 18, 2023, 01:09:21 pm »
Bello, e solo con i componenti di FPC  ;D

Per le librerie SSL, ti indirizzerei qui: https://github.com/IndySockets/OpenSSL-Binaries

E' il repository di Indy, sono testate e funzionanti.

La 1.0.2u è l'ultima versione della release 1.0, supporta fino a TLS 1.2

Ciao

Grazie mille della segnalazione
EDIT: ho aggiornato l'articolo menzionando quanto da te espresso
« Ultima modifica: Maggio 18, 2023, 01:12:26 pm da xinyiman »
Ieri è passato, domani è futuro, oggi è un dono...

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1347
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:un blog?
« Risposta #80 il: Giugno 04, 2023, 12:59:46 am »
Ho inserito nel blog un articolo sui timing di Windows (sleep ad esempio) e come "migliorali".

https://blog.lazaruspascal.it/2023/06/03/risoluzione-del-timing-sotto-windows/

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1347
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:un blog?
« Risposta #81 il: Settembre 25, 2023, 08:15:00 pm »
Gli articoli riguardanti le interfacce sono stati inseriti anche nel Blog: https://blog.lazaruspascal.it/2023/09/25/interfacce-interface-parte-1/

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

Mimmo

  • Jr. Member
  • **
  • Post: 81
  • Karma: +3/-0
Re:un blog?
« Risposta #82 il: Settembre 26, 2023, 09:00:08 am »
Gli articoli riguardanti le interfacce sono stati inseriti anche nel Blog: https://blog.lazaruspascal.it/2023/09/25/interfacce-interface-parte-1/

Ciao

Ottimo lavoro, grazie!!
Un suggerimento per un ulteriore capitolo della serie: potrebbe essere interessante descrivere la modalità {$interfaces corba} di FPC.
Io la uso praticamente sempre e penso che porti la funzionalità delle interfacce in Lazarus/FPC una spanna sopra quella di Delphi, con un comportamento che è in linea con quello di tutti gli altri linguaggi di programmazione che implementano le interfacce.
Un'altra cosa, la butto li', probabilmente ci avrete già pensato ma ci sarà qualche vincolo tecnologico: sul blog non sarebbe possibile inserire il codice dentro un frame con una scrollbar orizzontale per evitare che il codice vengo visualizzato andando a capo? Così sarebbe più leggibile.
Ultima cosa: Nick Hodges non lavora più per Embarcadero da un bel po', credo sia caduto in disgrazia ai tempi in cui hanno poi deciso di affidare la direzione dello sviluppo di Delphi a Marco Cantù.

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1347
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:un blog?
« Risposta #83 il: Settembre 26, 2023, 09:41:40 am »
Un suggerimento per un ulteriore capitolo della serie: potrebbe essere interessante descrivere la modalità {$interfaces corba} di FPC.
Io la uso praticamente sempre e penso che porti la funzionalità delle interfacce in Lazarus/FPC una spanna sopra quella di Delphi, con un comportamento che è in linea con quello di tutti gli altri linguaggi di programmazione che implementano le interfacce.

Su suggerimento di @nomorelogic : https://castle-engine.io/modern_pascal#_interfaces

Rispetto al comportamento delle interfacce, mi pare (ma potrei sbagliare) che l'uso sia pressochè simile tra i vari ambienti (in Delphi in effetti più che le interfacce tendono ad implementare le interfacce basi e poi classi a go go).
Quello che cambia in FPC, e che invece dovrebbe essere assolutamente sviluppato, è il supporto alle RTTI e alle RTL.
Capisco che l'argomento sia complesso per via della universalità del "prodotto" (cioè deve girare sotto diversi SO), ma non vedo per quale motivo si debba "castrare" l'uso in Windows (o per certi versi anche negli altri SO) perchè il tutto deve essere "universale". E' sicuramente un problema legato alle risorse dedicate allo sviluppo.

Ultima cosa: Nick Hodges non lavora più per Embarcadero da un bel po', credo sia caduto in disgrazia ai tempi in cui hanno poi deciso di affidare la direzione dello sviluppo di Delphi a Marco Cantù.
Nick Hodges lasciò Embarcadero nel 2010 nel periodo del "rapido balletto" tra Borland / Inprise / Codgear / Embarcadero (2006 / 2008).

Poi è rientrato nel 2016 (dopo l'acquisto di Embarcadero da parte di Idera) al fianco di Cantù, almeno per quanto mi è dato sapere. Ha partecipato anche ai webinar su Delphi. Allo stato attuale non ho effettivamente informazioni su di lui.
Però Embarcadero ha fatto una importante campagna pubblicitaria sulle sue pubblicazioni (erano fornite anche gratis a chi partecipava ai Webinar).

Ciao

P.S.: a proposito, mi dimenticavo ... CORBA era il vecchissimo standard usato da Borland a partire da Delphi 4 se non sbaglio (io lo usai in Delphi 6 per alcuni progetti) ... poi abbandonato non ricordo neanche per quale motivo. Se non sbaglio CORBA era il principale motore per i database e un "clone" (mi si passi questo termine) della tecnologia COM. Poi quando Borland scelse DAO e definitivamente la tecnologia COM / DCOM, CORBA venne abbandonato.
« Ultima modifica: Settembre 26, 2023, 09:58:05 am da DragoRosso »
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2908
  • Karma: +20/-4
Re:un blog?
« Risposta #84 il: Settembre 26, 2023, 09:55:49 am »
Un suggerimento per un ulteriore capitolo della serie: potrebbe essere interessante descrivere la modalità {$interfaces corba} di FPC.
Io la uso praticamente sempre e penso che porti la funzionalità delle interfacce in Lazarus/FPC una spanna sopra quella di Delphi, con un comportamento che è in linea con quello di tutti gli altri linguaggi di programmazione che implementano le interfacce.

Su suggerimento di @nomorelogic : https://castle-engine.io/modern_pascal#_interfaces

Senza attivare quello switch le interfacce sono di tipo COM e, fondamentalmente, come già spiegato nei post di DragoRosso, hanno il reference counting.
Usando lo switch {$interfaces corba} non si ha a disposizione il reference counting (e di conseguenza il sistema automatico di liberazione delle risorse) ma si ha a disposizione la possibilità di definire interfacce ad un livello più astratto, simile all'ereditarietà multipla e utile per la definizione di API.

Con l'occasione segnalo il link completo: è una introduzione a quello che l'autore chiama "modern Object Pascal" che consiglio di leggere a tutti e dove c'è una sezione dedicata alle interfacce
https://castle-engine.io/modern_pascal
Imagination is more important than knowledge (A.Einstein)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1347
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:un blog?
« Risposta #85 il: Settembre 26, 2023, 10:39:25 am »
Senza attivare quello switch le interfacce sono di tipo COM e, fondamentalmente, come già spiegato nei post di DragoRosso, hanno il reference counting.
Usando lo switch {$interfaces corba} non si ha a disposizione il reference counting (e di conseguenza il sistema automatico di liberazione delle risorse) ma si ha a disposizione la possibilità di definire interfacce ad un livello più astratto, simile all'ereditarietà multipla e utile per la definizione di API.

Quello "Switch" è una scorciatoia comoda, ma di fatto è banale non usare lo switch e definire ogni "classe/interfaccia" voluta come "reference counting able" o no.

Basta definire un nuova classe base che implementi IInterface e i due metodi _AddRef  e _Release. In questo modo si ha la possibilità di usare una o l'altra a seconda delle esigenze.

Ritornando -1 nelle due funzioni, viene disattivato il reference counting.
Codice: [Seleziona]
//Definizione di per l'uso delle interfacce senza reference counting
type
  TInterfaceedObjectNoRFC = class(TInterfacedObject, IInterface)
    protected
      function _AddRef : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
      function _Release : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
  end;

implementation

function TInterfaceedObjectNoRFC._AddRef: longint; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
begin
  Result := -1;
end;
function TInterfaceedObjectNoRFC._Release: longint; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
begin
  Result := -1;
end;
Quando non si deve (... dovrebbe ...) usare il reference counting ? Quando la classe che io vado ad usare andrà implementata in Componenti che usano un approccio diverso al "lifetime" classico. In particolare tutto ciò che ha a che fare con i componenti standard di Windows (che sono derivati dalle DLL del SO).

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2908
  • Karma: +20/-4
Re:un blog?
« Risposta #86 il: Settembre 26, 2023, 11:06:54 am »
ognuno di noi ha il suo modo di interpretare la programmazione ovviamente :)

quello switch non è una scorciatoia ma un modo diverso di intendere le interfacce e, dal mio punto di vista, _AddRef e _Release (se ne parla anche nel link tra l'altro) non è detto che siano indispensabili: sono delle possibilità

quindi le funzionalità a disposizione in uno strumento di sviluppo, è corretto che vengano elencate completamente
poi sta ad ogni sviluppatore vederci e farci quello che vuole :)
Imagination is more important than knowledge (A.Einstein)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1347
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:un blog?
« Risposta #87 il: Settembre 26, 2023, 11:33:14 am »
ognuno di noi ha il suo modo di interpretare la programmazione ovviamente :)
quello switch non è una scorciatoia ma un modo diverso di intendere le interfacce e, dal mio punto di vista, _AddRef e _Release (se ne parla anche nel link tra l'altro) non è detto che siano indispensabili: sono delle possibilità
quindi le funzionalità a disposizione in uno strumento di sviluppo, è corretto che vengano elencate completamente
poi sta ad ogni sviluppatore vederci e farci quello che vuole :)
Si, si, non volevo polemizzare assolutamente. La mia intenzione era fornire un'altra vista "standardizzata" per l'argomento "reference counting". Ovvio che siamo fortunatamente in un mondo libero (magari non proprio tutto  ::) ) e ognuno come sottolinei tu fa ciò ritiene opportuno.

Sinceramente ho letto l'articolo in maniera superficiale e distratta, ma mi impegnerò a leggerlo meglio (quando ho visto "corba" mi sono venuti in mente i vecchi tempi con un "rigurgito" di Commodore 64  ;D ;D ).

Purtroppo è un mio difetto cercare di standardizzare le cose, o meglio sicuramente costruire qualcosa di "nuovo" mantenendo la compatibilità per quanto possibile con gli standard più o meno definiti. In questo modo mi sono sempre trovato più che bene e nel corso del tempo ciò ha giovato non poco.

Va bhè, sono già abbastanza OT rispetto l'argomento ...

Ciao, alla prossima  ;) :)
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2908
  • Karma: +20/-4
Re:un blog?
« Risposta #88 il: Settembre 26, 2023, 12:21:48 pm »
su mondo libero... ho qualche dubbio anche io :D

cmq volevo solo sottolineare che abbiamo uno strumento che va ben oltre quello che ci siamo abituati ad usare
scrivere codice mantenendo il più possibile la compatibilità con quegli standard che si è voluto adottare è vitale e lo faccio anche io

è che io non amo il reference counting  ::) apparterrò una minoranza, non so, è per questo che volevo ricordare che ci sono cmq altre vie :)

si, ora basta con OT
Imagination is more important than knowledge (A.Einstein)

Mimmo

  • Jr. Member
  • **
  • Post: 81
  • Karma: +3/-0
Re:un blog?
« Risposta #89 il: Settembre 26, 2023, 02:35:29 pm »
Aggiungo solo i miei 2 penny: anni fa nella ditta dove lavoravo implementammo un sistema per costruire ipercubi per fare analisi dei dati. Senza entrare nel dettaglio, partimmo con le nostre belle interfacce per poi ritrovarci in un casino. E' vero che, per trafficare con maree di dati, facevamo anche cose un po' arzigogolate ma lì il reference counting ci costrinse a riscrivere tutto senza interfacce. Avessimo usato fpc ai tempi!  ;D
Scherzo ovviamente ma comunque ora apprezzo molto la pulizia dell'approccio tradizionale. La keyword corba è un po' infelice, le interfacce con quella direttiva sono in realtà alla-java. Ormai corba è un fantasma del passato... e per fortuna...


 

Recenti

How To

Utenti
Stats
  • Post in totale: 19035
  • Topic in totale: 2270
  • Online Today: 100
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 93
Total: 93

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.