Technology Experience
Software

Se Winzip esce dal vostro desktop

Qualche settimana fa ho utilizzato il mio notebook al lavoro su due monitor contemporaneamente: l’LCD del portatile stesso ed un normalissimo monitor CRT, quest’ultimo aprofittando di un mio collega che era via in ferie per una settimana circa. Ho trovato comodo poter vedere certe cose su un monitor, e certe altre sull’altro.

Fatto sta che tra i miliardi di applicativi che ho aperto ed utilizzato quella settimana c’era anche Winzip. Finita la pacchia, son tornato al mio solito posto: il sistema ha reagito bene al ritorno ad un monitor solo, tranne che per una cosa soltanto. Winzip.

Riuscivo ad utilizzare Winzip solo massimizzato a pieno schermo: se tentavo di ridimensionare (cliccando con il destro sulla barra Start e cliccando su Ripristina), Winzip spariva dalla circolazione. L’applicazione in sè era viva, ma non compariva da nessuna parte sul desktop. Mi son detto: “Vuoi vedere che Winzip si è segnato da qualche parte le coordinate x,y di un punto al di fuori del mio desktop – magari, appunto, quando usavo due monitor?”.

Ho aperto il regedit e ho cercato Winzip dappertutto. Ho raggiunto questo path…
HKEY_CURRENT_USERSoftwareNico Mak ComputingWinZipWinZip
…che contiene una chiave Main che vale…
Main = “0,4294966299,36,962,692”

Il secondo numero mi è sembrato gigantesco. Sono andato alla cieca: ho sostituito 4294966299 con un più semplice 0 (zero) e magicamente Winzip è ritornato bello come il sole sul desktop, anche quando non è massimizzato.
Anche questa è…fiiuuu…andata.

Technorati Tags:

Send to Kindle
.NET World

Security Lifecycle Development

Qualche notte fa facevo fatica a dormire…vuoi per il caldo, vuoi per chissà cosa…ho tirato fuori il mio Security Lifecycle Development e ho dato un bel botto in avanti alla sua lettura. Mi sono imbattuto – da buon ignorante – nell’acronimo STRIDE che mi ha fatto ridere almeno quanto la prima volta che ho sentito citare CRUD.

STRIDE è un acronimo le cui iniziali stanno per Spoofing, Tampering, Repudiation, Information disclosure, Deniaf of service ed Elevation of privilege. Nel libro vengono solamente citate nei loro concetti essenziali, ma son convinto che si potrebbero scrivere centinaia e centinaia di pagine su ciascuna delle minacce di sicurezza elencate prima.

Questo articolo su MSDN Magazine del Novembre 2006 riprende tutti questi concetti. Avevo già l’abbonamento a MSDN Magazine in quel periodo, ma evidentemente devo aver accantonato l’articolo pensando che non servisse nel mio lavoro. Ma la lettura di Security Development Lifecycle mi sta facendo davvero ricredere.

Technorati Tags:   

Send to Kindle
My personal life

Una bella gita a Cuorgnè

Questa mattina alle 10:30 circa sono partito con la Fiat 500 di famiglia alla volta di Cuorgnè, nel torinese, per raggiungere alcuni amici. Alcuni di questi sono partiti da Milano, altri ancora erano della zona. Il punto di rendez-vous era l’uscita autostradale ad Ivrea, sulla A5, l’autostrada che porta ad Aosta. Abbiamo raggiunto Cuorgnè intorno alle 13:00, ci siamo fatti una scorpacciata di ogni cosa: un miliardo di antipasti, agnolotti al ragù e fritto misto di mele, rane, cotolette e dolcetti vari. Abbiamo finito con lo stomaco pieno fino all’inverosimile. Dopo il pranzo, siamo andati ad Agliè, un paesino penso sconosciuto ai più, ma nel quale è stato girato lo sceneggiato Elisa di Rivombrosa, Tutti voi potreste dire…”E chi se ne frega?????” – il fatto è che abbiamo visitato il parco del palazzo e devo dire che – sebbene non sia gigantesco e ci voglia neanche un’oretta per visitarlo tutto – mi è piaciuto molto.

Ovviamente, mi sono portato dietro la macchina digitale ed ho scattato le mie solite fotografie, che ho appena pubblicato su Flickr.

