martedì 27 luglio 2010

Funzione analitica oracle per ottenere il valore del record precedente

lag (expression) over (order-by-clause)
lag (expression, offset) over (order-by-clause)
lag (expression, offset, default-value) over (order-by-clause)

lag (expression) over (query-partition-clause, order-by-clause)
lag is an Analytical function that can be used to get the value of an attribute of the previous row. If you want to retrieve the value of the next row, use lead instead of lag.
The following example will demonstrate this:
A table is created with two attributes: N and M.
set pages 50
set feedback off

create table lag_exp (
  n number,
  m number
);

insert into lag_exp 
  select rownum, mod(rownum * 19 , 13) 
    from all_objects 
   where rownum < 21;
The following select statement will return n and m and additionally a column with the value of M in the previous row:
select n, m, lag(m,1) over (order by n) "Previous M" from lag_exp;

Settare una acl su cartella linux

  • Assign ACL group permission read/write (rw) to a single group: setfacl -m g:groupname:rw- filename
    Option -m : Modify the ACL
  • Assign ACL group permission read/write (rw) to a single user: setfacl -m u:userid:rw- filename
  • List ACL permissions: getfacl filename
  • Remove ACL from a file: setfacl --remove-all filename

giovedì 8 gennaio 2009

Google Sites

Arriverò forse un po' tardi, ma ho scoperto soltanto ieri Google Sites.
Infatti in perfetto stile Google la perle di solito stanno nascoste dietro le quinte e servizi formidabili come Google Sites ci mettono un po' per divenire popolari.
Goole Sites sostituisce Google Pages per la creazione di siti web e lo fa alla grande.
Oltre alla marea di temi presenti e alla possibilità di customizzare colori, caratteri, intestazioni ecc. ecc. Google Sites emerge soprattutto per la possibilità di usare i famosissimi gadgets disponibili per iGoogle e Google Desktop.
Chiunque già possegga un account Google può editare interfacce web in modalità WYSWYG.
Fin qui niente di straordinario , altri servizi web lo fanno. Google introduce però una vera e propria gestione delle pagine in modalità Wiki permettendo un editing collaborativo del sito o dei siti (infatti ogni account google può attivare non uno ma n siti web).

I pregi di questo servizio sono in definitiva molti:
la gratuità del servizio, la customizzabilità, l'approccio collaborativo e la semplicità di utilizzo.

Interessante possibilità è quella di poter reindirizzare il proprio dominio verso il sito ospitato da google. Si può dunque registrare un dominio .it (non disponibile presso Google Apps) e settare i dns del proprio provider di dominio verso Google Sites.

Dopo l'era dei portali , quella dei bloggers sembra tornare quella dei vecchi e tanto discriminati siti web , di seconda generazione però !

martedì 16 dicembre 2008

PHP SMTP server response: 550 5.7.1 Unable to relay for xxxx@xxxx

Se un codice PHP istallato in IIS dovese dare questo errore durante l'invio di una mail, cioè durante l'utilizzo del metodo mail() si può fare questo tentativo:

probabilmente mancano in IIS i permessi necessari per l'utilizzo dell'SMTP virtuale.

  • Andare in IIS ed accedere alle proprietà del "Server virtuale SMTP"
  • scegliere "Accesso" dalle tab
  • premere il pulsante "Limitazioni inoltro",
  • selezionare il check "Tutti tranne quelli selezionati nell'elenco"
  • verificare che sia attivo il check in "Consenti inoltro a tutti i computer che dispongono di autorizzazioni".

a questo punto l'interprete php dovrebbe essere in grado di inviare mail.

domenica 5 ottobre 2008

martedì 11 marzo 2008

Oracle 9.2.0.x in fedora core 4 + e versioni linux con gcc recenti

http://tldp.org/HOWTO/html_single/Oracle-9i-Fedora-3-Install-HOWTO/#sect_05

http://www.linuxquestions.org/questions/linux-software-2/error-on-installglibc2.0-not-defined-234637/

martedì 4 marzo 2008

VirtualBox in Vista rete assente

Istallando Virtualbox con vista come Host e Win98 come Guest può succede che la rete in Win98 non funzioni.

