Archives For Software

Android's Corner è il nome di una raccolta di articoli pubblicati su questi lidi che raccontano l'esperienza Android, consigli, applicazioni, novità e qualsiasi altra cosa possa ruotare intorno al mondo del sistema operativo mobile di Google e sulla quale ho avuto possibilità di mettere mano, di ritoccare, di far funzionare, una scusa come un'altra per darvi una mano e scambiare opinioni insieme :-)

La vita è fatta anche di richieste più semplici, di tanto in tanto. È partito tutto da Ilaria, le piace il piccolo widget di Samsung che ti permette di conoscere la temperatura esterna e il meteo, lo voleva avere anche lei sul suo Motorola. Una rapida occhiata sul Play Store, il vuoto assoluto dell’applicazione di Samsung (peccato, sarebbe stato decisamente più semplice), ed ecco servita la necessità dell’ennesimo work-around, d’altronde se fosse troppo semplice non stuzzicherebbe mai la curiosità.

Come utilizzare il widget Meteo Samsung su un diverso telefono

La risposta è sì, si può fare. Prima di cominciare puoi già scaricare l’applicazione adatta, si chiama XWidget e la si trova gratuitamente sul Play Store:

XWidget
Developer: XWidgetSoft
Price: Free

Download

A questo punto è tutta discesa, e sei tu a scegliere che cosa avere sul tuo smartphone. I widget che riproducono quelli originali di Samsung (anche se diversi di pochissimo) esistono già, li ha creati Aatif, uno dei membri di XDA Developers: forum.xda-developers.com/android/apps-games/xwidget-samsung-galaxy-s6-weather-t3045314

Ne ho caricati una copia sul mio account Box, li trovi qui: app.box.com/s/t126dtbfpl6ge539djneeqtj55g34kq7

Tutte e tre le tipologie di widget propongono informazioni complete, contenenti quindi l’ora corrente e le note sul meteo e la temperatura. Io invece, basandomi sulla versione che utilizzo nel mio Galaxy S6, ho voluto modificare il “Pure” di Aatif, al quale ho rimosso l’ora corrente e ridimensionato il tutto per ottenere esclusivamente la temperatura corrente, l’icona meteo, la localizzazione e l’ultimo aggiornamento eseguito. Ho quindi impacchettato i file modificati e li ho caricati su Box: app.box.com/s/vhxnyqjxwwdmor1gu27ckp9l00vgirvx

Come utilizzare il widget Meteo Samsung su un diverso telefono 4

Installazione

Scarica il pacchetto che ti interessa direttamente tramite smartphone, quindi usa un gestore di file (quello di fabbrica andrà benissimo) per spostarti all’interno della tua cartella Download e decomprimere il file ZIP appena scaricato. Ora dovresti poter vedere una cartella che al suo interno conterrà ulteriori cartelle (quelle delle 3 tipologie widget, se hai utilizzato il pacchetto originale di Aatif). Tieni premuto su una delle cartelle contenenti i file del widget, seleziona anche le altre due e poi Tagliale.

A questo punto naviga nella cartella di XWidget (si trova nella root della memoria interna), entra in Widgets e incolla qui ciò che avevi precedentemente tagliato:

Come utilizzare il widget Meteo Samsung su un diverso telefono 1

Il più del lavoro è fatto. Ora non dovrai fare altro che tornare alla Home del tuo Android, scegliere di aggiungere un widget e andare in quelli relativi a XWidget. Scegli la dimensione di partenza (ti suggerisco il rettangolo 2×1) e portarlo dove ti serve.

Come utilizzare il widget Meteo Samsung su un diverso telefono 2

Una volta posizionato ti verrà richiesto che informazione caricare nel widget, tu dovrai solo spostarti in “Local” e scegliere il pacchetto del widget meteo di Samsung che hai scompattato nella giusta cartella poco fa. Se hai utilizzato il mio pacchetto modificato, il risultato dovrebbe assomigliare a questo:

Come utilizzare il widget Meteo Samsung su un diverso telefono 3

Nel mio pacchetto ho volutamente rimosso le icone della localizzazione e dell’aggiornamento forzato, poiché ti basta un singolo clic sul widget per ottenere il menu delle funzioni da poter lanciare, comprese le due appena citate.

Come utilizzare il widget Meteo Samsung su un diverso telefono 5

Il mio consiglio è quello di andare in “Change location” e abilitare l’auto-rilevamento in base alla posizione GPS, così da non dover modificare la città da tenere d’occhio ogni volta che ne hai la necessità :-)

