Passa ai contenuti principali

Post

Visualizzazione dei post da 2008

COM wrapper for a Managed library

In rari casi ci si può trovare a dover esporre un assembly .Net verso un programma scritto in linguaggio unmanaged. Una delle possibili soluzioni è dotare l'assembly di un'interfaccia COM da poter utilizzare nell'applicativo unmanaged. Nel video Make Use of Assemblies Written in Any CLS Language della serie How Do I? videos di Microsoft si affronta un semplice esempio di programma WinForm scritto in C# il cui assembly compilato e registrato come oggetto COM viene poi usato da un programma in Visual C++. I passi fondamentali: Lato C# bisogna importare System.Runtime.InteropService. Impostare gli attributi di classe ComVisible(true) e ClassInterface(ClassInterfaceType. AutoDual ). Una volta compilato l'assembly bisogna far girare l'utility .net regasm per creare la type library. regasm / tlb :PhysServer2. tlb PhysServer2.dll . Poi copiare l'assembly nella stessa directory dell'eseguibile unmanaged che userà la libreria.

ASP.net Ajax

Prendo l'occasione di alcuni "how do I? videos" per dare una chance ad ASP.net Ajax . Get Started with ASP.NET AJAX: Con ASP.net 3.5 e VS2008 non è necessario installare nient'altro. Un UpdatePanel è il contenitore che permette agli elementi contenuti di aggiornarsi senza ricaricare tutta la pagina. L'updatePanel ha una sottosezione ContentTemplate , dove vanno a finire tutti i controlli visuali trascinati nell'UpdatePanel. Un pulsante inserito nell'UpdatePanel provoca, al click, l'aggornamento del solo pannello. Per agganciare l'UpdatePanel ad eventi di controlli esterni al pannello si usa un AsyncPostBackTrigger (specificando nome del controllo ed evento da intercettare). Va inserito nella sottosezione Trigger di UpdatePanel. Get Started with the ASP.NET AJAX Control Toolkit Il kit è un'insieme di controlli visuali ajax-enabled, disponibile come sorgente e come binario precompilato su CodePlex. Il video è abbastanza inutile se si sa già come

Threading with .Net Compact Framework

Nella serie degli "How do I? videos" di Microsoft alcuni video di ripasso sulle basi della programmazione multithread in .Net con un occhio all'aspetto mobile. How Do I: Use the ThreadPool to Execute Worker Threads? ThreadPool. nulla da segnalare. How Do I: Use a Monitor Object for Thread Synchronization? L'oggeto Monitor per creare delle zone critiche ad accesso esclusivo nel codice. Il consiglio è quello di usere le funzioni Enter ed Exit dell'oggetto Monitor in zone vicine del codice e nella stessa funzione. A parer mio tanto vale usare la sintassi lock(syncObj) { ...sezione critica... } How Do I: Synchronize Multiple Threads? Uso di AutoresetEvent e dei suoi metodi Set (consente ad un solo thread di passare il semaforo) e WaitOne (resto in attesa di fronte al semaforo). La sincronizzazione in questione è tra il thread dell'UI che comanda tramite pressione di un pulsate il Set e un secondo thread separato che cicla indefinitamente e ad ogni ciclo si arresta

Custom button control compact framework

Compact framework non permette particolari modifiche dell'aspetto dei pulsanti. Realizzare i pulsanti tramite custom control è una via obbligatoria per dare a qualsiasi applicazione compact framework un design personalizzato. Un semplice tutorial Msdn (2007) dove si spiega come farlo, catturando gli eventi di mouseup e mousedown per ottenre l'effetto premuto e rilasciato dei pulsanti. Un tutorial opennet cf invece propone una soluzione simile usando la proprietà Image della classe BaseButton2 estendendo un CustomButton da Button2. Il controllo Button2 di opennet cf è molto versatile permette di definire immagini di background (di cui effettua uno stretch sull'area del controllo) e un' immagine di primo piano (per esemio l'icona sul pulsante). Il testo multiline ha un suo backColor trasparente, quindi non "nasconde" le immagini sottostanti. Button2 è sicuramente una via obbigatoria se si cerca una soluzione veloce alla personalizzazione dei pulsanti.

MSDN code gallery

Download and share sample applications, code snippets, and other resources with the developer community.... Il sito è nuovo, ospita soprattutto codice per .NET e VS2008. E' possiblie cercare gli esempi per tag. Un esempio di ricerca per il tag mobile.

parole::braketing

Durante le vacanze mi sono accorto che la mia Nikon p3 possiede un settaggio Braketing... Braketing : scattare più foto variando il valore di un parametro nei diversi scatti (di solito l'esposizione). Hdr : il ccd della camera e i monitor dei pc cattuarano e visualizzano una finestra limitata di luminosità sul range effettivo della scena. Il processo di cattura è coerente perchè anche avendo un ccd sensibile a uno spettro luminoso più ampio non ci sarebbe un monitor in grado di visualizzarlo. Possiamo tentare di ricostruire un'immagine hdr campionando più volte ad esposizioni diverse. Rimane però il problema che l'immagine con un range così ampio non è visibile su stampe o monitor, si ricorre al tone mapping per effettuare una mappatura su uno spettro limitato (della luminosità per l'hdr, ma il termine è più spesso usato per il colore). Un programma open source per l'Hrdi: QtpsfGui. Gimp plugin exposure blend : realizza il blend di 3 foto (sottoesposta, normale e

chroma subsampling

http://en.wikipedia.org/wiki/Chroma_subsampling: Sampling systems and ratios The subsampling scheme is commonly expressed as a three part ratio (e.g. 4:2:2), although sometimes expressed as four parts (e.g. 4:2:2:4). The parts are (in their respective order): Luma horizontal sampling reference (originally, as a multiple of 3.579 MHz in the NTSC television system) Cr horizontal factor (relative to first digit) Cb horizontal factor (relative to first digit), except when zero. Zero indicates that Cb horizontal factor is equal to second digit, and, in addition, both Cr and Cb are subsampled 2:1 vertically . Zero is chosen for the bandwidth calculation formula (see below) to remain correct. Alpha horizontal factor (relative to first digit). May be omitted if alpha component is not present. To calculate required bandwidth factor relative to 4:4:4 (or 4:4:4:4), one needs to sum all the factors and divide the result by 12 (or 16, if alpha is present). From Microsoft Help 4:4:4 means

Sports tracker

Dai research lab della nokia un' applicazione che usa il GPS per fare l'analisi della vostra attività sportiva. Gratuito per Symbian. E via di corsa!

Cygwin

http://en.wikipedia.org/wiki/Cygwin rende disponibile un'ambiente POSIX (è l'insieme di api che accomuna i sistemi unix). Il resto, quello che gira sotto, e anche i programmi compilati in cygwin sono exe e dll windows. Traduce una chiamata POSIX in chiamate alle API (e quindi chiamate alle dll) di windows, lo strato di traduzione è realizzato dall'unica cygwin1.dll. mette a disposizione una toolchain di compilazione di tipo UNIX. Cioè gcc e gdb, tutti i file h necessari a compilare le librerie. MinGw è invece un compilatore. -- se compilato con il gcc di cygwin l'eseguibile potrà girare solo su cygwin -- se compilato con MinGw il binario è un eseguibile (o dll) di windows vero e proprio (è da questo compilatore che vengono i binari per windows di Mozilla firefox, java e openoffice). Red Hat foraggia cygwin e lo rende disponibile tramite GPL. Mingw nasce come fork di CygWin, in effetti lavorano un po' in direzioni opposte: Cygwin aderisce allo standard POSIX, senza