Archive for the 'IT' Category

1nn0va – WebCongress 3.0 – Venerdì 16 Aprile 2010

1nn0va

Venerdì 16 Aprile 2010 a partire dalle ore 17.00, si terrà l’evento più importante dell’anno organizzato da 1nn0va. L’evento con le sue cinque sessioni avrà luogo presso il:

Consorzio Universitario di Pordenone
Via Prasecco, 3/a 33170 – Pordenone
Tel. 0434 / 523072 – Fax 0434 / 27502
info@unipordenone.it


SESSIONE 1: ASP.Net MVC 2.0
Relatore: Marco Parenzan

L’imminente rilascio del framework .NET 4.0 porta con sé una nuova versione, la 2.0, del recente framework per applicazioni web ASP.NET MVC.
Ripercorreremo gli elementi fondamentali del pattern Model-View-Controller e la struttura di una applicazione ASP.NET MVC.
Vedremo soprattutto come la community abbia fatto maturare velocemente questo framework osservando le nuove funzionalità in questa versione, implementate in una sessione tutta live-coding.
INIZIO SESSIONE ORE 17:00


SESSIONE 2: Silverlight 4.0
Relatore: Marco Parenzan

Quando i css e jQuery non sono più sufficienti per dare dinamicità ed efficacia ai contenuti del nostro sito, possiamo passare ad un livello nuovo di presentazione: le Rich Internet Application.
Da sempre appannaggio della tecnologia Flash di Adobe, ora abbiamo a disposizione il framework .NET nel browser con Silverlight.
Vedremo cosa significa scrivere codice .NET per Silverlight, cosa significa scrivere una interfaccia utente con XAML in una sessione tutta live-coding.
INIZIO SESSIONE ORE 18:00


SESSIONE 3: CSS 2.0
Relatore: Pietro Vian

A fine anni ‘90, il W3C ha ratificato l’uso del secondo livello dei Cascading Style Sheets, che rispetto alle versioni precedenti ha aggiunto novità atte a rendere più semplice, completa e standard la programmazione dell’aspetto grafico di un sito Web.
Ad oggi, nonostante tutti i browser siano conformi al CSS2, possiamo dire che lo fanno “in maniera non sufficientemente simile”, ciò comporta maggior frustrazione per il web designer a causa degli innumerevoli test a cui è sottoposto in fase di creazione del layout.
Tuttavia, così come si evolvono i browser, continua ad evolversi lo stesso linguaggio CSS, che ad oggi con particolari tecniche permette effetti grafici degni della migliore interfaccia client.
Vedremo pertanto come, superati i primi ostacoli di cross-browsing, un web designer possa adottare i fogli di stile per rendere il proprio sito non solo più piacevole agli occhi, ma anche più veloce, interattivo e user-friendly.
INIZIO SESSIONE ORE 18:45


SESSIONE 4: jQuery
Relatore: Sandro Marcon

Ormai è sotto gli occhi di tutti, la tendenza è inarrestabile: le classiche applicazioni standalone stanno ogni giorno sempre più lasciando il posto alle web application.
Differenti sono le problematiche che si presentano, ma un buon framework su cui basare tutto l’applicativo è sempre un ottimo punto di partenza.
Varie le alternative che ci si presentano di fronte: jQuery una delle più valide!
In questa sessione introduttiva vedremo quali sono i motivi che rendono “necessario” l’uso di un framework come jQuery, analizzeremo a fondo le sue peculiarità di base e concluderemo con una carrellata delle varie funzionalità che ci mette a disposizione.
INIZIO SESSIONE ORE 19:45


SESSIONE 5: Entity Framework 4.0 vs NHibernate
Relatore: Manuel Scapolan

Con la nuova release dell’Entity Framework Microsoft cambia strategia in fatto di accesso ai dati, il database relazionale non deve più essere il punto di partenza nella progettazione di applicazioni, ma solo un modo di salvare le informazioni del dominio.
Vedremo in questa sessione come l’Entity Framework ci può aiutare a persistere agevolmente gli oggetti di un dominio in un parallelo con NHibernate che della “Persistence Ignorance” ne ha fatto un cavallo di battaglia.
INIZIO SESSIONE ORE 20:45


Vuoi un consiglio? Partecipa… o non vorrai farti superare dalle nuove tecnologie senza neppure conoscerle?
Iscriviti alla pagina eventi del nuovo sito. Ti aspettiamo!
Per ogni tipo di informazione o chiarimento, inviare una mail a info@1nn0va.net.

Aumentare la dimensione di un disco virtuale (in VirtualBox)

Sun VirtualBox logo

