Archives For Colleghi

Visualizzare fatture elettroniche XML e P7M

Conversioni di fatture elettroniche, risorse utili 1

Sono dell’idea che non bisogna in nessun caso reinventare la ruota. L’argomento in molti lo conoscono già e per le aziende – in alcuni casi – ogni risorsa preziosa sul web torna maledettamente utile per non impazzire e perdersi nei meandri della burocrazia. L’articolo sopra riportato (fai clic su quello che ti sembra essere il titolo dell’articolo, oppure qui) rimanda ad alcuni strumenti di conversione fattura elettroniche in PDF (da XML, quindi), il tutto utilizzabile comodamente dal tuo browser.

Secondo me vale la pena darci un’occhiata e salvarsi tra i preferiti ciò che più si reputa adatto alle proprie esigenze.


immagine di copertina: unsplash.com / author: Didier Weemaels
Condividi l'articolo con i tuoi contatti:

Se non conosci YOURLS, è perché evidentemente non ti è mai servito e forse mai ti servirà, questo è il classico post tecnico dedicato a coloro che invece hanno già avuto a che fare con questo software e la sua necessità di aggiornamento old-school: “Scarica, scompatta, carica su FTP e sovrascrivi“. Un po’ sulla falsa riga di quanto fatto in passato con DokuWiki (DokuWiki: upgrade dell’installazione, poi non più necessario grazie all’implementazione nativa e alla disponibilità del file diff sul sito web dello sviluppatore), oggi torno sull’argomento e ti parlo del file diff di YOURLS.

YOURLS: upgrade dell’installazione (file diff) 1

YOURLS stands for Your Own URL Shortener. It is a small set of PHP scripts that will allow you to run your own URL shortening service (a la TinyURL or Bitly).

Running your own URL shortener is fun, geeky and useful: you own your data and don’t depend on third-party services. It’s also a great way to add branding to your short URLs, instead of using the same public URL shortener everyone uses.

Due file ZIP (quello contenente la vecchia versione, quello con all’interno la nuova) che si scaricano direttamente dallo spazio GitHub del progetto, un terminale di Linux (qualsiasi). Si scompattano entrambi i file ZIP (ex.: unzip 1.7.3.zip) nella stessa cartella, quindi il comando per il confronto tra le due directory rimane quasi lo stesso di quello usato per l’articolo del DokuWiki (non fosse che stavolta il mio Terminale è in lingua italiana):

diff -rs $1 $2 | awk '/sono identici/{print $5}' | xargs rm -v

Uso $1 e $2 perché sono variabili che posso dare in pasto a uno script di bash molto semplice, questo:

Il risultato è già pronto, si trova infatti all’interno del repository SomePublicStuff che tengo su GitHub, trovi la release più aggiornata all’indirizzo github.com/gioxx/SomePublicStuff/releases/tag/YOURLS-diff. Scarica il file ZIP, scompattalo e caricane il contenuto all’interno del tuo spazio FTP, dove tieni l’installazione di YOURLS.

Buon lavoro.


immagine di copertina: unsplash.com / author: Thomas Jensen
Condividi l'articolo con i tuoi contatti:

È un problema che sicuramente riguarda Microsoft Outlook 2013 ma da quanto ho potuto leggere in giro le cose non sono diverse con la versione immediatamente precedente del client di posta Microsoft. Nonostante esista la possibilità di recuperare la posta eliminata (e cancellata dal cestino), esplorando una casella di posta condivisa il pulsante per il recupero non sarà cliccabile. L’unica speranza è quindi quella di colpirsi ripetutamente la testa con un piede di porco? Errato, un riferimento nella knoledge base di Microsoft spiega come aggirare il problema e rendere disponibile quell’ultima spiaggia (ultima sia per voi che per l’utente), il tutto cercando di rispettare i termini imposti dall’azienda di Redmond stessa, sperando che l’utente si accorga del danno non oltre i 30 giorni oltre la cancellazione.

Outlook2013-RecuperaBloccato

