Cambiare velocemente le impostazioni di rete con NetSetMan

venerdì, 30 maggio 2008 19.07 by Marco Bellinaso

Lavorando come consulente mi trovo spesso a cambiare le impostazioni di rete del mio MacBook: IP e DNS dinamico a casa, un qualche IP e DNS da un cliente, un qualche altro IP, DNS e gateway da un altro, ecc. Può capitare di cambiare le impostazioni 3 volte in un giorno (mattina da una parte, pomeriggio da un'altra, e qualcosa fatto da casa)...farlo a mano ogni volta, magari copiando le impostazioni da un file di testo, non è proprio il massimo della vita. Quei 2 minuti che si spendono ogni volta potrebbero essere spesi meglio leggendo qualche blog, ad esempio Wink.

NetSetMan è una piccola utility che ci viene in soccorso in queste situazioni, permettendo di definire dei profili con tutte le impostazioni di rete necessarie, e di attivarme uno o l'altro con un semplice click. La versione freeware supporta fino a 6 profili (sufficienti in molti casi), ma la licenza non consente di usarla sul notebook di lavoro. La licenza Pro (che supporta profili illimitati, e non ha ovviamente limiti di utilizzo) comunque costa solo 12€, un prezzo del tutto ragionevole.

Correntemente valutato 5.0 da 1 utenti

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , ,
Categorie:   Windows
Azioni:   E-mail | Permalink | Commenti (0) | RSS CommentiRSS comment feed

VB Migration Partner è disponibile!

lunedì, 26 maggio 2008 09.24 by Marco Bellinaso

Dopo più di 2 anni di lavoro super intenso, Code Architects ha rilasciato la versione 1.0 di VB Migration Partner, il miglior strumento attualmente esistente per la conversione di codice VB6 in VB.NET. Ok, io sono di parte, avendo anch'io lavorato al progetto sotto la guida di Francesco Balena, ma questo beta tester non lo è:

After 15 years of developing our application in VB3, VB4-16 bit and VB6, I was disappointed to discover that we could not move to VB.Net. Our application was too large to rewrite into the new syntax. In spite of edits made to follow the new rules, such as omitting the lower bound on Dim statements, the migration tool available (NDR: quello incluso di default con Visual Studio) ran for 5 hours and gave 1947 errors to fix; and that was just on our main application program. Using VB Migration Partner, we converted that same code to .Net in 9 minutes and had 3 compilation errors to fix, all having to do with a third-party OCX. After commenting out those lines, the application started up and ran just fine, displaying dialogs that invoke our VB6 COM servers to perform calculations and print reports. Amazing! We need to keep developing our code in VB6 for our current clients, but the batch processing and code-test-fix methodology will allow us to convert a changing code base without making the same changes twice, once in VB6 and again in VB.Net.

ASC has been providing this application to businesses for over 25 years and we have successfully migrated from the mini-computer platform in the past. A rewrite would be impossible with an application such as ours that has evolved over so many years. Our client base has grown steadily during that time, and now includes 100’s of small to midsized firms with networks of 5 to 30 concurrent users of our application, and 20 of the top financial institutions in the nation, two of which have over 100 concurrent users of our application. With this tool, we will be able to support our existing platform and roll out a VB.Net version with minimal disruption to our clients. 

Brian Olson
Actuarial Systems Corporation, USA

Sembra "abbastanza" buona come prima recensione, no? Wink Del resto Francesco e i ragazzi in ufficio a Santeramo hanno fatto beta testing per mesi e mesi, lavorando su applicazioni VB6 reali, di clienti reali, con milioni di righe di codice VB6. Al confronto, applicazioni "più tipiche" (molte applicazioni non superano le 5-10.000 righe di codice...anche se poi magari ci sono decine o centinaia di queste piccole app a formare la mega app completa) dovrebbero essere quasi uno scherzo. Le righe di codice VB6 in circolazione sono ancora miliardi, e un tool efficace può essere la soluzione a molti problemi.

So (sappiamo) benissimo che gli sviluppatori vedono con molto scetticismo i tool di migrazione in generale...e questo scetticismo è perfettamente giustificato dai risultati mediocri che i tool attuali ci hanno abituati ad aspettarci. Ma questo non è il "solito" tool di migrazione, e mi auguro che se vorrete approfondire l'argomento ve ne renderete conto. 

Maggiori informazioni sul prodotto (nonchè un sacco di informazioni sulla migrazione in generale, utilissime anche a prescindere dall'utilizzo di questo tool) le potete trovare sul sito ufficiale, o sul blog dove Francesco posta le ultime novità (e i successi).  

Correntemente valutato 5.0 da 2 utenti

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , ,
Categorie:   Business | Sviluppo software | Windows
Azioni:   E-mail | Permalink | Commenti (0) | RSS CommentiRSS comment feed

Hackers & Painters -- Big ideas from the computer age

domenica, 25 maggio 2008 16.08 by Marco Bellinaso

Hackers & Painters è una collezione di saggi scritti dal famoso Paul Graham, prima co-fondatore di Viaweb (l'azienda che è poi stata acquisita da Yahoo diventando Yahoo! Store) e poi co-fondatore di Y Combinator (azienda che finanzia e aiuta a crescere startup tecnologiche e web-based nelle fasi iniziali di vita). Se non lo conoscete, vi consiglio caldamente di fare un salto sul suo sito, dove potrete trovare decine di ottimi saggi liberamente disponibili.

In questo libro scrive di argomenti tipo:
1) Perchè i nerd sono impopolari al liceo, e invece più tardi hanno successo nel lavoro
2) Hacker e pittori: gli hacker sono "gente che fa", come i pittori, gli architetti o gli scrittori
3) Pensare al di fuori del coro, proporre teorie originali anche se "eretiche"
4) Vincere rompendo le regole
5) Le potenzialità del software/servizi web-based contro i software desktop
6) Come fare fortuna! (risposta: crea la tua startup e lavoraci come un pazzo)
7) Come battere la concorrenza: essere sopra la media
8) I linguaggi di programmazione: perchè diventano popolari, come scegliere il proprio, a cosa dare importanza, il linguaggio "da sogno"
9) Design contro Ricerca: la ricerca deve essere nuova; il design deve essere buono
10) Come sconfiggere lo spam

