IT, frammentazione e innovazione tecnica
Qualche giorno fa un mio collega a pranzo mi ha fatto una considerazione secca, quasi dal nulla dicendo (più o meno): "una cosa che non capisco del settore IT é l'altissima frammentazione che c'é"; dal suo punto di vista, consulente, ha un osservatorio privilegiato per vedere come esistano decine di software più o meno simili, più o meno equivalenti e tutti più o meno "piccoli".
La mia prima reazione é stata cercare di spiegare come questa sia una cosa quasi scontata, ovvia, palese.
Il mio punto sostanzialmente ruotava attorno al fatto che ci sono delle svolte tecnologiche che i big player non colgono subito, per prudenza, per mancanza di competenze, o perché non vedono il "margine".
Devo ammettere che non credo di essere riuscito a convincere nessuno.
Poi oggi però, primo giorno di ferie ( meritatissime :) ), ho letto un passaggio di "how Google works" che credo renda tutto molto più chiaro:
" quasi tutte le aziende consolidate sono partite con delle intuizioni tecniche, per poi perdere la strada (come avviene spesso quando si invertono le priorità strategiche). I completi diventano più importanti dei grembiuli da laboratorio. Forse non é un errore in termini di moda, ma é certamente uno sbaglio per l'azienda consolidata, e un'opportunità per il nuovo entrato che l'attacca. "
...
"...quando abbiamo riesaminato la nostra linea di prodotti e abbiamo cominciato a notare un andamento: i migliori dovevano il loro successo a fattori tecnici e non commerciali, mentre i meno riusciti mancavano di specificità tecnica"
(Eric schmidt, How Google works)
Il punto qui é nell'inversione di priorità, che spesso è considerata la corretta ed inevitabile via: ad un certo punto il prodotto DEVE diventare una vacca da soldi.
Mi sento di condividere la visione di Eric Smith, non sono molte le aziende che mettono al primo posto il cliente, o meglio il risultato che il loro prodotto da al cliente. Tutti dicono di farlo, molti ci provano. Ma pochissimi leggono questa "customer centricity" come una sfida di sostanza, di continua reale innovazione e conseguente attenzione al dettaglio significativo, che va oltre il "ti rispondo gentilmente e farò verificare immediatamente al tecnico". E soprattutto ne accettano il costo, che in parte ripaga il "debito tecnico" ma in parte richiede più processi, più attenzione, più cassa.
Ma, ne sono convinto, é la base fondante di un business sostenibile, dove il vantaggio competitivo si crea non una tantum ma ogni giorno. Lo chiamerei "continous value stream" per usare un po' di parole alla moda; e chi collabora con me può testimoniare la mia maniacale attenzione al dettaglio, con il rischio ( imparato the hard way) di non rilasciare mai..
..ma d'altra parte chi vorrebbe far finire il divertimento?
la botega - nuovo sito St!
Ecco l'ulitmo lavoro di st!
articoli di caccia, pesca, richiami e molto altro ancora!
www.labotega.it
articoli di caccia, pesca, richiami e molto altro ancora!
www.labotega.it
ODBC Timeout
Se può risparmiare un mal di testa a qualcuno: in caso di errore
oppure la sua versione italiana
e si utilizza un DSN, aprire l'editor del registro start-->run-->regedit e quindi individuare la seguente chiave:
e impostare QueryTimeout a 0 invece che 1
[IBM] [Programma di controllo ODBC Client Access (32 bit)] [SQL
DB2/400]SQL0666 - Estimated query processing time 64 exceeds limit 60.
(#-666)
oppure la sua versione italiana
[IBM][iSeries Access ODBC Driver][DB2 ODB]SQL0666 - Il tempo stimato
di elaborazione query xxx supera il limite yyy (#-666)
e si utilizza un DSN, aprire l'editor del registro start-->run-->regedit e quindi individuare la seguente chiave:
HKEY_LOCAL_MACHINE-->SOFTWARE-->ODBC-->ODBC.INI-->[nome DSN che uso]
e impostare QueryTimeout a 0 invece che 1
Print to pdf!
Pubblicato da
Andrea Inglese
on mercoledì 12 maggio 2010
/
Etichette:
CuteWriter,
print to pdf,
stampa su pdf
/
Comments: (0)
Ecco un ottimo tool gratuito per uso commerciale e non per installare una stampante che genera un pdf, http://www.cutepdf.com/products/cutepdf/writer.asp.
Il tool necessita di un converter, anchesso gratuito, che potete scaricare nel file zip (il link lo trovate a sinistra nella pagina).
In breve:
- Scaricate il file zip
- Apritelo ed eseguite converter.exe
- lanciate CuteWriter.exe
Buona stampa!
Ennesima vulnerabilità nel formato PDF
Pubblicato da
Andrea Inglese
on venerdì 2 aprile 2010
/
Etichette:
Adobe Reader,
Foxit,
PDF
/
Comments: (0)
Come potrete leggere qui, un ricercatore sostiene (e mostra un esempio) come sia possibile eseguire programmi embedded nei file pdf; sebbene non si tratti di una vulnerabilità di per se (il formato pdf è evidentemente stato disegnato per poter permettere l'esecuzione di file allegati) lascia tuttavia la responsabilità della gestione della sicurezza all'applicazione che apre il file, aprendo la strada al social engineering.
Si perchè, Adobe Reader, quando cercherete di aprire un file di questo tipo vi mostrerà un messaggio per avvisarvi di quello che state facendo; peccato che il messaggio descrittivo visualizzato sia in parte manipolabile.
Incredibile invece quello che succede con Foxit Reader: niente. O meglio, non sarete avvisati di nulla e l'esecuzione avverrà in automatico.
Se per Foxit Reader sembra non ci siano soluzioni immediate, per Adobe Reader è possibile impedire l'esecuzione degli allegati (che per quanto mi riguarda nella maggior parte dei casi non userò mai).
Basterà andare nelle preferenze (Modifica => Preferenze) e nella sezione "gestore affidabilità" deselezionare l'opzione "Consenti apertura di file allegati diversi da PDF con applicazioni esterne". Questo dovrebbe mettere al sicuro la vostra lettura. Almeno da questa "vulnerabilità".
Cheatsheets
Alcune utili cheatsheets!
JQuery:
http://chris4403.blogspot.com/2008/01/jquery-cheatsheet-wallpaper.html
JQuery:
http://chris4403.blogspot.com/2008/01/jquery-cheatsheet-wallpaper.html
Regular Expressions
Shell Programming
Altri (css, html, javascript, php, ...)
Trovare celle collegate in Microsoft Excel
Può capitare di dover gestire fogli excel con collegamenti ad altri file, e spesso, può capitare che rimangano dei collegamenti non voluti, causati magari da un taglia & incolla. Per trovare tutte le celle che contengono un collegamento ad un'altro file, scegliere "Trova" e inserire ":\" questo evidenzierà tutte le celle che contengono un collegamento ad un file.
Per verificare poi l'esistenza di errori di riferimenti non validi risulta utile lo strumento "controllo errori" che evidenzia eventuali errori / incoerenze nelle formule.
Fate attenzione perchè questo strumento identifica come errore anche una formula corretta nella sintassi ma non coerente con le altre a fianco.
Per verificare poi l'esistenza di errori di riferimenti non validi risulta utile lo strumento "controllo errori" che evidenzia eventuali errori / incoerenze nelle formule.
Fate attenzione perchè questo strumento identifica come errore anche una formula corretta nella sintassi ma non coerente con le altre a fianco.
Asp.net MVC development
Ecco a voi una raccolta di tools utili nello sviluppo di applicazioni web con la piattaforma asp.net mvc.
Microsoft Express Downloads
Qui troverete le versioni express di Visual Studio e molti altri prodotti Microsoft.
Asp.Net MVC
http://www.asp.net/MVC/ e il link al download della Web Platform Installer.
http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx
Permette di visualizzare quali regole di routing vengono applicate all'url inserito. Nel caso di regole di routing particolarmente complicate può rivelarsi estremamente utile, anzi fondamentale!
.Net Reflector
http://www.red-gate.com/products/reflector/
Immancabile per qualunque programmatore .net!
Firefox
Firefox, non tanto per il browser in se ma per il plugin FireBug che permette di analizzare in dettaglio una pagina web, sia nell'html, sia negli script sia nelle comunicazioni con il server.
Fiddler
Analogamente al precedente, Fiddler (uno sniffer http), vi permetterà di analizzare le comunicazioni con il server, tuttavia ad un livello più basso e con qualsiasi browser.
YSlow
Un altro tool da affiancare a Firefox e Firubug è YSlow, tool molto utile per avere un indice delle performance del sito/applicazione web che state realizzando.
Inoltre..
La mia tesi di laurea, pubblicata con un pò di ritardo..
Pubblicato da
Andrea Inglese
on giovedì 7 gennaio 2010
/
Etichette:
cross-site scripting,
esportazione,
tesi
/
Comments: (0)
REpresentational State Transfers (aka REST)
Pubblicato da
Andrea Inglese
on venerdì 4 settembre 2009
/
Etichette:
Asp.Net MVC,
REST,
SOA
/
Comments: (0)
Una bella introduzione sui REpresentational State Transfers (aka REST) presentata da Stefan Tilkov e una presentazione sulla riusabilità.
Per quanto riguarda asp.net, è possibile implementare queste architetture a diversi livelli, implementando un IHttpHandler (the hard way, e forse nemmeno troppo vantaggiosa), utilizzando una determinata organizzazione dei metodi in un'applicazione Asp.Net MVC, oppure utilizzando WCF.
Per WCF è stato realizzato uno Starter Kit che dovrebbe semplificare la vita (e posso garantire che la cosa più frustrante di wcf è proprio la complessità nel raggiungere la configurazione funzionante) e una bella guida introduttiva pubblicata da Microsoft. Una volta giunti a quel punto però wcf permette di tralasciare il livello di trasporto e di focalizzarsi sull'implementazione della logica di business.
Per quanto riguarda asp.net, è possibile implementare queste architetture a diversi livelli, implementando un IHttpHandler (the hard way, e forse nemmeno troppo vantaggiosa), utilizzando una determinata organizzazione dei metodi in un'applicazione Asp.Net MVC, oppure utilizzando WCF.
Per WCF è stato realizzato uno Starter Kit che dovrebbe semplificare la vita (e posso garantire che la cosa più frustrante di wcf è proprio la complessità nel raggiungere la configurazione funzionante) e una bella guida introduttiva pubblicata da Microsoft. Una volta giunti a quel punto però wcf permette di tralasciare il livello di trasporto e di focalizzarsi sull'implementazione della logica di business.
Asp.Net MVC export to excel
Pubblicato da
Andrea Inglese
on giovedì 3 settembre 2009
/
Etichette:
Asp.Net MVC,
Excel,
ExcelPackage,
OpenXml
/
Comments: (2)
Questo post vuole essere un riassunto di quanto utilizzato per effettuare l'esportazione di dati su excel da un'applicatione Asp.Net MVC.
Step 1 - Librerie
- Open XML Format SDK 2.0 - Libreria microsoft con il necessario per creare e gestire file excel.
- ExcelPackage: Office Open XML Format file creation - Sostanzialmente un façade sulla precedente libreria (senza è veramente complesso).
Step 2 - Bug fixies
Sono presenti due problemi principali nella librearia ExcelPackage:- Non è possibile creare documenti su uno stream di dati ma solo su file. Per questo è necessario applicare il seguente fix (che consiste nel ricompilare la libreria e applicare alcune modifiche): Using the ExcelPackage class on a web page
- E' presente un errore nella gestione delle query xpath, non viene fatto l'escape della stringa di ricerca. Grazie a questo post C-Sharp function to escape single-quote on XPath expression ho modificato la funzione
private int SetSharedString(string Value)
...
// Check to see if the string already exists. If so, retrieve its index.
// This search is case-sensitive, but Excel stores differently cased
// strings separately within the string file.
//MODIFIED TO USE ParseXpathString
XmlNode stringNode = _xlWorksheet.xlPackage.Workbook.
SharedStringsXml
.SelectSingleNode(string.Format("//d:si[d:t={0}]",
ParseXpathString(Value)),
_xlWorksheet.NameSpaceManager);
Step 3. Asp.Net MVC Code
Ho infine creato un extension method che restituisce un ExcelResult che si occupa di trasformare l'object che riceve in input (che può essere IEnumerable, DataSet, DataTable) e trasformarlo in un foglio excel e fare lo streaming sulla risposta.Step 4. Further works
Sicuramente aggiungere alcune opzioni all'esportazione, come titolo per il report, descrizione etc., il supporto di template, una sintassi per il template.Backup Sql Server
script per l'esecuzione di un backup su Ms Sql Server:
BACKUP DATABASE [dbname]
TO DISK = N'c:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\dbfile.bak'
WITH NOFORMAT, NOINIT, NAME = N'kvalue-Completo Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
script per determinare i files fisici su cui risiede il database:
select * from sysfiles
BACKUP DATABASE [dbname]
TO DISK = N'c:\Programmi\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\dbfile.bak'
WITH NOFORMAT, NOINIT, NAME = N'kvalue-Completo Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
script per determinare i files fisici su cui risiede il database:
select * from sysfiles
SCRUM
Pubblicato da
Andrea Inglese
on giovedì 16 aprile 2009
/
Etichette:
project management,
SCRUM
/
Comments: (0)
Interessantissimo webcast su SCRUM, e metodologie di project management
http://www.microsoft.com/italy/beit/Msdn.aspx?video=f8f4a4d5-0978-425f-a548-5b137c70e09c
http://www.microsoft.com/italy/beit/Msdn.aspx?video=f8f4a4d5-0978-425f-a548-5b137c70e09c
Ecco perchè io consiglio Avira! (BIS)
Pubblicato da
Andrea Inglese
on martedì 18 novembre 2008
/
Etichette:
antivirus,
AVG,
Avira AntiVir
/
Comments: (0)
Incredibilmente, AVG commette lo stesso errore a pochi giorni di distanza:
http://attivissimo.blogspot.com/2008/11/avg-si-scusa-ci-ricasca.html
Che dire, nonostante la società offra adeguate indennità in licenze gratuite del prodotto, a mio giudizio la credibilità dell'antivirus sta crollando...
Per maggiori informazioni:
http://www.oneitsecurity.it/13/11/2008/avg-scambia-due-dll-di-windows-per-dei-trojan/
http://attivissimo.blogspot.com/2008/11/avg-si-scusa-ci-ricasca.html
Che dire, nonostante la società offra adeguate indennità in licenze gratuite del prodotto, a mio giudizio la credibilità dell'antivirus sta crollando...
Per maggiori informazioni:
http://www.oneitsecurity.it/13/11/2008/avg-scambia-due-dll-di-windows-per-dei-trojan/
Ecco perchè io consiglio Avira!
Pubblicato da
Andrea Inglese
on mercoledì 12 novembre 2008
/
Etichette:
AVG,
Avira AntiVir,
netBIOS,
sicurezza
/
Comments: (0)
Approfittando impunemente degli eventi, ecco perchè io consiglio Avira AntiVir come antivirus gratuito!
Come riportato qui,il suo pur sempre validissimo concorrente AVG ha qualche problema di "invasività".
Premettendo che entrambi sono ottimi antivirus gratuiti, e che poca differenza corre tra i due, io ritengo che la caratteristica più importante di un antivirus (dopo l'efficacia,intesa come capacità di riconoscere le minacce e la frequenza degli aggiornamenti da parte della casa madre, ovviamente) sia senza dubbio la non invasività. Falsi positivi, popup che si aprono ad ogni minimo avviso, mille messaggi di protezione all'utente danno solo l'illusione della sicurezza. Perchè inevitabilmente questi messaggi lasciano l'ultima parola all'utente, che deve analizzare attivamente ogni volta il messaggio, finendo così, alla lunga, per cliccare con leggerezza su messaggi di avviso o errore. Ed ecco che la sicurezza svanisce. Un buon antivirus a mio giudizio deve essere in grado di prendere il più possibile da solo le sue decisioni, lasciando all'utente solo la notifica di un'effettiva avvenuta infezione (e proporre il da farsi).
Basti pensare ai firewall e al protocollo netBios. AVG, provato sulla pelle di un mio amico, tende a bloccare il traffico di questo protocollo, perchè, vero, obsoleto e fonte di potenziale traffico maligno. Peccato che la stragrande maggioranza dei programmi che funzionano in lan (dalle cartelle condivise di windows a Starcraft :-) ) sfruttino questo protocollo per identificare i computer in rete (si, si può dire che sono a loro volta obsoleti..). Questo risulta in una serie di falsi positivi per lo più , che spesso risultano in messaggi pomposi (quanto inesatti) del tipo "XX ha bloccato 200 attacchi al tuo pc", e soprattutto in fastidiosi e la maggior parte delle volte ingiustificati disservizi.
Come riportato qui,il suo pur sempre validissimo concorrente AVG ha qualche problema di "invasività".
Premettendo che entrambi sono ottimi antivirus gratuiti, e che poca differenza corre tra i due, io ritengo che la caratteristica più importante di un antivirus (dopo l'efficacia,intesa come capacità di riconoscere le minacce e la frequenza degli aggiornamenti da parte della casa madre, ovviamente) sia senza dubbio la non invasività. Falsi positivi, popup che si aprono ad ogni minimo avviso, mille messaggi di protezione all'utente danno solo l'illusione della sicurezza. Perchè inevitabilmente questi messaggi lasciano l'ultima parola all'utente, che deve analizzare attivamente ogni volta il messaggio, finendo così, alla lunga, per cliccare con leggerezza su messaggi di avviso o errore. Ed ecco che la sicurezza svanisce. Un buon antivirus a mio giudizio deve essere in grado di prendere il più possibile da solo le sue decisioni, lasciando all'utente solo la notifica di un'effettiva avvenuta infezione (e proporre il da farsi).
Basti pensare ai firewall e al protocollo netBios. AVG, provato sulla pelle di un mio amico, tende a bloccare il traffico di questo protocollo, perchè, vero, obsoleto e fonte di potenziale traffico maligno. Peccato che la stragrande maggioranza dei programmi che funzionano in lan (dalle cartelle condivise di windows a Starcraft :-) ) sfruttino questo protocollo per identificare i computer in rete (si, si può dire che sono a loro volta obsoleti..). Questo risulta in una serie di falsi positivi per lo più , che spesso risultano in messaggi pomposi (quanto inesatti) del tipo "XX ha bloccato 200 attacchi al tuo pc", e soprattutto in fastidiosi e la maggior parte delle volte ingiustificati disservizi.

