Archivi categoria: Di tutto

Sbloccare la stampa di un file PDF

Molto spesso ci vengono forniti dei file PDF che possono solamente essere letti. Volendo stamparli bisogna conoscere la password. Molti cercano tra diversi servizi online o programmi a pagamento. Ma c’è un semplice programma che può servire al caso:

QPDF http://qpdf.sourceforge.net/

Si tratta tra l’altro di un programmino che si installa semplicemente copiando la cartella in cui è contenuto, per cui si può installare e trasportare dovunque. Una volta installato per togliere la password da un file basta dare il comando:

qpdf.exe --decrypt <percorso al file da sbloccare> <percorso al file di uscita>

Tutto qui.

Strane chiamate da +21697239302

Io sto ricevendo strani squilli dal numero tunisino +21697239302. Molto probabilmente si tratta di una truffa. Questa. Si basa sul fatto che l’utente richiami il numero, dall’altra parte risponde un numero a pagamento, che non fa altro che farvi perdere tempo per tenervi attaccati alla chiamata e succhiarvi euro.

Altri truffatori

Ecco altri simpatici truffatori che pretendono di essere pagati sul conto bitcoin  19USnpS2HRnRMs63vNBN2cHQ7bmsvHdzQ1, perché pretendono di aver registrato le mie utenze durante attività a luci rosse.

Sono solo dei piccoli truffatori.

Aggiornamento, un nuovo truffatore:

139XY4ZjWYqHMJvGCySuzXq7o6tGccKKrJ

Ricordate di non fare nessuna transazione con i conti idicati.

Due cose e mezza che non mi piacciono del Kindle Voyage

Manca il download automatico dei dizionari. Sul touch se tenti di avere la definizione di una parola, in una lingua per cui non c’è il dizionario, il Kindle ti domanda se lo vuoi scaricare. Senza dover andare ne i miei contenuti e inviarlo.
La comoda gesture per passare velocemente da un capitolo all’altro. Lo so c’è la nuova navigazione, ma devi far uscire il menù, scegliere il tipo di navigazione, navigare i capitoli; contro una strisciata verticale del dito.
La mezza cosa: il sensore automatico della luminosità è un po’ pigro e non sempre ci azzecca.

Connection Pooling and the “Timeout expired” exception

Consider this pseudocode:

/*
	TData tabele of data to elaborate
*/
ConcurrentQueue<Exception> exceptions = new ConcurrentQueue<Exception>();
Parallel.ForEach(TData.AsEnumerable (),row =>
            {
                try
                {                    
                    using (WorItem p = new WorkItem(row,connectionstring))
                    {                        
                        p.DoWork();                        
                    }
                }
                catch (Exception ex)
                {                    
                    exceptions.Enqueue(ex);
                }
            });

Inside class WorkItem.DoWork, there are some database read with custom tableadapter and one finally write of results to db. The code inside DoWork code unexpectedly fail with error “Timeout expired” or “Failed to activate rows constraints…”. The failure is random. TData table contains about 50k rows. The code is executed on machin with 48 processors, connection pool contains between 20-30 concurrent pooled connection. The failure do not depends on the row, it’s totally random. If for some row i get some strange error, i the program run for that single row, no error is generated. So what to do to correct this error?

Solution 1:  disable connection pool. The problem is solved, but performance are very poor. Run time goes from 2 minutes and 30 seconds, to 16 minutes. Not good.

Solution 2: connection pool for every WorkItem object. In Ado.Net connection pool depends on connection string, so if you modify every connection for every object, connection pool is for object scope. But how modify the connection string on object basis. In connectionstring options there is App option. This option have no pratical effect, the only purpose of this option is that if you enlist the connection on the db server with sp_who, this name is shown as property of the connection. So if you modify the connection with some connectionstring=connectionstring+”App=”+hash(row), the connection pool occurs on per object basis. The drawback of this solution, is that in the destructor of the WorkItem objec (either with Finalize or Dispose) the connection pool must be cleared, with the simple call: SqlConnection.ClearPool(conn);. With this solution the excution time is more or less the same with unique connection pool. Connection pool size grows to 60-70 concurrent pooled connection.

Udate 3-5-2017

Solution 2 is not sufficient, in some heavvy load hour, the connection problem still is there. Be best solution is to open a single connection for every object, open the connection at the first use, en close the connection at Dispose of the WorkItem instance.

“Il principio olografico cui ho accennato nel capitolo 6 suggerisce che il nostro Universo contenga al più 10124 bit di informazione, cioè una media di circa 10 terabyte per ogni porzione di volume in grado di accogliere un atomo.”
Inizia a leggere questo libro gratuitamente: http://amzn.to/2eGo1uG