Si deve generare una Host Interface

Tramite le impostazioni della macchina virtuale.

Questo genererà sul sistema host (Vista) una connessione di rete virtuale.

A questo punto è necessario effettuare il bridge fra la connessione reale e la virtuale selezionandole entrambe e creando il bridge tramite il menu a tendina.

Entrare successimamente nel bridge e configurare l'indirizzo ip (della macchiana host) , l'indirizzo ip della macchina guest verrà settato normalmente su Win98.

Il tutto è comunque spiegato all'interno del manuiale virtualbox.

martedì 12 febbraio 2008

Driver nVidia su Laptop HP Pavilion

Ho un notebook HP Pavilion tx1250 con scheda video GeForce Go 6150 e Windows Vista.

I drivers resi disponibili da Hp sono sempre più vecchi di quelli ufficiali nVidia i quali però non si istallano sul notebook perchè si accorgono che è un Hp (e vuole i suoi drivers).

Per avere gli ultimi drivers disponibili è necessario scaricarli da

http://www.laptopvideo2go.com/forum/


scaricando anche il file INF moddato e aggiornare manualmente i driver "da disco".

Purtroppo per vista non c'è ancora l'utility nView che permette di avere molte funzionalità e shortcut per il multimonitor, aspettiamo un po'.......

martedì 15 gennaio 2008

Unire sottotitoli a file video

Uno dei molteplici modi:
Usare VirtualDub con istallato il filtro subtitler.
Subtitler permette di incorporare i subtitoli nel file video ma i sottotitoli devono essere in formato SSA (Substation Alpha).
Per effettuare una conversione per esempio dal formato srt si può usare DivXLand Media Subtitler.

Con DivXLand Media Subtitle aprire i sottotitoli e andare in inpostazioni -> formato e selezionare il formato Substation Alpha.
A questo punto salvare il file.

In VirtualDubMod aprire il file video, caricare il filtro subtitler e scegliere il file ssa. Poi verificare che sul menu video ci sia selezionato Full Processing Mode, and under Audio select Direct Stream Copy.

Scegliere l'algoritmo di compressione divx o xVid e save as Avi ...

Trovare qualcos'altro da fare per le prossime 2 - 3 ore.

Il link dal quale ho tratto le informazioni.

lunedì 14 gennaio 2008

Accesso contemporaneo da + thread ad una stessa hashmap statica

Dal sito Ibm:

Link

ConcurrentHashMap

The ConcurrentHashMap class from util.concurrent (which will also appear in the java.util.concurrent package in JDK 1.5) is a thread-safe implementation of Map that offers far better concurrency than synchronizedMap. Multiple reads can almost always execute concurrently, simultaneous reads and writes can usually execute concurrently, and multiple simultaneous writes can often execute concurrently. (The related ConcurrentReaderHashMap class offers similar multiple-reader concurrency, but allows only a single active writer.) ConcurrentHashMap is designed to optimize retrieval operations; in fact, successful get() operations usually succeed with no locking at all. Achieving thread-safety without locking is tricky and requires a deep understanding of the details of the Java Memory Model. The ConcurrentHashMap implementation, along with the rest of util.concurrent, has been extensively peer-reviewed by concurrency experts for correctness and thread safety. We will look at the implementation details of ConcurrentHashMap in next month's article.

ConcurrentHashMap achieves higher concurrency by slightly relaxing the promises it makes to callers. A retrieval operation will return the value inserted by the most recent completed insert operation, and may also return a value added by an insertion operation that is concurrently in progress (but in no case will it return a nonsense result). Iterators returned by ConcurrentHashMap.iterator() will return each element once at most and will not ever throw ConcurrentModificationException, but may or may not reflect insertions or removals that occurred since the iterator was constructed. No table-wide locking is needed (or even possible) to provide thread-safety when iterating the collection. ConcurrentHashMap may be used as a replacement for synchronizedMap or Hashtable in any application that does not rely on the ability to lock the entire table to prevent updates.

These compromises enable ConcurrentHashMap to provide far superior scalability over Hashtable, without compromising its effectiveness in a wide variety of common-use cases, such as shared caches.


Powered By Blogger