Il tutto è stato provato e ha funzionato (come anticipato a inizio articolo) su un Motorola Moto G di quarta generazione.

Buon inizio settimana!

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato ai post "a bruciapelo"!

Microsoft permette di scaricare Windows 10 tramite un tool proprietario che funziona molto bene e che ti permette di aggiornare il sistema locale o di preparare un supporto per un diverso PC (qui trovi maggiori informazioni). Appurato questo, io oggi ho scelto di passare da una diversa strada, giusto per non dimenticare “come si fa“, ho scaricato la ISO e preparato una chiave USB avviabile tramite Rufus, “manualmente“.

Windows 10: preparare una chiave avviabile (no-Media Tool Microsoft) 3

Naviga verso microsoft.com/en-us/software-download/windows10ISO, scegli la versione dell’ultimo sistema operativo di casa Microsoft, scegli la lingua, fai partire il download. Troppo semplice? Lo so, ma è esattamente ciò che dovrai fare:

Per preparare la chiave USB, ho scelto Rufus, alternativa a WinSetupFromUSB che uso da sempre (ne avevo parlato qui). Anche Rufus è gratuito, disponibile inoltre in versione portable (quindi comodo tanto quanto l’altro), lo trovi su rufus.akeo.ie.

Una volta avviato, ti basterà dargli in pasto una chiave USB che possa tenere i file necessari per l’installazione del sistema (4GB bastano, nda) e mantenere le impostazioni suggerite, lo “Schema partizione MBR per BIOS o UEFI-CSM” è perfetto anche per macchine nuove che non accettano chiavi USB multi-boot (quelle contenenti diverse ISO) all’avvio del sistema, il motivo principale per il quale si impazzisce e non si esce dal loop.

Windows 10: preparare una chiave avviabile (no-Media Tool Microsoft) 2

Un clic su Avvia e il gioco è fatto. Dovrai solo attendere che il programma termini di preparare il supporto. Potrai in seguito rimuoverlo dal PC, inserirlo in quello su cui vuoi installare Windows 10 e scegliere quella chiave USB come periferica di partenza, accederai così alla solita procedura di preparazione installazione del sistema operativo.

Se n’è parlato nei commenti di uno dei tanti articoli dedicati a Office 365 e alle modalità di distribuzione sulle macchine controllate. In  realtà non capisco perché non l’ho suggerito prima, forse perché tutto sommato il file XML che permette di lanciare il download (o il setup) di Office è semplice da costruire. Dato che però non è così per tutti, ecco “Office 365 ProPlus Configuration XML Editor“, un tool grafico che aiuta chi vuole creare un custom XML per distribuire Office 365 ProPlus e non vuole conoscere i riferimenti spiegati in Technet.

Office 365 / 2013 Pro Plus: reset della licenza via Powershell 2

Lo strumento è disponibile all’indirizzo officedev.github.io/Office-IT-Pro-Deployment-Scripts/XmlEditor.html ed è stato realizzato con lo stesso stile che sei abituato a vedere quando apri la tua WebMail di Office 365 oppure di Outlook.com (tanto per fare un esempio). Lo troverai molto semplice da capire e utilizzare, tutto dipenderà dalle opzioni selezionate e dagli URL specificati, i quali genereranno righe di XML che comporranno poi il tuo file finale per il download e l’installazione:

Office 365: Configuration XML Editor (grafico)

Salva ogni passaggio intermedio, così da continuare a generare l’anteprima del file XML (nel box di destra), non soffermarti su righe che trovi “di troppo“, potrai (dovrai) metterle a posto più tardi. Giusto per fare un esempio e capirci, ho voluto creare un file XML per installare un Office 2016 a 64 bit, in italiano, ramo corrente (e relativi aggiornamenti), che accettasse in autonomia la EULA e non proponesse alcunché a video, con aggiornamenti diretti da Microsoft e nessuna icona nella taskbar. Ho ottenuto questo:

<Configuration>
 <Add OfficeClientEdition="64" Channel="Current">
 <Product ID="O365ProPlusRetail">
 <Language ID="it-it"/>
 </Product>
 </Add>
 <Updates Enabled="TRUE" Channel="Current"/>
 <Display Level="None" AcceptEULA="TRUE"/>
 <Logging Level="Standard" Path="%Temp%"/>
 <Property Name="AUTOACTIVATE" Value="1"/>
 <Property Name="FORCEAPPSHUTDOWN" Value="TRUE"/>
 <Property Name="SharedComputerLicensing" Value="0"/>
 <Property Name="PinIconsToTaskbar" Value="FALSE"/>
</Configuration>