Il messaggio di fondo che pervade un po' tutto il libro è: per avere successo devi darti da fare, lavorare 10 volte meglio dell'impiegato medio, non avere preconcetti e non aver paura a pensare in maniera diversa rispetto agli altri o a prendere decisioni inusuali, pensare a cosa vuole l'utente, creare prototipi delle proprie idee da far vedere ed evolvere, ecc. ecc. Magari non è niente di sconvolgente, ma di sicuro lo racconta molto bene, con osservazioni e storie provenienti dall'esperienza sul campo (come la scelta di Lisp per creare il suo software di commercio elettronico, che gli ha permesso di essere infinitamente più veloce dei concorrenti che usavano Perl e C su costosi ambienti Sun). Come "bonus" ci sono anche un sacco di curiosi paralleli e confronti con il mondo dell'arte (Paul ha studiato arte a Firenze, dopo il dottorato in Informatica ad Harvard!), filosofia, ed eventi storici.

Unica nota un po' negativa è che alcune argomentazioni a volte possono sembrare un po' troppo forti e arroganti, e un po' troppo pro-USA...cosa che potrebbe forse infastidire qualcuno...ma nel complesso la lettura è molto scorrevole, piacevole, informativa, e anche ispirante. Una lettura consigliata insomma!

P.S: una preview del libro è liberamente accessibile su Google Books.

Correntemente valutato 5.0 da 1 utenti

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , , ,
Categorie:   Business | Linux | Mac OS X | Sviluppo software | Tecnologia | Web 2.0
Azioni:   E-mail | Permalink | Commenti (0) | RSS CommentiRSS comment feed

Esplorando la programmazione per iPhone

domenica, 18 maggio 2008 11.01 by Marco Bellinaso

Qualche sera fa ho partecipato ad un interessante e piacevole incontro con gli amici Andrea, Eugenio ed Elia; il tema: programmare per iPhone! Eh si, l'ho comprato principalmente spinto dalla curiosità di esplorare almeno un po' le sue potenzialità come piattaforma applicativa, e un po' alla volta sto vedendo le basi della programmazione con Cocoa Touch in XCode. Devo dire che è tutto un altro mondo rispetto allo sviluppo con .NET, ma l'impressione è che una volta fatta la mano non sia una cosa così terribile ;). Andrea fortunatamente è un grande esperto di Mac OSX e quindi ha promesso di darci una mano (anche se qualcosa mi suggerisce che nei prossimi tempi sarà parecchio impegnato su nuovi e più importanti progetti... Andrea, congratulazioni per la nascita di Valentina!).


La nostra attrezzatura: 1 MacBook Air, 2 MacBook, 1 MacBook Pro, 3 iPhone, 1 iPod Touch

Per il momento chiudo segnalando un ottimo sito per chi avesse qualche curiosità su questo mondo, iPhoneDevCentral.org: si tratta di una collezione (costantemente in crescita) di screencast sullo sviluppo per il dispositivo di casa Apple. I video sono parecchio "alla buona", ma raggiungono bene lo scopo di mostrare concretamente almeno i passi fondamentali necessari ad iniziare i propri esperimenti.

Correntemente valutato 3.0 da 2 utenti

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , ,
Categorie:   Mac OS X | Sviluppo software | Tecnologia
Azioni:   E-mail | Permalink | Commenti (1) | RSS CommentiRSS comment feed

Fix per ExpGroupBy di WSS3 su FireFox

mercoledì, 7 maggio 2008 09.35 by Marco Bellinaso

Quando da SharePoint Designer si crea una DataView webpart con un qualche raggruppamento, il codice auto-generato fa uso della funzione ExpGroupBy per l'effetto di apertura/chiusura dei gruppi. Sfortunatamente tale feature non funziona in FireFox, alla faccia del tanto propagandato supporto cross-browser. La cosa simpatica (si fa per dire) è che il raggruppamento all'interno delle liste standard di WSS funziona bene anche in FireFox invece -- ma in quel caso la funzione usata è ExpCollGroup.

Sono andato a vedermi il codice della funzione ExpGroupBy, presente nel file Core.js, scoprendo che semplicemente la funzione termina subito se il browser è FF! Surprised Ma perchè? Non c'è nessun limite tecnico, è una cosa semplice tutto sommato. Togliendo tale condizione e provando il codice si scopre però che effettivamente la funzione non va su FF...ma, di nuovo, non per limiti tecnici, quanto perchè tale funzione è stata scritta abbastanza da schifo usando javascript non standard! (le variabili non sono dichiarate, gli array sono acceduti tramite (x) invece di [x], e qualcos'altro ancora). Pur non essendo assolutamente un esperto di javascript mi sono armato di FireBug sono riuscito a metterla un po' a posto in modo da farla funzionare sia su IE che su FF. Di seguito potete scaricare il risultato:

Download ExpGroupBy.txt (2,34 kb)

Il nuovo codice lo potete sostituire al codice originale all'interno di Core.js, oppure (soluzione preferita e da me adottata) inserire all'interno di un file .js custom da referenziare nella masterpage *dopo* Core.js (in modo che ne faccia l'override). 

Il problema si è risolto con uno sforzo relativamente basso, ma:
1) Era proprio necessario far codificare due funzioni molti simili a due persone diverse?
2) Possibile che chi ha implementato ExpGroupBy non sia andato a vedersi come era stata codificata (correttamente) ExpCollGroup?
3) Possibile che l'autore di ExpGroupBy non si sia posto il problema di come rendere cross-browser una funzione così semplice, invece di escludere a priori FF?
4) Possibile che nessuno abbia testato una funziona che è sicuramente usata in un mare di webpart create da SharePoint Designer, e abbia sollevato ua bandierina alla scoperta del problema? (soprattutto considerato che nelle liste standard la funzione sorella non ha problemi...almeno per coerenza fatele o non fatele funzionare entrambe!)

Tutto questo mostra come anche in MS non tutti gli sviluppatori siano dei fenomeni (e si presume che chi ha codificato quella funzione sia anche un esperto di JS, altrimeni si sarebbe occupato di codice di back-end o di altra roba) 

Correntemente valutato 5.0 da 1 utenti

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , ,
Categorie:   Sviluppo software | Windows
Azioni:   E-mail | Permalink | Commenti (0) | RSS CommentiRSS comment feed

Importare dati da Excel a SQL Server 2005 Express

lunedì, 5 maggio 2008 09.55 by Marco Bellinaso

Quando l'altro giorno mi è stato chiesto di importare i dati di un foglio Excel in una tabella di SQL Server 2005, mi son detto "no problem, lancio il Data Import/Export wizard, e via". Purtroppo tale tool non è presente nella versione Express, dal momento che mancano anche i SQL Server Integration Services (SSIS) and SQL Server Agent sui quali quel wizard si basa. Mi sembrava uno spreco installare la versione Standard solo per questo, quindi ho cercato qualche soluzione alternativa. E' possibile ad esempio scrivere una macro VBA direttamente in Excel per ciclare sulle righe e colonne, e inserire i dati in SQL Server tramite il vecchio Recordset di ADO...ma anche questo mi sembrava troppo lavoro per un compito così semplice! La soluzione che ho adottato -- e che ha funzionato alla perfezione -- è stata di usare la funzione OPENROWSET, in questo modo:

SELECT * INTO Negozi FROM 
OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=c:\temp\DatiNegozi.xls', [Sheet1$])

Questo codice prende tutti i dati presenti nel file XLS specificato (nel foglio Sheet1), e li copia in una nuova tabella chiamata Negozi. La prima riga del foglio Excel dovrebbe essere di intestazione, ed è quella che il comando utilizzerà per estrarre i nomi dei campi da creare nella nuova tabella. Se alcuni campi dovessero essere creati con un tipo diverso da quello desiderato (ad esempio float ancihè int, o varchar invece di nvarchar) sarà ovviamente possibile modificare lo schema della tabella direttamente da Management Studio Express dopo l'importazione.

Il comando però non funzionerà se le "Ad Hoc Distributed Queries" non sono abilitate. Per attivarle, eseguire i seguenti statement: 

sp_configure 'show advanced options',1
reconfigure with override
go
sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override
go 

Correntemente valutato 5.0 da 1 utenti

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , , , ,
Categorie:   Sviluppo software
Azioni:   E-mail | Permalink | Commenti (5) | RSS CommentiRSS comment feed