Il riferimento ufficiale di Microsoft è disponibile alla pagina support.microsoft.com/kb/246153/en-us. Spiega che è possibile sbloccare la funzionalità semplicemente mettendo mano al registro di sistema, aggiungendo una chiave (se non esistente) ed un valore DWORD. Testato, funzionante, tutti felici e contenti prima delle ferie di Natale (anche se leggerete questo articolo solo nell’anno nuovo o giù di lì).

La chiave da creare nel caso in cui mancasse è “Options” (il valore DWORD lo vediamo dopo), gli scenari possibili sui quali lavorare sono 3 e variano in base all’architettura di sistema e a quella del client di posta:

  • Per un Outlook (anche se si parla dell’intera suite Office, ndr) a 32 bit installato su un sistema operativo a 32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\Client\Options
  • Per un Outlook a 32 bit installato su un sistema operativo a 64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Exchange\Client\Options
  • Per un Outlook a 64 bit installato su un sistema operativo a 64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\Client\Options

In tutti e 3 i casi create la chiave (visualizzata come fosse una cartella, ndr) “Options” se non già presente. All’interno di questa (per tutti e 3 i casi) andrà creato un nuovo valore DWORD chiamato “DumpsterAlwaysOn” il quale dovrà avere valore 1.

Arrivati a questo punto chiudete Outlook e riapritelo, se non avete commesso errori potrete sfruttare il pulsante per il recupero della posta cancellata anche navigando una Shared Mailbox (o casella di posta condivisa). Fate attenzione: vi ricordo che le mail selezionate per il recupero (che sia una o che siano mille) verranno ripristinate all’interno della cartella selezionata mentre avete la finestra del recupero aperta e pronta al ripristino. Outlook 2013 (ma credo anche il 2010, nonostante non possa esserne certo) non è in grado di ricostruire la gerarchia delle cartelle antecedente alla cancellazione ma solo recuperare il loro contenuto (che è già molto più di metà dell’opera considerando l’importanza che le mail hanno in ambito lavorativo -e non solo- oggigiorno).

Spero che questo consiglio possa aiutare qualcuno a non andare in paranoia durante la classica telefonata di richiesta supporto dell’utente che battezzerà il tutto con un “Credo di aver fatto una boiata, ma sono sicuro risolverai“.

Enjoy.

Condividi l'articolo con i tuoi contatti:
Attenzione: articolo ad alto tasso di tecnicismi lavorativi, nerditudine, viaggi mentali che potrebbero non interessare ai più, comunque vada perdete ogni speranza o voi che leggete.

USMT_iconSi tratta di un lavoro fatto più di un anno fa ma che ultimamente sembra essere tornato parecchio utile ancora una volta visto che alcuni degli utenti in azienda hanno subito una migrazione di dominio con la diretta conseguenza del dover migrare anche i dati di profilo sulla loro macchina cercando di perdere zero dati / configurazioni o il meno possibile durante “il salto“. Non ne avevo scritto all’epoca, forse ne avevo migrati talmente tanti che ormai facevo fatica a sopportare ancora le finestre batch del mio script ;-)

In realtà mi rendo conto che potrebbe tornare utile a qualche collega lì fuori o magari ad un utente che ha deciso di spostare i suoi dati su un differente account locale del suo Windows, quindi ve ne parlo volentieri. Tutto ciò che serve è conoscere lo strumento USMT (User State Migration Tool) di Microsoft (descritto qui) e magari una mano (tra script e spiegazioni) che vi permette di risparmiare del tempo per portare a termine l’operazione.

In sintesi

Lo User State Migration Tool (da ora semplicemente USMT per comodità) è uno strumento nativo di Windows 7 e 8 (Trasferimento dati Windows), mai integrato in Windows Xp, che può essere utilizzato anche da interfaccia grafica anche se in maniera un pelo più limitata e guidata. Il modo migliore per sfruttarlo -nello specifico caso dell’articolo- è quello via riga di comando dandogli in pasto un set di istruzioni che lo istruisca sul da farsi. Lo strumento effettua una scansione di tutto ciò che vi servirà trasportare e creerà un unico pacchetto che poi tramite un’operazione inversa permetterà di “esploderne” il contenuto nella nuova location. Nessun lavoro fatto a mano a rischio di errore umano, pensa a tutto lui, voi dovrete solo essere capaci di mettere mano ad un file XML all’interno del quale sceglierete cosa trasportare attraverso la scansione file su disco.