All’interno del file XML c’è una riga per me inutile, questa:

 <Property Name="SharedComputerLicensing" Value="0"/>

La quale dovrà essere eliminata manualmente, perché non è possibile dire al tool di non tradurla dalla GUI al file generato (fa parte della stessa tab di configurazione dell’attivazione prodotto e del fermo forzato di eventuali applicazioni Office lasciate aperte). Nulla di che, basta saperlo. Dallo stesso sito web è inoltre possibile scaricare la versione più aggiornata del Deploy Tool di Microsoft (c’è il pulsante Download Office Deployment Tool in alto a destra, nda), ti consiglio sempre di tenerlo d’occhio (per una migliore compatibilità con eventuali opzioni -del file XML- più nuove rispetto al tool che magari hai scaricato un anno fa!).

Mi sembra che ci sia tutto. In caso di dubbi non esitare a lasciare un commento, come al solito :-)

Stavo facendo regolare manutenzione della macchina di HelpDesk (quella che in ufficio fa girare un’installazione di ServiceDesk Plus, te ne ho già parlato in passato) e mi sono accorto che nel database, la tabella relativa ai log di errore, era cresciuta fino a toccare quota 5,5 GB circa. Dato che con la migrazione a Windows 2012 Server ci siamo portati dietro lo storico di quanto operato fino a quel momento, ho contato nell’errorlog qualcosa come 200.000 eventi e più, circa 6 anni di onorato servizio. Era arrivato il momento di fare un po’ di pulizia.

ServiceDesk: una toolbar personalizzata sempre in vista 1

Per farla breve: utilizzare la GUI in questo caso è impossibile. Gli eventi sono troppi, il software di HelpDesk non è in grado di navigare correttamente tra le tab del log. È quindi consigliato operare direttamente sul database, dopo aver eseguito un backup dello stesso (non si sa mai, fallo senza pensarci due volte e mettiti al sicuro). L’operazione richiederà un rapido fermo dei servizi (immediatamente riavviabili) e non dovrebbe impattare troppo sull’attività dei tecnici e degli utenti, ammesso che il server che ospita l’applicazione abbia sufficiente RAM e CPU a disposizione per tenere a bada i consumi del motore SQL (nel mio caso MySQL) e Java.

Per effettuare una buona pulizia, sono stato anche costretto a un rapido tuning dell’applicativo, andando a modificare alcuni parametri consigliati da Manage Engine. Mettiti “comodo” (si fa per dire) e preparati a fare qualche ritocco sotto al cofano.

Pulizia e Tuning di sistema