Ormai ho perso il conto del numero delle volte che mi sono ritrovato con lo spazio esaurito nei miei dischi virtuali: comincio col creare una macchina virtuale, faccio due conti sullo spazio che mi dovrebbe servire, quasi sempre arrivo alla conclusione che 5,0 GB possano essere più che sufficienti… e dopo meno di una decina di “avvii” mi ritrovo con il disco pieno! Potrei dire che ormai è un classico, ma nonostante questo continuo a creare dischi virtuali da 5,0 GB! :) Che dire: maledette fissazioni!

Purtroppo, per quanti usano VirtualBox, non ci sono soluzioni eleganti ed integrate nell’applicativo, esistono però svariate soluzioni per aggirare il problema. Quella che a mio parere è la più elegante l’ho trovata a questo link. Nella procedura descritta si ricorre all’uso dell’ottimo GParted che permette di gestire il ridimensionamento ed il “copia e incolla” di partizioni.

GNOME logoGParted viene anche fornito su immagine ISO auto-avviante (o boottabile): a questo punto, i più smaliziati avranno di certo già capito come poter effettuare l’operazione di ingrandimento dei propri dischi virtuali.

Ultimo EVENTO per l’anno 2009! Model View Controller: semplificare il codice e minimizzare i tempi!

1nn0va

Giovedì 10 Dicembre 2009 – Ore 18.30
Via Prasecco, 3/a
33170 – Pordenone
(Presso Il Polo Universitario di Pordenone – Aula S3)

L’aumento della complessità delle applicazioni e la velocità di realizzazione richiesta al giorno d’oggi, hanno obbligato gli sviluppatori ad utilizzare metodologie formali per la scrittura di codice e il successivo testing dello stesso al fine di minimizzare i tempi di rilascio.

L’utilizzo dei pattern, ossia di convenzioni condivise dalla community dei programmatori, è una pratica sempre più diffusa e adottata anche per applicazioni Web.

L’ormai trentennale pattern Model-View-Controller (MVC) sta attualmente conoscendo una nuova giovinezza grazie al successo di framework nelle applicazioni Web che lo usano come riferimento.

Rails è il framework MVC più famoso e diffuso, implementato per la piattaforma Ruby, mentre ASP.NET MVC e MonoRail sono i due framework web MVC che stanno riscuotendo il maggiore successo per lo sviluppo su .NET e su Windows.

Conosceremo quindi la filosofia di riferimento e le specificità dei due framework tramite due implementazioni reali  di una stessa applicazione e ne discuteremo vantaggi e svantaggi.

ARGOMENTI DEL MEETING:

  • introduzione al pattern MVC;
  • presentation Layer: scegliere tra ASP.NET MVC e MonoRail di Castle Project;
  • vantaggi e svantaggi rispetto all’approccio tradizionale (MVC vs WebForm);
  • conclusioni.

L’evento pubblico e gratuito è presentato dai nostri due soci:

  • Manuel Scapolan;
  • Marco Parenzan.
È gradita l’iscrizione all’evento tramite il seguente link.

Per quanti non potranno partecipare “fisicamente” all’evento, c’è la possibilità di seguire la serata via screencast. Specificare al momento dell’iscrizione se si desidera usufruire di questo servizio. Poche ore prima dell’inizio della conferenza, a quanti lo hanno richiesto, sarà inviata una mail con le istruzioni per la connessione.

In occasione dell’ultimo evento annuale, sarà aperta la campagna di tesseramento all’Associazione per il 2010. L’iscrizione ad 1nn0va costerà ancora una volta sole 15,0€. La quota d’iscrizione, oltre a permettere l’esistenza stessa dell’Associazione, da ai soci la possibilità di:

  • proporre le tematiche per gli eventi;
  • proporsi come speaker degli eventi;
  • accedere alle offerte/proposte di lavoro che pervengono all’Associazione;
  • partecipare alle riunioni organizzative;
  • sfruttare il network di contatti/conoscenze creatosi intorno all’Associazione.

Per eventuali informazioni:

thinkIT

RXTX: porte seriale e parallela in Java (ed in ambiente Microsoft)

RXTX logo

Java logo

Per quanti non ne fossero ancora a conoscenza, la Sun, da qualche anno, ha tolto il supporto (nella tecnologia Java) alle porte seriali e parallele negli ambienti Microsoft Windows. Come dire: “alla faccia della portabilità”.

Attualmente tali dispositivi vengono supportati solo negli ambienti Linux e Solaris.

Fortunatamente la comunità open-source viene incontro a questo problema con la libreria RXTX. Sebbene tale pacchetto non si possa di certo definire un esempio di lavoro ben fatto (se utilizzate l’applicativo Portmon della Sysinternals non potrete non notare il continuo polling sulla porta seriale), esso rappresenta la più valida alternativa free per aggirare il problema.

