Archivi categoria: Programming

Rilasciato Notepad++ 5.0

Rilasciata da pochi giorni, la nuova versione 5.0 introduce numerose novità:

* Performance migliorate, soprattutto alla chiusura dell’applicativo.
* Suggerimenti per i parametri delle funzioni (function parameters calltip hint). In coppia con l’auto-completamento rappresenta una funzionalità fondamentale di ogni IDE. L’implementazione è sotto forma di estensione ed utilizza il formato xml.
* Evidenziazione dei tag corrispondenti (tags match highlight), utile per lo sviluppo di pagine web.
* Menù contestuale migliorato. Tutti i comandi forniti dai plugin possono ora essere aggiunti al menù contestuale tramite il file contextMenu.xml.

I binari per Windows sono disponibili al download sia come semplici file .zip sia con un installer vero e proprio.

Fonte: ossblog

Fletto i muscoli e sono nel vuoto.

Dividere il log in base al livello di errore con log4j

Con log4j è possibile creare più file di log a seconda del livello di errore. Ecco un esempio:





        
                
                     
                
        

        
      
      
      
      
                
                     
                
                
                        
                        
                
        

        
      
      
      
      
                
                     
                
                
                        
                        
                
   

        
      
      
      
      
                
                     
                
                
                        
                        
                
   

        
      
      
      
      
                
                     
                
                
                        
                        
                
   

        
                
        
        
        
        
        
        


Fonte: mail-archive

Fletto i muscoli e sono nel vuoto.

HTTPS su Tomcat

Per abilitare https è necessario un certificato. Su JavaStuff trovate un semplice tutorial su come crearne uno usando keytool delle j2sdk (es.: keytool -genkey -alias tomcat -keyalg RSA).

Fletto i muscoli e sono nel vuoto.

wp-syntax css

Ecco il pezzo di css che uso per wp-syntax

.code {
  background:transparent url(../images/quote-background-1.gif) repeat scroll 0%;
  border-color:#EEEEEE rgb(238, 238, 238) rgb(238, 238, 238) rgb(204, 204, 204);
  border-style:solid;
  border-width:1px 1px 1px 2px;
  font-family:Monaco,Courier,"Courier New";
  font-size:12px;
}

Fletto i muscoli e sono nel vuoto.

Ordinare un HashMap

E’ possibile ordine una hashmap in java utilizzando il seguente pezzo di codice:

Map yourMap= new HashMap();
// put some tuples in yourMap ...
Map sortedMap = new TreeMap(yourMap);

Fonte: Sun Java Forum

Fletto i muscoli e sono nel vuoto.

IE 7 Error: Scriptaculous Drag & Drop with ghosting

E’ da un po’ che uso Scriptaculous Drag & Drop su una web application. Ho notato che abilitando l’opzione ghosting (che dovrebbe permettere di clonare l’oggetto durante il dragging) al momento del drop con ie7 va in errore. Ho trovato questo fix e sembra funzionare:

src/dragdrop.js

      if (!this.element._originallyAbsolute)
	        Position.relativize(this.element);
             (-)  delete this.element._originallyAbsolute;
	     (+)  this.element._originallyAbsolute = null;
	        Element.remove(this._clone);
	        this._clone = null;
	    }

Fonte: dev.rubyonrails.org

Fletto i muscoli e sono nel vuoto.

nvl in mysql

PL/SQL

nvl(expr1, expr2)

se l’espressione expr1 è null, nvl ritorna espr2

se l’espressione expr1 non è nul, nvl ritorna expr1.

In mysql è possibile farlo con la funzione

ifnull(expr1, expr2)

 Mysql Reference

Fletto i muscoli e sono nel vuoto.

[Jboss MySQLValidConnectionChecker] Unexpected error in ping

Mi capitato di dover fare il deploy di un applicazione funzionante da tomcat a jboss.

Una volta configurato l’ambiente, l’applicazione parte, ma sembra molto lenta ed il log è pieno di eccezioni come la seguente:

[org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker] Unexpected error in ping

Girando un poi su google, ho letto un po’ di forum a cui si accennava all’errore. Si parlava di problema dovuto ad un bug di jconnector di mysql. Quindi ho aggiornato il driver passando dalla 5.0.5 alla 5.1.5. Risultato: l’applicazione va meglio e non ho più l’eccezione sopracitata.

Fletto i muscoli e sono nel vuoto.

TNS: lost contact !

Primo “vero” momento di “crisi” per KOS. L’applicazione va in eccezione – con tempistica o azione del tutto causale – con “ORA-03113 end-of-file on communication channel”.

