Oggi pomeriggio ho perso non poco tempo a realizzare che la ConnectionString ad una connessione OleDB era malformattata. Mi sono fidato del copia-incolla da questo o quel sito, ma non c'era verso di capire dov'era veramente l'errore. La mia stringa era la seguente:
ma all'apertura della connessione, l'errore era sempre quello:
Impossibile trovare ISAM Installabile
E cerca di qua e cerca di là... alla fine ho realizzato che la proprietà di una System.Data.OleDb.OleDbConnection DataSource viene letta dalla connectionstring dal campo "Data Source". Se nella stringa c'è il campo "DataSource", non ci sarà verso di istanziare correttamente la OleDbConnection:
Se volete configurare il NAT su un modem ADSL SpeedTouch Pro - si può fare anche su un SpeedTouch Basic se lo modificate opportunamente e lo fare così diventare uno SpeedTouch Pro - basta che vi colleghiate via telnet dal vostro PC in locale al modem:
telnet 10.0.0.138
(inserite l'account e la password, se l'avete impostata, ma vi invito caldamente a impostare una password sul vostro modem). Dopo il testo di benvenuto, lanciate nat.
Chi non è affatto a digiuno di informatica, probabilmente almeno una volta nella sua vita, è andato nel prompt di DOS ed avrà digitato un comando contenente anche una stringa con degli asterischi:
del PIPPO*.DOC
che vorrebbe dire "cancellami i file" (questo è il significato del comando del) che cominciano per "PIPPO" ed hanno estensione DOC. In tutta sincerità PIPPO*.DOC è una stringa che individua genericamente un'espressione regolare, dove espressione regolare è un modo per scrivere un'espressione stringa generica, a cui possono coincidere svariate stringhe. Sicuramente su Wikipedia trovate una definizione molto più accurata ed esaustiva.
Il mio problema, fino a pochi minuti fa, era riuscire a scrivere la medesima espressione regolare caratterizzata dagli asterischi in una espressione regolare accettata dall'oggetto System.Text.RegularExpressions.Regex. Se avete pertanto da trasformare il pattern PIPPO*.DOC, esso diventerà:
^(PIPPO)(.)*(.DOC)$
Alcuni altri esempio con una stringa generica, vi saranno utili per riconoscere altri pattern del tipo:
pippo* (stringa che inizia per 'pippo') > ^(pippo)(.)*$
*pippo (stringa che finisce per 'pippo') > ^(.)*(pippo)$
*pippo* (stringa che contiene 'pippo') > ^(.)*(pippo)(.)*$
Sostanzialmente l'asterisco *, wild card di MS-DOS o del prompt a linea di comando di Unix o Windows, diventa (.)*, mentre tutte le altre porzioni di testo non dovete fare altro che metterle tra parentesi, in modo da identificare correttamente un blocco. A dirla tutta fino in fondo, questo non basterebbe ancora, perché dovreste evitare di utilizzare caratteri riservati nelle altre porzioni o dovreste prendervi la briga di convertire i simboli dei caratteri riservati nella maniera corretta in modo che essi siano accettati anche da Regex di .NET, ma per questo vi rimando ad altri articoli.
Un'ottima guida per le espressioni regolari in .NET la potete trovare anche qua su CodeProject.
Ecco la mia soluzione generale per assemblare il riconoscimento di una stringa generica:
Dim parts() As String Dim i As Integer Dim hasWildCard As Boolean Dim re As System.Text.RegularExpressions.Regex Dim reStr As String Dim ANYTHING_STR As String = "(.)*"
' componiamo la stringa Regex parts = Split(r, "*") reStr = "" For i = 0 To parts.Length - 1 If (i > 0) Then reStr += ANYTHING_STR End If If (parts(i).Length > 0) Then reStr += "(" + parts(i) + ")" End If Next re = New System.Text.RegularExpressions.Regex("^" + reStr + "$") Return re.Match(test).Success
Non ci avrei minimamente creduto, fino a quando non ho installato sul mio computer la beta pubblica di Opera 10. Questa volta i programmatori di Opera si sono davvero superati.
I requisiti minimi dell'hardware sono però importanti e richiedono un processore a doppio core, Windows XP col Service Pack 3 o Vista col Service Pack 1 e ovviamente una webcam o una telecamera collegata via porta USB2 o Firewire con un CCD con qualità decente.
Se volete leggere l'articolo tradotto in italiano, lo trovate su Macitynet a questo indirizzo:
In Visual Basic 6 non è possibile avere una funzione di filtro automatica per controllare tutti i caratteri che vengono digitati dall'utente in fase di input. L'unico modo è di implementare la funzione di filtro, mano a mano che i caratteri sono digitati dall'utente utilizzando un codice più o meno del genere:
Private Sub txtBox_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case Is < 32
Case 48 To 57
Case 65 To 90
Case 97 To 122
Case Else
KeyAscii = 0
End Select
End Sub
Guardate che numeri si possono fare con la nuova versione di Picasa, la 3.5. Oltre alle solite funzioni di gestione e catalogazione di foto, gli sviluppatori di Google hanno introdotto il riconoscimento facciale e il tagging automatico: sostanzialmente da una galleria di foto ed un minimo di istruzione, l'applicazione "capisce" chi sono le persone che ci sono sulle foto a partire da un numero minimo di foto!
Premetto subito che non è uno scontro tra titani o l'ennesima diatriba su quale sia il migliore tra i due, perché un'analisi imparziale o meglio un'analisi super partes è quasi impossibile da trovare.
Meglio allora fare quello che ha fatto l'americano MacWorld, rivista statiunitense per eccellenza per il Mac, ovviamente trattasi di rivista chiaramente schierata, ma che ha cercato di mettere a confronto alcune delle novità introdotte negli ultimi aggiornamenti dei due rivali storici dei sistemi operativi, ossia Snow Leopard (10.6) e Windows 7.
Che il Mac sia sempre stato quello a dare il "la" da sopra, è risaputo da tutti, ma tante cose su cui Windows ha cercato di differenziarsi ed autodeterminarsi, spesso sono diventate uno standard de facto, che in qualche modo è stato travasato anche dentro il Mac.
Vi lascio pertanto alla recensione in inglese fatta da MacWorld, Snow Leopard versus Windows 7, firmata da Nick Mediati di PC World.
Questo articolo prende spunto da un episodio capitato negli ultimi giorni col software di un mio cliente e quindi mi sono avvicinato alla problematica dei "false positive" in ambiente informatico. Mi premeva però rendere pubblica la questione anche a chi non è propriamente del settore, a differenza del sottoscritto, e cioè alla vastissima platea degli utilizzatori di computer. Il tutto nasce dal fatto che l'antivirus, quand'anche sia accreditato e suggerito dagli esperti informatici di cui si ha fiducia, non è l'oracolo ed è ben lontano dall'essere infallibile o di distinguere le mele marce tra quelle buone.
In rete ho trovato un ottimo spunto riguardante i "false positive" scovati dagli antivirus da parte di Nir Sofer, sviluppatore della NirSoft, piccolissima software house che si occupa della messa a punto di utilissimi strumenti per il recupero di password e quant'altro.
La conclusione a cui è arrivato Nir è che le compagnie degli antivirus pensano solo ai soldi e fanno venire il mal di testa ai piccoli sviluppatori come lui. E non si può certo dargli contro leggendo il suo articolo in lingua inglese.
Penso che chiunque convenga sul fatto che dopo più di una decina d'anni l'antivirus sia un tool basilare che la maggior parte della gente usa per proteggere il loro sistema operativo - ad onor del vero è solo Windows ad averne estremo bisogno, un po' meno gli altri - da virus, cavalli di troia (d'ora in poi trojan) e altri fastidii informatici con intenzioni maligne. Non entriamo nel merito della "presunta mafiosità" delle software house degli antivirus: da sempre circola la leggenda metropolitana che siano anche le stesse case a produrre i virus informatici, al fine di giustificare il loro mercato, ma da quando sulla rete si aggirano sempre più persone disoneste, disposte a tutto pur di entrare in possesso di informazioni personali e del denaro altrui attraverso i più svariati meccanismi di raggiro, effettivamente non si può disconoscere l'effettiva utilità dei software antivirus, quali buoni espedienti da integrarsi con altri per la difesa dei propri strumenti informatici e dei propri dati.
Sfortunatamente la maggior parte delle case antivirus si spinge troppo in là con la protezione dagli antivirus e i trojan e in parecchie situazioni classificano software assolutamente legittimo come un'infezione da virus/trojan: viene messa in pratica la massima di Giulio Andreotti, cioè che "a pensar male degli altri si fa peccato, ma spesso si indovina". In questo articolo si ragiona sulle difficoltà generate dai pochi casi, per fortuna, per i quali gli antivirus sbagliano a "pensar male".
Un classico esempio di queste errate detezioni sono i tool di recupero password: la gente ha bisogno di questi tool per recuperare le loro password perse, pena la perdita o l'impossibilità di accedere ai propri dati. Questi tool per le password, come tante altre utility in circolazione, possono però essere usate anche dagli hacker, che invece hanno intenzioni tutt'altro che benevole.
L'attitudine di molte software house di antivirus è quella di essere molto severe in materia. Se si tratta di uno strumento che può essere usato dagli hacker, esso viene classificato come trojan o virus, anche se la quasi totalità dei suoi utilizzatori che li vuole usare, lo fa con buone intenzioni. Le compagnie degli antivirus non si preoccupano del fatto che inducono i loro clienti a pensare che gli autori di tali indispensabili utility - come Nirsoft - siano distributori di virus attraverso i loro siti.
C'è da dire anche che qualche società di sviluppo antivirus è un po' più delicata e sensibile nell'approcciare l'utente al problema e classifica questi strumenti come "minaccia di sicurezza" o "Riskware" - software a rischio, volendolo tradurre in italiano - che è molto meglio che classificarli categoricamente come virus o trojan, ma comunque impedisce all'utente di utilizzarli - semplicemente cancellandoli o mettendoli in quarantena, senza possibilità di scelta. Altri strumenti ancora invece chiedono all'utente come comportarsi nel caso in cui si verifichi qualcuna di queste situazioni.
Inoltre tantissimi utenti non conoscono la differenza tra virus e riskware e quando ricevono tali messaggi di detezione di un "riskware", essi continuano a pensare che tali strumenti siano comunque infettati da un virus chiamato "Riskware".
Questa situazione viene genericamente categorizzata come problema dei "false positive", cioè dei falsi positivi: uno strumento legittimo viene riconosciuto "positivo" ai test di un qualche antivirus, anche se in realtà si tratta di software legittimo e quindi tale test dà esito falso, cosa che capita non raramente anche nelle moderna analisi batteriologica, virale o biologica, per un errore di metodo, piuttosto che di misura o statistico.
Tanti sono gli sviluppatori che hanno problemi di "False Positive", tanto più quanto sono piccoli per distribuzione e per diffusione dei loro software.
Cosa ne è invece delle grandi software house come Microsoft? Queste, solitamente, non hanno di questi problemi e, quand'anche avessero un singolo caso di falso allarme per qualcuno dei loro software distribuiti, le aziende degli antivirus arriverebbero a correggere il problema entro un tempo molto breve. Molto semplicemente le software house degli antivirus sanno benissimo che le grandi compagnie godono del supporto di ottimi studi legali e se non fissassero il problema del loro antivirus, si ritroverebbero a fare i conti con una bella querela per diffamazione.
Un esempio di grande azienda è SysInternals. In passsato il loro tool "psexec.exe", che si poteva usare per eseguire codice su una macchina remota, è stato individuato come virus da alcuni software antivirus, ma da quando SysInternals è stata acquisita da Microsoft, tutti gli antivirus attestano che esso è immune, come si può vedere anche nel report di VirusTotal.
Purtroppo i piccoli sviluppatori sono discriminati rispetto ai grandi quando si tratta di far presente il problema alle aziende degli antivirus. Parecchie sono le persone che suggeriscono alla Nirsoft del perché non contattino direttamente le software house degli antivirus per risolvere le noie dei falsi allarmi. Ecco semplicemente spiegati in quattro punti del perché qualsiasi azioni sia abbastanza vana.
1. Ci sono decine e decine di compagnie di antivirus sul mercato con combinazioni di parecchi versioni di software, che possono far apparire o meno una quantità impressionante di falsi allarmi sulle macchine dei clienti finali. Gestire tutti questi falsi allarmi richiederebbe un dipendente a tempo pieno solo per gestire amministrativamente queste segnalazioni con gli sviluppatori di antivirus.
2. Se si guarda meglio ai siti di alcune compagnie, si troverà molto semplicemente il bottone "Compra subito!", ma non si troverà quasi mai il link per segnalare un "false positive" per il loro antivirus. Queste aziende badano solo a realizzare più vendite, ma non si prendono assolutamente a cuore il problema dei "false positive" nei loro prodotti. Loro nascondono molto spesso dentro il loro sito l'opzione di segnalare un "false positive", mentre altri danno tale possibilità solo agli utenti che hanno effettivamente comprato il loro software o il loro servizio.
3. Se anche si trovasse un metodo abbastanza semplice per segnalare un falso allarme nel loro sito, la maggior parte di tali compagnie non risponderebbe alle richieste o semplicemente manderebbe un messaggio automatico, dicendo che il file inviato è infetto. In alcuni casi, invece, gli sviluppatori dell'antivirus sistemano il problema del falso allarme nel loro successivo aggiornamento, senza ammettere che avevano tale problema e senza mandare alcuna scusa al cliente o allo sviluppatore dell'utility legittima.
4. I "false positive" spesso ritornano! Anche se la software house corregge il problema di detezione di un falso allarme, è solo una questione di tempo: prima o poi la loro ultima versione dell'antivirus riprenderà a segnalare nuovamente che l'utility legittima è ancora un virus o un trojan, magari sotto altro nome.
Se pertanto vi capiterà di essere frustrati al riguardo, come lo è appunto la Nirsoft, si può sempre vedere di aiutare i piccoli sviluppatori cercando di impedire alle aziende che vendono antivirus di riconoscere tali utility come virus o trojan, ma cosa fare effettivamente?
1. Aggiungere i propri commenti commenti in calce all'articolo della Nirsoft, sia in qualità di utente finale o di sviluppatore software.
2. Mandare il link di questo articolo a tutti gli amici, in modo che maturino consapevolezza del problema dei "false positive".
3. Se si paga regolarmente la licenza e gli aggiornamenti del software antivirus, non esitare a chiamare la società che lo sviluppa e pretendere che blocchino questi falsi allarmi nel loro software. Se si paga per un prodotto antivirus, si meriterebbe di avere avere un prodotto affidabile che individua solo i virus reali.
4. Se si ha un qualche contatto con qualche redattore o giornalista di qualche grande rivista o pubblicazione, si potrebbe provare ad offrigli la possibilità di effettuare una ricerca o di scrivere un articolo sui problemi dei falsi allarmi scatenati dagli antivirus. Purtroppo tanti periodici e riviste del settore non andranno mai a pubblicare un'indagine contro le compagnie antivirus, visto che quest'ultime li pagano profumatamente per la pubblicità.
In conclusione, se il problema dei "false positive" sollevasse un polverone sufficientemente grande tra i media, le software house degli antivirus arriverebbero a capire che essi potrebbero minacciare la loro credibilità, nonché diminuire le loro vendite e conseguentemente darebbero una maggiore priorità nel correggere questi falsi allarmi nei loro prodotti commerciali.
Il PPT e il PPS sono formati che sono stati implementati come strutture dati verificate di progetti generati da Microsoft PowerPoint. Entrambi possono essere visualizzati direttamente col PowerPoint Viewer. Ognuno dei formato si manifesta diversamente, anche se entrambi condividono parecchie similarità in termini di possibilità offerte.
Le due strutture dati differiscono parecchio
come il sistema riconosce ognuno dei formati di file di output di PowerPoint
come questi moduli vengono caricati
quali applicazioni sono più adatte ad essere invocate dal sistema all'esecuzione di ogni file
Il formato PPS è caricato ed eseguito per scopi di visualizzazione molto più velocemente
che i file in formato PPT. I file sono tipicamente creati in questo formato per saltare la fase di caricamento di PowerPoint e sono aperti direttamente da un modulo in modalità presentazione. I file PPS vanno subito in modalità a tutto schermo all'atto della loro apertura. Il modulo gestisce anche il passaggio in automatico alla slide successiva, ma questo dipende dalla sua configurazione, in modo particolare se è stato programmato per continuare automaticamente alla slide successiva o se il cambio della slide debba essere effettuato a seguito del clic di qualche bottone.
L'estensione PPT
Il file PPT sono gestiti con la struttura dati nativa di PowerPoint. Il formato PPT è di solito implementato per i progetti soggetti a modifica o per quelli ancora in costruzione. I file di output di PowerPoint con questa struttura si apriranno automaticamente in PowerPoint al loro lancio. Successivamente sarà l'applicazione che li mostrerà direttamente in modalità di progettazione come documento corrente. I file PPT possno anche loro essere sparati a tutto schermo e visualizzati tanto quanto i file PPS, visto che hanno le stesse capacità di visualizzazione e presentazione dei file PPS. Inoltre i PPT sono in formato di presentazione base per i progetti.
I file PPS hanno pertanto tempi di caricamento più veloci, ma gli utenti avranno bisogno di cambiarne il formato, peché non si può accedere direttamente dal visualizzatore dell'applicazione per eventuali modifiche. Questo significa che i PPS son stati espressamente concepiti per la mera proiezione.
Il formato PPT ha tempi di caricamento più lunghi anche per la proiezione, ma offre la possibilità di recepire modifiche per l'intera presentazione. Questa struttura di file è usata per progetti che necessitano di modifiche importanti ed ogni variazione effettuata può essere visualizzata istantaneamente.
Reading
Fabio Volo - E' una vita che ti aspetto
Michael Guillen - Le 5 equazioni che hanno cambiato il mondo
Sophie Kinsella - I love shopping a New York