Uno degli indiscutibili vantaggi di RXTX sta nell’implementazione di una API pienamente equivalente/compatibile con la Java Communications API: la cosa si traduce nella possibilità, in ambiente Linux o Solaris, di usare la libreria che più vi aggrada cambiando semplicemente un import e lasciando il resto del codice sorgente invariato.

Ritornando agli ambienti Microsoft Windows: vari sono i post che potete trovare in rete sul come installare nel modo più idoneo la libreria. Diversamente da altri casi, la libreria RXTX contiene anche delle DLL (ove, ovviamente, vengono richiamate le apposite API della Win32). Dopo vari tentativi ed esperimenti, consiglio a tutti di copiare questi file (rxtxParallel.dll e rxtxSerial.dll) nella cartella [\WINDOWS\system32\]: è la soluzione che comporta la minor ridondanza. Ovviamente dovrete ricordarvi di copiare questi file, oltre ai file JAR, in tutte le macchine ove l’applicativo interessato dovrà girare.

rxtxParallel.dll, rxtxSerial.dll

Prossimo evento 1nn0va con Franco Perduca – CUSTOMER DATA WAREHOUSE: più informazioni tangibili sui tuoi clienti

1nn0va

Giovedì 5 Novembre 2009 – Ore 18.00
Via Prasecco, 3/a
33170 – Pordenone
(Presso Il Polo Universitario di Pordenone)

In una società di servizi e customer-oriented come la nostra è importante conoscere a fondo le esigenze del cliente, per riuscire ad anticiparne e soddisfarne le richieste attraverso informazioni tangibili.

Il Data Warehouse basato sui CRM (Customer RelationShip Management) può dare una forte spinta commerciale alle aziende, così come al singolo professionista.
I software CRM generano, attraverso una serie di algoritmi, la strategia di marketing aziendale ottimale da intraprendere grazie alla tipizzazione dei clienti e delle loro peculiarità al fine di ottimizzare i costi d’investimento.

ARGOMENTI DEL MEETING:

  • CRM e BI;
  • Perché può servire un Datawarehouse per le aziende che dispongono di un CRM;
  • Limiti del CRM e vantaggi nel applicarvi il Data Warehouse;
  • Creazione ed alimentazione di un Customer Data Warehouse;
  • Accesso ai dati di un Customer Data Warehouse.

L’evento pubblico e gratuito è presentato da:

  • Franco Perduca, di Factory Software, professionista esperto del settore;
  • 1nn0va, Associazione per lo sviluppo delle tecnologie informatiche.

È gradita l’iscrizione all’evento tramite il seguente link.

Per eventuali informazioni:

thinkIT

Aggiornamento a WordPress 2.8.*

Per quanti non riuscissero ad aggiornare il proprio WordPress ad una delle versioni della serie 2.8.* (nel mio caso 2.8.4 a partire da una della serie 2.7.*) con la procedura “automatica” e, come errore, ricevono il seguente messaggio.

Could not copy file: /public_html/wp-content/upgrade/core/wordpress/wp-comments-post.php

Consiglio a tutti di seguire le istruzioni riportate, in modo assai chiaro, nell’artico a questo link.

Ho personalmente testato tutti i passi elencati dall’autore e posso confermare che il problema viene effettivamente risolto. Consiglio, come io stesso ho fatto, di disabilitare tutti i vari plugin prima di procedere all’aggiornamento.

Il problema è causato da alcuni errori presenti in alcune delle tabelle utilizzate dalla piattaforma di blogging . Onestamente non mi spiego cosa e come abbia causato questi problemi e non ho capito nemmeno come le procedure automatiche di riparazione del phpMyAdmin abbiano potuto risolvere la cosa. Ogni commento esplicativo lasciato a questo post è benvenuto e assai gradito!

Power user tools list

Che Scott Hanselman fosse un grande era ormai da tempo una questione fuori da ogni dubbio, ma il lavoro che ha presentato in questo suo post è davvero eccezionale: l’elenco di tutte le utility/tools  è lista più completa che abbia mai visto.

Sto passando uno ad uno i link/applicazioni che non conoscevo e resto sempre colpito dall’aumento di produttività che queste possono comportare. Per fortuna mi consolo osservando che qualcuno già lo utilizzo con successo! Molto belle le sezioni dedicate allo sviluppo .Net e alle “Things Windows Forgot”.

Consiglio a tutti di “perderci” un po’ di tempo.

I pochi applicativi (free) che ho avuto tempo di installare sino ad ora sono:

Novità in Visual Studio 2010 e nel .NET Framework 4.0

Segnalo questo interessantissimo articolo che ho scovato in CodeGuro che illustra in modo davvero chiaro, immediato e veloce tutte le nuove “features” che sono “comparse” nel nuovo Microsoft Visual Studio 2010 e nella nuova release del framework .Net (4.0). Questo il link.

.Net, class library e web services

Descriviamo un po’ la situazione in cui ci troviamo:

  • abbiamo un web service (sviluppato in ASP.Net);
  • vogliamo realizzare una libreria (class library .Net 3.5) per offrire una sorta di “interfaccia comune” verso il web service in modo tale che qualsiasi applicazione (in particolare applicazioni “stand alone” .Net) possa richiamare i servizi esposti senza troppi “grattacapi”.

Come si dovrebbe procedere: da Visual Studio (2008 SP1), nel progetto della nostra class library, si passa alla creazione di un “web-reference” (in relazione al web service in questione). Non serve fare altro: sulla carta non è necessaria alcuna particolare operazione sul progetto dell’applicazione che utilizza la nostra nuova class library. In realtà, se compilate ed eseguite il programma, potrete vedere da voi stessi che l’applicativo non è in grado di collegarsi al web service.

Qui di seguito il messaggio contenuto nell’eccezzione che viene generata quando tentate di accedere al web service: “Could not find default endpoint element that references contract ‘___’ in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.

Motivo? Diciamo che i “riferimenti” o (entry point) al web service non vengono “copiati” dalla class library all’applicazione che la utilizza. Questi riferimenti sono contenuti nel file .config della class library (in dettaglio possiamo trovare tutte le informazioni all’interno del tag <system.serviceModel>). Il file .config della class libray, purtroppo, non “segue” la libreria nell’applicazione che la utilizza (se andate a vedere nella cartella bin del vostro applicativo, troverete solo il fiel .config relativo  a quest’ultimo).

Il problema è aggirabile manualmente: basta copiare tutto il contenuto del tag <system.serviceModel> dal file .config della class library a quello dell’applicazione (operazione fattibile ma assai scocciante).

Qui di seguito un esempio della parte da copiare.

<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="WebServiceSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://_/_.asmx" binding="basicHttpBinding" bindingConfiguration="WebServiceSoap" contract="_" name="_" />
</client>
</system.serviceModel>

Per poter “scrivere” nel file .config dell’applicazione andate nel Solution Explorer del Visual Studio: tasto destro del mouse sul progetto in questione, andate alla voce Add nel menù che via appare  ed a questo punto cliccate sulla voce New Item.

Add-NewItem

A questo punto vi apparirà una nuova finestra: selezionate General nella parte sinistra ed Application Configuration File in quella destra. Qui di seguito un’immagine che illustra le operazioni appena elencate.

.config file

Bene! Tutto il contenuto del nuovo file .config (che  ritroverete nella lista dei file del vostro progetto) sarà ricopiato nel file .config “ufficiale” dell’applicazione.

Il problema sembra essere ben conosciuto, ma al momento non ho letto ancora nulla in merito ad una sua soluzione nel futuro Visual Studio 2010. Ho letto che la gestione dei file .config è stata migliorata permettendo una sorta di “diversificazione” tra debug e release, ma nulla circa il problema qui sopra evidenziato.

Dertiminare/verificare se un path (stile Microsft Windows) è assoluto (in C#)

Sembra una stupidaggine, ma una funzione esplicita per fare questo non esiste, o meglio, non funziona proprio come si deve.

Il metodo del Microsoft .Net frame work in questione è Path.IsPathRooted. Sono riuscito a scovare questa funzione grazie a questo post. Ma più che il post in se stesso, la cosa più interessante è il primo commento che apapre nella pagina: la funzione Path.IsPathRooted considera il path “\temp\” come assoluto!

Diciamo che la cosa non va per nulla bene! Sebbene ci abbia perso un po’ di tempo, non sono riuscito a trovare una spiegazione al caso.

Date le circostanze, si è reso necessario sviluppare un’apposita funzione che svolga il lavoro: qui di seguito il codice.

public static bool isAbsolutePath(string sPath)
{
string sPattern = @"^[a-zA-Z]:\\";
Regex R = new Regex(sPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);

return R.IsMatch(sPath);
}

Per compilare il tutto, ricordarsi di includere il namespace System.Text.RegularExpressions.

Attenzione che la funzione non determina se un path è sintatticamente corretto (vedere post precedente): si limita a verificare “come inizia” per capire se è assoluto o meno. Il funzionamento è poi limitato solo a path locali alla macchina: non vengono gestiti path UNC.