Volendo tenere gli ultimi 60 giorni di log e quindi buttare via tutto il resto, sarà necessario dare alla macchina un attimo più di sprint, questo è necessario nel caso in cui quella tabella sia troppo ricca di eventi (puoi vederlo tu stesso con un semplice clic su Community (l’icona del supporto, nelle ultime versioni di ServiceDesk Plus) → System Log Viewer:

Pulizia e Tuning di ServiceDesk Plus

Come detto prima, quel numero “of 2368” superava i 200.000!

Una volta connesso al DB MySQL, l’operazione di pulizia fallirà quasi certamente a causa del buffer InnoDB “troppo stretto“. Puoi controllare tu stesso. Per connetterti al MySQL che sta girando sulla macchina dovrai aprire un prompt dei comandi, quindi andare in C:\ManageEngine\ServiceDesk\mysql\bin, ammesso che tu abbia installato tutto nel disco principale del server (altrimenti sostituisci C:\ con la lettera del drive all’interno del quale si trova ServiceDesk Plus).

Se anche il tuo ServiceDesk Plus utilizza MySQL, continua la lettura delle istruzioni di seguito, in caso contrario dovrai modificare il metodo di collegamento (consulta questa risposta sul forum ufficiale: forums.manageengine.com/topic/how-to-delete-all-log-files#49000007368489):

mysql.exe -u root -P 33366 servicedesk

Una volta connesso, lancia la cancellazione dell’intervallo desiderato (nell’esempio, ho mantenuto 60 giorni di storico, tu puoi ovviamente modificarlo aumentandolo o diminuendolo a piacere), l’istruzione di seguito è valida per MySQL:

delete from errorlog  WHERE DATEDIFF(NOW(),FROM_UNIXTIME(OCCURREDTIME/1000))  >60;

Quasi certamente arriverai a vedere l’errore 1206, causato dall’elevato numero di lock rispetto allo spazio a disposizione in tabella. Per verificare il perché, prova a lanciare uno show global variables like 'innodb_buffer%':

Pulizia e Tuning di ServiceDesk Plus 1

Quel valore (8,388,608 espresso in byte) è basso, è circa l’equivalente di 8MB, non è sufficiente. Per questo motivo sarai costretto a modificare il batch che si occupa di lanciare il motore SQL di ServiceDesk Plus, in base alla RAM a tua disposizione sul server, secondo quanto suggerito nel forum del prodotto: forums.manageengine.com/topic/manage-engine-supportcenter-plus-slowness-and-takes-ages-to-load-the-request-screen. La mia macchina ha più di 4GB di RAM, per questo motivo ho aperto C:\ManageEngine\ServiceDesk\bin\startDB.bat e ho inserito i vari parametri suggeriti:

@start "MySQL" /B "%DB_HOME%\bin\mysqld-nt" --standalone --lower-case-table-names=1 --basedir="%DB_HOME%" --port=%DB_PORT% --datadir="%DB_HOME%\data" --default-character-set=utf8 --set-variable=query-cache-type=2 --read_buffer_size=128K --read_rnd_buffer_size=2M --sort_buffer_size=4M --myisam_sort_buffer_size=8M --key_buffer_size=64M --innodb_buffer_pool_size=750M --bulk_insert_buffer_size=16M --table_cache=1024M --innodb_flush_log_at_trx_commit=0 --low-priority-updates

Stessa sorte toccata al file di configurazione del Wrapper Java, quello che trovi in C:\ManageEngine\ServiceDesk\server\default\conf\wrapper.conf, modificato alla stessa maniera e ritoccato sui due valori suggeriti, da:

# Initial Java Heap Size (in MB)
wrapper.java.initmemory=128

# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=256

a (nel caso della mia macchina con più di 4GB di RAM, occhio quindi alla tua):

# Initial Java Heap Size (in MB)
wrapper.java.initmemory=256

# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=1024

A questo punto potrai fermare e avviare nuovamente il tuo ServiceDesk Plus. Così facendo, collegandoti nuovamente al database, dovresti poter notare che il valore di innodb_buffer_pool_size è aumentato fino a toccare la quota richiesta dalla tua modifica nel file batch (startDB):

Pulizia e Tuning di ServiceDesk Plus 2

Ora potrai finalmente lanciare la pulizia, che non dovrebbe più bloccarsi, e che dovrebbe pulire quanto richiesto entro qualche minuto di lavoro al massimo:

Pulizia e Tuning di ServiceDesk Plus 3

Ora finalmente potrai navigare il System Log da interfaccia grafica di ServiceDesk Plus, avrai reso più rapidi i backup da eseguire quando si lancia un upgrade di prodotto e avrai risparmiato un po’ di spazio su disco, il tutto condito da una maggiore velocità di avvio della piattaforma.

Non male, vero? :-)

Abbiamo già trattato l’argomento, ci torno sopra perché –dopo gli ultimi aggiornamenti del software di Manage Engine– l’aspetto di ServiceDesk è decisamente cambiato (in meglio) e mi ha fatto nascere una nuova esigenza, in realtà nell’aria già da tempo. Si tratta della possibilità di fare un refresh manuale della pagina.

Nulla di particolare sotto al sole, sia chiaro, giusto un’aggiunta che può tornare utile avere a portata di clic oltre che di tastiera (in quel caso basta un F5). Ho scelto di inserire il nuovo pulsante subito prima del “Close“.

ServiceDesk: una toolbar personalizzata sempre in vista 1

Per lanciare un aggiornamento della pagina ho utilizzato un semplice window.location.reload(), che si integra quindi nel codice di un nuovo pulsante. Per poter far stare tutto su una sola riga, ho aumentato le dimensioni (larghezza) della toolbar, portando il valore a 310 pixel. Nello specifico, questo è il codice del nuovo pulsante:

// REFRESH
'<input type="button" title="Refresh" class="formStylebutton" style="width:auto;height:18" onclick="window.location.reload()" value="Refresh" name="refreshButton"> ' +

Ho rilasciato perciò una nuova versione del CustomScripts.js, disponibile come sempre su Gist, te la propongo qui di seguito per comodità:

Ne approfitto per ricordarti che lo script dovrà essere inserito in [TUOSERVERSDP]\ServiceDesk\custom\scripts, e che forzando un aggiornamento della pagina (del tuo HelpDesk) dovresti notare subito la novità, senza la necessità di riavviare il software.

Per commenti, nuove idee o suggerimenti riguardo possibili miglioramenti del codice attualmente proposto, l’area commenti è a tua totale disposizione!

G