L’installazione di USMT

Per installare USMT basterà semplicemente scaricare uno dei pacchetti che ho caricato su app.box.com/s/7rr9w7e0ybmdsubgl3ol in base al vostro sistema operativo. La versione 4 è stata realizzata per Windows 7, troverete il pacchetto a 32 (USMT4.01_x86) e 64 bit (USMT4.01_x64) insieme alla versione 3 necessaria invece per coloro che stanno ancora utilizzando Windows Xp (InstallUSMT301_x86) e della quale però non ho sotto mano la versione a 64 bit (nell’eventualità voleste segnalarmela nei commenti provvederò a caricarla nella stessa cartella e renderla così disponibile a tutti).

L’installazione si limita al più classico degli avanti-avanti-fine, non è necessario fare altro per il momento e non è necessario neanche conoscere o modificare la cartella di installazione proposta dal setup del software.

Tutto in un XML

Il file XML per effettuare la scansione e il caricamento (in seguito) dei dati è fondamentale se non ci si vuole affidare ad uno standard Microsoft che trasporterà lo stretto necessario. Ho pensato di associare un file XML personale più ricco che possa andare a far compagnia a quello di default. Data la sua lunghezza non lo incollo qui di seguito ma potete trovarlo su Gist all’indirizzo gist.github.com/gioxx/cae18c552cf80e51d0ed.

In breve il file cercherà di trasportare nel file di migrazione:

  • il vostro Desktop (%CSIDL_DESKTOP%);
  • lo “shared Desktop” (o Desktop Pubblico) (%CSIDL_COMMON_DESKTOPDIRECTORY%);
  • eventuali personalizzazioni del menu di Start di Windows (%CSIDL_STARTMENU%) con la sua controparte pubblica come per il Desktop (%CSIDL_COMMON_STARTMENU%);
  • i documenti (%CSIDL_PERSONAL%) insieme alla musica (%CSIDL_MYMUSIC%), le immagini (%CSIDL_MYPICTURES%) e i video (%CSIDL_MYVIDEO%);
  • i preferiti di Internet Explorer (%CSIDL_FAVORITES%);
  • tutti i dati presenti all’interno della cartella %AppData% (%CSIDL_PROFILE%\AppData\*) così da non dover riconfigurare alcuna applicazione già installata sulla macchina. Consiglio di commentare questo blocco nell’eventualità si stia preparando una macchina completamente nuova che potrebbe non avere le stesse applicazioni a bordo, così facendo non porterete con voi dati potenzialmente inutili;
  • la cartella di Dropbox nel profilo personale, ammesso che esista (%CSIDL_PROFILE%\Dropbox\*);
  • la cartella di Google Drive nel profilo personale, ammesso che esista pure questa (%CSIDL_PROFILE%\Google Drive\*);
  • le icone di Quick Launch (%CSIDL_APPDATA%\Microsoft\Internet Explorer\Quick Launch);

È un set di informazioni in più oltre quelle standard (desktop, documenti, ecc.) che sicuramente vi farà piacere portare con voi sul nuovo profilo non costringendovi così a perdere ulteriore tempo per riconfigurare tutto.

I batch

Protagonisti anche loro della migrazione perché vi permetteranno di dimenticare la lunga stringa che serve per mettere in azione sia l’azione di scansione (ScanState) che di caricamento file in seguito (LoadState). Allo stato attuale delle cose non ho avuto tempo di crearne uno solo che possa lanciare la stringa adatta sul sistema adatto, è possibile (ci spero) che io trovi una manciata di minuti per farlo in futuro (lo caricherò qui immediatamente, ovviamente). Per il momento sarete voi che in base all’architettura e al sistema operativo dovrete lanciare quelli che serviranno a portare a termine una corretta migrazione, nulla di complicato sia chiaro, solo più “passaggi da fare a manina“.