Adesso vado, perchè sono piuttosto distrutto: ho fatto 170km all’andata in 500, ed altrettanti 170km nel pomeriggio/serata al ritorno. Ho fatto un po’ di coda e ho chiaccherato ad una stazione di servizio un po’ con due tipe americane alla guida di un Ferrari 355 Maranello. Una delle due si è avvicinata alla 500 e mi fa: “Nice car!“, e io: “Mmhh, sorry…but I prefer your Ferrari!“. Si è messa a ridere – peccato, perchè magari avrebbe fatto volentieri uno scambio di auto – non si sa mai, con questi americani eccentrici!

Un saluto a Marco, Mauro, Sonia e Stefano per la bella giornata. Alla prossima (sperando che si uniscano anche gli altri).

Send to Kindle
My personal life

La mia estate preferita

Al contrario degli anni scorsi, quest’anno sto vivendo la più bella estate – meteoreologicamente parlando – che io abbia mai visto. Poca umidità, temperature ideali, gelati, bel sole al punto giusto, gonnelline svolazzanti come piacciono a me.

La temperatura e l’umidità riportate qui sopra sono state rilevate ieri sera alle ore 19:00 circa a Sant’Angelo Lodigiano (Lodi).

Send to Kindle
IV del Venerdì

[IV] del Venerdì (10)

La ragazza improvvisamente sentì cambiare qualcosa dentro di lei, come una molla rimasta in tensione da anni e pronta a scattare al momento giusto. Dapprima percepì un formicolìo sulle punte delle sue dita. La magia dormiente era rimasta nascosta da qualche parte, ma c’era. Eccome, se c’era. Un formicolìo strano ed innaturale, che dopo qualche istante le bruciava sulla pelle. Era riaffiorata in superficie, e con essa nella mente della ragazza tornarono alla luce tutti i ricordi di una vita precedente che credeva dimenticata: il vulcano, il pozzo ed il pendolo, i fiori di montagna e la capanna dove aveva vissuto da fanciulla.

E poi lei.
Lei che l’aveva accudita come fosse sua figlia.
Lei e tutti i suoi insegnamenti che l’avevano resa così speciale.
La Sognatrice, la chiamavano, adesso se ne ricordava perfettamente.

Accadde tutto nel giro di qualche istante. L’Artista puntava la sua rivoltella contro la ragazza, che a sua volta teneva stretto il bambino. Aprì il fuoco per farla finita, prima sul bambino e poi sulla giovane madre. Due colpi per ciascuno. Quattro colpi totali. Quando finì, dalla canna della pistola uscì un filo di fumo. L’aria prese a puzzare di polvere da sparo. Ma i proiettili non colpirono mai i bersagli: l’Artista non poteva vederli, ma finirono conficcati nel morbido tessuto delle poltroncine del teatro, trapassando i corpi delle sue vittime come se fossero totalmente incorporei, come se si trovassero in un altro quando o forse in un altro dove. Entrambi sembravano fisicamente lì, ma in realtà erano molto lontani.

L’Artista rimase sorpreso. In vita sua non aveva mai sbagliato un colpo e ad un tratto cominciò a dubitare di se stesso. Usa il cervello – si disse – le vedi ma non sono qua. E allora dove sono? Il suo istinto gli suggerì l’unica soluzione possibile. Fu allora che cominciò a tremare davvero.

Preferisco avere un’ideale irrealizzabile piuttosto che scaldare troppo il cervello per trovare una spiegazione logica ad ogni cosa.

Perchè c’è chi preferisce seguire il proprio istinto, i propri sentimenti, i propri stati d’animo, piuttosto che essere sempre e costantemente razionali.
Alla fin fine il Cuore ha sempre Ragione. Lo dice l’Alfa Romeo, questo, mica io.

Prima si tira in ballo mio nonno che non c’è più. Adesso altre battute che rilevano un’età cerebrale – sotto sotto – di più o meno 14 anni. Non sto scherzando: l’ultima volta che ho usato una battuta simile per prendere in giro una persona nello stesso modo avevo 14 anni. Era la vigilia del mio esame di medie inferiori, e probabilmente l’ho usata perchè ero un pochino impaurito per l’esame del giorno dopo e – si sa – il nervosismo gioca brutti scherzi. Vuoi vedere che – sotto sotto – c’è qualcuno che soffre di nervosismo? Magari domani hanno un esame di certificazione da sostenere – vallo a capire…i motivi possono essere tanti… Chissà se sotto sotto

Senza parole.

Send to Kindle
Community

[OT] Community Dinner, secondo

Magari per qualcuno di voi è una cosa normale, ma per me mica tanto. Questa notte, reduce dalla cena sul lago di Garda, ho appoggiato la testa sul cuscino poco prima (o dopo?) le 3:30. La sera prima ancora, stessa cosa, ma per motivi inspiegabili: nervosismo, caldo, bombardieri ad elica che passavano sopra casa mia (non è un bluff), vicino di casa che intorno alle 3 ha deciso di traslocare, etc. etc. Insomma, per due notti di fila mi sono addormentato un po’ tardino, e mi sono alzato in piedi alle 6:30. 3 ore di sonno.

Nonostante l’ora tarda, sono stato molto contento di aver partecipato alla cena e sono contento di aver conosciuto di persona Matteo Migliore. Mi è un pochino dispiaciuto aver tirato in ballo il discorso Community Days con la domanda: “Ritenete che sia stato un successo un evento community con soli 84 partecipanti?“. L’ho fatto perchè sono d’accordo con quanto dice Mauro, cioè che certi discorsi è molto più bello e molto più giusto farli guardandosi in faccia. Su un forum o su un newsgroup certe mie frasi sembrerebbero lesive nei confronti di qualcuno o di qualcosa – magari lo sono anche in forma verbale – ma almeno lì si reagisce subito. Abbiamo tirato fuori veramente tanti discorsi, ed il tono della discussione si è alzato sempre più, ma…state tranquilli…a nessuno è stato fatto del male! La morale, dal mio punto di vista, è che i Community Days siano stato un successo da un certo punto di vista, ma c’è anche un rovescio della medaglia. Un successo perchè grazie agli 84 si sono trovati un po’ di fondi. Un insuccesso perchè 84 persone sono poche, considerando che sono state riunite 3 community diverse e soprattutto mi dispiace terribilmente per tutti quelli che non sono potuti venire, perchè magari fra loro c’è un futuro Giancarlo Sudano, un futuro Lorenzo Barbieri, uno che fra qualche anno potrebbe fare la differenza e diventare qualcuno. Ieri sera l’ho detto: se gli eventi UGI inizialmente fossero stati a pagamento, probabilmente non sarei mai riuscito a partecipare, ed oggi sarei una persona molto, molto diversa, non avrei il lavoro che ho e non conoscerei un sacco di belle e brave persone. Ma…ok…la smetto, non voglio ricominciare la polemica e sento già le vocine che mi dicono di essere un sognatore. Cavolo, è così bello…

Tornando a noi, stamattina sono piuttosto in coma (ed effettivamente…l’avevo previsto), ed ho già fatto una riunione con vari responsabili per discutere alcune cose sul progetto su cui sto lavorando, perchè ci sono stati cambiamenti piuttosto critici che causeranno uno shifting in avanti di parecchi giorni.

Spero di non aver fatto una brutta impressione, perchè ho una faccia da buttare via – come al solito, del resto!
Ragazzi, alla prossima…

Send to Kindle
.NET World

Usare la ListView

Partiamo da questo screenshot:

L’altra volta avevamo visto come gestire da codice l’orribile TextBox inserita nel menù, con il relativo Button per poter salvare l’immagine sul proprio disco fisso locale. Per maggiori informazioni leggete questo post.

Questo ContextMenu dà accesso ad alcune altre funzionalità piuttosto divertenti, come quella per richiedere l’elenco dei tag associati ad una particolare fotografia. Il codice è molto semplice e compatto:

private void TagsMenuClick(object sender, RoutedEventArgs args) { FlickrBrowserPhoto photo = lstPhotos.SelectedItem as FlickrBrowserPhoto; string id = photo.PhotoId; PhotoInfoTag[] tags = flickrConn.PhotosGetInfo(id).Tags.TagCollection; StringBuilder bld = new StringBuilder(); foreach (PhotoInfoTag t in tags) bld.AppendLine(t.TagText); MessageBox.Show(bld.ToString()); }

Per semplicità, i tag vengono visualizzati con una rozza MessageBox.Show.

Quello di cui voglio brevemente parlare adesso è la visualizzazione delle informazioni EXIF associate ad una fotografia. Per farlo, ho creato una nuova Window, ExifWindow, il cui XAML è questo:

<Window x:Class="FlickrBrowser.ExifWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="FlickrBrowser" Height="300" Width="300" WindowStartupLocation="CenterScreen" > <ListView ItemsSource="{Binding Path=ExifTag}" HorizontalAlignment="Stretch" Margin="4" Name="lstExifInfo"> <ListView.View> <GridView> <GridViewColumn Width="100" Header="Label" DisplayMemberBinding = "{Binding Path=Label}" /> <GridViewColumn Width="100" Header="Value" DisplayMemberBinding = "{Binding Path=Raw}" /> </GridView> </ListView.View> </ListView> </Window>

