mercoledì, maggio 29

È colpa dell'euforia

Succede, ogni tanto, che mentre si sta seriamente lavorando si raggiungano obiettivi interessanti e inattesi.
In questi momenti l'euforia può dare alla testa e qualche volta il risultato può essere divertente.

Questo scherzetto è il risultato di quello che è successo oggi. Quello che ci è sfuggito di mano.
Spero che sia divertente per voi come lo è stato per noi :)



sabato, maggio 18

Incredibile, siamo nei tempi

DocuBox G4 - ci siamo quasi...
E nel frattempo una anteprima della VM DEMO PRERELEASE con in bella vista il numero del brevetto ASSEGNATO.
(cfr. il sito european patent search per info).
 

 

mercoledì, maggio 15

Avevo ragione a scommettere su Google

Google ha una tecnologia che altri stanno sottovalutando.
L'avevo già detto in un altro post (qui --> scommetto su google).
Di solito si incomincia dai giochi che sono i programmi più usati in assoluto e guardacaso Google oggi presenta il Play Games, un servizio che consente di salvare su cloud i dati e i progressi dei giochi, condividere le statistiche e gli obiettivi sbloccati, competere in classifiche, ecc.
Permetterà anche di giocare in multi-player, ma il suo principale punto di forza è che per usufruire l’utente (oggi solo android) non dovrà fare assolutamente nulla.
L’essere "multi-piattaforma" è un altra caratteristica molto, molto, molto... Interessante.
Quando su PC? Forse come "ambiente" dentro Chrome?
;)

Forbes

sabato, maggio 4

Otto ore per una informazione. Grazie MS.

Sto lavorando ad una idea antichissima che avevo dimenticato e che un concorrente mi ha fatto tornare prepotentemente alla mente e, anche se per questo motivo non faccio post da un sacco, oggi farò una eccezione, principalmente perché digerisco malissimo la mancanza di informazioni e la scarsa documentazione di Microsoft.
Pertanto, prima del post sul "che cosa ho fatto", approfitto di queste pagine per pubblicare il risultato e ridurre i tempi di chi, come me, cerca di fare delle cose un pelo piú complesse della norma.

Avviso: è un articolo tecnico e il tema è "aggiungere dei parametri ad un servizio windows".
Un pò tecnico, è vero, ma ho passato 8 ore (OTTO ORE) otto a cercare questa informazione.

Tra i software che vengono installati nei PC con MS-Windows ci sono quelli che rimangono residenti e attivi.
Nei sistemi Linux sono normali programmi eseguiti da "cron", in Windows si chiamano "Windows Services" e vanno registrati nel sistema.
Nulla di trascendentale, ci sono delle utilities che lo fanno, come InstallUtil o SC.
il problema che mi ha fatto perdere un sacco di tempo è stato: come si fa fare in modo che al servizio vengano passati dei parametri personali?
Una cosa utile e semplicissima: quando si esegue un programma se ne può gestire il comportamento per esempio passando sulla riga di comando dei parametri personali. Questa cosa semplicissima, quando si tratta dei servizi Windows non è, per assurdo, documentata dalla stessa produttice del sistema operativo, mamma Microsoft.
Quindi si cerca disperatamente su Internet e si trovano un sacco articoli di molti tecnici confusi, in cui vengono proposte soluzioni incredibilmente complicate o scorrette.

Le soluzioni disponibili

  1. InstallUtil.exe
    È uno strumento che non risolve, non esiste modo di obbligarlo a capire che deve registrare parametri esterni all'installazione del servizio.
  2. Righe di programmazione
    Tutte le soluzioni che ho trovato pubblicate su internet e che includono righe di programmazione speciali sono soluzioni specifiche per sistema operativo e funzionano ovviamente solo con alcune versioni di Windows.
  3. Usare SC.exe
    Attraverso SC è possibile passare dei parametri particolari sulla riga di comando. Evviva. Rabbrividiamo brrrrrr (cit).
Attraverso SC è possibile registrare un programma come servizio:
> sc create -help
DESCRIZIONE:
        Crea una voce di servizio nel Registro di sistema e 
        nel database del servizio.
SINTASSI:
        sc <server> create [nome servizio] [binPath= ] 
           <opzione1> <opzione2>...

OPZIONI:
 NOTA: il nome dell'opzione include il segno di uguale.
       È necessario inserire uno spazio tra il segno di uguale
       e il valore.
  type= <own|share|interact|kernel|filesys|rec>
        (predefinito = own)
  start= <boot|system|auto|demand|disabled|delayed-auto>
        (predefinito = demand)
  error= <normal|severe|critical|ignore>
        (predefinito = normal)
  binPath= <NomePercorsoBinario>
  group= <GruppoOrdineCaricamento>
  tag= <yes|no>
  depend= <Dipendenze (separate da / (barra))>
  obj= <NomeAccount|NomeOggetto>
        (predefinito = LocalSystem)
  DisplayName= <nome visualizzato>
  password= <password>

Nel caso specifico al mio programma pippo.exe, registrato come servizio, voglio che venga passato il parametro "basepath" il cui valore è "pluto", in pratica il corrispondente di:
C:\>pippo.exe -basepath="pluto"

Per ottenere che questa sia la riga eseguita da service dovrò usare la seguente sintassi di SC:
C:\>sc create MyServiceName 
binpath= "\"C:\pippo.exe\" -basepath=\"pluto\" " 
displayname= "This is my service display name" 
depend= Tcpip 
start= auto

... E come si può vedere tutto il trucco sta nel modo in cui si usa \", con buona pace di chi, come me, ha buttato nel cestino circa 8 ore per avere questa informazione.

Grazie mamma MS.