Lo ScanState -manco a dirlo- analizzerà ciò che andrà portato via e messo nell’archivio che potrete in seguito caricare tramite il LoadState. L’operazione prevede la lettura del file XML originale previsto dal sistema (con lo stretto necessario) coadiuvato però da quello che ho realizzato io per includere più dati utili ai fini del salto alla nuova macchina o al nuovo utente di dominio:

Questo qui sopra è il codice che può lavorare su un sistema Windows 7 a 32 bit. Potete trovare qui quello per sistemi a 64 bit (sempre 7) e qui quello per Windows Xp (32 bit). Occhio però perché con XP cambiano i nomi di alcune directory e per questo motivo ho dovuto creare un diverso file XML per il trasporto dati, lo potete trovare sempre su gist facendo clic qui.

Al termine dello ScanState il LoadState farà il lavoro “contrario” riportando i dati del vecchio utente sul nuovo. Ancora una volta il codice qui di seguito riporta il caso di un sistema Windows 7 a 32 bit. Trovate qui quello per sistemi a 64 bit (sempre 7) e qui quello per Windows Xp (32 bit). Per Windows Xp serve lo stesso file di migrazione custom che ho citato prima con tanto di collegamento diretto:

Vi ricordo che tutto il pacchetto di script è disponibile per il download in versione sempre aggiornata su GitHub, non c’è quindi bisogno di capire come esportarli uno ad uno da gist ;-)

La migrazione step-by-step

C’è un preciso ordine per tutto, questo metodo con script annessi non fa eccezione. Il motivo principale consiste nel blocco dei file che Windows opera quando si fa il login al dominio sulla macchina. Per poter trasferire correttamente tutti i dati occorre rispettare quindi questa tabella di marcia, così da evitare possibili danni collaterali.

1- Un riavvio pulito

Riavviare (o avviare da spenta) la macchina e collegarsi con un amministratore di dominio (meglio del locale, qualche cartella potrebbe avere permessi più restrittivi). A questo punto si partirà con l’operazione di scansione e salvataggio file dell’utente interessato. Nel caso dello ScanState basterà passargli l’utente dal quale effettuare la lettura. Occorrerà aprire un prompt dei comandi e lanciare semplicemente uno “ScanState dominio\utente“:

ScanState-Windows7_completo

L’operazione di lettura e inserimento dati in archivio potrebbe durare parecchio, tutto dipende da quanti GB di spazio occupa il vostro profilo sul disco locale. Per scoprirlo basterà andare in C:\Users\VOSTROUTENTE e con il tasto destro fare clic sulla cartella, quindi Proprietà. Se i GB cominciano ad andare sempre più in alto toccando quote importanti (pari o superiori ai 10, per capirci *1) propenderei per un taglia-incolla dei dati più corposi (generalmente la libreria musicale e le fotografie, per non parlare dei video) in una cartella temporanea nel disco C: (C:\temp andrà benissimo) per poi –una volta fatto il LoadState atto a caricare i dati precedentemente salvati– riportarli dentro manualmente e di certo più rapidamente rispetto al processo automatizzato di Microsoft, fidatevi, la vostra già labile salute mentale vi ringrazierà.

Ricordate che di default il mio batch scriverà i dati (archivio delle impostazioni e dei vostri file) all’interno di C:\Mig, dove troverete anche un log delle operazioni.

2- La “Terra di Mezzo”: cambio del dominio

Al termine della copia dati si potrà portare il PC nel nuovo dominio (ed eventualmente rinominarla se necessario) e riavviarlo immediatamente per applicare la modifica. Alla prossima richiesta di accesso inserite username e password del nuovo dominio, questo permetterà di creare la cartella di profilo nella quale in seguito andranno copiati i dati, una volta dentro riavviare ancora una volta la macchina. Questo servirà a sbloccare eventuali cartelle bloccate da sistema e permettere quindi una scrittura dati priva di errori.

3- Ricaricare i dati