Vengono fatte tutte le analisi e le ipotesi del caso, risultato: nulla!, il problema continua a persistere.

E’ qui che comincia la crisi, non si riesce a capire quale sia il problema e quindi nemmeno a trovare una soluzione. L’unica cosa di cui siamo certi – analizzando i log – è che il problema è iniziato il giorno 13 Dicembre alle 13 circa. Quindi azzardiamo qualsiasi ipotesi:

Pensiamo che sia KOS:

Anche se non ci crediamo molto, l’ultima release è stata fatta giorno 12 con una release note veramente scarna: solo qualche minor bug fixing.In quanto, concentrati sulla release del nuovo modulo di MAGAZZINO/FARMACIA. Facciamo tutti i controlli del caso, risultato: nulla!

Pensiamo che sia il nuovo SERVER PACS :

Hanno da poco installato un nuovo server che fungerà da PACS. Ipotizziamo che non sia stato configurato bene oppure che il transfer di immagini sia troppo oneroso e provochi problemi. Abbiamo provato a staccarlo, risultato: nada!

Pensiamo che sia ORACLE:

Attiviamo tutti i log possibili ed immaginabili e consultiamo tutti i tips del caso, i vari forum, e quant’altro ci possa dare una mano. Devo dire che oracle permettere di indagare veramente a fondo, al punto di poter “tracciare” i singoli pacchetti inviati nella comunicazione client-server.

Qui di seguito alcuni link di riferimento:

http://www.orafaq.com/wiki/Sqlnet.ora

http://www.orafaq.com/faqnet.htm

http://www.oracle-base.com/articles/misc/OracleNetworkConfiguration.php

http://download.oracle.com/docs/cd/B14117_01/network.101/b10775/troublestng.htm

http://forums.oracle.com/forums/thread.jspa?messageID=2256122

Ma senza nessun risultato.

Pensiamo che sia il SERVER che ospita ORACLE:

Ma non troviamo alcun log che possa indicarci qualche malfunzionamento. Risutato: buio completo!

Pensiamo che sia lo SWITCH che collega i SERVER alla rete:

Ma anche qui facciamo “quasi” un buco nell’acqua, troviamo un cavo difettoso (per una scheda secondaria di un altro server). Risultato: nulla di che!

Oramai siamo in preda alla follia, azzardiamo qualsiasi ipotesi anche senza senso, torniamo a pensa che sia ORACLE:

Magari qualche query errata, o comunque qualcosa che impegni il db cosi tanto da far cadere le connessioni. Un corruzione di indici. Risultato: ancora niente.

Torniamo a pensare che sia un problema di rete:

Attiviamo ethereal, pensiamo che qualche macchina mandi pacchetti anomali provocando disconnessioni o che le workstation del pacs dia problemi. Risultato: boh!

Giorno 20 Dicembre, siamo distrutti, facciamo ipotesi che potrebbero essere definite ‘fantasiose’: “attacco DOS”:

Stacchiamo firewall, e quant’altro, siamo esclusi dal mondo esterno. Sono le 19.03, oramai c’è solo silenzio. Quando all’improvviso: “drin! drin!”. Il telefono!… direte voi! Non può essere! … abbiamo scaricato i cordless a furia di telefonate da parte degli operatori e dei medici che non riuscivano lavorare. Allora cosa ?… una cosa che ci ha inquietati tutti! Squillava un contatto skype di un collega! Tutti in coro: ma come !?! siamo scollegati da internet. A me viene i mente scene di un film come “the ring”. Un collega ha scritto come topic sul suo contatto skype:”una chiamata dall’aldilà“.

Veniamo a scoprire tramite un tracert dell’esistenza di un router “sconosciuto”. Indagando, scopriamo che tale router è stato proprio installato in concomitanza con l’inizio dei nostri problemi. Come potete intuire, è un router che non dovrebbe proprio essere presente nella nostra rete e ci collegava in “malomodo” ad un’altra rete che non ha nulla a vedere con la nostra.

Risultato: Scollegandoci da quel router maledetto si è risolto il problema.

Fletto i muscoli e sono nel vuoto !

ps. Buon Natale a tutti 😀

Ruby Pdf::Writer UTF-8 Support Tips

Pdf::Writer non supporta lo codifica utf-8. Per ovviare al problema è possibile usare un metodo che converti le stringhe in formato iso prima di darle in pasto ad pdf::writer.


def to_iso(field)
  ic_ignore = Iconv.new('ISO-8859-15//IGNORE//TRANSLIT', 'UTF-8')
  field = ic_ignore.iconv(field)
  ic_ignore.close

  field
end