Archivio per: settembre, 2006

Inkscape.. forse non tutti sanno che..

..Esiste una serie di software opensource per l’illustrazione vettoriale che non hanno nulla da invidiare ai blasonati pacchetti commerciali del settore. Tra questi voglio segnalare l’ottimo Inkscape giunto oramai alla versione 0.44.

“Tra le caratteristiche supportate da SVG vi sono le forme base, i tracciati, i testi, i segnali, i cloni, le trasparenze, le trasformazioni, i gradienti e i gruppi. Inkscape supporta inoltre i meta-dati Creative Commons, la modifica sui nodi, i livelli, le operazioni complesse sui livelli, i testi su tracciato e la modifica dell’XML SVG. Può importare da diversi formati come EPS, Postscript, JPEG, PNG, BMP e TIFF e esportare in PNG ed in altri formati basati su vettori multipli. “

Sono supportate le piattaforme GNU/Linux, Mac OSX e Win32.

Insomma.. come dicono gli inglesi “worth’s a try” :)

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Tag: Sistemi di Call Center | Centralino Voip | Consulente Asterisk Napoli | Centralino Telefonico | Voip | Asterisk CTI | PBX | Telefoni IP | Networking | Linux


Sviluppo di IVR, sistemi di callcenter, PBX Voip.

Invoke

Prima o poi vi capiterà di sviluppare una applicazione che faccia uso dei Threads per svolgere operazioni in background.
Magari se non avete mai utilizzato i Threads, vi consiglio questo articolo (in inglese) An Introduction to Programming with C# Threads

Il problema dell’Invoke si presenta nel momento in cui cercate di aggiornare la UI di una Form da un thread. Infatti .NET consente l’invocazione delle funzioni dell’oggetto System.Windows.Forms.Control solo dal thread in cui l’oggetto è stato creato. Per aggirare l’ostacolo abbiamo bisogno di utilizzare le funzioni Control.Invoke (chiamata sincrona) or Control.BeginInvoke (chiamata asincrona). Normalmente, il nostro approccio sarebbe quello di scrivere tante delegates per quanti sono gli oggetti da invocare o metodi da aggiornare:
delegate void AggiungiListboxDelegate(string msg);
[...]
if (this.InvokeRequired) {
Invoke(new AggiungiListboxDelegate(AggiungiAListBox), new object[] { itm } );
}
else
{
AggiungiAListBox(itm);
}

Esiste invece un metodo più semplice ed utilizzabile in modo generico nella maggior parte dei casi. Scriviamo delle delegates generiche che ricevono:

  • o l’oggetto, il nome della property da valorizzare e il nuovo valore da assegnare
  • o l’oggetto, il nome del metodo da invocare e i parametri da passare al metodo

delegate void SetPropertyDelegate(object ctl, string objName, object newValue);
delegate void SetMethodDelegate(object obj, string methodName, object[] parameters);
[...]

void SetProperty(object ctl, string propName, object newValue) {
Type t = ctl.GetType();
PropertyInfo pi = t.GetProperty(propName);

if (pi != null) {
pi.SetValue(ctl,newValue,null);
}
}
void SetMethod(object ctl, string methodName, object[] parameters) {
Type t = ctl.GetType();
MethodInfo mi = t.GetMethod(methodName);

if (mi != null) {
mi.Invoke(ctl, parameters);
}
}
Un esempio di utilizzo:

Invoke(new SetPropertyDelegate(SetProperty), new object[] { (object)lblErrMessage, "Text", errmsg });

oppure

Invoke(new SetMethodDelegate(SetMethod), new object[] { (object)this, "Close", (new object[] {}) } );

A voi l’onere di migliorare l’idea :)

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Tag: Sistemi di Call Center | Centralino Voip | Consulente Asterisk Napoli | Centralino Telefonico | Voip | Asterisk CTI | PBX | Telefoni IP | Networking | Linux


Sviluppo di IVR, sistemi di callcenter, PBX Voip.

Benvenuto

Finalmente ho deciso di utilizzare questo dominio per creare il mio Blog personale. In questo spazio troveranno posto tutte le esperienze ed interessi che matureranno nel corso del tempo.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Tag: Sistemi di Call Center | Centralino Voip | Consulente Asterisk Napoli | Centralino Telefonico | Voip | Asterisk CTI | PBX | Telefoni IP | Networking | Linux


Sviluppo di IVR, sistemi di callcenter, PBX Voip.