Ora che la macchina si trova nel nuovo dominio e avete fatto creare la cartella del vostro nuovo profilo si potrà procedere con il caricamento dei dati precedentemente salvati. Fate login con l’amministratore di dominio (del nuovo, manco a dirlo) e -sempre da prompt dei comandi- bisognerà lanciare il LoadState adatto al sistema utilizzato, stavolta dandogli in pasto il vecchio utente di dominio seguito dal nuovo, quindi “LoadState vecchiodominio\utente nuovodominio\utente“, a meno di errori lo script verificherà la presenza del pacchetto dati di migrazione all’interno di C:\mig e partirà con il processo di restore:

LoadState

Come per lo ScanState anche il LoadState necessita dei suoi tempi. Al termine della scrittura dati vi verrà presentato un return code 0 se tutto è andato per il verso giusto, al contrario presenterà a video un errore generalmente accompagnato da un codice che potrete ricercare su Google per trovare il giusto documento di riferimento Microsoft. Per esperienza personale è comune incorrere in alcuni ostacoli che sono poi abbastanza semplici da superare. All’interno dei file XML di migrazione ho incluso alcuni casi e le fonti dalle quali ho preso spunto per portare a termine il tutto (vi basterà aprire quei file con un editor di testo qualsiasi).

In ogni caso sarà necessario effettuare una disconnessione dall’utente attuale per passare su quello di destinazione così da controllare che tutto sia filato liscio. Personalmente vi consiglio un riavvio così da non sbagliare. Noterete che -con una certa soddisfazione- file e impostazioni sono al loro posto, persino l’ordine delle icone sul Desktop sarà lo stesso rispetto a ciò che avete lasciato l’ultima volta sul vecchio account di dominio :-)

Prima di saltellare dalla gioia date comunque un’occhiata all’ultimo capitolo di questo articolo (Note, problemi conosciuti e work-around) per saperne di più sulle tracce che lascia il metodo. Se invece avete riscontrato problemi apparentemente irrisolvibili vi consiglio la lettura del prossimo paragrafo subito qui di seguito.

3/a- Ricaricare i dati tramite interfaccia grafica

Sembra quasi un punto messo lì come fosse un interno di un condominio ed in effetti lo scopo è farvi capire che si può arrivare allo stesso traguardo anche in altra maniera. Windows 7 è il primo SO di Microsoft ad includere infatti una funzionalità nativa per la migrazione dei dati da un diverso PC. Si chiama molto banalmente “Trasferimento dati Windows” ed è possibile avviarlo tramite una banale ricerca nel campo vuoto dello Start. Se avviato senza alcun parametro questo chiederà cosa trasferire e da quale sorgente:

Trasferimento dati Windows

Ciò che forse ignorate è che tramite lo ScanState lanciato un paio di paragrafi fa il batch ha creato un archivio perfettamente compatibile con “Trasferimento dati Windows”, il quale ovviamente è in grado di ripristinarlo saltando a piè pari il LoadState da prompt dei comandi. Questo può tornare molto utile anche quando il LoadState restituisce a video errori non facilmente interpretabili e che magari non si riescono ad aggirare. Basterà fare doppio clic sul “bombolone” di dati che troverete sotto C:\Mig\USMT per lanciare il software e decidere così da che account trasferire i dati (quello per il quale avete lanciato lo ScanState, ovviamente) e su che destinazione (l’utente sul nuovo dominio, altrettanto ovviamente), il tutto sempre rigorosamente come amministratori di dominio o locali della macchina così da non far bloccare particolari file utente che diversamente diventerebbero non sovrascrivibili.

trasferimento-manuale-usmt

Note, problemi conosciuti e work-around

Poca roba eh, niente di bloccante, può tornare però utile sapere certe cose, ho messo qua e la dei riferimenti nell’articolo e ve li spiego meglio in questo paragrafo dedicato:

  • *1: per verifica in maniera più intuitiva e approfondita quali cartelle occupano più spazio nel vostro profilo potete scaricare e utilizzare TreeSize Free, ottima utility che non necessita di installazione. Dategli in pasto una cartella precisa del disco (o l’intero disco, se lo ritenete opportuno) e vi dirà in una manciata di minuti “chi occupa cosa” così da permettervi di intervenire in maniera mirata.