Una Window, di dimensioni 300×300, che appare al centro dello schermo. Tale Window contiene un solo oggetto ListView, al quale diciamo che ogni item sarà di tipo ExifTag. La ListView comprende due colonne: la prima viene bindata alla proprietà Label della classe ExifTag, mentre la seconda alla proprietà Raw. Ho dato una larghezza alle colonne ed un header. Nulla di particolarmente complicato, insomma.

Quando l’utente vuole vedere le informazioni EXIF di una foto, utilizzo la libreria di Flickr per poter ottenere una struttura ExifTag[] da poter bindare.

private void ExifMenuClick(object sender, RoutedEventArgs args) { FlickrBrowserPhoto photo = lstPhotos.SelectedItem as FlickrBrowserPhoto; string id = photo.PhotoId; ExifTag[] exif = flickrConn.PhotosGetExif(id).ExifTagCollection; ExifWindow wnd = new ExifWindow(); wnd.SetExifInfo(exif); wnd.ShowDialog(); }

Ottengo il PhotoId della foto selezionata, ottengo l’elenco ExifTag[], creo un’istanza della Window ExifWindow, chiamo il suo metodo SetExifInfo e poi la visualizzo come modale. Quest’ultimo metodo pubblico è molto semplice:

public void SetExifInfo(ExifTag[] exif) { lstExifInfo.ItemsSource = exif; }

Non faccio altro che impostare il data-binding sulla ListView, dicendo di prendere l’elenco delle informazioni EXIF prelevate dalla foto. Il risultato è il seguente:

Ed il gioco è fatto!

Technorati Tags:    

Send to Kindle
My personal life

Un’amica ritorna dal passato…Ciao Valentina!

Come tutte le persone “normali”, ho organizzato i contatti del mio Messenger sotto diverse categorie. Ho la categoria UGIdotNET, poi c’è Lavoro (dove raggruppo clienti e collaboratori vari), Amici e così via. La categoria Ragazze la fa da padrona, dove raggruppo colleghe, ex, amiche vicine e lontane (alcuni davvero vicinissime, meno di 10 villette…vero Fede?).

Ma vi ho appena mentito. 🙂
La categoria non si chiama Ragazze, ma _Ragazze (notare l’underscore iniziale), in modo tale che seguendo l’ordine alfabetico la voce finisca in cima. Appena apro Messenger, vedo subito quale delle ragazze che ho in elenco tampin…ehm…salutare per prima. 🙂

Questa mattina ho re-inserito in elenco una cara amica dalla Sicilia, Valentina. L’ultima volta che l’avevo sentita aveva 18 anni, adesso ne ha 25. 7 anni fa. Risentirla è stato un salto indietro nel tempo. Un tempo in cui il mio strumento preferito per chattare non era il Messenger, ma ICQ. Ieri, mettendo a posto alcuni scatoloni in casa sua, è saltata fuori una lettera che le scrissi anni ed anni fa. Così ha deciso di provare a cercarmi sul Web e grazie a Google la cosa si è risolta in un batter d’occhio. E’ stato molto bello risentirla, mi ha fatto ricordare quando ero perdutamente innamorato di una certa Francy e più in generale di quando ero più giovincello. Anche io ho una sua lettera, ben custodita: stasera (mmhh, mi sa domani) andrò a rileggermela per pura malinconia. Ricordo che Valentina mi mise in allegato nella busta una cartolina di Capo d’Orlando con evidenziata la sua casetta: adesso si è pure trasferita. E’ vero, cavolo, il tempo passa. Per lei quanto per me e così per tutti noi.

Viva il tempo che passa, perchè solo grazie a lui le cose acquisiscono un valore particolare e ci toccano come altrimenti non sarebbe possibile.

Ciao Valentina, ben ritrovata!

Send to Kindle
Community

Oggi è il 4 luglio 2007 e…

  • è la festa di indipendenza degli Stati Uniti d’America
  • è l’anniversario della nascita di Giuseppe Garibaldi
  • è il compleanno del figlio di una signora che stamattina ho incrociato sul filobus
  • nel 1957 come oggi veniva inaugurata la mitica Fiat 500
  • oggi viene inaugurato il nuovo modello della Fiat 500
  • questa sera è stata organizzata una cena UGIdotNET al lago di Garda

Insomma, direi che motivi per festeggiare ce n’è più di uno. Voi quale scegliete?

Send to Kindle