Restyling settembre 2008

Dopo tante fatiche finalmente posso dire che il restyling dell’Inforum blog è terminato. Ho apportato alcune modifiche a Fresh, il tema per Wordpress che ho selezionato tra decine di altri: ho personalizzato il foglio di stile, l’intestazione e altri elementi. L’intenzione è sempre quella di non offuscare i contenuti con una struttura troppo complessa e difficile da navigare, ma piuttosto di disporre di un’interfaccia gradevole per leggere e commentare gli articoli.

Alcune delle personalizzazioni più rilevanti sono state effettuate grazie al supporto tecnico trovato sul forum GT: ringrazio in modo particolare Pikadilly per le sue dritte su come editare le classi del CSS. A buon rendere! ;-)

Creiamo un servizio Windows in VB.NET

Che cos’è un servizio Windows? Sui sistemi operativi Microsoft, un servizio Windows è un eseguibile che compie determinate funzioni e che è progettato per non richiedere intervento da parte dell’utente. Possono essere configurati per essere avviati in fase di boot e per essere eseguiti in background. In alternativa, si possono far partire manualmente, se lo si desidera. Da un punto di vista concettuale, sono analoghi ai demoni Unix.

Fatta questa premessa, rispondiamo ora alla domanda principale: come possiamo creare un nuovo Windows service in ambiente .NET? Per cominciare, creiamo in Visual Studio un nuovo progetto di tipo “Windows Service”, poi modifichiamo le proprietà del servizio dalla finestra delle proprietà: i tre booleani CanPauseAndContinue, CanShutDown, e CanStop determineranno il comportamento del servizio che stiamo sviluppando. Ovviamente la proprietà ServiceName serve ad indicare e impostare il nome. Notate inoltre che esiste anche il campo CanHandlePowerEvent, che serve a stabilire se potremo gestire i cambiamenti di stato dell’alimentazione.

il passo successivo consiste nell’aggiungere il codice di startup: tipicamente dobbiamo inserirlo nella funzione di gestione dell’evento OnStart event. Ecco un esempio elementare:

Protected Overrides Sub OnStart(ByVal args() As String)
    EventLog.WriteEntry( "Scrivi quello che vuoi.")
End Sub

Possiamo implementare il comportamento del nostro applicativo anche in relazione ad altri eventi, quali: OnContinue, OnCustomCommand, OnPause, OnShutdown, OnPowerEvent, e OnStop. Se e come farlo dipende in grandissima parte dagli obiettivi che ci siamo prefissi con la creazione del nostro progetto, ma è piuttosto evidente che di solito è necessario gestire almeno l’avvio, la pausa, la continuazione e la terminazione del servizio.

Può essere davvero importante tenere traccia delle attività della nostra applicazione tramite un log, ma per semplificare le cose ricordiamoci di impostare la proprietà AutoLog (della classe Service) a true, in modo che gli eventi basilari vengano loggati automaticamente. Se faremo ciò dovremo preoccuparci di loggare solo le operazioni o gli avvenimenti di carattere specifico.

Quando avremo finito il nostro sviluppo, dovremo anche preparare un installer (che sarà di tipo ServiceInstaller) che prenda il Windows service di nostra invenzione e lo installi nel sistema. Come si fa? Dobbiamo selezionare il progetto nel box del Solution Explorer e visualizzarne le proprietà: vedremo il link “Add Installer”, che fa al caso nostro. Seguiamo la procedura guidata, in modo da aggiungere l’oggetto installer che dovremo personalizzare.

Nel prossimo articolo di questa serie vedremo dettagliatamente come creare un service installer. ;-)

Uptime su Linux, Mac e altri sistemi Unix-like

Server Unix di altri tempi!

Foto di Rudolf Schuba.

Ieri avevo pubblicato l’articolo intitolato: “Come si visualizza l’uptime di un sistema Windows?”, al quale hanno fatto seguito diversi commenti. Tra ieri e oggi abbiamo pertanto ragionato insieme su come sia possibile conoscere il tempo di attività di un computer interrogando vari sistemi operativi. In effetti, molti preferiscono adoperare Linux, Mac OS X o altri sistemi operativi Unix-like piuttosto che usare software Microsoft. Mi pare quindi giusto dare a queste persone delle informazioni adatte alle loro esigenze.

Volendo andare al dunque, come possiamo sapere da questo tempo il nostro computer è acceso, se adoperiamo “Linux e affini”? Come accennavo nel paragrafo precedente, i commenti dei lettori sono stati molto significativi e rispondono in maniera esauriente a questa domanda. Qui di seguito ne riporto una sintesi:

Da terminale (Linux, Mac o anche OpenSolaris) si può digitare il comando uptime oppure uprecords se si vogliono fare classifiche di vario tipo.
Su Linux, FreeBSD e OpenSolaris si può usare anche il comando w, che unisce gli output di uptime e who.

Ringrazio Myself, Maurizio Lombardi e Luca per aver dato un apporto prezioso attraverso la loro conoscenza e aver così permesso la stesura di questo articolo. Continuate così!

Come si visualizza l’uptime di un sistema Windows?

Vi è mai capitato di voler sapere l’orario esatto in cui il vostro computer con sistema operativo Windows è stato acceso? Avete mai desiderato conoscere il suo cosiddetto uptime? Oggi stesso ne ho avuto bisogno, ho trovato la risposta e mi accingo a condividerla con voi.

Ecco cosa bisogna fare:

  1. Aprire il menu Avvio e cliccare su Esegui.
  2. Digitare “cmd” e premere invio.
  3. Digitare nel prompt che è apparso “net statistics server” e premere invio.
  4. Verranno mostrate diverse informazioni e le prime sono la data e l’ora di accensione della macchina.
  5. Per calcolare l’uptime, non vi resta che calcolare la differenza tra la data e l’ora attuali e quelle ottenute al punto 4.

Bastano 3 minuti per fare ciò ed è alla portata di tutti. Prossimamente pubblicherò altri consigli utili relativi al mondo Windows.

Revisione del design - fine agosto 2008

Ho il piacere d’annunciare a tutti i cari lettori di Inforum che finalmente il blog viene mostrato in una veste completamente rinnovata e ancora più professionale. In effetti non c’è bisogno di usare molte parole: guardate voi stessi!

Mi interessa molto conoscere il vostro parere intorno a quest’aggiornamento: vi piace questo stile? Riscontrate degli errori di visualizzazione? Avete dei suggerimenti? Sono tutt’orecchi, come si suol dire, per far sì che tutto possa funzionare nel migliore dei modi.