<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11340494</id><updated>2012-02-02T10:37:14.388-08:00</updated><category term='C#'/><category term='Lettura'/><category term='Porta Seriale'/><category term='Netbeans'/><category term='compilato'/><category term='Access'/><category term='DB2'/><category term='Delphi'/><category term='script'/><category term='COM'/><category term='getConnection'/><category term='Java'/><category term='AS400'/><category term='oracle'/><category term='JDBC'/><title type='text'>Sviluppo e Sviluppi</title><subtitle type='html'>Esperienze nel mondo IT</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default?start-index=101&amp;max-results=100'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>124</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11340494.post-2018294226645358105</id><published>2012-02-01T06:46:00.000-08:00</published><updated>2012-02-01T06:48:57.638-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JDBC'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Accesso via JDBC ad Oracle 8</title><content type='html'>Dopo un po' di patimento sono riuscito a connettermi ad un DB Oracle versione 8.0.5 via Netbeans.&lt;br /&gt;&lt;br /&gt;Per far ciò ho scaricato dal sito di Oracle il driver ojdbc14.jar; infatti con le versioni più recenti (5 e 6) la connessione non era possibile. La modalità usata è Oracle Thin.&lt;br /&gt;&lt;br /&gt;Tra l'altro il deploy dell'applicazione è molto semplice non richiedendo il client Oracle installato.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-2018294226645358105?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/2018294226645358105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=2018294226645358105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/2018294226645358105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/2018294226645358105'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2012/02/accesso-via-jdbc-ad-oracle-8.html' title='Accesso via JDBC ad Oracle 8'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-3631553076391331183</id><published>2011-08-12T05:01:00.001-07:00</published><updated>2011-08-12T05:02:13.786-07:00</updated><title type='text'>NAT32</title><content type='html'>&lt;h1&gt;&lt;a href="http://www.nat32.com/"&gt;NAT32 Windows Software Router&lt;/a&gt;&lt;/h1&gt;Da tenere presente&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-3631553076391331183?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/3631553076391331183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=3631553076391331183' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/3631553076391331183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/3631553076391331183'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2011/08/nat32.html' title='NAT32'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-9029440172007748563</id><published>2011-07-15T06:20:00.000-07:00</published><updated>2011-07-15T06:27:33.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DB2'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='JDBC'/><category scheme='http://www.blogger.com/atom/ns#' term='getConnection'/><category scheme='http://www.blogger.com/atom/ns#' term='AS400'/><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans'/><title type='text'>Problema accesso ad AS/400 via JDBC</title><content type='html'>Il metodo&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;DriverManager.getConnection&lt;/span&gt; richiamato da un programma Console funziona correttamente e recupera la connessione.&lt;br /&gt;Lo stesso codice inserito in una azione in Netbeans all'interno di una desktop application SWING ritorna null e non recupera la connessione.&lt;br /&gt;&lt;br /&gt;Dopo tanto patire ho scoperto che il problema nasce dal fatto che il proxy era abilitato (come è giusto che sia) all'interno di IE.&lt;br /&gt;&lt;br /&gt;Disattivando il proxy anche il codice Swing funziona.&lt;br /&gt;&lt;br /&gt;Per evitare di disattivare il proxy tutte le volte è stato sufficiente aggiungere la seguente chiamate PRIMA della getConnection:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;ProxySelector.setDefault(null);&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-9029440172007748563?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/9029440172007748563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=9029440172007748563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/9029440172007748563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/9029440172007748563'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2011/07/problema-accesso-ad-as400-via-jdbc.html' title='Problema accesso ad AS/400 via JDBC'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-8465721806017245849</id><published>2008-07-25T05:26:00.000-07:00</published><updated>2008-07-25T06:13:08.151-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Lettura'/><category scheme='http://www.blogger.com/atom/ns#' term='COM'/><category scheme='http://www.blogger.com/atom/ns#' term='Porta Seriale'/><title type='text'>Delphi: Lettura dati da seriale</title><content type='html'>&lt;strong&gt;Lettura dati dalla porta seriale.&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;function Leggi(PortaCOM:String; Comando:String):String;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;var str:string;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; cmd, Buffer: Pchar;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; hCom:Thandle;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; ComStat: TComStat;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; lpdcb:Tdcb;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; bw,br:Dword;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; Errors: DWORD;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;//Apro la porta&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;str := '';&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;hCom := CreateFile (pchar(PortaCOM),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;                GENERIC_READ + GENERIC_WRITE,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;                0, // comm devices must be opened w/exclusive-access*/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;                nil, // no security attrs */&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;                OPEN_EXISTING, //* comm devices must use OPEN_EXISTING */              0, //* not overlapped I/O */&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;                0); //* hTemplate must be NULL for comm devices */ );&lt;br /&gt;if (hCom = INVALID_HANDLE_VALUE) then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  MessageBox(0, pChar('Impossibile aprire la porta seriale'), 'ATTENZIONE', MB_ICONSTOP or MB_OK)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; if GetFileType( hCom ) &lt;&gt; FILE_TYPE_CHAR then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  MessageBox(0, 'Attenzione errore apertura file', 'ATTENZIONE', MB_ICONSTOP or MB_OK)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; Begin //Se tutto ok imposto i settaggi della porta: 9600:7:E:1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  GetCommState(hCom, lpdcb);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  lpdcb.BaudRate := Settaggi.BaudRate;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  lpdcb.ByteSize := Settaggi.ByteSize;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  lpdcb.Parity := Settaggi.Parity;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  lpdcb.StopBits := Settaggi.StopBits;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  SetCommState(hCom, lpdcb);  //costruisco il comando da inviare alla porta&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  cmd := pchar(Comando);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  bW := 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  bR := 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  str := '';  //Scrivo il comando sulla porta&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  WriteFile(hCom,cmd^,Length(Comando),bW,nil);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  //Attendo 2 sec.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  sleep(2000);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  //Leggo i bytes nel buffer di input&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  ClearCommError(hCom, Errors, @ComStat);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  if ComStat.cbInQue &gt; 0 then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  //Alloco la memoria necessaria per memorizzare i bytes letti&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   GetMem(Buffer, ComStat.cbInQue);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  //Leggo i bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   ReadFile(hCom,Buffer^,ComStat.cbInQue,br,nil);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  //trasferisco il buffer in Str&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   setLength(str, br);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   Move(Buffer^, PChar(str)^, br);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  //libero la memoria occupata dal buffer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   FreeMem(Buffer);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;closeHandle(hcom);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;result:=str;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Inseressante la funzione ClearCommError  che consente di sapere i byte in attesa di essere scaricati. Questa funzione aspetta che sulla COM siano presenti i Byte riportati dalla funzione prima di uscire dal ReadFile.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-8465721806017245849?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/8465721806017245849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=8465721806017245849' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/8465721806017245849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/8465721806017245849'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2008/07/delphi-lettura-dati-da-seriale.html' title='Delphi: Lettura dati da seriale'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-6834266974933392910</id><published>2008-05-08T07:59:00.000-07:00</published><updated>2008-05-08T08:00:40.827-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Confronto Java - C#</title><content type='html'>Interessante confronto a questo &lt;a href="http://www.harding.edu/fmccown/java1_5_csharp_comparison.html"&gt;link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-6834266974933392910?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/6834266974933392910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=6834266974933392910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/6834266974933392910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/6834266974933392910'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2008/05/confronto-java-c.html' title='Confronto Java - C#'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-7675947891414108049</id><published>2008-04-22T09:53:00.000-07:00</published><updated>2008-04-22T09:54:24.574-07:00</updated><title type='text'>YUGOP</title><content type='html'>Il &lt;a href="http://yugop.com/"&gt;sito&lt;/a&gt; più bello di internet!&lt;br /&gt;Da vedere lo storico.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-7675947891414108049?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/7675947891414108049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=7675947891414108049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/7675947891414108049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/7675947891414108049'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2008/04/yugop.html' title='YUGOP'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-8861768632671038176</id><published>2008-04-04T05:03:00.000-07:00</published><updated>2008-04-04T05:18:54.407-07:00</updated><title type='text'>Eval e Persistenza in Delphi</title><content type='html'>Ho affrontato un progetto in ACCESS molto interessante e per il quale ho usato la funzione Eval. Per chi non lo sapesse, questa funzione riceve una stringa e ne fa la valutazione. Per esempio Eval("2 + 3") ritorna 5.&lt;br /&gt;Come stringa si può passare anche il nome di una funzione scritta da noi purchè con visibilità Public.&lt;br /&gt;&lt;br /&gt;A questo punto mi sono chiesto come si potesse fare una cosa simile in Delphi, cioè chiamare una funzione usando il suo nome.&lt;br /&gt;Ho trovato un esempio molto pertinente su &lt;a href="http://delphi.about.com/cs/adptips2004/a/bltip0204_3.htm"&gt;About.com&lt;/a&gt;. Funziona a queste condizioni:&lt;br /&gt;1. La procedura/funzione deve essere un metodo di una classe&lt;br /&gt;2. Deve essere published (vedi punto 3)&lt;br /&gt;3. La classe deve essere derivata da TPersistent o deve essere compilata con la direttiva {M+}&lt;br /&gt;&lt;br /&gt;In Delphi è necessario che la classe abbia le informazioni di runtime (RTTI) per i metodi che si vogliono richiamare usando il loro nome. Le informazioni recuperabili tramite RTTI sono altrettanto utili per implementare la Persistenza, cioè la capacità di salvare lo stato degli oggetti creati all'interno di un programma.&lt;br /&gt;&lt;br /&gt;Altri link interessanti sulla RTTI:&lt;br /&gt;1. &lt;a href="http://www.geocities.com/svi37/cyber/delphi9/imetal.html"&gt;IMetal&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://beensoft.blogspot.com/2006/11/how-to-persist-tpersistent.html"&gt;Delphi Power Unleashed&lt;/a&gt;&lt;br /&gt;3. Vari post sul Hallvard's Blogs come &lt;a href="http://hallvards.blogspot.com/2006/09/extended-class-rtti.html"&gt;questo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-8861768632671038176?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/8861768632671038176/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=8861768632671038176' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/8861768632671038176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/8861768632671038176'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2008/04/eval-e-persistenza-in-delphi.html' title='Eval e Persistenza in Delphi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-111654616105043167</id><published>2007-11-23T23:51:00.000-08:00</published><updated>2007-11-24T00:11:31.251-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='Access'/><category scheme='http://www.blogger.com/atom/ns#' term='compilato'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Linguaggi di scripting e linguaggi compilati</title><content type='html'>Il rilascio di un programma non può mai essere considerato completamente a prova di bugs. Come si sa errori possono comparire anche dopo molto tempo e possono essere difficili da individuare nei cicli di test. In effetti molti errori possono non dipendere direttamente dal programma scritto in maniera non corretta, ma possono essere causati da dati non conformi alle aspettative.&lt;br /&gt;Succede così che programmi che sono in esecuzione da anni, si blocchino improvvisamente su certi input.&lt;br /&gt;Un ulteriore elemento di aleatorietà è rappresentato dalle interconnessioni che un certo programma deve avere con l'esterno (altri programmi, altri database). In questo caso può essere utile modificare la condotta del programma in base alla variazione del contorno.&lt;br /&gt;&lt;br /&gt;Tutto quanto ho scritto sopra evidenzia come la possibilità di entrare in debug non appena si verifica un errore (difficilmente riproducibile) e di risolverlo all'istante per non bloccare un certo processo sia presupposto essenziale.&lt;br /&gt;&lt;br /&gt;Gli approcci sono diversi a seconda che si adotti una soluzione compilata o una soluzione interpretata.&lt;br /&gt;Nel primo caso, la correzione dell'errore comporta la disponibilità dei sorgenti, la disponibilità delle configurazioni per il compilatore e la possibilità di usare un ambiente conforme a quando il programma era stato sviluppato. Nel secondo caso ciò che è sufficiente è disporre dei diritti di aprire il file dei sorgenti (che deve essere presente perchè interpretato); se inoltre si dispone di un ambiente in cui il programma è in esecuzione allora le attività di debug sono veramente semplici.&lt;br /&gt;Non voglio dire che l'approccio compilato sia sbagliato: per certi programmi è l'unica soluzione possibile e per programmi da pacchettizzare forse l'unica; voglio solo mettere in evidenza che nel caso in cui si sviluppi all'interno di un'azienda la soluzione da preferire (soprattutto per programmi che accedono a DBMS) è la seconda.&lt;br /&gt;Ho già scritto in passato sulla differenza tra Delphi e MS Access e questo post vuole fornire ulteriori spunti alla discussione.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-111654616105043167?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/111654616105043167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=111654616105043167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/111654616105043167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/111654616105043167'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/11/linguaggi-di-scripting-e-linguaggi.html' title='Linguaggi di scripting e linguaggi compilati'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-4977216392678915804</id><published>2007-11-20T10:25:00.000-08:00</published><updated>2007-11-20T10:54:07.222-08:00</updated><title type='text'>MS Access Forum</title><content type='html'>&lt;a href="http://www.utteraccess.com/"&gt;http://www.utteraccess.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-4977216392678915804?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/4977216392678915804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=4977216392678915804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/4977216392678915804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/4977216392678915804'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/11/ms-access-forum.html' title='MS Access Forum'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-4367142458228325185</id><published>2007-11-10T04:47:00.000-08:00</published><updated>2007-11-10T04:57:36.271-08:00</updated><title type='text'>Tutti contro tutti</title><content type='html'>Leggendo &lt;a href="http://java.sys-con.com/read/457324.htm"&gt;questo articolo&lt;/a&gt; mi sono reso conto che le sensazioni da me provate al pensiero di usare una piattaforma al termine del suo ciclo di vita come Delphi, siano in realtà condivise da chi usa Java per sviluppare.&lt;br /&gt;Nei commenti all'articolo sopra risulta interessante carpire i seguenti segnali:&lt;br /&gt;Java sta diventando sempre più complesso&lt;br /&gt;Java ha necessità di troppi pezzi software che devono essere messi assieme e configurati&lt;br /&gt;Java richiede troppe risorse sulla macchina&lt;br /&gt;Jave deve essere studiato a fondo per diventare produttivo.&lt;br /&gt;&lt;br /&gt;I nuovi linguaggi di scripting come Ruby, PHP, Perl, hanno necessità di Apache e di un editor.&lt;br /&gt;Un ragazzo che inizia ora a programmare, non può imparare una "valanga" di aspetti legati al framework e al contorno per poter essere produttivo e cominciare a vedere i risultati del suo lavoro.&lt;br /&gt;&lt;br /&gt;Da questo punto di vista sicuramente Delphi è più avvantaggiato di Java: un ambiente unico, un solo produttore, componenti divisi per funzionalità, grande quantità di librerie e documentazione e soprattutto, come risultato, un programma compilato da trasferire semplicemente sul computer del cliente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-4367142458228325185?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/4367142458228325185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=4367142458228325185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/4367142458228325185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/4367142458228325185'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/11/tutti-contro-tutti.html' title='Tutti contro tutti'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-9050921489036199613</id><published>2007-08-30T06:33:00.000-07:00</published><updated>2007-08-30T06:43:33.730-07:00</updated><title type='text'>Excel: VLookup + DSum insieme</title><content type='html'>Il problema del VLookup è che ritorna il primo valore che ritrova.&lt;br /&gt;Il problema del DSum è che è necessario avere il range con i criteri.&lt;br /&gt;&lt;br /&gt;La mia necessità è invece questa: fare la somma dei valori di una tabella che hanno il valore di ricerca (= valore prima colonna) uguale a quello indicato da me.&lt;br /&gt;Ho creato questa UDF che consente di scandire la tabella e fare la somma dei valori della colonna indicata:&lt;br /&gt;Parametri ricevuti:&lt;br /&gt;- Lookup_Value = Valore da cercare&lt;br /&gt;- Lookup_Table = Tabella dei valori (la prima colonna contiene la chiave di ricerca&lt;br /&gt;- Column_Index = Colonna contenente i valori da sommare&lt;br /&gt;&lt;br /&gt;Valore ritornato:&lt;br /&gt;- Somma dei valori corrispondenti alla chiave passata&lt;br /&gt;- Errore (#VALUE) (se il valore non è individuato)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;Public Function&lt;/strong&gt; TotRange(Lookup_Value As Variant, Lookup_Table As Range, Column_Index As Integer) &lt;strong&gt;As&lt;/strong&gt; Variant&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;Dim&lt;/strong&gt; riga &lt;strong&gt;As&lt;/strong&gt; Integer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;Dim&lt;/strong&gt; tot&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;Dim&lt;/strong&gt; trovato &lt;strong&gt;As&lt;/strong&gt; Boolean&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;tot = 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;trovato = False&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;For&lt;/strong&gt; riga = 1 &lt;strong&gt;To&lt;/strong&gt; Lookup_Table.Rows.Count&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;If&lt;/strong&gt; Lookup_Table.Cells(riga, 1) = Lookup_Value &lt;strong&gt;Then&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;trovato = &lt;strong&gt;True&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;tot = Lookup_Table.Cells(riga, Column_Index) + tot&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;End If&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;Next&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;If&lt;/strong&gt; trovato &lt;strong&gt;Then&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;TotRange = tot&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;Else&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;TotRange = CVErr(10)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;End&lt;/strong&gt; &lt;strong&gt;If&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;End Function&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-9050921489036199613?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/9050921489036199613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=9050921489036199613' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/9050921489036199613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/9050921489036199613'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/08/excel-vlookup-dsum-insieme.html' title='Excel: VLookup + DSum insieme'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-1888106180960588033</id><published>2007-08-07T04:51:00.000-07:00</published><updated>2007-08-07T04:57:18.562-07:00</updated><title type='text'>Introduzione all'IDE di Delphi</title><content type='html'>&lt;strong&gt;&lt;em&gt;Versione gratuita Turbo Explorer per Win32&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Una volta avviato, l'IDE presenta sei zone distinte:&lt;br /&gt;1. Menu e toolbar&lt;br /&gt;2. Structure&lt;br /&gt;3. Object Inspector&lt;br /&gt;4. Project Manager&lt;br /&gt;5. Tool Palette&lt;br /&gt;6. L'area centrale&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Descrizione delle zone&lt;/strong&gt;&lt;br /&gt;1. Menu e toolbar&lt;br /&gt;Rappresenta, come per ogni programma Windows, la zona contenente l'insieme dei comandi e delle opzioni che è possibile usare all'interno di Delphi.&lt;br /&gt;2. Structure&lt;br /&gt;Contiene l'albero dell'attuale Form/Unit aperta. Per albero si devono intendere due cose distinte a seconda che si stia lavorando al disegno visuale della form oppure all'interno del codice. Nel primo caso sarà visualizzato l'insieme dei controlli visuali connessi tramite la relazione Parent; nel secondo caso sarà mostrata la struttura della unit del codice organizzata per categoria sintattica (funzioni, campi, etc.)&lt;br /&gt;3. Object Inspector&lt;br /&gt;Diviso in 2 zone contiene le proprietà e gli eventi che è possibile impostare per il componente selezionato sulla form. Da qui è possibile indicare il valore delle proprietà (nel caso di proprietà complesse esistono degli editor appositi) e degli eventi associati al componente. Da un evento si va direttamente alla finestra del codice tramite doppio click.&lt;br /&gt;4. Project Manager&lt;br /&gt;Rappresenta la struttura dei file del progetto. In neretto è indicato il progetto attivo. Possono essere mantenuti aperti più progetti all'interno dell'IDE e ciò risulta molto comodo durante lo sviluppo di applicazioni complesse che usano diversi moduli (dll o eseguibili).&lt;br /&gt;5. Tool Palette&lt;br /&gt;Contiene l'insieme degli elementi che è possibile creare. Se non è stato ancora creato alcun progetto contiene le voci che sono presenti anche all'interno del menù FileNewOther; se invece siamo sulla form contiene i componenti visuali che è possibile inserire nella form.&lt;br /&gt;6. L'area centrale&lt;br /&gt;All'avvio contiene la Welcome page, durante lo sviluppo contiene la grafica della form su cui stiamo lavorando, il codice associato alla form e l'History della form. Questi tre elementi sono visualizzabili uno alla volta selezionando il tab corrispondente.&lt;br /&gt;&lt;br /&gt;Struttura di un semplice programma&lt;br /&gt;Pur consentendo lo sviluppo di un insieme di programmi molto vasto (da un Web Service ad un servizio per Windows) generalmente Delphi viene usato per lo sviluppo di applicazioni VCL Form. In pratica queste applicazioni rappresentano programmi Windows (32 bit attualmente) costituiti da una o più finestre (forms) su cui sono collocati gli elementi della VCL (libreria dei componenti usata in Delphi) necessari alla realizzazione dell'interfaccia grafica. A ciascun elemento della interfaccia sono poi agganciati gli eventi necessari alla realizzazione della logica applicativa. Una volta creato un programma VCL Form, Delphi automaticamente crea i seguenti files:&lt;br /&gt;- il file principale di progetto (visibile richiamando il menù contestuale View Source) dalla finestra del Project Manager o premendo Control + V una volta selezionato il nome del progetto;&lt;br /&gt;- il file del codice associato alla form il cui nome è generalmente Unit1.pas&lt;br /&gt;- il file contenente la definizione della form il cui nome è Unit1.dfm&lt;br /&gt;In genere il file su cui si interviene maggiormente è il file Unit1.pas che conterrà tutto il codice associato ai componenti della Form1.&lt;br /&gt;Nel caso che venga aggiunta una nuova form al programma, Delphi creerà due nuovi file dal nome Unit2 .pas e Unit2.dfm.&lt;br /&gt;&lt;br /&gt;All'interno del file Unit&lt;em&gt;n&lt;/em&gt;.pas Delphi colloca il codice Object Pascal necessario alla definizione della form. Ricordiamo che Delphi sfrutta l'Object Pascal come linguaggio di programmazione (estensione ad oggetti del Pascal). Per questo, ogni form che viene creata è derivata dalla classe della VCL TForm. L'aggiunta di nuovi componenti visuali e di nuovi eventi, rendono poi la Form creata propria del nostro programma.&lt;br /&gt;&lt;br /&gt;Ogni Unit creata da Delphi risente delle modifiche apportate graficamente alla form. In particolare:&lt;br /&gt;- l'aggiunta di un componente visuale alla form, inserisce la dichiarazione di un campo nella definizione del nuovo tipo (la classe TForm1)&lt;br /&gt;- l'inserimento di un nuovo evento inserisce un metodo sempre a livello della classe TForm1 che conterrà il codice di gestione dell'evento stessoNel caso in cui il componente sia incluso in una libreria NON inserita di default all'atto della creazione della form, viene inserito dopo la parola chiave uses il nome della libreria che comprende il componente.&lt;br /&gt;&lt;br /&gt;La variazione dei dati a livello di proprietà sulla form, può rispecchiarsi anche sulla definizione della classe TForm1. Per esempio se cambiamo il nome di un componente inserito nella form, il nome viene cambiato anche nella definizione della form stessa.&lt;br /&gt;&lt;strong&gt;NOTA IMPORTANTE:&lt;/strong&gt;La variazione manuale del nome di un campo precedentemente inserito nella form direttamente dal codice comporta la perdita dell'allineamento automatico tra codice e designer e ciò può creare problemi in fase di compilazione.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Per esempio&lt;/em&gt;:&lt;br /&gt;- inserire un componente Button sulla form&lt;br /&gt;- spostarsi sul codice e modificare il nome dal default Button1 a Test&lt;br /&gt;eseguendo il programma sarà segnalato un primo errore di Test non trovato tra i componenti inseriti sulla form e qualora si provveda alla rimozione un successivo errore in fase di creazione della form di Class TButton non trovata.&lt;br /&gt;Se invece la modifica viene fatta dall'Object inspector questa si rispecchia all'interno del codice in maniera automatica sia a livello di nome del campo che a livello di nome dei vari eventi creati.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-1888106180960588033?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/1888106180960588033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=1888106180960588033' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/1888106180960588033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/1888106180960588033'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/08/introduzione-allide-di-delphi.html' title='Introduzione all&apos;IDE di Delphi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-6623702347039524043</id><published>2007-05-29T11:26:00.000-07:00</published><updated>2007-05-29T11:31:12.517-07:00</updated><title type='text'>REFLECTION in .NET</title><content type='html'>La possibilità di estendere un programma con dei moduli esterni che ne aumentino le funzionalità è resa possibile grazie ai potenti meccanismi della Riflessione: la capacità di introspezione messa a disposizione da .NET.&lt;br /&gt;&lt;br /&gt;ESTENDERE UNA GERARCHIA DI CLASSI&lt;br /&gt;Supponiamo di avere un programma che fa uso di una gerarchia di classi per gestire i propri dati. Supponiamo di voler dare a chiunque la possibilità di estendere la gerarchia con classi proprie. Il programma fungerà da "creatore" degli oggetti inseriti nella gerarchia delle classi.&lt;br /&gt;&lt;br /&gt;STABILIRE LE INTERFACCE&lt;br /&gt;Evidentemente le classi che dovranno essere utilizzate all'interno del programma dovranno avere un'interfaccia comune (in termini di metodi, campi e proprietà). E' necessario stabilire a priori gli elementi comuni per non dover modificare il programma successivamente. Esistono due possibili strade per stabilire gli elementi comuni alle classi:- definire una interfaccia all'interno di una libreria di classi (interfaccia che poi sarà implementata da chi vorrà realizzare una nuova classe nella gerarchia)- definire una classe radice che elenchi metodi, campi e proprietà. Tale classe può eventualmente essere una classe astratta&lt;br /&gt;&lt;br /&gt;I PASSI DELLA IMPLEMENTAZIONE&lt;br /&gt;1. Crere una Class Library (MasterLibrary) contenente la classe astratta o la definizione di interfaccia:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;//CLASSE ASTRATTA&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;public abstract class TRoot &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;{ &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;public int DatoInt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;public string DatoString; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;public abstract int MetodoInt(int a); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;public abstract string MetodoString(string s); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;//INTERFACCIA&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;public interface IRoot&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;int MetodoInt1(int a);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;string MetodoString1(string s);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;}&lt;/span&gt;&lt;br /&gt;2. Farne il Build per creare la dll. In questo modo abbiamo l'assembly contenente gli elementi essenziali per creare librerie di classi per estendere il programma&lt;br /&gt;3. Nel programma che realizzeremo si dovranno utilizzare 2 metodi della System.Reflection (LoadFile e CreateInstance). Questi 2 metodi servono rispettivamente per recuperare l'assembly contenente le classi da noi definite e per creare l'istanza della classe presente all'interno dell'assembly stesso.&lt;br /&gt;Il nome dell'assembly e della classe possono essere recuperati da un file di parametri usato dal programma.&lt;br /&gt;&lt;br /&gt;ESTENDERE LA GERARCHIA DELLE CLASSI&lt;br /&gt;1. Creare una Class Library includendo come Reference la MasterLibrary.dll;&lt;br /&gt;2. Derivare ogni classe dalla TRoot (nel caso si usi la Classe Astratta) o dalla IRoot (nel caso si usi l'Interfaccia);&lt;br /&gt;3. Implementare i metodi secondo la logica prevista;&lt;br /&gt;4. Creare un file di configurazione contenente il nome dell'Assembly (.dll) completo di path ed il nome delle classi incluse al suo interno che vogliamo mettere a disposizione nel programma;&lt;br /&gt;&lt;br /&gt;PER FINIRE&lt;br /&gt;In pratica:&lt;br /&gt;1. Nella MasterLibrary vengono definiti gli elementi (in termini di metodi e campi) che saranno implementati in tutte le classi che estenderanno la classe base&lt;br /&gt;2. In tutte le estensioni si dovrà far riferimento alle classi definite nella MasterLibrary ereditando da quest'ultime&lt;br /&gt;3. Nel programma si potrà far riferimento alle classi grazie ai metodi previsti a livello di Reflection, creando nuovi oggetti dalle classi definite all'esterno.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-6623702347039524043?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/6623702347039524043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=6623702347039524043' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/6623702347039524043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/6623702347039524043'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/05/reflection-in-net.html' title='REFLECTION in .NET'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-7624004646857331464</id><published>2007-05-06T12:35:00.000-07:00</published><updated>2007-05-06T12:47:31.513-07:00</updated><title type='text'>Sui bravi programmatori</title><content type='html'>Riporto in inglese una frase estratta da un &lt;a href="http://www.codeproject.com/script/survey/detail.asp?survey=667&amp;df=100&amp;amp;forumid=305864&amp;fr=26"&gt;forum &lt;/a&gt;su VB estratto da &lt;a href="http://www.codeproject.com"&gt;Codeproject&lt;/a&gt;&lt;br /&gt;"&lt;em&gt;There are not bad languages, there are bad programmers, whatever language they use&lt;/em&gt;."&lt;br /&gt;traduco: "Non ci sono linguaggi non buoni, ci sono programmatori non buoni, indipendentemente dal linguaggio che usano".&lt;br /&gt;&lt;br /&gt;Vorrei riportare qui alcuni punti essenziali:&lt;br /&gt;- VB ha permesso a molti (anche non professionisti) di sviluppare programmi&lt;br /&gt;- VB ha indotto molti a credere che per scrivere un buon programma fosse sufficiente mettere alcuni controlli su una form senza avere alcun tipo di background scientifico per risolvere correttamente determinati problemi&lt;br /&gt;- VB è stato ed è (VB.NET) un linguaggio come tanti altri che, se usato professionalmente può consentire di sviluppare ottimi programmi.&lt;br /&gt;&lt;br /&gt;Per esperienza diretta:&lt;br /&gt;- esistono linguaggi (Java per primo) che impongono dei paradigmi di programmazione che per essere compresi necessitano di una buona preparazione teorica&lt;br /&gt;- qualunque linguaggio si usi la "strutturazione del codice" è fondamentale per una buona gestione dei progetti&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-7624004646857331464?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/7624004646857331464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=7624004646857331464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/7624004646857331464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/7624004646857331464'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/05/sui-bravi-programmatori.html' title='Sui bravi programmatori'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-2712678881202181572</id><published>2007-05-06T12:25:00.000-07:00</published><updated>2007-05-06T12:35:06.121-07:00</updated><title type='text'>Campi statici e variabili di classe</title><content type='html'>Ho letto questo &lt;a href="http://hallvards.blogspot.com/2007/05/hack17-virtual-class-variables-part-i.html"&gt;blog&lt;/a&gt; e mi sono venuti alcuni dubbi che ho poi fugato facendo alcuni esempi.&lt;br /&gt;Java ha sempre avuto i campi static, cioè le variabili globali a livello di classe. In Delphi questa caratteristica è stata introdotta (per rispettare .NET) dalla versione 8 (solo .NET) poi riportata nella versione per Win32.&lt;br /&gt;Il dubbio che mi è sovvenuto è il seguente:&lt;br /&gt;cosa succede nel caso che una classe derivi da un'altra che ha un campo static pubblico?&lt;br /&gt;&lt;br /&gt;La risposta è la seguente:&lt;br /&gt;il campo static (cioè la variabile di classe) è condivisa tra tutte le sottoclassi della classe che ha dichiarato quel campo come static. In pratica se ho queste classi:&lt;br /&gt;T1 = class   &lt;br /&gt;   class var a:integer; &lt;br /&gt;...&lt;br /&gt;end; &lt;br /&gt;e&lt;br /&gt;T2 = class(T1)  &lt;br /&gt; ...&lt;br /&gt;end;&lt;br /&gt;&lt;br /&gt;T1.a e T2.a riferiscono la stessa variabile.&lt;br /&gt;&lt;br /&gt;Se voglio differenziare T2.a da T1.a DEVO dichiararla nuovamente.&lt;br /&gt;&lt;br /&gt;Questo è lo stesso comportamento di Java.&lt;br /&gt;&lt;br /&gt;Come indicato nel post da me citato, la precedente possibilità era di quella di usare una variabile globale a livello di unit.&lt;br /&gt;&lt;br /&gt;La situazione è ora molto più object oriented (anche per Delphi).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-2712678881202181572?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/2712678881202181572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=2712678881202181572' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/2712678881202181572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/2712678881202181572'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/05/campi-statici-e-variabili-di-classe.html' title='Campi statici e variabili di classe'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-6116746109743571508</id><published>2007-03-16T11:01:00.000-07:00</published><updated>2007-03-16T11:08:39.519-07:00</updated><title type='text'>I Miei Blogs futuri</title><content type='html'>Vorrei, tempo permettendo, publicare una serie di blogs sui seguenti argomenti:&lt;br /&gt;1- Perchè Delphi?&lt;br /&gt;&lt;em&gt;Perchè scegliere Delphi per programmare&lt;/em&gt;&lt;br /&gt;2- Delphi ed MSAccess&lt;br /&gt;&lt;em&gt;Le differenze e i vantaggi di una scelta piuttosto che dell'altra&lt;/em&gt;&lt;br /&gt;3- Access ed i Template di Outlook (.OFT)&lt;br /&gt;&lt;em&gt;Come aprire da Access un Mail Template di Outlook&lt;/em&gt;&lt;br /&gt;4- Migrazione da Access a SQL Server&lt;br /&gt;&lt;em&gt;Alcune indicazioni sulla migrazione dei dati da Access a SQL server&lt;/em&gt;&lt;br /&gt;5- Le ultime novità di Delphi&lt;br /&gt;&lt;em&gt;Delphi 2007 oramai è alle porte&lt;/em&gt;&lt;br /&gt;6- Lettura del pensiero&lt;br /&gt;&lt;em&gt;La sera avevo un problema. La mattina trovo un &lt;a href="http://developersoven.blogspot.com/2007/03/overloading-array-properties-in.html"&gt;Post &lt;/a&gt;che fa al caso mio. Incredibile.&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-6116746109743571508?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/6116746109743571508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=6116746109743571508' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/6116746109743571508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/6116746109743571508'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/03/i-miei-blogs-futuri.html' title='I Miei Blogs futuri'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116785794993551116</id><published>2007-01-03T12:56:00.000-08:00</published><updated>2007-01-03T12:59:10.303-08:00</updated><title type='text'>RISOLTO!</title><content type='html'>Dopo una quindicina di giorni di lavoro ho risolto, con l'aiuto di tutta la famiglia&lt;a href="http://www.bigfishgames.com/downloads/mysterycasefilespr/index.html"&gt; Mystery Case Files - Prime Suspects&lt;/a&gt;. Grande e coinvolgente gioco!&lt;br /&gt;Divertentissimo il finale.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116785794993551116?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116785794993551116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116785794993551116' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116785794993551116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116785794993551116'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/01/risolto.html' title='RISOLTO!'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116765903170809378</id><published>2007-01-01T14:27:00.000-08:00</published><updated>2007-01-01T05:43:51.956-08:00</updated><title type='text'>Cast e ListView in Delphi</title><content type='html'>In molte applicazioni si ha la necessità di dare all'utente la possibilità di creare più oggetti della stessa classe. Questi oggetti hanno una propria vita e l'utente deve poterli selezionare per lavorare su di essi.&lt;br /&gt;Una situazione classica è quella di avere una lista di tali oggetti da cui selezionare quello su cui si vuole lavorare. Sorge il problema di passare dalla selezione sulla lista all'oggetto associato.&lt;br /&gt;In Win32 una lista ha una sua rappresentazione come ListView. Una riga della ListView (ListItem) è un oggetto che ha, tra le proprietà, un puntatore (Data). Questo puntatore consente di memorizzare, tra le altre cose, il riferimento all'oggetto che noi associamo alla riga della lista.&lt;br /&gt;L'uso del cast consente di "leggere" il puntatore come l'oggetto che abbiamo associato alla riga.&lt;br /&gt;&lt;br /&gt;Ecco un esempio:&lt;br /&gt;&lt;br /&gt;Creazione dell'oggetto&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;var &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; lv:TListItem;    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; p:TOggetto;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;begin  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; lv:=lvElenco.Items.add;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; lv.Caption:='Oggetto '+inttostr(lvElenco.Items.Count);  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;//creazione dell'oggetto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; p:=TOggetto.create;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;//associazione dell'oggetto all'Item appena creato&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; lv.Data:=p;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;Recupero dell'oggetto associato alla riga della lista (Item):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;var &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt; obj:TOggetto;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;begin &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;//recupero l'oggetto tramite il casting&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; obj:=TOggetto(Item.Data);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116765903170809378?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116765903170809378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116765903170809378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116765903170809378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116765903170809378'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/01/cast-e-listview-in-delphi.html' title='Cast e ListView in Delphi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116765921176406212</id><published>2007-01-01T05:45:00.000-08:00</published><updated>2007-01-01T05:46:51.876-08:00</updated><title type='text'>Felix Colibri: Documentazione su Delphi</title><content type='html'>&lt;a href="http://www.felix-colibri.com"&gt;Ulteriore &lt;/a&gt;documentazione sull'uso di Delphi.&lt;br /&gt;Molto ben fatta la gestione delle basi dati.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116765921176406212?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116765921176406212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116765921176406212' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116765921176406212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116765921176406212'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2007/01/felix-colibri-documentazione-su-delphi.html' title='Felix Colibri: Documentazione su Delphi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116608198133464648</id><published>2006-12-13T23:39:00.000-08:00</published><updated>2006-12-13T23:40:17.896-08:00</updated><title type='text'>Blogs tecnici italiani</title><content type='html'>Un link da annotare tra quelli da controllare giornalmente:&lt;br /&gt;&lt;a href="http://blogs.ugidotnet.org/"&gt;http://blogs.ugidotnet.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116608198133464648?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116608198133464648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116608198133464648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116608198133464648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116608198133464648'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/12/blogs-tecnici-italiani.html' title='Blogs tecnici italiani'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116535198098294885</id><published>2006-12-05T12:21:00.000-08:00</published><updated>2006-12-05T12:53:01.310-08:00</updated><title type='text'>Interfacce, Garbage collection e COM</title><content type='html'>Leggendo un &lt;a href="http://www.marcocantu.com/d8ebook/"&gt;capitolo gratuito &lt;/a&gt;su Delphi per .NET di Marco Cantù dove vengono analizzate le modifiche effetuate al linguaggio per adattarlo a .NET, ho riflettuto su un passaggio lì riportato riguardante le interfacce. In pratica e finalmente il concetto di Interfaccia si sgancia da COM: non è più necessario associare ad un interfaccia un GUID.&lt;br /&gt;Il passaggio che mi ha interessato di più è quello in cui si fa riferimento al "reference counting".&lt;br /&gt;In pratica se un oggetto espone un interfaccia può essere acceduto da parte di altri oggetti attraverso questa interfaccia. La domanda che sorge spontanea è la seguente: chi distrugge l'oggetto originario?&lt;br /&gt;In un ambiente COM dove non esiste un Garbage collector la cosa viene gestita tramite il meccanismo del conteggio dei riferimenti (reference counting): ogni volta che un oggetto A accede ad un altro B tramite l'interfaccia, B incrementa di uno il numero di riferimenti. Quando l'oggetto A termina di riferire B il numero dei riferimenti è decrementato.&lt;br /&gt;Tutto ciò ha senso se non esiste (come in JAVA e in .NET) un sistema automatico di gestione dei riferimenti che automaticamente distrugge gli oggetti non più riferiti da nessuno.&lt;br /&gt;Per quanto riguarda il reference counting in COM suggerisco quest'altro &lt;a href="http://www.davidchappell.com/articles/article_Refer_Counting.html"&gt;articolo&lt;/a&gt; oltre che l'onnipresente &lt;a href="http://en.wikipedia.org/wiki/Reference_counting"&gt;Wikipedia&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116535198098294885?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116535198098294885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116535198098294885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116535198098294885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116535198098294885'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/12/interfacce-garbage-collection-e-com.html' title='Interfacce, Garbage collection e COM'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116535004749579189</id><published>2006-12-05T12:12:00.000-08:00</published><updated>2006-12-05T12:20:59.320-08:00</updated><title type='text'>ACCESS e le classi</title><content type='html'>Ho già avuto modo di dire in passato che Access ha una serie di notevoli caratteristiche che lo rendono molto buono per la realizzazione di prototipi.&lt;br /&gt;In questi giorni ho avuto modo di usare Access in maniera molto spinta  ed ho dovuto strutturare il codice in modo da renderlo modulare. Poichè non avevo particolare necessità di creare Oggetti a runtime ho pensato di poter risolvere la cosa con le classi statiche. Questo purtoppo non può essere fatto poichè mancano sia metodi che campi statici (nel senso "vero" del termine). Quindi dopo qualche test ho optato per una strutturazione del codice tramite l'uso dei moduli (non di classe). In pratica questi moduli si comportano a tutti gli effetti come classi statiche ed anche il meccanismo di chiamata con i punti di separazione &lt;em&gt;modulo.funzione &lt;/em&gt;o &lt;em&gt;modulo.campo&lt;/em&gt; rende il codice molto leggibile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116535004749579189?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116535004749579189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116535004749579189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116535004749579189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116535004749579189'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/12/access-e-le-classi.html' title='ACCESS e le classi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116393394248362548</id><published>2006-11-19T02:40:00.000-08:00</published><updated>2006-11-19T02:59:02.773-08:00</updated><title type='text'>C# ed il Framework .NET</title><content type='html'>Un &lt;a href="http://en.csharp-online.net"&gt;link &lt;/a&gt;interessante.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116393394248362548?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116393394248362548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116393394248362548' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116393394248362548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116393394248362548'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/11/c-ed-il-framework-net.html' title='C# ed il Framework .NET'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116357809585125181</id><published>2006-11-14T23:48:00.000-08:00</published><updated>2006-11-15T00:08:16.306-08:00</updated><title type='text'>CodeGear</title><content type='html'>&lt;a href="http://www.codegear.com"&gt;CodeGear&lt;/a&gt; è la nuova società (sempre all'interno di &lt;a href="http://www.borland.com"&gt;Borland&lt;/a&gt;) che sarà focalizzata esclusivamente sugli ambienti di sviluppo.&lt;br /&gt;Esce finalmente una notizia che mette un po' di sicurezza a tutti gli sviluppatori Delphi che si erano affidati ultimamente ad una strenua difesa del loro ambiente. Anche il DTG (Developers Tools Group) ha ultimamente mostrato un incredibile propensione alla diffusione di documentazione (soprattutto video) per l'uso di BDS2006 e Turbo Explorer.&lt;br /&gt;A questo punto spero che venga messo anche un po' di ordine sui vari siti (ora sono 3) in modo che sia dato un riferimento unico agli sviluppatori.&lt;br /&gt;&lt;br /&gt;W Delphi!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116357809585125181?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116357809585125181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116357809585125181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116357809585125181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116357809585125181'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/11/codegear.html' title='CodeGear'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116284583909733269</id><published>2006-11-06T12:43:00.000-08:00</published><updated>2006-11-07T00:56:43.233-08:00</updated><title type='text'>Morfik</title><content type='html'>&lt;p&gt;Ho scoperto per caso &lt;a title="Morfik Web Page" href="http://www.morfik.com/"&gt;questo&lt;/a&gt; ambiente di sviluppo molto simile ad Access.&lt;/p&gt;&lt;p&gt;Lo scopo del progetto è lo sviluppo di un ambiente che consenta di realizzare un programma sia per l'esecuzione "stand alone" che per l'esecuzione via server web. Viene sfruttato AJAX per ottimizzare i tempi di risposta.&lt;/p&gt;&lt;p&gt;Mi è piaciuta molto l'interfaccia di sviluppo che consente tra le altre cose di scegliere il linguaggio di programmazione (che comprende anche il Pascal). E' un'interfaccia molto simile ad Access e per questo diventa immediatamente familiare.&lt;/p&gt;&lt;p&gt;Seguiamo questo &lt;a title="Dal sito Firebird" href="http://www.fyracle.org/showstory.php?id=460"&gt;interessante prodotto&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116284583909733269?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116284583909733269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116284583909733269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116284583909733269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116284583909733269'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/11/morfik.html' title='Morfik'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116284363307031066</id><published>2006-11-06T12:07:00.000-08:00</published><updated>2006-11-07T00:55:39.970-08:00</updated><title type='text'>Introduzione a DELPHI</title><content type='html'>&lt;p&gt;Se stai leggendo questa pagina probabilmente hai qualche interesse in Delphi.&lt;/p&gt;&lt;h3&gt;Cosa è Delphi?&lt;/h3&gt;&lt;p&gt;Delphi è un ambiente di sviluppo inventato da Borland a metà degli anni 90.&lt;/p&gt;&lt;p&gt;Un ambiente di sviluppo (IDE in breve) è una collezione di strumenti che consentono una gestione centralizzata di tutte le attività di sviluppo. In particolare:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Disegno delle Form (maschere dell'applicazione) &lt;li&gt;Scrittura del codice &lt;li&gt;Esecuzione del codice &lt;li&gt;Attività di Debug&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Il linguaggio di Delphi&lt;/h3&gt;&lt;p&gt;La scrittura del codice in Delphi avviene usando una estensione ad oggetti del Pascal denominato Object Pascal (ora anche Delphi). In pratica così come avvenuto a suo tempo per il C++, estensione ad oggetti del C, l'Object Pascal è l'estensione ad oggetti del Pascal.&lt;/p&gt;&lt;h3&gt;Cosa posso fare con Delphi&lt;/h3&gt;&lt;p&gt;Delphi consente di creare programmi per Windows (nella sua attuale versione a 32 bit) e per Linux per cui è stata prodotta una versione chiamata Kylix. Una delle caratteristiche più importanti (se non la più importante) è la sua universalità. In pratica chi conosce Delphi può realizzare sia programmi di basso livello (cioè che richiamano le funzionalità basiche del sistema operativo o di interfacciamento all'hardware) sia programmi per internet (programmazione di Web Service o siti web dinamici). Delphi è veramente General Pourpose.&lt;/p&gt;&lt;h3&gt;Le versioni di Delphi&lt;/h3&gt;&lt;p&gt;Come già detto Delphi esiste sia per la realizzazione di programmi Windows che per la realizzazione di programmi per Linux. Nel mondo Windows, in particolare, è stata da qualche anno introdotta una nuova tecnologia di programmazione denominata .NET. Delphi ha saputo differenziarsi ed attualmente è uno dei pochi strumenti che consente di realizzare programmi per Windows alla "vecchia maniera" cioè Nativi che programmi "managed" cioè che sfruttano .NET. Da qualche mese inoltre Delphi esiste anche in una modalità gratuita (Turbo Delphi Explorer).&lt;/p&gt;&lt;h3&gt;La potenza di Delphi&lt;/h3&gt;&lt;p&gt;Delphi è un IDE molto potente ed è abbinato ad un linguaggio molto espressivo utilizzato da anni nelle università per esporre i concetti informatici di base. Gli strumenti usati per lo sviluppo su piattaforme complesse (come Windows) devono rendere il più semplice e nel contempo potente l'accesso ai servizi offerti dal sistema operativo. Delphi ottiene questo risultato tramite la VCL (visual component library), una potente libreria ad Oggetti estendibile dal programmatore che mette a disposizione un insieme di componenti che virtualizzano ed incapsulano le chiamate ai servizi delle API di Windows. La VCL è stata estesa per coprire ogni tipo di esigenza di programmazione ed oggi è possibile trovare componenti (nella maggior parte dei casi gratuiti) che assolvono ai compiti di programmazione più disparati. Delphi deve quindi gran parte della sua potenza alla VCL.&lt;/p&gt;&lt;h3&gt;Dove procurarsi Delphi&lt;/h3&gt;&lt;p&gt;Delphi è disponibile in versione gratuita sul sito &lt;a title="Turbo Explorer" href="http://www.turboexplorer.com/" target="_blank"&gt;Turbo Explorer&lt;/a&gt;. Sono presenti in questo sito le due versioni di Delphi: Delphi per Windows 32 (Turbo Delphi Explorer) e Turbo Delphi per .NET. Consiglio inizialmente di scaricare la versione per Windows 32.&lt;/p&gt;&lt;h3&gt;Delphi su Internet&lt;/h3&gt;&lt;p&gt;Sono più di dieci anni che Delphi calca le scene. Per questo motivo è facile reperire su internet molta documentazione e soprattutto suggerimenti (tips) sulla risoluzione di problemi quotidiani di programmazione. I principali link da tenere presenti sono:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="Torry's Delphi Pages" href="http://www.torry.net"&gt;Torry&lt;/a&gt; &lt;li&gt;&lt;a href="http://delphi.about.com/"&gt;About Delphi&lt;/a&gt; &lt;li&gt;&lt;a title="Delphi Superpage" href="http://delphi.icm.edu.pl/"&gt;Delphi Superpage&lt;/a&gt; &lt;li&gt;&lt;a title="Delphi 3000" href="http://www.delphi3000.com/"&gt;Delphi 3000&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.freeprogrammingresources.com/delphi.html"&gt;Free Delphi Tutorials&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.drbob42.com/"&gt;Dr. Bob's Delphi Programming Clinic&lt;/a&gt; &lt;li&gt;&lt;a href="http://www.delphibasics.co.uk/"&gt;Delphi Basics&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116284363307031066?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116284363307031066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116284363307031066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116284363307031066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116284363307031066'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/11/introduzione-delphi.html' title='Introduzione a DELPHI'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116050564655277764</id><published>2006-10-10T11:32:00.000-07:00</published><updated>2006-10-10T11:41:06.260-07:00</updated><title type='text'>Sharp Develop 2</title><content type='html'>Ho aspettato e poi ho riprovato.&lt;br /&gt;Ho seguito l'evoluzione di &lt;a href="http://www.icsharpcode.net/OpenSource/SD/"&gt;SharpDevelop &lt;/a&gt;dal suo limbo per Net1.1.&lt;br /&gt;Ho scaricato ed installato la release corrente la 2.0.0 e devo dire che l'IDE è veramente maturo e ben fatto. Mi ha stupito l'Help (F1 sulla parola), il sistema di reporting e la scrittura del codice fila molto rapida.&lt;br /&gt;Complimenti per l'ottimo lavoro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116050564655277764?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116050564655277764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116050564655277764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116050564655277764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116050564655277764'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/10/sharp-develop-2.html' title='Sharp Develop 2'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116050452283219994</id><published>2006-10-10T11:20:00.000-07:00</published><updated>2006-10-10T11:22:02.916-07:00</updated><title type='text'>E 100</title><content type='html'>Ho raggiunto 100 Post in questo Blog. Non so se qualcuno mi legge con costanza e non so nemmeno se chi mi legge trova interessante ciò che dico. Comunque sono 100. Complimenti Luca!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116050452283219994?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116050452283219994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116050452283219994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116050452283219994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116050452283219994'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/10/e-100.html' title='E 100'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-116033589791249770</id><published>2006-10-08T12:31:00.000-07:00</published><updated>2006-10-10T11:20:13.293-07:00</updated><title type='text'>Gli sviluppatori Delphi</title><content type='html'>Leggendo i commenti agli ultimi post di &lt;a href="http://blogs.borland.com/nickhodges/archive/2006/10/05/28020.aspx"&gt;Nick Hodges&lt;/a&gt; e di &lt;a href="http://blog.marcocantu.com/blog/why_upgrading_delphi.html"&gt;Marco Cantù&lt;/a&gt;, mi è storta spontanea questa osservazione: prima dell'avvento di .NET, esisteva Delphi (anche come CBuilder) come solo ambiente di sviluppo veramente produttivo per Windows (VB non era compilato e VC troppo complesso).&lt;br /&gt;L'avvento di .NET ha provocato una rivoluzione: fornire a tutti la produttività di Delphi.&lt;br /&gt;Unendo l'avvento di .NET alla mancata rapida risposta di Borland nel modificare Delphi per la nuova piattaforma, gli sviluppatori di Delphi si sono trovati per la prima volta a non poter rispondere rapidamente alle richieste dei clienti dal loro ambiente. In pratica sono dovuti uscire da Delphi e, guardandosi intorno hanno visto che tutto ciò che era avvenuto per Delphi (con la VCL e le sue molteplici estensioni) stava accadendo per FCL: Delphi aveva perso il primato.&lt;br /&gt;In effetti Delphi, almeno attualmente, non è più e non può più essere l'unico ambiente cui si possono rivolgere gli sviluppatori. Ma forse è ora che la vera potenza di Delphi emerge prepotente. DevCo deve quanto prima colmare il gap e fornire il supporto per .NET2 e per lo sviluppo nativo a 64 bit!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-116033589791249770?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/116033589791249770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=116033589791249770' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116033589791249770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/116033589791249770'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/10/gli-sviluppatori-delphi.html' title='Gli sviluppatori Delphi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-115930210380280033</id><published>2006-09-26T13:20:00.000-07:00</published><updated>2006-09-26T13:22:20.516-07:00</updated><title type='text'>Documentazione su DELPHI</title><content type='html'>&lt;a href="http://podgoretsky.com/ftp/Docs/Delphi/D4/D4in21/index.htm"&gt;Imparare&lt;/a&gt; Delphi in 21 giorni&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-115930210380280033?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/115930210380280033/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=115930210380280033' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115930210380280033'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115930210380280033'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/09/documentazione-su-delphi.html' title='Documentazione su DELPHI'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-115884283293119284</id><published>2006-09-21T05:46:00.000-07:00</published><updated>2006-09-21T05:50:18.786-07:00</updated><title type='text'>TURBO DELPHI</title><content type='html'>Inserisco un pò di links utili:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.turboexplorer.com"&gt;Sito Ufficiale&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.turboexplorer.com/downloads"&gt;Elenco &lt;/a&gt;siti per il download&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.turboexplorer.com/mirror"&gt;Download &lt;/a&gt;da sito TurboExplorer&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.borland.com/nickhodges/articles/26687.aspx"&gt;VIDEO CORSO &lt;/a&gt;IN INGLESE&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.borland.com"&gt;Blogs tecnici&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://delphi.wikia.com/wiki/Main_Page"&gt;Wiki &lt;/a&gt;(enciclopedia) su Delphi&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-115884283293119284?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/115884283293119284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=115884283293119284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115884283293119284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115884283293119284'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/09/turbo-delphi.html' title='TURBO DELPHI'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-115797868909476003</id><published>2006-09-11T05:42:00.000-07:00</published><updated>2006-09-11T05:44:49.476-07:00</updated><title type='text'>Prime impressioni su Turbo Delphi Explorer per Win32</title><content type='html'>Avevo già avuto modo di usare Delphi 2006 nella versione Demo.&lt;br /&gt;L'ambiente Turbo è lo stesso di Delphi 2006 ed ha tutte le caratteristiche innovative rispetto ai vecchi Delphi.&lt;br /&gt;In particolare mi piacciono:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;L'editor: molto ben fatto&lt;/li&gt;&lt;li&gt;La finestra Code Insight che risulta molto veloce rispetto alle precedenti versioni&lt;/li&gt;&lt;li&gt;L'inclusione dei componenti per l'accesso ai dati: dbExpress, BDE ed ADO &lt;/li&gt;&lt;/ul&gt;Risulta un po' negativa l'impossibilità ad aggiungere componenti all'IDE ma questa limitazione si sente solo se la customizzazione a livello di design delle forms è fatta a design time con componenti non standard (per esempio con le RX Library). Personalmente ho sempre cercato di evitare l'uso di componenti non della VCL. Nel caso in cui si sia obbligati a fare uso di qualche componente si può sempre instanziarlo a runtime. Inoltre esiste una procedura che sembra permattere du bypassare questa limitazione: &lt;a href="http://www.danielstools.de/downloads/Tuts/TurboDelphi_install_components_en.pdf"&gt;http://www.danielstools.de/downloads/Tuts/TurboDelphi_install_components_en.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Il prodotto è veramente molto valido considerando anche il fatto che è gratuito e che probabilmente sarà usato da molte persone alle prime armi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-115797868909476003?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/115797868909476003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=115797868909476003' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115797868909476003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115797868909476003'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/09/prime-impressioni-su-turbo-delphi.html' title='Prime impressioni su Turbo Delphi Explorer per Win32'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-115701038086849485</id><published>2006-08-31T00:29:00.000-07:00</published><updated>2006-08-31T00:46:20.926-07:00</updated><title type='text'>Application.ProcessMessages in Delphi</title><content type='html'>Nel mio ultimo programma mi sono imbattuto sul metodo in oggetto: per evitare il blocco del programma ho inserito, in diversi punti (soprattutto in loop di attesa) un bel ProcessMessages.&lt;br /&gt;Il programma che aveva mostrato una certa stabilità, ha iniziato ad avere una serie di scompensi e di blocchi anomali.&lt;br /&gt;Ho iniziato a verificare in debug ed ho scoperto che altri ProcessMessages erano presenti nel codice del componente da me utilizzato.&lt;br /&gt;Fondamentalmente la questione è così riassumibile:&lt;br /&gt;nel caso in cui in una procedura evento sia usata una particolare risorsa (esempio una porta COM), e durante l'uso della risorsa si esegue un Application.ProcessMessages è necessario garantire che non si possa generare alcun evento che magari vada a riaprire la porta COM. Detta così la cosa sembra chiara e semplice, in realtà in progetti complessi dove gli eventi possono generarsi in più parti (magari nemmeno dall'interfaccia utente), è necessario conoscere bene l'uso che il programma fa della risorsa.&lt;br /&gt;Usate Application.ProcessMessages con oculatezza e, se proprio non potete farne a meno, disabilitate gli eventi che possono generare "rientro" (ovvero richiamo della stessa procedura) o introducete il concetto di stato della risorsa (in altri termini se la risorsa è nello stato x non si può effettuare la operazione di nuovo).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-115701038086849485?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/115701038086849485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=115701038086849485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115701038086849485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115701038086849485'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/08/applicationprocessmessages-in-delphi.html' title='Application.ProcessMessages in Delphi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-115700925955223902</id><published>2006-08-30T23:54:00.000-07:00</published><updated>2006-08-31T00:27:40.093-07:00</updated><title type='text'>Un computer non è una lavatrice</title><content type='html'>E' vero. Forse esistono lavatrici complesse come computer, ma il messaggio che voglio dare è questo: molte persone ritengono che, una volta comprato un computer sia sufficiente seguire il ciclo di ogni altro elettrodomestico: accendensione, uso, spegnimento.&lt;br /&gt;Questo è vero se: non c'è connessione ad internet, non si installano periferiche, non si installano programmi, non si cancella niente dal disco. Cioè non è vero mai.&lt;br /&gt;Ho realizzato questa considerazione dopo aver rimesso a "nuovo" un paio di PC che era diventato impossibile utilizzare a causa di Spyware, Virus, frammentazione e registry gigante e mal combinato.&lt;br /&gt;Purtroppo molti utenti non tengono in debito conto le operazioni fondamentali per la corretta vita di un computer:&lt;br /&gt;- installare un antivirus&lt;br /&gt;- tenere il sistema operativo aggiornato&lt;br /&gt;- fare una deframmentazione ogni tanto&lt;br /&gt;- disinstallare correttamente i programmi non più necessari&lt;br /&gt;Esistono programmi gratuiti oppure in trial che consentono di rimediare a situazioni critiche.&lt;br /&gt;Comunque il mio elenco di attrezzi è il seguente:&lt;br /&gt;1. Antivirus AVG&lt;br /&gt;2. AntiSpyware Spybot &amp;amp; Destroy&lt;br /&gt;3. Un'utility per la pulizia del regristry&lt;br /&gt;4. Il sito Windows Update&lt;br /&gt;Dopo 2 giorni di lavoro, scansioni, deframmentazioni e pulizie, il PC è tornato in uno stato stabile.&lt;br /&gt;Vediamo se stavolta l'utente sarà più accorto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-115700925955223902?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/115700925955223902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=115700925955223902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115700925955223902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115700925955223902'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/08/un-computer-non-una-lavatrice.html' title='Un computer non è una lavatrice'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-115503825326165404</id><published>2006-08-08T04:53:00.000-07:00</published><updated>2006-08-08T04:57:34.083-07:00</updated><title type='text'>Delphi: forse si vede il traguardo</title><content type='html'>Borland (DevCo)  sta iniziando a mostrare mostrare i primi segni del nuovo trend. La creazione di ambienti &lt;a href="http://www.turboexplorer.com/"&gt;TURBO&lt;/a&gt; rivolti sia a chi deve imparare a sviluppare sia a chi deve sviluppare per lavoro dimostra come le voci dei tanti delphiniani siano state accolte. Speriamo che questa idea faccia presa sul mercato.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-115503825326165404?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/115503825326165404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=115503825326165404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115503825326165404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115503825326165404'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/08/delphi-forse-si-vede-il-traguardo.html' title='Delphi: forse si vede il traguardo'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-115434778826007568</id><published>2006-07-31T04:45:00.000-07:00</published><updated>2006-07-31T05:09:49.240-07:00</updated><title type='text'>Pensieri #2</title><content type='html'>&lt;strong&gt;Chi cerca trova&lt;/strong&gt;&lt;br /&gt;Per realizzare un programma per gestire una segreteria telefonica per registrare alcuni dati su archivio ho individuato i due punti focali del problema:&lt;br /&gt;che modem ci vuole?&lt;br /&gt;che software è necessario per l'interfacciamento al modem?&lt;br /&gt;&lt;br /&gt;Dopo una mezz'ora di ricerche su Internet avevo la risposta ad entrambe le domande:&lt;br /&gt;- il modem deve essere un modello con l'estensione Voice&lt;br /&gt;- per il software Windows mette a disposizione le TAPI (Telephone API)&lt;br /&gt;&lt;br /&gt;Bene, mi sono detto, fammi allora cercare se tra queste TAPI e Delphi esiste una intersezione. La risposta? Async Professional della&lt;a href="http://www.turbopower.com"&gt; TURBOPOWER&lt;/a&gt; le mitiche librerie per Delphi diventate di libero dominio un paio di anni fa. E allora cosa scopro? che le avevo già scaricate ed installate su Delphi 5.&lt;br /&gt;Dopo un po' di verifiche sono pronto a realizzare il programma che poi altro non è che un input in tabella pilotato via telefono-&lt;br /&gt;Tempo di ricerca ed individuazione della soluzione: un'ora.&lt;br /&gt;Delphi grazie ancora una volta!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Le procedure e le persone&lt;/strong&gt;&lt;br /&gt;Le persone sono come computer?&lt;br /&gt;Possono cioè eseguire delle attività ripetitive seguendo un elenco di procedure?&lt;br /&gt;Fino a che livello aziendale si può parlare di procedure e da che punto si deve parlare di analisi della realtà e scrittura di nuove procedure? Deve esistere una procedura per le procedure?&lt;br /&gt;Secondo il mio parere le procedure sono valide sino al livello impiegatizio. Cioè se una persona lavora come operaio in un fast food a preparare panini ha bisogno di sapere per filo e per segno tutte le varie tempistiche per evitare di dare al panino un sapore diverso da quello che deve avere. A livello impiegatizio, invece, è la persona che deve preoccuparsi di organizzare come meglio riesce il proprio lavoro. Magari userà dei registri cartacei oppure un programma che ha inventato suo cugino, comunque tutto ciò che farà sul lavoro sarà un qualcosa visto dal suo punto di vista. Ed allora non si può prescindere dalle persone. Chi organizzerà meglio il suo lavoro riuscirà a fare di più per l'azienda. La sconfitta delle procedure? No di certo perchè per certe attività esiste la legge e comunque non si può prescindere dal seguire certi schemi. La sconfitta della azienda completamente proceduralizzata però si!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-115434778826007568?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/115434778826007568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=115434778826007568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115434778826007568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115434778826007568'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/07/pensieri-2.html' title='Pensieri #2'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-115382266184383301</id><published>2006-07-25T03:16:00.000-07:00</published><updated>2006-07-25T05:02:28.243-07:00</updated><title type='text'>Pensieri #1</title><content type='html'>&lt;ul&gt;&lt;li&gt;Continua l'avventura di DevCo per Delphi: positivo l'incremento di &lt;a href="http://blogs.borland.com"&gt;documentazione&lt;/a&gt; anche su ECO.&lt;/li&gt;&lt;li&gt;L'account di posta usato al lavoro e la privacy: per i messaggi "top secret" meglio usare un account esterno&lt;/li&gt;&lt;li&gt;Gli sviluppatori "interni": leggendo un capitolo dal libro &lt;a href="http://www.joelonsoftware.com"&gt;Joel on Sofware&lt;/a&gt; in cui si citano gli sviluppatori interni (ad una azienda) come qualcosa di inspiegabile, ho riflettuto sul fatto che esiste una industria del Software in cui gli sviluppatori PRODUCONO ciò che la società vende. Chi lavora come sviluppatore "interno" ad un'azienda (che ha come business non lo sviluppo software ma la produzione di beni di consumo), è uno strumento per il business e quindi deve sviluppare con questa logica in testa: i programmi non usciranno "pacchettizzati" e non saranno mai "completati" per la distribuzione, non esisteranno "compilazioni" notturne dell'ultima release o Tester interni. I programmi sviluppati internamente sono opere "&lt;a href="http://it.wikipedia.org/wiki/Sagrestia_Nuova"&gt;incomplete&lt;/a&gt;" e, come le sculture di Michelangelo che ogni osservatore conclude con la propria immaginazione, possono essere adeguati o buttati al cambio di dirigenza. Comunque ciò che cambia di fondamentale è l'uso dell'ambiente Informatico: chi lavora in una azienda di Software usa gli strumenti di sviluppo come macchine che producono e quindi sono un patrimonio per l'azienda; chi invece lavora da "interno", ha tutto l'interesse ad usare l'ambiente che ritiene più produttivo e più malleabile dal punto di vista delle mutabili esigenze.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-115382266184383301?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/115382266184383301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=115382266184383301' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115382266184383301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115382266184383301'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/07/pensieri-1.html' title='Pensieri #1'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-115046493348438663</id><published>2006-06-16T06:12:00.000-07:00</published><updated>2006-06-16T06:35:33.740-07:00</updated><title type='text'>Selezionare con il mouse: DrawFocusRect</title><content type='html'>Ecco come disegnare un rettangolo che permette di selezionare un area della form:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/1032/916/1600/focusRect.jpg"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/1032/916/400/focusRect.jpg" border="0" /&gt;&lt;/a&gt; Servono 2 variabili boolean per indicare l'avvio della operazione di disegno ed il fatto che si sia effettivamente disegnato un rettangolo (per evitare effetti indesidetati).&lt;br /&gt;Gli eventi da gestire sono il mousedown (che consente di attivare la procedura e per indicare il punto di inizio del disegno), il mousemouve (che cancella il precedente rettangolo e disegna il nuovo) ed il mouseup che disattiva l'operazione.&lt;br /&gt;&lt;br /&gt;Ecco il codice inserito in Delphi:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;type  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;TForm2 = class(TForm)    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; procedure FormMouseDown(Sender: TObject; Button: TMouseButton;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;      Shift: TShiftState; X, Y: Integer);    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; procedure FormMouseUp(Sender: TObject; Button: TMouseButton;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;      Shift: TShiftState; X, Y: Integer);  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; private    { Private declarations }  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  disegnato:boolean;  &lt;br /&gt;  start:boolean;  &lt;br /&gt;  rS:TRect;   &lt;br /&gt;  xS,yS:Integer;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; public    { Public declarations }    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;var  Form2: TForm2;&lt;br /&gt;&lt;br /&gt;implementation&lt;br /&gt;{$R *.dfm}&lt;br /&gt;procedure TForm2.FormMouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;begin &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; start:=true; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; xS:=X; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; yS:=Y; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; rS.Left:=X; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; rS.Top:=Y; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; rS.Right:=X; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; rS.Bottom:=Y; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; disegnato:=false;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;procedure TForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;var tmp:integer;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;begin &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; caption:=Format('(%d,%d) x (%d,%d)',[xS,yS,X,Y]); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; if start then &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; begin &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  //cancello il vecchio  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  if disegnato then canvas.DrawFocusRect(rS);  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; // verifico se sono a sinistra o a destra del punto iniziale xS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  if xS&gt;X then  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  begin   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   rS.Right:=xS;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   rs.Left:=X&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; End&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   rS.Right:=X;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   rS.Left:=xS;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; //verifico se sono sopra o sotto del punto iniziale yS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; if yS&gt;Y then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   rS.Bottom:=yS;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   rS.Top:=Y&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  end&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  else&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   rS.Bottom:=Y;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;   rS.Top:=yS;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  end;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;//disegno il rettangolo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  canvas.DrawFocusRect(rS);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;  disegnato:=true;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; end; //if Start &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;procedure TForm2.FormMouseUp(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;begin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; start:=false;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; //forza il repaint e la cancellazione dell'ultimo rettangolo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt; invalidate;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;end;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;La cosa più complicata è la gestione dei vertici del rettangolo: un rettangolo con un vertice finale sopra o a sinistra di quello iniziale non viene disegnato. Per questo bisogna invertire i vertici.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-115046493348438663?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/115046493348438663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=115046493348438663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115046493348438663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115046493348438663'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/06/selezionare-con-il-mouse-drawfocusrect.html' title='Selezionare con il mouse: DrawFocusRect'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-115037541333202963</id><published>2006-06-15T05:35:00.000-07:00</published><updated>2006-06-15T05:43:33.630-07:00</updated><title type='text'>Agire o reagire</title><content type='html'>Fare Help Desk = Reagire&lt;br /&gt;Fare il Project Manager = Agire&lt;br /&gt;&lt;br /&gt;La reazione non consente programmazione: si è chiamati per un problema e si va.&lt;br /&gt;&lt;br /&gt;L'azione richiede analisi e studio: non esiste un problema impellente, esiste un progetto.&lt;br /&gt;&lt;br /&gt;Non esiste un interruttore per passare da uno stato all'altro. Si decide di programmare (anche nel senso di sviluppare) ed ecco arriva una interruzione, si reagisce, e si cerca di ritornare a programmare.&lt;br /&gt;Siamo, sono, in questo periodo come un processore. Lavoro per interrupt.&lt;br /&gt;Il problema è che nel caso della reazione non si sa quando si potrà riprendere il lavoro lasciato.&lt;br /&gt;&lt;br /&gt;E' chiaro: dipende da quanto tempo uno ha, qual'è la priorità del problema da risolvere, quanto è importante il progetto su cui si lavora.&lt;br /&gt;Il dato di fatto però è uno solo: gli utenti se hanno un problema VOGLIONO risolverlo.&lt;br /&gt;&lt;br /&gt;Esistono le sette opere di misericordia spirituale delle chiesa cattolica, almeno quattro di queste si sposano perfettamente con il lavoro di chi deve, un po' reagire, un po' agire, un po' reagire, un po' agire...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-115037541333202963?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/115037541333202963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=115037541333202963' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115037541333202963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/115037541333202963'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/06/agire-o-reagire.html' title='Agire o reagire'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114976944185459289</id><published>2006-06-08T05:23:00.000-07:00</published><updated>2006-06-08T06:45:25.080-07:00</updated><title type='text'>USARE I PATTERNS IN DELPHI 2006</title><content type='html'>I &lt;a href="http://it.wikipedia.org/wiki/Design_Patterns"&gt;Patterns &lt;/a&gt;UML formalizzano alcune problematiche di programmazione ad Oggetti fornendo una soluzione sottoforma di diagramma di classe UML. Esistono una serie di Patterns (Modelli) formalizzati ed universalmente conosciuti come GoF (Gang of Four). I Patterns GoF sono suddivisi in tre grandi categorie:ComportamentaliCreazionaliStrutturali&lt;br /&gt;In Delphi è possibile visualizzare i vari patterns selezionando la voce Tools\Pattern Organizer:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="277" alt="" src="http://photos1.blogger.com/blogger/1032/916/320/pp.jpg" width="413" border="0" /&gt;&lt;br /&gt;Per tipologia di Linguaggio è possibile trovare i vari Patterns GoF.&lt;br /&gt;&lt;strong&gt;Per fare un esempio&lt;/strong&gt; d'uso di un Pattern GoF di tipo Creazionale si consideri il pattern SINGLETON.&lt;br /&gt;Questo Pattern consente di risolvere il problema legato alla creazione di un solo oggetto da una classe: in pratica una classe di questo tipo garantisce che possa essere istanziata una sola volta in un solo punto del codice.&lt;br /&gt;Per aggiungere il pattern al progetto creare un progetto (anche Win32) e aprire il Tab &lt;strong&gt;Model View&lt;/strong&gt;. Creare a quel punto un nuovo namespace dal nome PatternSingleton:&lt;br /&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/1032/916/320/pp.0.jpg" border="0" /&gt;&lt;/p&gt;&lt;p&gt;Questo comparirà in Model View.&lt;br /&gt;A questo punto aprendo il diagramma UML (doppio click sul Namespace creato) è possibile inserire il Pattern Singleton nel progetto selezionandolo dalla finestra di selezione attivabile selezionando Create By Pattern dal menù contestuale:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 369px; CURSOR: hand; HEIGHT: 208px; TEXT-ALIGN: center" height="221" alt="" src="http://photos1.blogger.com/blogger/1032/916/320/pp.1.jpg" width="390" border="0" /&gt;&lt;/p&gt;&lt;p&gt;La unit creata (dal Nome PatternSingleton) contiene una sola classe dicharata in questo modo:&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;type&lt;/strong&gt; TSingleton = &lt;strong&gt;class&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;strict private&lt;br /&gt;constructor&lt;/strong&gt; Create;&lt;br /&gt;&lt;strong&gt;class var&lt;/strong&gt;&lt;br /&gt;FInstance:TSingleton;&lt;br /&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;br /&gt;s:&lt;strong&gt;String&lt;/strong&gt;;&lt;br /&gt;&lt;strong&gt;class function&lt;/strong&gt; GetInstance: TSingleton;&lt;br /&gt;&lt;strong&gt;end&lt;/strong&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-size:100%;"&gt;In pratica la Classe espone un solo metodo pubblico di Classe dal nome GetInstance. Questo metodo è l'unico richiamabile visto che il metodo Create è strict private (cioè è richiamabile solo dall'interno della classe). In questo metodo si controlla se la variabile di classe FInstance è valorizzata. Se non lo è si crea l'oggetto e si associa alla FInstance. Se la FInstance è valorizzata si ritorna il suo valore (cioè il puntatore all'unico oggetto creato):&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;class function&lt;/strong&gt; TSingleton.GetInstance: TSingleton;&lt;br /&gt;&lt;strong&gt;begin&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;If&lt;/strong&gt; FInstance = nil &lt;strong&gt;Then&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;begin&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;FInstance := TSingleton.Create();&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;&lt;span style="font-family:georgia;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;end&lt;/strong&gt;;&lt;br /&gt;Result := FInstance;&lt;br /&gt;&lt;strong&gt;end&lt;/strong&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Per verificare l'uso della classe sopra ho inserito una variabile membro di tipo stringa (s).&lt;br /&gt;Possiamo inserire il seguente codice all'interno di un pulsante:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;&lt;br /&gt;procedure &lt;/strong&gt;TForm5.Button1Click(Sender: TObject);&lt;br /&gt;&lt;strong&gt;Var&lt;/strong&gt; ts:TSingleton;&lt;br /&gt;&lt;strong&gt;begin&lt;/strong&gt;&lt;br /&gt;ts:=TSingleton.GetInstance;&lt;br /&gt;ts.s:='CIAO';&lt;br /&gt;&lt;strong&gt;end&lt;/strong&gt;;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;In pratica si crea la classe e si valorizza s.&lt;/p&gt;&lt;p&gt;Se in un secondo pulsante inseriamo il codice seguente notiamo che il valore di s è rimasto valorizzato come prima:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;strong&gt;procedure &lt;/strong&gt;TForm5.Button2Click(Sender: TObject);&lt;br /&gt;&lt;strong&gt;Var&lt;/strong&gt; ts:TSingleton;&lt;br /&gt;&lt;strong&gt;begin&lt;/strong&gt;&lt;br /&gt;ts:=TSingleton.GetInstance;&lt;br /&gt;showMessage(ts.s);&lt;br /&gt;&lt;strong&gt;end&lt;/strong&gt;;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;span style="font-family:georgia;font-size:100%;"&gt;La possibilità di creare un pattern come questo (Singleton) è effettivamente comoda e risulta possibile grazie all'aggiunta (in Delphi 2006) delle Variabili di Classe (le Static di Java).&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114976944185459289?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114976944185459289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114976944185459289' title='98 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114976944185459289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114976944185459289'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/06/usare-i-patterns-in-delphi-2006.html' title='USARE I PATTERNS IN DELPHI 2006'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>98</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114933119051982606</id><published>2006-06-03T03:22:00.000-07:00</published><updated>2006-06-03T03:39:51.530-07:00</updated><title type='text'>Lo sviluppo in DELPHI</title><content type='html'>Ebbene si.&lt;br /&gt;Nel mondo delle aziende che producono Software sta accadendo una cosa MOLTO interessante (per DELPHI).&lt;br /&gt;Sappiamo tutti che la politica di Microsoft per gli ambienti di sviluppo è .NET oriented. Sappiamo anche che pochi prodotti interni a Microsoft sono stati sviluppati con .NET. Evidentemente deve essere accaduto che la scelta di lasciare Win32 un po' a se stesso ha lasciato spazio all'UNICO ambiente che offre le stesse capacità e produttività di sviluppo sia per .NET che per Win32: Delphi.&lt;br /&gt;Esempi come &lt;a href="http://www.skype.com"&gt;Skype&lt;/a&gt; o prodotti ancora in fase Beta come &lt;a href="http://blogs.borland.com/stevet/archive/2006/06/02/25141.aspx"&gt;Yahoo Go TV!&lt;/a&gt; sono sviluppati in Delphi.&lt;br /&gt;Esistono MOLTI PC con ancora Windows 98 ed Hw poco performante. La scelta di .NET richiede un sacco di condizioni: installazione del Framework, una certa pesantezza nell'esecuzione, possibili incompatibilità con il SO installato etc.&lt;br /&gt;Allora le aziende cominciano a capire la vera potenza di Delphi: elevata produttività, assoluta mancanza di concorrenti per lo sviluppo in Win32 (mantenendo una produttività pari a quella di .NET).&lt;br /&gt;Di fronte ad un mondo che si muove verso nuovi standard (che non si sa se produrranno frutti) una certezza rimane: lo sviluppo per Win32 che funziona sarà possibile in DELPHI!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114933119051982606?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114933119051982606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114933119051982606' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114933119051982606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114933119051982606'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/06/lo-sviluppo-in-delphi.html' title='Lo sviluppo in DELPHI'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114614087389965123</id><published>2006-04-27T05:27:00.000-07:00</published><updated>2006-04-27T05:27:54.146-07:00</updated><title type='text'>Inviare una MAIL POSTICIPATA</title><content type='html'>La procedura seguente consente di inviare una mail ad un certo indirizzo in maniera POSTICIPATA alla data ed ora indicate in DeferrededDeliveryTime.&lt;br /&gt;&lt;br /&gt;L'uso della Procedura da VBA richiede l'installazione del Software &lt;a href="http://www.dimastr.com/redemption/download.htm"&gt;REDEMPTION&lt;/a&gt; per l'invio delle mail bypassando il controllo AntiSpam di Outlook.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;&lt;strong&gt;Private Sub InviaMailRitardata()&lt;br /&gt;&lt;/strong&gt;Dim objItem As Outlook.MailItem&lt;br /&gt;Dim SafeItem As SafeMailItem&lt;br /&gt;&lt;br /&gt;Set objItem = Application.CreateItem(olMailItem)&lt;br /&gt;&lt;br /&gt;objItem.DeferredDeliveryTime = Now + TimeSerial(0, 5, 0)  ' Posticipa l'invio tra 5 minuti&lt;br /&gt;&lt;br /&gt;'Mail per il risveglio&lt;br /&gt;objItem.To = "&lt;a href="mailto:MyMAIL@MYDOMAIN.COM"&gt;MyMAIL@MYDOMAIN.COM&lt;/a&gt;"  'Indirizzo mail cui inviare&lt;br /&gt;&lt;br /&gt;Set SafeItem = New SafeMailItem&lt;br /&gt;SafeItem.Item = objItem&lt;br /&gt;SafeItem.Subject = "Soggetto della mail"&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;SafeItem.Recipients.ResolveAll&lt;br /&gt;SafeItem.Send&lt;br /&gt;&lt;br /&gt;Set objItem = Nothing&lt;br /&gt;Set SafeItem = Nothing&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;End Sub &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color:#3366ff;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114614087389965123?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114614087389965123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114614087389965123' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114614087389965123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114614087389965123'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/04/inviare-una-mail-posticipata.html' title='Inviare una MAIL POSTICIPATA'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114599265112992200</id><published>2006-04-25T12:17:00.000-07:00</published><updated>2006-04-25T12:17:31.453-07:00</updated><title type='text'>Un confronto OO tra Delphi, C++, C# and Java</title><content type='html'>&lt;a href="http://www.derangedcoder.net/programming/general/comparingObjectOrientedFeatures.html"&gt;Comparing Object-Oriented Features of Delphi, C++, C# and Java&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114599265112992200?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114599265112992200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114599265112992200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114599265112992200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114599265112992200'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/04/un-confronto-oo-tra-delphi-c-c-and.html' title='Un confronto OO tra Delphi, C++, C# and Java'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114551311262583043</id><published>2006-04-19T23:05:00.000-07:00</published><updated>2006-04-19T23:05:12.936-07:00</updated><title type='text'>Delphi 2006 e .NET 2.0: errore in PCNTRLSRV.CPP</title><content type='html'>Dopo l'installazione di NET 2.0 si verifica un errore in Delphi 2006 nel caso di progetti WinForm.&lt;br /&gt;L'errore indicato fa riferimento al modulo PCNTRLSRV.CPP.&lt;br /&gt;&lt;br /&gt;Per risolvere il problema è necessario operare a livello di registro di sistema come riportato nel link sottostante.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.atozed.com/olaf/2005_12_07.en.iwp"&gt;Atozed Software - Delphi 2006 and .NET 2.0 debugger issues&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114551311262583043?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114551311262583043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114551311262583043' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114551311262583043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114551311262583043'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/04/delphi-2006-e-net-20-errore-in.html' title='Delphi 2006 e .NET 2.0: errore in PCNTRLSRV.CPP'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114501520205738536</id><published>2006-04-14T04:46:00.000-07:00</published><updated>2006-04-14T04:46:42.263-07:00</updated><title type='text'>Aiuto su Delphi</title><content type='html'>&lt;a href="http://www.delphibasics.co.uk/"&gt;Delphi Basics&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114501520205738536?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114501520205738536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114501520205738536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114501520205738536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114501520205738536'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/04/aiuto-su-delphi.html' title='Aiuto su Delphi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114418072583502253</id><published>2006-04-04T12:58:00.000-07:00</published><updated>2006-04-04T12:58:46.170-07:00</updated><title type='text'>Agile o solo Intelligente?</title><content type='html'>&lt;a href="http://www.quanam.it/opencms/opencms/website/it/agile/"&gt;Agile&lt;/a&gt;&lt;br /&gt;Che dire. Sono sempre poco attratto dallo schematismo portato all'eccesso, dalla documentazione, dai diagrammi e dai flussi.&lt;br /&gt;La proposta del movimento Agile della comunicazione ed il raffinamento successivo è una formalizzazione del mio modo di lavorare.&lt;br /&gt;Non dico questo per andare nella ottica della confusione e nel fare ciò che mi piace di più (programmare), ma perchè penso che ciascuno di noi abbia un modo di lavorare: chi riesce a portare avanti le cose e raggiunge il risultato NON ha bisogno di avere tanti formalismi. Evidentemente non è semplice coordinare grossi gruppi di lavoro senza avere una precisa metodologia. Dal punto di vista dell'industria del SW è quindi fondamentale rendere i programmatori il più possibile pilotati dalle esigenze dell'azienda.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114418072583502253?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114418072583502253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114418072583502253' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114418072583502253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114418072583502253'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/04/agile-o-solo-intelligente.html' title='Agile o solo Intelligente?'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114352917667523225</id><published>2006-03-27T22:59:00.000-08:00</published><updated>2006-03-27T22:59:36.893-08:00</updated><title type='text'>Software Development&gt;Jolt Product Excellence and Productivity Awards</title><content type='html'>&lt;a href="http://www.sdmagazine.com/jolts/2006index.html"&gt;Software Development&gt;Jolt Product Excellence and Productivity Awards&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114352917667523225?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114352917667523225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114352917667523225' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114352917667523225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114352917667523225'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/03/software-developmentjolt-product.html' title='Software Development&gt;Jolt Product Excellence and Productivity Awards'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114250815316695255</id><published>2006-03-16T03:22:00.000-08:00</published><updated>2006-03-16T03:29:49.993-08:00</updated><title type='text'>Report con Visual Studio 2005 Express Edition</title><content type='html'>Sia utilizzando C# Express che VB Express 2005, è possibile creare reports sfruttando il designer contenuto in Visual Web Developer 2005 Express Edition.&lt;br /&gt;Per fare ciò è necessario seguire le istruzioni riportate in questo Blog.&lt;br /&gt;&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=182261&amp;amp;SiteID=1"&gt;C# Express 2005 &lt;br /&gt;and Report - MSDN Forums&lt;/a&gt;&lt;br /&gt;In pratica si crea una pagina WEB in VWD, si aggiunge un controllo Report Viewer, si seleziona lo Smart tag e si crea un nuovo report che punti alla stessa sorgente dati che utilizzeremo nel progetto WinForm (C# o VB).&lt;br /&gt;A questo punto, disegnato il report, si salva nella cartella del progetto WinForm e si aggiunge al progetto. Si inserisce un controllo Report Viewer alla form e si seleziona il report precedentemente aggiunto, indicando la sorgente dati con l'opzione dello Smart Tag.&lt;br /&gt;Il gioco è fatto ed il problema è risolto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114250815316695255?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114250815316695255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114250815316695255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114250815316695255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114250815316695255'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/03/report-con-visual-studio-2005-express.html' title='Report con Visual Studio 2005 Express Edition'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114249898201911341</id><published>2006-03-16T00:49:00.000-08:00</published><updated>2006-03-16T00:49:42.330-08:00</updated><title type='text'>ReportViewer control in Visual Studio 2005</title><content type='html'>Il reporting è una fase importante in ogni applicazione che gestisce dati.&lt;br /&gt;Il nuovo Visual Studio 2005 include un sistema di reporting che estende all'uso locale il meccanismo precedentemente sviluppato come estensione per l'ambiente SQL 2000 (Reporting Services). Questo sito contiene una serie di utili consigli ed esempi per utilizzare al meglio il sistema di reporting incluso in VS 2005.&lt;br /&gt;&lt;a href="http://www.gotreportviewer.com/"&gt;ReportViewer control in Visual Studio 2005&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si deve notare che le versioni Express di Visual Studio NON includono gli strumenti per la creazione dei Reports fatta eccezione per la Web Developer Edition che invece include la parte di design.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114249898201911341?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114249898201911341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114249898201911341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114249898201911341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114249898201911341'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/03/reportviewer-control-in-visual-studio.html' title='ReportViewer control in Visual Studio 2005'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114224527241612720</id><published>2006-03-13T02:21:00.000-08:00</published><updated>2006-03-13T02:21:15.606-08:00</updated><title type='text'>SQL EXPRESS Edition</title><content type='html'>Come questo post &lt;a href="http://www.devnewsgroups.net/link.aspx?url=http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=139877&amp;amp;SiteID=1"&gt;post&lt;/a&gt; sembra dire, l'uso di SQL Express non è consentito in Windows 98. In effetti i Sistemi Operativi supportati da sono: Windows 2000 Service Pack 4; Windows Server 2003 Service Pack 1; Windows XP Service Pack 2 come riportato &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=220549B5-0B07-4448-8848-DCC397514B41&amp;displaylang=en"&gt;qui&lt;/a&gt;.&lt;br /&gt;Come sempre è necessario conoscere tutti gli aspetti per la realizzazione di un nuovo progetto, non concentrandosi solo sull'analisi. E così un bel programma basato su SQL può non essere accettato da una realtà poichè hanno dei sistemi datati (d'altro canto non tutti sono fanatici del nuovo a tutti i costi).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114224527241612720?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114224527241612720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114224527241612720' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114224527241612720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114224527241612720'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/03/sql-express-edition.html' title='SQL EXPRESS Edition'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114198114152544861</id><published>2006-03-10T00:59:00.000-08:00</published><updated>2006-03-10T00:59:01.606-08:00</updated><title type='text'>Tutto Open Source?</title><content type='html'>Ho letto con interesse questo blog &lt;a href="http://michele.sciabarra.com/page/Il_vero_informatico"&gt;Sciabarra.com: Il_vero_informatico&lt;/a&gt; scritto bene.&lt;br /&gt;&lt;br /&gt;Mi sono trovato poi a fare alcune considerazioni:&lt;br /&gt;- l'open source è un bene che esista&lt;br /&gt;- per offrire delle garanzie un qualunque progetto open source deve approdare a qualche forma di finanziamento (altrimenti rischia di non essere aggiornato adeguatamente)&lt;br /&gt;- l'open source è importante ma più importante è il rispetto degli standard&lt;br /&gt;- la produttività insegna che le soluzioni "mono" fornitore e pacchettizzate hanno, per certi progetti, un costo di sviluppo più basso&lt;br /&gt;- molte volte non è il tecnico che propone lo strumento ma il cliente che chiede di usarne uno specifico (in base alle installazioni che ha)&lt;br /&gt;&lt;br /&gt;L'informatica è bella anche perchè è varia ed ognuno trova il proprio "karma" negli ambienti a lui più consoni.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114198114152544861?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114198114152544861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114198114152544861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114198114152544861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114198114152544861'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/03/tutto-open-source.html' title='Tutto Open Source?'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114051705922202044</id><published>2006-02-21T02:17:00.000-08:00</published><updated>2006-02-21T02:17:39.666-08:00</updated><title type='text'>untitled</title><content type='html'>Un altro grande esempio di inventiva.&lt;br /&gt;&lt;a href="http://untitlednet.com/"&gt;untitled&lt;/a&gt;&lt;br /&gt;Può essere una cosa inutile ma risulta molto interessante.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114051705922202044?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114051705922202044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114051705922202044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114051705922202044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114051705922202044'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/02/untitled.html' title='untitled'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114029341077829707</id><published>2006-02-18T12:10:00.000-08:00</published><updated>2006-02-18T12:10:10.950-08:00</updated><title type='text'>Verifica la popolarità di un linguaggio</title><content type='html'>&lt;a href="http://www.tiobe.com/tpci.htm"&gt;TPCI - TIOBE Programming Community Index&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114029341077829707?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114029341077829707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114029341077829707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114029341077829707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114029341077829707'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/02/verifica-la-popolarit-di-un-linguaggio.html' title='Verifica la popolarità di un linguaggio'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114029269625575935</id><published>2006-02-18T11:58:00.000-08:00</published><updated>2006-02-18T11:58:16.356-08:00</updated><title type='text'>DELPHI: indice delle lezioni</title><content type='html'>Per la diffusione di questo ambiente e per una infarinatura iniziale questo corso On-Line non è male:&lt;br /&gt;&lt;a href="http://programmazione.html.it/delphi/"&gt;DELPHI: indice delle lezioni&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114029269625575935?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114029269625575935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114029269625575935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114029269625575935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114029269625575935'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/02/delphi-indice-delle-lezioni.html' title='DELPHI: indice delle lezioni'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114029246248531179</id><published>2006-02-18T11:54:00.000-08:00</published><updated>2006-02-18T11:54:22.930-08:00</updated><title type='text'>Perchè Delphi?</title><content type='html'>Dopo le ultime notizie da Borland relative alla dismissione degli ambienti di sviluppo, c'è stata come una sorta di riflessione da parte degli sviluppatori Delphi che sembrano si siano resi conto (forse per la prima volta) di dover PROMUOVERE maggiormente il loro uso di Delphi.&lt;br /&gt;Perchè si parla solo di Java, di C# e di VB? Perchè c'è un unico libro in italiano su Delphi? Verrebbe da pensare che siano pochi coloro che usano Delphi. Invece non è così! Le società che ho avuto modo si contattare con il mio lavoro, fanno uso di Delphi. Molti ragazzi usano Delphi.&lt;br /&gt;Tutto questo lavorare non pubblicizzato è stato forse il motivo per cui Borland ha dovuto dismettere questo ambiente. E' vero: molto deve essere fatto all'origine (cioè dalla stessa Borland) ma molto possiamo fare anche noi.&lt;br /&gt;&lt;br /&gt;Ed allora poniamoci una semplice domanda: perchè uno sviluppatore in erba dovrebbe considerare Delphi? Perchè non dovrebbe usare Visual Studio o Java?&lt;br /&gt;Esistono diverse risposte:&lt;br /&gt;1. Attualmente ci sono molti PC con sistemi operativi "datati" su cui è impensabile installare un Framework.&lt;br /&gt;2. Se sviluppi con Delphi puoi convertire le tue applicazioni Win32 in applicazioni .NET (grazie alla VCL .NET)&lt;br /&gt;3. Se vuoi puoi comunque sviluppare in .NET (per ora 1.1)&lt;br /&gt;&lt;br /&gt;Quindi se sei uno sviluppatore che non vuole essere in balia delle scelte di un'unica compagnia, devi utilizzare DELPHI. Se sei uno sviluppatore che mira alla produttività devi sviluppare in DELPHI. Se sei uno sviluppatore che desidera preservare l'investimento, devi sviluppare in DELPHI.&lt;br /&gt;&lt;br /&gt;Spesso mi vengono richiesti dei programmi. La mia prima domanda è: che sistema operativo hai? La risposta generalmente non è Windows XP SP2 ma Windows 98. A questo punto NON esistono alternative: devo sviluppare in DELPHI.&lt;br /&gt;&lt;br /&gt;In altre parole: è bello avere gli ambienti Express di Microsoft ma è anche vero che per distribuire l'applicazione è necessario fornire anche lo strato .NET. E' bellissimo avere a disposizione Eclipse o Netbeans, ma è anche vero che Java non è un fulmine sotto Windows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114029246248531179?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114029246248531179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114029246248531179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114029246248531179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114029246248531179'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/02/perch-delphi.html' title='Perchè Delphi?'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-114010264250647565</id><published>2006-02-16T07:10:00.000-08:00</published><updated>2006-02-16T07:10:42.826-08:00</updated><title type='text'>Larkware Site Index</title><content type='html'>&lt;a href="http://www.larkware.com/"&gt;Larkware Site Index&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-114010264250647565?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/114010264250647565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=114010264250647565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114010264250647565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/114010264250647565'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/02/larkware-site-index.html' title='Larkware Site Index'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113976436139457568</id><published>2006-02-12T09:12:00.000-08:00</published><updated>2006-02-12T09:15:26.126-08:00</updated><title type='text'>Delphi ed ancora Delphi.</title><content type='html'>Ebbene si!&lt;br /&gt;Borland ha deciso di disfarsi degli IDE (JBuilder e Delphi in primis).&lt;br /&gt;Cosa significa?&lt;br /&gt;Per chi sviluppa in Delphi, già ora risulta difficile, in un mondo dove tutti sono esperti, proporre un programma fatto con questo linguaggio. Eppure e qui non ci sono dubbi DELPHI (per Win32) è il &lt;strong&gt;migliore&lt;/strong&gt; ambiente per produttività e potenza. &lt;br /&gt;Che cosa è successo?&lt;br /&gt;E' successo che Microsoft si è portata in casa (non ora ma un po' di anni fa) la tecnologia vincente per diventare monopolista ANCHE nel mondo degli ambienti di sviluppo. Il tempo perso con Visual Basic degli anni 90 è stato recuperato introducendo la piattaforma .NET e "regalando" ambienti di sviluppo altrettanto produttivi (anche se un po' meno ricchi) di Delphi.&lt;br /&gt;Dall'altro lato la piattaforma Java si è spinta verso l'Open Source con due grossi giganti alle spalle, IBM per Eclipse e SUN per Netbean ed anche la programmazione in Java è diventata gratuita.&lt;br /&gt;Perchè uno dovrebbe comprare un ambiente di sviluppo?&lt;br /&gt;Prima per lo sviluppo in Win 32 c'era Delphi e chi non conosceva Pascal doveva scendere a compromessi con VB o picchiarsi duramente con C++. Ora è tutto "almeno all'apparenza" gratuito:&lt;br /&gt;1. Per i linguaggi .NET esiste Visual Studio Express o SharpDevelop&lt;br /&gt;2. Per Java gli IDE indicati sopra&lt;br /&gt;Eppure nonostante tutto .NET non è entrata (almeno per ora) nel cuore di Windows. Per realizzare programmi che SICURAMENTE girino su tutte le piattaforme Windows &gt;= Windows 95 è ancora necessario sviluppare in Win32. Ed è qui che Delphi deve ancora continuare a dare lezioni a tutti!&lt;br /&gt;E poi c'è il mondo LINUX. Anche qui diamo spazio a Delphi.&lt;br /&gt;E poi c'è il mondo OFFICE: anche se non sarà elegante e bello "programmare" all'interno di Excel o in ACCESS è qui che il ritorno di investimento può esserci.&lt;br /&gt;Non si deve sempre pensare a sviluppo Enterprise! Molte delle soluzioni a problemi terribili, possono nascere dalla semplice automazione di qualche foglio Excel.&lt;br /&gt;E poi Marketing, pubblicità, moda!!!&lt;br /&gt;Diciamolo che i programmi più UTILIZZATI sono fatti in Delphi.&lt;br /&gt;Vi immaginate una Luna Rossa sponsorizzata DELPHI!!!&lt;br /&gt;&lt;br /&gt;Insomma noi lo sappiamo: se vuoi fare un programma velocemente, performante e che non rompa le scatole devi usare DELPHI.&lt;br /&gt;Convinciamo gli altri soprattutto ad usarlo.&lt;br /&gt;&lt;br /&gt;Dico due ultime cose:&lt;br /&gt;- avete cercato in negli ambienti .NET di Microsoft una Griglia (stile TStringGrid)? Non c'è!&lt;br /&gt;- avete cercato una scrollBox? Non c'e?&lt;br /&gt;Sapete cosa vuol dire programmare una griglia da zero?&lt;br /&gt;Sapete cosa vuol dire programmare una scrollBox da zero?&lt;br /&gt;IO SI!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113976436139457568?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113976436139457568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113976436139457568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113976436139457568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113976436139457568'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/02/delphi-ed-ancora-delphi.html' title='Delphi ed ancora Delphi.'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113949727904946172</id><published>2006-02-09T07:01:00.000-08:00</published><updated>2006-02-09T07:01:21.713-08:00</updated><title type='text'>Lazarus Project</title><content type='html'>&lt;a href="http://www.lazarus.freepascal.org"&gt;Lazarus &lt;br /&gt;Project&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La nuova Release dell'IDE, appena rilasciata sul sito, include una serie di nuove caratteristiche tra cui (finalmente) la connessione ODBC per aprire il mondo a tutti i vari DB.&lt;br /&gt;A queto punto si può pensare di utilizzare seriamente per fare sviluppo nel mondo Windows (sviluppo per applicazioni gestionali).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113949727904946172?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113949727904946172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113949727904946172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113949727904946172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113949727904946172'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/02/lazarus-project.html' title='Lazarus Project'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113942199273276521</id><published>2006-02-08T10:06:00.000-08:00</published><updated>2006-02-12T09:18:20.483-08:00</updated><title type='text'>Acquisizione di Borland</title><content type='html'>Questa acquisizione deve far guardare positivamente al futuro di DELPHI? &lt;br /&gt;Vedremo.&lt;br /&gt;&lt;a href="http://www.segue.com/"&gt;Segue Software - Quality Optimization Solutions for the Software Application Lifecycle&lt;/a&gt;&lt;br /&gt;Da leggere anche il &lt;a href="http://blogs.borland.com/abauer/archive/2006/02/07/23006.aspx"&gt;post&lt;/a&gt; di Bauer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113942199273276521?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113942199273276521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113942199273276521' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113942199273276521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113942199273276521'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/02/acquisizione-di-borland.html' title='Acquisizione di Borland'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113923229215633181</id><published>2006-02-06T05:24:00.000-08:00</published><updated>2006-02-06T05:24:52.530-08:00</updated><title type='text'>FMS Technical Papers - Access within an Organization's Database Strategy</title><content type='html'>A proposito dell'importanza di Access in un contesto Office segnalo questo articolo.&lt;br /&gt;&lt;a href="http://fmsinc.com/tpapers/genaccess/DBOD.asp"&gt;FMS Technical Papers - Access within an Organization's Database Strategy&lt;/a&gt;&lt;br /&gt;Il dibattito sul futuro di &lt;strong&gt;DAO&lt;/strong&gt; è ancora molto acceso come dimostrano diversi forum.&lt;br /&gt;In pratica la strategia MS sembra molto focalizzata su SQL Express. Comunque una domanda sorge spontanea: qual'è la durata di un'applicazione? Se uno sviluppatore deve (ma DEVE veramente?) cambiare tecnologia di sviluppo ogni 1-2 anni riesce a stare dietro alle richieste di modifiche delle vecchie applcazioni? Riesce a risolvere i problemi che emergono nei nuovi sviluppi? Quanti di noi scoprono dopo anni di esperienza comportamenti e stranezze di ambienti di sviluppo?&lt;br /&gt;Ma allora è gisto cambiare ambiente di sviluppo all'affacciarsi di ogni nuova tecnologia?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113923229215633181?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113923229215633181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113923229215633181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113923229215633181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113923229215633181'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/02/fms-technical-papers-access-within.html' title='FMS Technical Papers - Access within an Organization&apos;s Database Strategy'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113874017522886756</id><published>2006-01-31T12:42:00.000-08:00</published><updated>2006-01-31T12:42:55.486-08:00</updated><title type='text'>iTentroPy - Teaching Portal - Elettronica e Programmazione</title><content type='html'>&lt;a href="http://www.itentropy.it/"&gt;iTentroPy - Teaching Portal - Elettronica e Programmazione&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113874017522886756?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113874017522886756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113874017522886756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113874017522886756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113874017522886756'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/itentropy-teaching-portal-elettronica.html' title='iTentroPy - Teaching Portal - Elettronica e Programmazione'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113856127586900449</id><published>2006-01-29T11:01:00.000-08:00</published><updated>2006-01-29T11:01:16.306-08:00</updated><title type='text'>The Future of Access</title><content type='html'>Un articolo interessante sul futuro di MS Access.&lt;br /&gt;Non è comunque chiaro l'interfacciamento/l'uso di ADO.NET&lt;br /&gt;&lt;a href="http://www.databasejournal.com/features/msaccess/article.php/3385961"&gt;The Future of Access&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113856127586900449?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113856127586900449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113856127586900449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113856127586900449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113856127586900449'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/future-of-access.html' title='The Future of Access'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113835066174344179</id><published>2006-01-27T00:31:00.000-08:00</published><updated>2006-01-27T00:32:05.003-08:00</updated><title type='text'>Un ambiente di sviluppo completo</title><content type='html'>Cosa deve avere un ambiente di sviluppo per essere veramente completo?&lt;br /&gt;Dal mio punto di vista gli elementi che devono essere presenti sono i seguenti:&lt;br /&gt;1- &lt;strong&gt;IDE potente&lt;/strong&gt;&lt;br /&gt;L'IDE deve contenere un buon Forms Designer.&lt;br /&gt;Oltre a fornire i controlli base dell'interfaccia (pulsanti, edit box, etc.) deve esistere un componente griglia non troppo complesso ma che consenta di personalizzare le colonne e di gestire le celle (TStringGrid di Delphi va + che bene)&lt;br /&gt;L'IDE deve poter offrire meccanismi di gestione dati e di design di basi di dati (anche se questo può essere secondario).&lt;br /&gt;2- &lt;strong&gt;Accesso ai database&lt;/strong&gt;&lt;br /&gt;Deve esistere un accesso "General porpouse" tipo ADO/ODBC per consentire di raggiungere potenzialmente ogni sorgente dati. In più non fa male avere dei meccanismi di accesso diretto qualora si ricerchi la performance&lt;br /&gt;3- &lt;strong&gt;Tool di reporting&lt;/strong&gt;&lt;br /&gt;Un tool di reporting semplice e potente deve essere incluso nell'ambiente: quasi tutte le applicazioni devono produrre stampe e non è pensabile affrontare tutte le volte attività "banali" come la gestione dell'impaginazione, totalizzazioni etc.&lt;br /&gt;4- &lt;strong&gt;Estendibilità&lt;/strong&gt;&lt;br /&gt;Deve essere possibile aggiungere nuovi controlli&lt;br /&gt;5- &lt;strong&gt;No ambiente di run-time&lt;/strong&gt;&lt;br /&gt;I programmi devono essere compilati e distribuibili senza run-time&lt;br /&gt;&lt;br /&gt;I miei ambienti di sviluppo attuali sono sostanzialmente 2.&lt;br /&gt;&lt;strong&gt;Delphi&lt;/strong&gt;&lt;br /&gt;Praticamente soddisfa tutti i requisiti sopra anche se è un po' debole lato reporting: esistono una serie di componenti di terze parti (anche gratuiti) che hanno cercato di rimediare a questa lacuna.&lt;br /&gt;Delphi è comunque ottimo per tutti gli applicativi di gestione dati o di tipo sistemistico.&lt;br /&gt;&lt;strong&gt;MS Access&lt;/strong&gt;&lt;br /&gt;Ebbene si. MS Access praticamente ha tre grandi potenziali:&lt;br /&gt;1. Consente di trattare in maniera centralizzata sorgenti dati diverse&lt;br /&gt;2. Il designer è fortemente integrato con il codice: è possibile creare query parametriche, query di creazione tabelle e richiamarle dal codice senza problemi&lt;br /&gt;3. Ha un tool di reporting incredibilmente potente&lt;br /&gt;Con MS Access si ha la possibilità di lavorare con qualunque sorgente dati raggiungibile via ADO/ODBC. Il link di tabelle esterne consente di realizzare Queries CrossDB considerandole come tabelle proprie.&lt;br /&gt;E' vero che Access è un ambiente per utenti finali facente parte di suite di produttività individuale (i vari Office), ma per sfruttarlo al meglio bisogna avere conoscenze di DBMS e di programmazione (visto che con VBA si fa praticamente di tutto).&lt;br /&gt;MS Access è OTTIMO in realtà dove è necessaria una certa flessibilità ed in cui non ci sono problemi ad acquistare qualche licenza in più. Evidentemente non è l'optimum per realizzare prodotti commerciali. Può essere lo strumento migliore per far interagire sorgenti dati diverse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113835066174344179?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113835066174344179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113835066174344179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113835066174344179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113835066174344179'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/un-ambiente-di-sviluppo-completo.html' title='Un ambiente di sviluppo completo'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113809870420051562</id><published>2006-01-24T02:31:00.000-08:00</published><updated>2006-01-24T02:31:44.670-08:00</updated><title type='text'>History of the C family of languages</title><content type='html'>Articolo semiserio sulla storia dei linguaggi appartenenti alla famiglia del C.&lt;br /&gt;&lt;a href="http://dotnetmasters.com/HistoryOfCFamily.htm"&gt;History of the C family of languages&lt;/a&gt;.&lt;br /&gt;In basso anche un riferimento al BASIC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113809870420051562?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113809870420051562/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113809870420051562' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113809870420051562'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113809870420051562'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/history-of-c-family-of-languages.html' title='History of the C family of languages'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113753310441993757</id><published>2006-01-17T13:25:00.000-08:00</published><updated>2006-01-17T13:25:05.316-08:00</updated><title type='text'>La vittoria degli IDE gratuiti?</title><content type='html'>In questi ultimi anni si sta affermando (anzi di fatto si è già affermata) la logica del Framework: una piattaforma tecnologia piena di oggetti pronti all'uso e sfruttabili dal programmatore.&lt;br /&gt;Da un lato abbiamo la piattaforma Java, sempre più supportata da ambienti di sviluppo completi, molto ben fatti (Eclipse e Netbean) e gratuiti. Dall'altro la piattaforma .NET che con sebbene con una logica più commerciale fa nascere IDE gratuiti (SharpDevelop e gli ambienti Express di Microsoft).&lt;br /&gt;Chi deve sviluppare un programma al giorno d'oggi non ha più il problema di spendere soldi per avere un IDE potente: può scegliere tra almeno 3 linguaggi (Java, C# e VB) e scaricarsi l'IDE adatto.&lt;br /&gt;Chi ha fatto degli ambienti di sviluppo il suo business cosa deve fare?&lt;br /&gt;Deve adottare una politica di riduzione prezzi e di penetrazione sul mercato; deve fornire più componenti per rendere lo sviluppo più produttivo, deve far si che il proprio IDE emerga soprattutto perchè più conveniente.&lt;br /&gt;Delphi prima di tutto. Da unico ambiente per Win32 ad avere una libreria veramente potente (VCL) a suddito dei nuovi Framework!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113753310441993757?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113753310441993757/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113753310441993757' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113753310441993757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113753310441993757'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/la-vittoria-degli-ide-gratuiti.html' title='La vittoria degli IDE gratuiti?'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113707204852124662</id><published>2006-01-12T05:20:00.000-08:00</published><updated>2006-01-12T05:20:52.356-08:00</updated><title type='text'>La nostra società "Strumento Oriented"</title><content type='html'>Provate a riflettere un attimo su come sono cambiate le cose da 10 anni a questa parte. Gli strumenti che utilizzavamo fino a pochi anni fa e che in una casa costituivano quasi un simulacro sono oggi stati rimpiazzati da "meraviglie tecnologiche" sempre più a buon mercato e sempre più evolute. Accade così che un Giradischi megagalattico di 10-15 anni fa, una macchina Reflex pagata qualche milione, siano oggi relegati ad un mercato di nicchia seguito perlopiù dalle vecchie generazioni.&lt;br /&gt;Oggi esiste solo lo strumento, sempre più potente, sempre più economico, sempre più espandibile e di moda. Il fatto che un oggetto che oggi si paga 1000 domani si paghi 100 fa si che non ci sia più rispetto per lo strumento e per la sua tecnologia, anzi..., forse si spera che l'oggetto si rompa per poter così acquistarne uno nuovo. &lt;br /&gt;Ma lo strumento a cosa serve?&lt;br /&gt;Questo passa in secondo piano perchè se fino a ieri ci portavamo dietro 1, 2 cassette, 1 o 2 CD ora ci portiamo 100, 1000 canzoni. E se domani potremo portarne dietro 10000 o 100000 cosa ci faremo? Come faremo ad ascoltarle?&lt;br /&gt;Oggi vogliamo il telefonino che faccia anche il caffè, la macchinetta digitale che abbia 7, 8 MPixel ma poi? Domani?&lt;br /&gt;In questa corsa alla prestazione sempre più elevata, alla tecnologia sempre più spinta lo strumento diventa qualcosa che esiste non per essere usato per il suo fine, ma per essere posseduto; poi se con lo strumento si può anche telefonare Ok.&lt;br /&gt;&lt;br /&gt;E nell'informatica?&lt;br /&gt;Succede esattamente la stessa cosa. Gli strumenti (di sviluppo) sono sempre più belli, potenti e di facile utilizzo. Poi se si va a vedere nel dettaglio molte aziende non se lo sognano nemmeno di avere un PC con .NET installato per far girare un applicativo che ora hanno su Windows 3.1 e che fa quello che deve fare. Molti rimpiangono la semplicità di WordPerfect che faceva il suo dovere in DOS senza pericolo di Virus e di instabilità.&lt;br /&gt;&lt;br /&gt;Ma allora questi strumenti di sviluppo nuovi a chi servono? E' giusto guardare avanti ma alla fine ciò che conta non è lo strumento ma ciò che ci facciamo. &lt;br /&gt;&lt;br /&gt;Riscopriamo il vero senso delle cose e non facciamoci trascinare nel gorgo del consumismo a tutti i costi.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113707204852124662?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113707204852124662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113707204852124662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113707204852124662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113707204852124662'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/la-nostra-societ-strumento-oriented.html' title='La nostra società &quot;Strumento Oriented&quot;'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113679995454893936</id><published>2006-01-09T01:45:00.000-08:00</published><updated>2006-01-09T01:48:56.310-08:00</updated><title type='text'>Installare Eclipse 2^ puntata</title><content type='html'>Ho seguito un approccio diverso per installare i Plug-in all'interno dell'IDE.&lt;br /&gt;Per far ciò è necessario avere a disposizione una connessione ad internet attiva e lanciare il gestore dei plug-in (Software Update) dal menu Help.&lt;br /&gt;Questo approccio garantisce una corretta installazione dei Plug-in e dei moduli dipendenti senza doverlo fare manualmente.&lt;br /&gt;Ho scoperto questo approccio quando ho configurato Eclipse per gestire il design delle interfacce grafiche SWING in un PC diverso da quello su cui avevo usato l'approccio manuale.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113679995454893936?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113679995454893936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113679995454893936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113679995454893936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113679995454893936'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/installare-eclipse-2-puntata.html' title='Installare Eclipse 2^ puntata'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113667172657597553</id><published>2006-01-07T13:53:00.000-08:00</published><updated>2006-01-07T14:11:57.286-08:00</updated><title type='text'>Captcha immagine</title><content type='html'>Per inserire o modificare un nuovo Post in questo Blog, è necessario inserire una immagine generata per controllare che chi sta inserendo sia un Umano e non un Computer. Queste immagini sono chiamate &lt;a href="http://www.captcha.net/"&gt;Captcha &lt;/a&gt; e garantiscono una protezione dallo Spam.&lt;br /&gt;Ogni volta che vedo una di queste Captcha mi sorge spontanea una domanda: quale meccanismo sta alla base del riconoscimento di quanto inserito nell'immagine che noi Umani riusciamo a fare e che un programma non può fare? Tutto sommato le scritte sono quasi sempre ben leggibili (per noi Umani) ed anche un bambino che conosce l'alfabeto riesce a decifrarle. Quanta strada dovrà ancora compiere la nostra conoscenza del cervello per poter elaborare un programma di riconoscimento?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113667172657597553?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113667172657597553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113667172657597553' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113667172657597553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113667172657597553'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/captcha-immagine.html' title='Captcha immagine'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113658155452640959</id><published>2006-01-06T13:05:00.000-08:00</published><updated>2006-01-07T13:51:04.896-08:00</updated><title type='text'>Eclipse</title><content type='html'>Dopo aver letto e visto questo &lt;a href="http://www.eclipsezone.com/eps/10minute-rcp/"&gt;articolo &lt;/a&gt;, mi sono deciso ed ho scaricato &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt;. 105 MB circa per l'SDK che comprende l'IDE e consente la scrittura di codice Java (compilazione e Debug inclusi), nonchè la scrittura di Addins. In effetti lo scopo del progetto è molto ambizioso e vedendo i progetti connessi direi anche molto evoluto. In effetti pur non essendo presente (nell'SDK) una GUI per disegnare le forms Java, è stato sufficiente effettuare una ricerca per trovare il progetto &lt;a href="http://download.eclipse.org/tools/ve/downloads/index.php"&gt;VE&lt;/a&gt;. Scaricati e copiati i file JAR nella directory dei Plugins, ecco comparire un nuovo editor grafico per il disegno di interfaccie.&lt;br /&gt;Una cosa che mi ha colpito è la qualità dell'insieme e la velocità di esecuzione (un po' lento risulta il "suggeritore" di codice che compare premendo il punto). Si capisce comunque subito che rispetto ad altri IDE per Java (JBuilder e NetBeans) questo mostra di avere qualcosa di diverso e di non essere un vestito confezionato per un solo linguaggio. &lt;br /&gt;L'installazione è banale: scaricato l'SDK è sufficiente scompattarlo in c:\eclipse per avere il tutto funzionante. Le estensioni sono anche loro da scompattare nella stessa directory. Adesso proverò ad &lt;em&gt;Eclipsarmi&lt;/em&gt; per un po'.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113658155452640959?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113658155452640959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113658155452640959' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113658155452640959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113658155452640959'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/eclipse.html' title='Eclipse'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113644986244167920</id><published>2006-01-05T00:29:00.000-08:00</published><updated>2006-01-05T00:31:02.750-08:00</updated><title type='text'>Produttività negativa</title><content type='html'>Gli ultimi ambienti di sviluppo (VS 2005 e Delphi 2005/2006) sono molto curati e produttivi. Ma cosa succede se questi ambienti sono messi in mano a programmatori alle prime armi o addirittura a persone non preparate? Ebbene la presenza di Wizard, di help in linea e la grande mole di esempi, fanno si che questi "programmatori" riescano a produrre programmi che funzionano ma di cui non conoscono minimamente la struttura.&lt;br /&gt;Piccole modifiche (ad un query per esempio) possono mettere in luce delle carenze su argomenti basilari. Così accade che la concatenazione di una stringa non si riesca a fare (perchè si confonde ciò che è nella stringa da ciò che è fuori dalla stessa), la dichiarazione di una variabile venga ripetuta nel codice (con errore in fase di compilazione)....&lt;br /&gt;&lt;br /&gt;Ma allora è giusto che si dia tanta potenza e semplicità d'uso a chiunque abbia un computer? E' giusto che gli ambienti di sviluppo consentano di realizzare programmi che possono diffondersi e magari risultare dannosi? Sarebbe come progettare (e costruire) una casa sapendo utilizzare solo Autocad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113644986244167920?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113644986244167920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113644986244167920' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113644986244167920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113644986244167920'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/produttivit-negativa.html' title='Produttività negativa'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113636354396355694</id><published>2006-01-04T00:09:00.000-08:00</published><updated>2006-01-04T00:32:24.160-08:00</updated><title type='text'>Report in Java</title><content type='html'>Come riportato su questi articoli (&lt;a href="http://www.weekit.it/index.php?option=com_content&amp;task=view&amp;id=35313&amp;Itemid=0"&gt;1&lt;/a&gt; e &lt;a href="http://www.weekit.it/index.php?option=com_content&amp;task=view&amp;id=30497&amp;Itemid=1"&gt;2&lt;/a&gt;) pubblicati sul sito di Week Italia esiste un tool di generazione report &lt;a href="http://jasperreports.sourceforge.net/"&gt;Jasper Report&lt;/a&gt; per il quale è stata scritta l'interfaccia grafica &lt;a href="http://ireport.sourceforge.net/"&gt;IReport&lt;/a&gt;.&lt;br /&gt;Da una prima impressione il tool di disegno report è molto ben fatto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113636354396355694?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113636354396355694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113636354396355694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113636354396355694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113636354396355694'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/report-in-java.html' title='Report in Java'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113627778767655001</id><published>2006-01-03T00:41:00.000-08:00</published><updated>2006-01-03T00:43:07.873-08:00</updated><title type='text'>L'importanza dei Blog tecnici</title><content type='html'>I blogs generalmente esprimono opinioni su temi che l'autore ha affrontato.&lt;br /&gt;I blogs tecnici assumono spesso la forma di aiuti su aspetti spesso nascosti degli applicativi. Con lo spirito della condivisione della informazione è importante che chi ha qualcosa da dire lo dica anche a rischio di apparire superficiale. &lt;br /&gt;Capita spesso (soprattutto per chi lavora nel mondo dell'informatica) di picchiare la testa su certi problemi anche per giorni interi.&lt;br /&gt;Ebbene anche un suggerimento incompleto o non completamente esatto può far scoccare la scintilla.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113627778767655001?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113627778767655001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113627778767655001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113627778767655001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113627778767655001'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/limportanza-dei-blog-tecnici.html' title='L&apos;importanza dei Blog tecnici'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113619599365211140</id><published>2006-01-02T01:57:00.000-08:00</published><updated>2006-01-02T02:13:46.296-08:00</updated><title type='text'>Persistenza Presente e Futuro</title><content type='html'>Nello sviluppo di un nuovo applicativo si devono considerare un insieme di cose:&lt;br /&gt;1. Il flusso logico&lt;br /&gt;2. La rappresentazione dei dati&lt;br /&gt;3. La memorizzazione dei dati&lt;br /&gt;La programmazione ad oggetti semplifica molto i 3 passaggi ma richiede una forte progettualità. Inoltre all'atto della memorizzazione dei dati sorge il problema di prelevare i dati dagli oggetti, inserirli all'interno di tabelle del database e salvarli. Il processo inverso è evidentemente altrettanto complesso (leggere i dati dalle tabelle e ricreare gli oggetti in maniera opportuna).&lt;br /&gt;I DBMS hanno una grande storia alle spalle e sono il modo più performante per gestire grosse moli di dati (grazie a SQL, stored procedure ed altro).&lt;br /&gt;D'altro canto gli oggetti sono il modo migliore di gestire progetti di certe dimensioni nonchè per posizionare la logica applicativa in maniera corretta all'interno delle entità interessate.Le soluzioni proposte oggi per "fondere" i 2 punti di vista (di memorizzazione ed elaborativo) cercano di portare la memorizzazione dei dati nel DBMS il più vicino possibile alla rappresentazione in memoria dei dati stessi (relazione tra gli oggetti).&lt;br /&gt;In particolare tra i framework (OR-Mapping):&lt;br /&gt;- ECO framework per chi usa Borland Developer Studio (Delphi .NET e C#)&lt;br /&gt;- Instant Object per chi usa Delphi per Win32&lt;br /&gt;- Hibernate ed EJB per chi usa Java&lt;br /&gt;Il principio su cui si basano è quello di frapporre uno strato SW tra il DBMS e la struttura ad oggetti, consentendo operazioni quali il recupero dell'oggetto direttamente dal DBMS ed il salvataggio di oggetti tra loro correlati.&lt;br /&gt;Tra i Database (&lt;a href="http://www.service-architecture.com/object-oriented-databases"&gt;ODBMS&lt;/a&gt;):&lt;br /&gt;- Matisse (è l'unico che ho provato)&lt;br /&gt;Il principio su cui si basano è quello di esporre all'esterno Oggetti che si possono assegnare a variabili oggetto.&lt;br /&gt;&lt;br /&gt;Un altro sistema di memorizzazione dei dati offerto dai framework ad oggetti è la persistenza degli stessi: in pratica gli oggetti possono salvarsi su files direttamente portandosi dietro tutti gli oggetti eventualmente riferiti. Questo meccanismo è il più orientato alla programmazione ed il meno orientato ai dati: lo stream di oggetti salvato su file non può essere consultato dall'esterno e non può essere aperto se non da chi ha progettato la struttura degli oggetti.&lt;br /&gt;&lt;br /&gt;Insomma i DBMS devono rimanere perchè sono molto performanti; gli oggetti devono continuare ad esistere come metodologia di programmazione. Resta il problema di rendere la rappresentazione ad oggetti sul Database "chiara" per poter effettuare reports e query usando SQL.&lt;br /&gt;Il futuro?&lt;br /&gt;Microsoft sta lavorando ad un nuovo progetto &lt;a href="http://msdn.microsoft.com/netframework/future/linq"&gt;LINQ&lt;/a&gt; Language Integrated Query per rendere uniforme il reperimento dati tra DBMS e collezioni di oggetti.&lt;br /&gt;Staremo a vedere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113619599365211140?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113619599365211140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113619599365211140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113619599365211140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113619599365211140'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/persistenza-presente-e-futuro.html' title='Persistenza Presente e Futuro'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113610338986350023</id><published>2006-01-01T00:16:00.000-08:00</published><updated>2006-01-01T00:16:29.910-08:00</updated><title type='text'>BUON ANNO 2006</title><content type='html'>A tutti coloro che navigano, a tutti coloro che programmano, a tutti gli appassionati.&lt;br /&gt;BUON 2006!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113610338986350023?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113610338986350023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113610338986350023' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113610338986350023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113610338986350023'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2006/01/buon-anno-2006.html' title='BUON ANNO 2006'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113507003398115559</id><published>2005-12-20T01:13:00.000-08:00</published><updated>2005-12-20T01:13:54.016-08:00</updated><title type='text'>Sviluppo applicazioni con ADO e Visual C# Express: TableAdapter.Update non funziona?</title><content type='html'>&lt;strong&gt;Ho installato Visual C# Express 2005.&lt;/strong&gt;&lt;br /&gt;Molto bello e fatto molto bene. L'integrazione con SQL 2005 Express rende il tutto simile ad un ACCESS potenziato (visti i controlli visuali) anche se manca un sistema di reporting. Ho inoltre guardato i video disponibili sul sito MSDN. Questi danno una introduzione sulle caratteristiche principali dell'IDE e dello sviluppo in C#.&lt;br /&gt;Ho provato a verificare la semplicità di sviluppo realizzando una mini applicazione DB. Creo il DB SQL (direttamente dall'IDE), creo il dataset per la connessione al DB e tramite Drag &amp; Drop inserisco i controlli sulla form. Compilo ed inserisco alcuni dati. Tutto OK? Si ma quando riapro il programma sul Database i dati da me inseriti non ci sono. Ed allora Help, Libri ed Internet per cercare di capire finchè mi imbatto in questo &lt;a href="https://blogs.msdn.com/smartclientdata/archive/2005/08/26/456886.aspx"&gt;post&lt;/a&gt; che risolve il mio problema: la directory contenente il DB durante l'esecuzione è la \Debug. L'IDE lavora su un DB diverso (è il file presente nella directory di sviluppo) che viene trasferito nella Debug OGNI volta che si lancia il programma.&lt;br /&gt;&lt;br /&gt;QUINDI nessun problema di codice ma solo una "svista" che forse andrebbe maggiormente pubblicizzata.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113507003398115559?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113507003398115559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113507003398115559' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113507003398115559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113507003398115559'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/12/sviluppo-applicazioni-con-ado-e-visual.html' title='Sviluppo applicazioni con ADO e Visual C# Express: TableAdapter.Update non funziona?'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113446089302276108</id><published>2005-12-13T00:01:00.000-08:00</published><updated>2005-12-13T00:01:33.063-08:00</updated><title type='text'>Blackberry Development Using NetBeans Mobility</title><content type='html'>Questo &lt;a href="http://www.netbeans.info/newsletter/story.php?id=177"&gt;link&lt;/a&gt; mostra come integrare in NetBeans IDE lo sviluppo per il Blackberry.&lt;br /&gt;Evidentemente il BB è molto seguito nel mondo Java.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113446089302276108?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113446089302276108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113446089302276108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113446089302276108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113446089302276108'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/12/blackberry-development-using-netbeans.html' title='Blackberry Development Using NetBeans Mobility'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113381432971769886</id><published>2005-12-05T12:25:00.000-08:00</published><updated>2005-12-05T12:25:29.763-08:00</updated><title type='text'>Delphi 2006: L'attesa sta continuando</title><content type='html'>L'attesa per l'uscita di Delphi 2006 sta continuando. Sebbene sia stata comunicata già da qualche settimana la disponibilità del &lt;a href="http://www.borland.com/downloads/download_delphi.html"&gt;Download&lt;/a&gt; non c'è ancora.&lt;br /&gt;Allora aspettiamo...&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113381432971769886?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113381432971769886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113381432971769886' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113381432971769886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113381432971769886'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/12/delphi-2006-lattesa-sta-continuando.html' title='Delphi 2006: L&apos;attesa sta continuando'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113329533375613200</id><published>2005-11-29T12:15:00.000-08:00</published><updated>2005-11-29T12:15:33.806-08:00</updated><title type='text'>BDNtv: Borland Developer Studio 2006 Presentation, 2005 Borland Developer Conference</title><content type='html'>Per chi (come me) non ha avuto il piacere di essere presente alla BDC, ecco un interessante filmato.&lt;a href="http://bdn.borland.com/article/0,1410,33406,00.html"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113329533375613200?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113329533375613200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113329533375613200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113329533375613200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113329533375613200'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/11/bdntv-borland-developer-studio-2006.html' title='BDNtv: Borland Developer Studio 2006 Presentation, 2005 Borland Developer Conference'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113281956792198742</id><published>2005-11-24T00:06:00.000-08:00</published><updated>2005-11-24T00:06:10.463-08:00</updated><title type='text'>Estensioni all'IDE di Delphi</title><content type='html'>- &lt;a href="http://www.cnpack.org/index.php?lang=en"&gt;CNPACK&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://www.gexperts.org/"&gt;GExpert&lt;/a&gt;&lt;br /&gt;Sono due estensioni per l'IDE di Delphi molto produttive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113281956792198742?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113281956792198742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113281956792198742' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113281956792198742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113281956792198742'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/11/estensioni-allide-di-delphi.html' title='Estensioni all&apos;IDE di Delphi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113275084716334816</id><published>2005-11-23T05:00:00.000-08:00</published><updated>2005-11-23T05:00:47.256-08:00</updated><title type='text'>Remote Access Software :: Remote Desktop for Mobiles :: Test Server</title><content type='html'>Client RDP (Terminal Server) per BlackBerry. I consigli per il test con il riferimento all'accesso da attivare.&lt;br /&gt;&lt;a href="http://www.desktopmobiles.com/testserver.html"&gt;Remote Access Software :: Remote Desktop for Mobiles&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113275084716334816?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113275084716334816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113275084716334816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113275084716334816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113275084716334816'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/11/remote-access-software-remote-desktop.html' title='Remote Access Software :: Remote Desktop for Mobiles :: Test Server'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-113255955605609067</id><published>2005-11-20T23:52:00.000-08:00</published><updated>2005-11-20T23:52:42.080-08:00</updated><title type='text'>Sviluppo con BlackBerry. Puntata 2</title><content type='html'>Ho ricevuto ed installato i files .csi utili per la firma degli applicativi per l'installazione sul palmare. I passi da seguire sono semplici e prevedono:&lt;br /&gt;1. la creazione di una chiave privata (doppio click su uno dei files ed indicazione della password per la creazione della chiave privata)&lt;br /&gt;2. Firma del programma. E' necessario eseguire il Build dell'applicativo e richiamare Request Signatures. Verranno indicati i moduli che devono essere firmati.&lt;br /&gt;3. Creazione del file ALX per la installazione sul palmare.&lt;br /&gt;4. Installazione con il programma Desktop Manager.&lt;br /&gt;&lt;br /&gt;Unica "pecca" della procedura sopra è che ad ogni compilazione è necessario richiedere nuovamente la firma del compilato. Questo implica che è necessario un collegamento ad Internet attivo ad ogni richiesta di firma.&lt;br /&gt;&lt;br /&gt;Comunque. L'ambiente di sviluppo è robusto. Java è molto produttivo ed aiuta a pensare con una logica diversa (ad oggetti). &lt;br /&gt;&lt;br /&gt;Gli applicativi sviluppati per il BB usano alcuni packages appositi per questo ambiente (per lo sfruttamento delle caratteristiche + evolute). Di fatto non so quanto sia possibile il porting verso altri palmari Java-enabled.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-113255955605609067?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/113255955605609067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=113255955605609067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113255955605609067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/113255955605609067'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/11/sviluppo-con-blackberry-puntata-2.html' title='Sviluppo con BlackBerry. Puntata 2'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112971151117013388</id><published>2005-10-19T01:45:00.000-07:00</published><updated>2005-10-19T01:45:12.073-07:00</updated><title type='text'>Sviluppo con BlackBerry. Puntata 1</title><content type='html'>Blackberry è una sorta di Palmare.&lt;br /&gt;E' + piccolo di un palmare, non ha touchscreen, ma ha una "rotellina" tutto fare. Si può usare con una mano sola ed offer una incredibile produttività.&lt;br /&gt;Per realizzare applicazioni è necessario:&lt;br /&gt;1. scaricare l'ambiente di sviluppo (JDE) dal sito della &lt;a href="http://www.blackberry.com"&gt;Blackberry&lt;/a&gt;&lt;br /&gt;2. formalizzare il problema in Java ed adattare le modalità di interfacciamento e di uso dell'applicazione al dispositivo&lt;br /&gt;3. fare il Build dell'applicazione e realizzare un file ALX.&lt;br /&gt;4. installare l'applicazione (Desktop Manager) sul PC fornita con il Blackberry (su CD) e lanciarla.&lt;br /&gt;5. aprire il Desktop Manager e lanciare Application Loader&lt;br /&gt;6. ricercare il file ALX ed installarlo sul palmare.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;---&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Seguendo i passi sopra otterrete sicuramente un errore all'atto del lancio dell'applicazione sul Palmare:&lt;br /&gt;Module ' ' attemps to access a secure API.&lt;br /&gt;&lt;br /&gt;Per risolvere il problema è necessario "autorizzare" l'applicazione ad accedere alle API del Blackberry.&lt;br /&gt;Per questo è necessario collegarsi al &lt;a href="https://www.blackberry.com/JDEKeys/"&gt;sito&lt;/a&gt; e registrarsi per ottenere via mail i files necessari a firmare il programma.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112971151117013388?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112971151117013388/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112971151117013388' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112971151117013388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112971151117013388'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/10/sviluppo-con-blackberry-puntata-1.html' title='Sviluppo con BlackBerry. Puntata 1'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112949208514312306</id><published>2005-10-16T12:48:00.000-07:00</published><updated>2005-10-16T12:48:07.390-07:00</updated><title type='text'>Java e gli ambienti di sviluppo</title><content type='html'>In questo ultimo periodo sono stato (e lo sono ancora) impegnato nello scrivere una applicazione per un dispositivo mobile (&lt;a href="http://www.blackberry.com/na/index.shtml"&gt;BlackBerry&lt;/a&gt;). Sfruttando l'ambiente di sviluppo messo a disposizione sul sito ho iniziato il programma. &lt;br /&gt;L'ambiente di sviluppo è ben fatto ed usa Java come linguaggio di programmazione. Le mie esperienze con Java si erano limitate a cose molto semplici. Con questa nuova esperienza comincio ad entrare maggiormente nello spirito di questo linguaggio.&lt;br /&gt;In qualunque altro ambiente sarei partito dalla definizione della base dati. Con Java NO. Ho iniziato a lavorare con gli oggetti ed ho scoperto le incredibili doti della persistenza degli oggetti. Ho realizzato una prima bozza dell'applicazione con una certa fatica poichè in Java si improvvisa poco ed anche la semplice attività di implementare un menù risulta più complessa del semplice click-and-code cui gli ambienti più evoluti ci hanno insegnato. E così tra un oggetto ed un altro ho capito meglio il pattern MVC e pur non implementando a fondo l'information hiding (nel senso che molti campi delle classi sono public), devo dire che sono riuscito nell'intento.&lt;br /&gt;A volte l'essere obbligati a muoversi in ambienti limitati offre il vantaggio di toccare con mano certi meccanismi che molti ambienti di sviluppo tendono a nascondere.&lt;br /&gt;Quindi per una volta dimentichiamo i potenti ed iper produttivi ambienti per ricercare il "basso livello".&lt;br /&gt;Ma allora dove sta la produttività di Java?&lt;br /&gt;Java è produttivo per l'insieme di librerie e classi che sono implementate, ma la curva di apprendimento può risultare più lunga di quella di altri linguaggi.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112949208514312306?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112949208514312306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112949208514312306' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112949208514312306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112949208514312306'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/10/java-e-gli-ambienti-di-sviluppo.html' title='Java e gli ambienti di sviluppo'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112879970297497530</id><published>2005-10-08T12:28:00.000-07:00</published><updated>2005-10-08T12:28:22.973-07:00</updated><title type='text'>TObject - Top of the programming chain</title><content type='html'>&lt;a href="http://www.tobject.com/"&gt;TObject - Top of the programming chain&lt;/a&gt;&lt;br /&gt;Blog Delphi Oriented.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112879970297497530?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112879970297497530/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112879970297497530' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112879970297497530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112879970297497530'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/10/tobject-top-of-programming-chain.html' title='TObject - Top of the programming chain'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112879960916886769</id><published>2005-10-08T12:26:00.000-07:00</published><updated>2005-10-08T12:26:49.193-07:00</updated><title type='text'>Koders - Source Code Search Engine</title><content type='html'>Un GOOGLE per il codice.&lt;br /&gt;Fantastico!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112879960916886769?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112879960916886769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112879960916886769' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112879960916886769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112879960916886769'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/10/koders-source-code-search-engine.html' title='Koders - Source Code Search Engine'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112670892333855692</id><published>2005-09-14T07:42:00.000-07:00</published><updated>2005-09-14T07:46:25.590-07:00</updated><title type='text'>Sviluppo o Wizard?</title><content type='html'>Ogni volta che trovo strumenti come &lt;a href="http://www.ironspeed.com/Designer/3.0.2/Videos/5MinuteVideo/5minutevideo.html"&gt;questo&lt;/a&gt;, svilisco nel vedere il mio stile di programmazione fatto di piccole scoperte quotidiane comprese nella loro efficacia dopo lunga fatica. Veramente siamo in grado di comprendere i nuovi Framework così approfonditamente da sfruttarli con efficacia, oppure dobbiamo reinventare la ruota ogni volta per avere qualcosa di più maneggevole? Molte volte si perde un sacco di tempo per capire il funzionamento di un componente o di una libreria per poi scoprire che la mega funzionalità promessa va bene ma non completamente; si veda anche questo &lt;a href="http://www.codeproject.com/article.asp?tag=19398092903238601"&gt;post &lt;/a&gt;realmente interessante.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112670892333855692?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112670892333855692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112670892333855692' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112670892333855692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112670892333855692'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/09/sviluppo-o-wizard.html' title='Sviluppo o Wizard?'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112670834987447255</id><published>2005-09-14T07:32:00.000-07:00</published><updated>2005-09-14T07:52:13.806-07:00</updated><title type='text'>Usare Access</title><content type='html'>Da anni sto utilizzando questo strumento (ed in generale VBA) per realizzare applicazioni. Ultimamente ho avuto un po' di problemi con le modifiche ad una applicazione realizzata da me (usando Access in Italiano) ed usata con Access in Francese. A questo punto mi sento di dare alcuni consigli:&lt;br /&gt;- Access è un tool fenomenale per il reporting e per "piccoli" programmi di inserimento dati&lt;br /&gt;- Access diventa complesso se si devono riferire degli ActiveX esterni (anche se è un Ole client ottimo): questi devono essere installati sul sistema ospite (naturale) e devono, se riferiti da codice essere inclusi nelle reference (e ciò non sempre è legato alla maschera ma va tutte le volte aggiornato)&lt;br /&gt;- Access è spettacolare per la gestione delle query Cross DB&lt;br /&gt;- Nel caso si desideri utilizzare Access per un accesso veloce ad un sorgente dati esterna è preferibiel usare una query di passthrough.&lt;br /&gt;- Access è molto più potente se usato con DAO invece che con ADO (vedremo cosa succederà con ADO.NET)&lt;br /&gt;- Access non offre una gestione centralizzata dei dati (no trigger o stored procedure)&lt;br /&gt;Qual'è l'altenativa ad Access?&lt;br /&gt;Per sostiutire Access con qualcosa di più scalabile servono:&lt;br /&gt;- Un linguaggio di programmazione&lt;br /&gt;- Un DBMS (MSDE per esempio)&lt;br /&gt;- Un tool per il reporting&lt;br /&gt;Anche avendo a disposizione quanto sopra non sarà comunque semplice gestire modifiche "al volo" via telefono.&lt;br /&gt;&lt;br /&gt;Ma dove andrà Access? Esisterà un &lt;a href="http://forums.wugnet.com/office/modules.php?name=Forums&amp;file=viewtopic&amp;t=627441&amp;ex=Beginners-VBA.net-"&gt;VBA.NET &lt;/a&gt;inserito in Office oppure Office sarà un ambiente a sè?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112670834987447255?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112670834987447255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112670834987447255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112670834987447255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112670834987447255'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/09/usare-access.html' title='Usare Access'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112374315621452966</id><published>2005-08-10T23:52:00.000-07:00</published><updated>2005-08-10T23:52:36.260-07:00</updated><title type='text'>Tutte le patch di Delphi 2005</title><content type='html'>Delphi 2005, nato circa un anno fa, ha evidenziato una serie di falle più o meno gravi che hanno portato a 3 Update direttamente rilasciati da Borland:&lt;br /&gt;&lt;a href="http://bdn.borland.com/article/0,1410,32875,00.html"&gt;Update 1&lt;/a&gt; Per tutti gli utenti&lt;br /&gt;&lt;a href="http://info.borland.com/cgi-bin/registered_users/ds_check_in2.cgi?productid=8201"&gt;Update 2&lt;/a&gt; Solo per gli utenti registrati&lt;br /&gt;&lt;a href="http://info.borland.com/cgi-bin/registered_users/ds_check_in2.cgi?productid=8201"&gt;Update 3&lt;/a&gt; Solo per gli utenti registrati&lt;br /&gt;Sono seguite poi una serie di Patch fino ad ora non inserite in un Update (sarebbe il 4°!). Nell'ordine:&lt;br /&gt;- Rimpiazzamento del &lt;a href="http://sourceforge.net/projects/fastmm/"&gt;gestore &lt;/a&gt;della memoria&lt;br /&gt;- Sostituzione di porzioni del Core di Delphi pubblicate nel BLOG di &lt;a href="http://blogs.borland.com/abauer/"&gt;Allen Bauer&lt;/a&gt;: (&lt;a href="http://homepages.borland.com/abauer/vclide90.zip"&gt;vclide90&lt;/a&gt;, &lt;a href="http://homepages.borland.com/abauer/boreditu.zip"&gt;boreitu &lt;/a&gt;e &lt;a href="http://homepages.borland.com/abauer/coreide90.zip"&gt;coreide90&lt;/a&gt;) &lt;br /&gt;A questo punto DELPHI 2005 dovrebbe essere un prodotto più stabile.&lt;br /&gt;Non dimentichiamo le vicende di Delphi 4, affetto da una serie di Bugs, definitivamente risolti con Delphi 5. D'altro canto Delphi 2005 è il più grosso salto in avanti sia del linguaggio sia dell'IDE fatto da Delphi.&lt;br /&gt;E allora Patchiamo!!!&lt;br /&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112374315621452966?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112374315621452966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112374315621452966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112374315621452966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112374315621452966'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/08/tutte-le-patch-di-delphi-2005.html' title='Tutte le patch di Delphi 2005'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112361406065165218</id><published>2005-08-09T12:01:00.000-07:00</published><updated>2005-08-09T12:01:00.680-07:00</updated><title type='text'>The Java Boutique: The Ultimate Java Applet Resource: IDEs</title><content type='html'>&lt;a href="http://javaboutique.internet.com/demoIDEs/"&gt;The Java Boutique: The Ultimate Java Applet Resource: IDEs&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112361406065165218?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112361406065165218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112361406065165218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112361406065165218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112361406065165218'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/08/java-boutique-ultimate-java-applet.html' title='The Java Boutique: The Ultimate Java Applet Resource: IDEs'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112308866961664807</id><published>2005-08-03T10:04:00.000-07:00</published><updated>2005-08-03T10:04:29.646-07:00</updated><title type='text'>Visual Studio.Net 2005 beta 2</title><content type='html'>Dopo 2 giorni dall'ordini ho ricevuto ed installato VS 2005 Beta 2.&lt;br /&gt;Al riavvio di Delphi 2005 ho ricevuto un errore sul sistema di Help che poi da Delphi non va più.&lt;br /&gt;Ho trovato questo Blog:&lt;br /&gt;&lt;a href="http://blogs.slcdug.org/esaputra/archive/2005/05/18/1837.aspx"&gt;Fun with Visual Studio.Net 2005 beta 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Spero sia utile anche ad altri&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112308866961664807?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112308866961664807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112308866961664807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112308866961664807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112308866961664807'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/08/visual-studionet-2005-beta-2.html' title='Visual Studio.Net 2005 beta 2'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112289215504204573</id><published>2005-08-01T03:29:00.000-07:00</published><updated>2005-08-01T03:29:15.086-07:00</updated><title type='text'>Remake di canzoni famose</title><content type='html'>&lt;a href="http://clarence.supereva.com/download/audio/lista.shtml?c=38"&gt;CLARENCE - Audio: Categoria&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112289215504204573?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112289215504204573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112289215504204573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112289215504204573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112289215504204573'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/08/remake-di-canzoni-famose.html' title='Remake di canzoni famose'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112247079708500887</id><published>2005-07-27T06:26:00.000-07:00</published><updated>2005-07-27T06:26:37.096-07:00</updated><title type='text'>Formato ed invio di messaggi SMS</title><content type='html'>&lt;a href="http://www.dreamfabric.com/sms/"&gt;SMS messages and the PDU format&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112247079708500887?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112247079708500887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112247079708500887' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112247079708500887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112247079708500887'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/07/formato-ed-invio-di-messaggi-sms.html' title='Formato ed invio di messaggi SMS'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112238680749977915</id><published>2005-07-26T07:06:00.000-07:00</published><updated>2005-07-26T07:06:47.536-07:00</updated><title type='text'>.NET e DELPHI VCL.</title><content type='html'>Che .NET sia il futuro per lo sviluppo Windows è ormai assodato. Il fatto che Microsoft abbia tagliato i ponti con i vecchi ambienti di sviluppo ed abbia introdotto linguaggi per lo strato .NET (VB e C#) conferma una tendenza evolutiva che può solo andare avanti e che tante discussioni ha provocato tra i delusi sviluppatori VB6.&lt;br /&gt;Il framework .NET è una indiscussa novità per chi non ha mai avuto una libreria di componenti all'interno del proprio ambiente di sviluppo. Chi invece proviene da un ambiente come DELPHI si scontra con una serie di domande: devo sviluppare per Win32 o per .NET? e se devo sviluppare per .NET sfrutto la VCL (appositamente riscritta per .NET) oppure uso le WinForm del framework?&lt;br /&gt;La mia esperienza mi ha insegnato che lo sviluppatore deve trovare il sistema più veloce ed indolore per andare incontro alle esigenze del cliente. Allora, se si desidera sviluppare velocemente, lo strato VCL è necessario. Se si desidera avere una accettabile velocità di esecuzione le applicazioni WIN32 hanno ancora una marcia in più (soprattuto in avvio). Usare Delphi per sviluppare applicazioni WinForm non ha senso se si considera che in questo caso si deve rinunciare ai componenti della VCL: meglio realizzare un progetto .NET VCL.&lt;br /&gt;E allora?&lt;br /&gt;Allora Delphi + VCL ancora per molto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112238680749977915?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112238680749977915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112238680749977915' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112238680749977915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112238680749977915'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/07/net-e-delphi-vcl.html' title='.NET e DELPHI VCL.'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112171062633493466</id><published>2005-07-18T11:17:00.000-07:00</published><updated>2005-07-18T11:17:06.350-07:00</updated><title type='text'>Quale linguaggio è più leggibile?</title><content type='html'>Si stanno avendo delle discussioni su quale linguaggio sia più leggibile tra Delphi e C++:&lt;br /&gt;&lt;a href="http://www.lemanix.com/nick/archive/2005/07/14/2765.aspx"&gt;What is more readable?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La mia opinione è questa:&lt;br /&gt;si deve distinguere tra &lt;strong&gt;leggibilità sintattica&lt;/strong&gt; che è una proprietà del linguaggio e di come questo è stato studiato e strutturato e &lt;strong&gt;leggibilità semantica&lt;/strong&gt; che riguarda invece il modo con cui un linguaggio (ed un programmatore) riesce ad esprimere una certa soluzione.&lt;br /&gt;Il Pascal è nato con scopi didattici ed è sicuramente più &lt;strong&gt;sintatticamente &lt;/strong&gt;leggibile del C++.&lt;br /&gt;Del resto sebbene chiunque, con qualunque linguaggio, possa scrivere del codice difficilmente comprensibile, il Pascal risulta comunque maggiormente Strutturato, obbigando chi scrive codice a suddividere i programmi in maniera più organica.&lt;br /&gt;Solo a titolo di esempio il fatto che una Unit abbia una sezione di interfaccia ed una di implementazione garantisce una più immediata comprensione delle funzionalità implementate in quella Unit.&lt;br /&gt;Questo argomente contribuisce a far si che pure da un punto di vista semantico il Pascal sia migliore del C++.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112171062633493466?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112171062633493466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112171062633493466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112171062633493466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112171062633493466'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/07/quale-linguaggio-pi-leggibile.html' title='Quale linguaggio è più leggibile?'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112132400998895046</id><published>2005-07-13T23:53:00.000-07:00</published><updated>2005-07-13T23:53:29.996-07:00</updated><title type='text'>Borland Delphi Partner CD</title><content type='html'>Un elenco di varie componenti per Delphi incluse nel CD. Alcune sono FW ed OpenSource&lt;br /&gt;&lt;a href="http://homepages.borland.com/jkaster/ccds/delphi2005/"&gt;Borland Delphi Partner CD&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112132400998895046?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112132400998895046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112132400998895046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112132400998895046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112132400998895046'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/07/borland-delphi-partner-cd.html' title='Borland Delphi Partner CD'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-112020043005405734</id><published>2005-06-30T23:47:00.000-07:00</published><updated>2005-06-30T23:54:47.210-07:00</updated><title type='text'>Design Patterns e Delphi</title><content type='html'>Questo link mostra come implementare alcuni DP in Delphi &lt; 2005.&lt;br /&gt;&lt;a href="http://www.obsof.com/delphi_tips/pattern.html"&gt;Introduction to Design Patterns in Delphi&lt;/a&gt;&lt;br /&gt;Come si vede la soluzione proposta per alcuni pattern (ad esempio Singleton) è forzata: in effetti l'uso di una variabile globale per memorizzare il puntatore all'istanza della classe è una soluzione non corretta da un punto di vista formale. La variabile globale rappresentava l'unico modo per simulare le variabili di classe (le static di C#) prima dell'avvento di Delphi 2005: quest'ultimo introduce le variabili statiche (class var) consentendo di incapsulare il riferimento all'oggetto direttamente a livello di classe anche in maniera più protetta di quanto avveniva prima (strict private).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-112020043005405734?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/112020043005405734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=112020043005405734' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112020043005405734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/112020043005405734'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/06/design-patterns-e-delphi.html' title='Design Patterns e Delphi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-111990783895261577</id><published>2005-06-27T14:30:00.000-07:00</published><updated>2005-06-27T14:30:38.960-07:00</updated><title type='text'>Computer Architecture</title><content type='html'>Da alcuni dubbi nati durante una discussione ho preso spunto per ripassare un po' di architettura dei processori&lt;br /&gt;&lt;a href="http://dept-info.labri.u-bordeaux.fr/~strandh/Teaching/AMP/Common/Strandh-Tutorial/Dir.html"&gt;Computer Architecture&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-111990783895261577?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/111990783895261577/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=111990783895261577' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/111990783895261577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/111990783895261577'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/06/computer-architecture.html' title='Computer Architecture'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-111825553330532196</id><published>2005-06-08T11:32:00.000-07:00</published><updated>2005-06-08T11:32:13.320-07:00</updated><title type='text'>Ancora Delphi</title><content type='html'>&lt;a href="http://delphi.newswhat.com/geoxml/home"&gt;newswhat.com []&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-111825553330532196?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/111825553330532196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=111825553330532196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/111825553330532196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/111825553330532196'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/06/ancora-delphi.html' title='Ancora Delphi'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-111817123433547005</id><published>2005-06-07T12:07:00.000-07:00</published><updated>2005-06-07T12:07:14.336-07:00</updated><title type='text'>LA DEFINIZIONE DI DELPHI</title><content type='html'>&lt;a href="http://it.wikipedia.org/wiki/Delphi"&gt;Delphi - Wikipedia&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-111817123433547005?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/111817123433547005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=111817123433547005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/111817123433547005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/111817123433547005'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/06/la-definizione-di-delphi.html' title='LA DEFINIZIONE DI DELPHI'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11340494.post-111817081595629277</id><published>2005-06-07T12:00:00.000-07:00</published><updated>2005-06-07T12:00:15.960-07:00</updated><title type='text'>Bellissimo Indice</title><content type='html'>Questo sito offre un indice interessante per le Delphi&lt;br /&gt;&lt;a href="http://www.freebyte.com/programming/delphi/"&gt;Freebyte's Guide to Free Delphi Programming&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11340494-111817081595629277?l=sviluppoesviluppi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sviluppoesviluppi.blogspot.com/feeds/111817081595629277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11340494&amp;postID=111817081595629277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/111817081595629277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11340494/posts/default/111817081595629277'/><link rel='alternate' type='text/html' href='http://sviluppoesviluppi.blogspot.com/2005/06/bellissimo-indice.html' title='Bellissimo Indice'/><author><name>SviluppoeSviluppi</name><uri>http://www.blogger.com/profile/06839527702684773987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