passiamo ora alle piccole pecche che il metodo appena spiegato lascia in giro per il disco:

  • Il vostro sfondo potrebbe non essere quello che avevate lasciato l’ultima volta: tipicamente sostituito da un monocolore decisamente più triste e banale, lo sfondo di Windows potrebbe non essere quello che avete cercato di trasferire. Il perché? Programmi di terze parti, browser e qualsiasi altro software in grado di modificare l’aspetto della vostra scrivania potrebbe aver salvato il file immagine di sfondo in una cartella non contemplata dallo script di trasferimento. Così facendo ovviamente Windows non troverà quel file immagine e non sarà in grado di ridarvi visibilità dell’immagine che avevate scelto come contorno delle icone lasciate sparse sulla schermata principale di Windows. Poco male, basterà ricerca quell’immagine e metterla nuovamente come sfondo del Desktop.
  • Ci vedo doppio! Le raccolte sono duplicate: non siete ubriachi e non avete ancora le allucinazioni. Aprendo l’Esplora Risorse di Windows noterete che le raccolte del sistema (Documenti, Immagini, Video e Musica) saranno accompagnate da altrettante icone con lo stesso nome e il classico “(2)” a fianco. Le raccolte vengono raddoppiate perché create immediatamente al login utente (fatto per la prima volta prima del LoadState). Poco male, vi basterà selezionare le “(2)” ed eliminarle, non perderete alcun dato.
  • Il mio disco si è rimpicciolito, mi sta stretto!: non è proprio così. Dovete sempre ricordare che in questo momento avete pressoché raddoppiato l’occupazione del vostro profilo sullo stesso disco. Il fatto che quel profilo sia su due domini differenti vuol dire che corrisponde anche a due SID differenti (Security IDentifier di Microsoft, ndr). Quando siete sicuri di avere tutto al proprio posto lanciate Start / Esegui / sysdm.cpl e dalla tab Avanzate accedete a Profili utente e –una volta caricata la finestra (portate pazienza)– selezionate e cancellate VECCHIODOMINIO\vostroutente che -quasi certamente- occuperà molto spazio (potete notarlo voi stessi, c’è la colonna di occupazione su disco). L’operazione potrebbe durare diversi minuti e potrebbe essere necessario (in caso di errore per Directory non vuota) andare a cancellare manualmente la cartella in C:\Users. Questo vi permetterà di recuperare lo spazio perso in corso di migrazione dati.

Credo di aver riportato tutto (ma proprio tutto) in questo corposissimo articolo. Potrei quasi scommettere che nessuno è stato capace di arrivare fino in fondo ma sono altrettanto certo che là fuori qualcuno mi ringrazierà, soprattutto se dovesse trovarsi nella stessa situazione / necessità come è stato per me lo scorso anno (e ancora anche questo 2014 per alcune macchine).

Cheers.

Condividi l'articolo con i tuoi contatti:

AXIS Datacenter web-cam-picÈ una “pillola” strana, lo so, eppure stava lì nelle bozze del blog senza mai vedere la “luce della pubblicazione“. Questo codice mi è servito diverso tempo fa in ufficio per mostrare le immagini in tempo (quasi) reale catturate da due telecamere di sicurezza poste nel nostro datacenter. Un refresh di un secondo, una pagina web che racchiude svariate informazioni e -appunto- le immagini di due camere di sicurezza Axis che tramite un URL preciso producono un’immagine jpg da poter includere in un HTML tramite codice Javascript, questo:

Dimensioni dell’immagine di output, refresh e URL sono valori modificabili in qualsiasi momento, il nome della funzione ovviamente andrà modificato per ciascuna webcam che intendete includere all’interno della pagina così da poterle gestire con snippet Javascript separati e modificarne i valori. Regolate l’intervallo di aggiornamento in base al consumo di banda e CPU della macchina sulla quale ospiterete la pagina web per evitare strane sorprese (tutto dipende dalla quantità di gente che accede alla pagina stessa, è facile far danni) ed il gioco è fatto! ;-)

Grazie a digitalham.co.uk/web/development/embedding-cctv

×

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"!
Condividi l'articolo con i tuoi contatti: