Tre soluzioni a tre problemi di tag ID3

Con la possibilità di caricare la propria libreria musicale su Google Listen (fino a 20000 brani) sarà sicuramente sorta a molti (di coloro che avevano ignorato con convinzione l’arrivo di iTunes) la necessità di sistemarne i tag ID3, visto che sono L’UNICO sistema utilizzabile per organizzare la propria musica, e modificarli una volta caricati è impossibile. Assumo di tanto in tanto l’utilizzo di windows, ma voi siete liberi di segnalarmi alternative per altre piattaforme.

Problema 1: Ho qualche file mp3/ogg/ecc. con il nome file contenente autore e titolo, ma che non contengono tag ID3 o sono tutti sballati.

Il metodo più comodo ed efficente che ho trovato finora è l’auto-tag di winamp (è un plugin, “Nullsoft Auto-Tagger”; se non lo trovate installatelo). Aprite il file con winamp, visualizzatene le informazioni (ALT+3), cliccate il tastone auto-tag. Se volete taggare file multipli: metteteli in playlist, selezionateli, e dal menu contestuale scegliete Invia a: Auto-Tag. A questo punto winamp interrogherà il database di Gracenote (dovete essere connessi ad internet) e vi darà la sua modesta opinione su quali dovrebbero essere i metadati del file, con il grado di relativa sicumera sicurezza. Controllate sempre che non abbia scambiato il vostro gruppo preferito di musica folk emiliana in un gruppo death metal del Perù.

Problema 2: Ho un bel po’ di file mp3/ogg/ecc. divisi in cartelle per autori e album ma i nomi di file e cartelle sono imprecisi, e i tag ID3 sono di qualità altalenante. Winamp non sa che pesci pigliare.

Ho scoperto da poco e sono diventato immediatamente fan di MusicBrainz Picard. 10 anni fa andava per la maggiore cddb.com (poi diventato il già citato Gracenote e nel frattempo rimpiazzato da alternative libere quali freedb.org), il cui funzionamento, mascherato da diversi software che automatizzavano il tutto, era semplice: l’identificativo univoco del cd era ricercato nel database online; se veniva trovato, i tag id3 del vostro cd venivano popolati in base a quanto presente lì; se non veniva trovato, avevate la possibilità di compilarli voi e inviarli al database in modo che nessun altro dovesse farlo.

Purtroppo questi servizi non facevano alcun controllo su quello che veniva loro inviato dagli utenti, e i pur altruisti utenti che compilavano l’elenco dei brani dei cd da loro rippati non di rado erano accurati come un chirurgo con la sega elettrica. Il progetto MusicBrainz mira a creare un database attendibile e corretto, non solo degli album ma di tutte le loro varie edizioni nei vari paesi del mondo, in cui ogni utente deve guadagnarsi la fiducia del sistema prima di poter inserire il piffero che vuole. I risultati non sono malvagi, anche se forse c’è un eccesso di costrizioni.

MusicBrainz Picard è un software che si appoggia al database di MusicBrainz per sistemare i vostri tag ID3 senza necessariamente ripartire dal CD originale, permettendo di:

  • Confrontare i tag ID3 dei vostri file  con quelli contenuti nel database online, e “indovinare” in base al grado di corrispondenza a quale album (e a quale versione dell’album) appartengono i brani e quindi quali sono i tag che dovrebbero avere; è consigliabile fare questa operazione cartella per cartella (assumendo che abbiate gli album suddivisi in cartelle)
  • Salvare nei file audio i tag ID3 corretti recuperati online
  • Rinominare file e cartelle in base a un pattern a voi gradito partendo dai tag (indipendentemente dal fatto che siano stati recuperati online o immessi da voi)

Problema 3: Ho una marea di file mp3 con nomi e tag ID3 tutti sballati, e vorrei darli in pasto all’auto-tagger o a MusicBrainz impostandogli almeno l’autore o l’album corretto.

I software per la modifica batch dei tag ID3 abbondano, e per windows il primo risultato restituito da Google va già benissimo: MP3Tag.

Problema bonus: Ho una raccolta di ore e ore di musica classica a cui vorrei sistemare i tag.

Riscopri la tua fede e datti alla preghiera. E’ l’unico modo.

Problemi negli acquisti notturni con carta Mastercard del conto Bancopostaclick

Non so se sia una cosa normale delle carte di debito Mastercard, o se sia normale per tutte le carte Bancoposta, ma se vi capita di fare acquisti intorno alle due di notte con la carta di debito Mastercard del conto Bancopostaclick potrebbe accadere che la carta vi venga rifiutata.

La cosa è seccante se state facendo acquisti online, ma perlomeno potete evitare di farli a quell’ora; molto più seccante è se qualche addebito automatico viene fatto (magari regolarmente) a quell’ora, o se siete negli Stati Uniti e state provando a pagare una cena al ristorante (ma non so cosa succederebbe in questo caso).

Su alcuni negozi online far accettare nuovamente una carta che sapete essere sicuramente valida può essere un calvario, perciò state attenti.

Update: mi dicono che il problema si presenta anche con la postepay. Succede con altre banche?

Barcellona – Trasporti pubblici

Esulo per la prima volta dallo schietto argomento tecnico ma rimango nell’utile: alcune cose sui mezzi di trasporto di Barcellona che avrei voluto trovare nella guida turistica (mi domando perché continuo a comprare le Lonely Planet) o su internet.

Il biglietto T10

Di questo si parla ampiamente e io non aggiungerò nulla: è un biglietto universalmente consigliato e consigliabile per girare per Barcellona, permette di fare 10 viaggi in una singola zona della rete urbana (la zona 1 contiene tutto quello che serve) e si può condividere tra più persone (in metro lo si fa passare nella macchinetta e lo si lascia per il passeggero successivo, che lo convaliderà a sua volta). Pare che aumenti ogni anno, ma anche a 9,45€ è davvero un affare.

Uno dei modi per arrivare dall’aereoporto (El Prat) al centro di Barcellona (Plaça de Catalunya) con meno di 1 euro

L’aereoporto è costituito da 2 terminal, distanti qualche chilometro l’uno dall’altro. A questo indirizzo potete trovare vari modi per coprire il tragitto aereoporto-centro, ma vorrei dettagliarne uno in particolare, valido se partite dal terminal 1 (il più lontano dal centro) e che dura circa 90 minuti (comprese eventuali scarpinate e tempi di attesa nelle stazioni di treni e metro).

  1. Una volta atterrati, dirigetevi fuori dal terminal dove si accalcano pullman e autobus di linea e individuate la navetta (gratuita) per il terminal 2. Non ho potuto verificare, ma credo ci siano due tipi di navette: quella che va alla zona partenze del terminal 2, e quella che va invece direttamente alla stazione dei treni RENFE. Cercate di prendere la seconda perché risparmierete una scarpinata.
  2. Una volta nel terminal 2, se avete preso la navetta sbagliata dirigetevi verso la stazione dei treni RENFE (qualcosa meno di 10 minuti a piedi), altrimenti già ci siete. Fate il biglietto per la linea urbana, ai distributori automatici o alla biglietteria; il consiglio è ovviamente di prendere un T10. Inseritelo alle barriere e mettetevi in attesa del treno (ne passa uno ogni mezz’ora). Non provate a salire prima che tutti siano scesi se non volete sentire il fischio potente dell’addetto alla sicurezza.
  3. Avendo posto come meta Plaça de Catalunya, potete scendere dal treno RENFE in due stazioni, una relativamente comoda e l’altra con un lato buffo. Quella comoda è Sants Estaciò, da cui potete prendere (dopo una scarpinata) la linea 3 (verde) per Trinitat Nova per due fermate, e cambiare a Plaça de Espanya per prendere la linea rossa verso Fondo, che passa proprio da Catalunya. L’opzione buffa è di scendere alla stazione RENFE successiva, Passeig de Gracia (che è già considerabile centro di per sé, a dirla tutta), e poi seguire le indicazioni per la linea gialla (direzione La Pau), che con vostro stupore andranno su per le scale e proseguiranno sul marciapiede della via esterna nella forma di righe verniciate che vi porteranno per diverse centinaia di metri in giro per la città, prima di farvi rientrare nel sottosuolo.
  4. A questo punto, o con la linea gialla o con la linea rossa, siete arrivati a Plaça de Catalunya. Bravi.

La metropolitana di Barcellona non è amichevole con gli invalidi e chi non ha la forza di sollevare il proprio trolley

In molte stazioni ci sono ascensori e barriere compatibili con sedie a rotelle, in più stazioni ci sono scale mobili, ma molto spesso vi troverete a salire e scendere centinaia di gradini per uscire, entrare, o passare da un treno all’altro. Col caldo che fa in metropolitana, poi, se avete una valigia pesante vi ritroverete grondanti di sudore in men che non si dica. Talvolta vi sembrerà di fare sottoterra tanti ettometri quanti vi separano dalla vostra meta, solo nella direzione del treno che prenderete per raggiungerla invece che in quella della meta stessa. C’è un po’ un effetto “piedibus”, di essere tutti inquadrati in un vagone virtuale a propulsione umana.

Intendiamoci, la rete dei trasporti pubblici di Barcellona è in generale molto buona, ma questi problemi possono essere grossi per qualcuno e vanno sottolineati.

Arrivare al Tibidabo

Il Tibidabo è un posto che vi vogliono far visitare nella tarda mattinata o nel pomeriggio. Arrivarci alla mattina prima delle 10.45 vuol dire scarpinare. Punto. Potete benissimo arrivare a Plaça Kennedy / Avinguda del Tibidabo alla mattina presto in treno, poi da lì potete fare una passeggiata di 20 minuti, prendere il 196, o aspettare le 10.00 per il primo viaggio del Tramvia Blau (che richiede un biglietto a parte, non facendo parte delle linee di trasporto urbano), ma a Plaça del Doctor Andreu vi verrà palesata la triste verità che il primo viaggio della funicolare sarà alle 10.45. Potete benissimo proseguire a piedi, se avete voglia di scarpinare un’altra ora. Ci sono più vie alternative per arrivare in cima, ma non saprei quali consigliarvi (io ho abbandonato a questo punto).

Se il vostro interesse per il Tibidabo è legato al parco di divertimenti, poi, cercate di non arrivare prima di mezzogiorno e informatevi se in quel giorno particolare è aperto (è più chiuso che aperto, e in modo alquanto irregolare).

Sicurezza in metropolitana

Non so se sia stato un periodo particolare, ma nella settimana che sono stato a Barcellona ho sempre visto molto personale della metropolitana in giro (nelle stazioni più importanti), compresi addetti alla sicurezza che talvolta hanno fermato personaggi sospetti (in modo peraltro molto pacato). In alcuni treni c’è una sorta di citofono per chiamare aiuto. Ho avuto solo mezza brutta esperienza (in una stazione secondaria anche se molto frequentata) con un ragazzino che mi ha seguito per diversi metri in modo pedestre e palese, e che quando mi sono girato per vedere cosa faceva, a 30 cm da me, non ha staccato un attimo gli occhi dal mio orologio. Probabilmente ha stabilito che non valeva abbastanza da rischiare alcunché.

Adobe Lightroom: “Impossibile contattare il servizio Web Flickr. Controllate la connessione Internet.”

In inglese il messaggio è “Could not contact the Flickr web service.”. Tra le numerose (lecite e correlate) cause per cui questo può succedere mentre pubblicate qualcosa su Flickr usando il relativo plugin di Lightroom, la più originale, strana e a rischio di far tirar giù i santi di tutte è: avete messo un a-capo nella descrizione (o in un altro metadato) della foto. Una volta era possibile (sicuramente qualche settimana fa e con Lightroom 4), oggi sembra che crei problemi (non mi è chiaro se dovuti a Flickr o a Lightroom 4.1). Togliete gli a-capo e l’errore sparirà.

How Mat Honan’s digital life got hacked (badly)

From his thorough and shocking report:

Since he already had the e-mail, all he needed was my billing address and the last four digits of my credit card number to have Apple’s tech support issue him the keys to my account.

So how did he get this vital information? He began with the easy one. He got the billing address by doing a whois search on my personal web domain. If someone doesn’t have a domain, you can also look up his or her information on Spokeo, WhitePages, and PeopleSmart.

Getting a credit card number is tricker, but it also relies on taking advantage of a company’s back-end systems. Phobia says that a partner performed this part of the hack, but described the technique to us, which we were able to verify via our own tech support phone calls. It’s remarkably easy — so easy that Wired was able to duplicate the exploit twice in minutes.

First you call Amazon and tell them you are the account holder, and want to add a credit card number to the account. All you need is the name on the account, an associated e-mail address, and the billing address. Amazon then allows you to input a new credit card. (Wired used a bogus credit card number from a website that generates fake card numbers that conform with the industry’s published self-check algorithm.) Then you hang up.

Next you call back, and tell Amazon that you’ve lost access to your account. Upon providing a name, billing address, and the new credit card number you gave the company on the prior call, Amazon will allow you to add a new e-mail address to the account. From here, you go to the Amazon website, and send a password reset to the new e-mail account. This allows you to see all the credit cards on file for the account — not the complete numbers, just the last four digits. But, as we know, Apple only needs those last four digits. We asked Amazon to comment on its security policy, but didn’t have anything to share by press time.

And it’s also worth noting that one wouldn’t have to call Amazon to pull this off. Your pizza guy could do the same thing, for example. If you have an AppleID, every time you call Pizza Hut, you’ve giving the 16-year-old on the other end of the line all he needs to take over your entire digital life.

Useful Eclipse plugins for java developers

JD-Eclipse | Java Decompiler – http://java.decompiler.free.fr/?q=jdeclipse
Very simple to use. CTRL+Click on or debug a class you don’t have the source of, and you can see it. Depending on how it has been compiled you can see it seamlessly as it was the real source (this is the case for JDK classes), or in debug you could have some issue tracking down the exact line it’s executing (the debugger chooses a line but you have to look for comments indicating original lines). The stand-alone Java Decompiler JD-GUI is very good too.
UCDetector: Unnecessary Code Detector – http://www.ucdetector.org/
Imagine you have a big project with thousands of classes and methods, and you suspect that the majority of those is not really necessary: this plugin is for you. It can check for hard-coded references in your .java sources and the presence of full-path or simple name matching of classes in text files (you can specify regular expressions for files to check, but I’ve managed to only use file extensions, I’m not really sure of what kind of regular expressions it’s using), for example servlet mappings in web.xml. You can decide to be notified of a zero or a low number of references to whole classes or single methods. If you delete unnecessary classes and method you can then re-check to see if something new pops out. The process can be a bit slow, but that’s because it’s thorough.
Classpath Checker – http://classpathchecker.free.fr/
This is an old plugin that I used some time ago (I don’t know if it’s still working). It warns you of unresolved dependencies in the classpath, which is useful if the unresolved dependencies are in some jar in your project. You can get a ton of false positives, as many jars can have unresolved dependencies for parts you don’t use (and so you haven’t provided the dependencies of), but if you know where to look it may be of great help.
MercurialEclipse – http://javaforge.com/project/HGE
A plugin for using Mercurial as (D)VCS. It’s in active development, and it has much increased it’s usability in the last year. It’s almost perfect for everyday use (commit, pull, push, merge, switch to, add branch, show history, compare), even though for particular uses or external mercurial plugins you could often need the good old command line or TortoiseHG. Switching between very different branches or revisions can be very slow (TortoiseHG is probably much faster).

Acquisti su Facebook pagando con paypal, non ricevi il prodotto, apri una contestazione su paypal, nessuno ti considera, ti ridanno i soldi… Dopodiché…

Ti sloggano da Facebook e quando rifai il login:

Informazioni sulle contestazioni relative ai crediti Facebook

Con questo messaggio intendiamo comunicarti che alcuni addebiti sul tuo account Facebook sono stati oggetto di contestazioni.

Se non hai sollevato tali contestazioni ti invitiamo a contattare il tuo organismo finanziario o chiunque condivida la tua fonte di finanziamento per chiedere maggiori informazioni.

In futuro, ti invitiamo a metterti prima in contatto con noi per qualsiasi domanda o problema relativo agli acquisti su Facebook: a tale scopo, visita il Centro assistenza di Facebook all’indirizzo seguente:https://www.facebook.com/help/?page=271530469565859. Un rappresentante di Facebook sarà lieto di aiutarti a risolvere il problema e approvare eventuali rimborsi, ove appropriato. Facebook gestisce tutte le contestazioni e le richieste valutandole caso per caso.

Nessuna limitazione è stata applicata al tuo account in seguito a tali contestazioni, tuttavia, se dovessimo ricevere ulteriori contestazioni, potremmo adottare misure quali bloccare i tuoi pagamenti su Facebook in maniera definitiva, per proteggere Facebook e la nostra comunità di sviluppatori da contestazioni ripetute. Per qualsiasi domanda relativa a questa e-mail, ti invitiamo a visitare la sezione dedicata alle contestazioni del nostro Centro assistenza all’indirizzo https://www.facebook.com/help/?page=227193600629058.

Il nostro obiettivo è migliorare la tua esperienza con i crediti Facebook, pertanto la tua opinione è importante. Per aiutarci a rispondere alle tue domande, compila il questionario alla pagina successiva.

Grazie per la collaborazione.

Il team di Facebook per la gestione delle attività a rischio

La storia

Volevo leggere alcuni articoli del numero 285 di The Games Machine, rivista di videogiochi che leggevo assiduamente anni fa. L’opzione cartacea era più costosa sia in termini di denaro che in termini di smaltimento (non ho più posto per cose di carta che escono tutti i mesi), così ho approfittato dell’opzione Facebook, dove è possibile pagare meno di 1 euro ogni numero della rivista. Dunque faccio l’acquisto pagando con paypal (è un pagamento per acquistare i Facebook Credits necessari per acquistare la rivista), cerco di arrivare alla pagina della rivista che mi interessa leggere, e invece mi viene nuovamente chiesto se la voglio acquistare. Prova che ti riprova, non c’è verso: ho pagato per qualcosa che non ho ottenuto.

Avendo perso interesse a risolvere il problema, mi sono illuso pensando che se Facebook fa una cosa (=permette i pagamenti paypal) allora vuol dire che è in grado di gestirla, così ho deciso di aprire una contestazione su paypal. Non è che volessi i soldi indietro (78 centesimi!), ma pensavo che ci avessero pensato: qualcuno prima o poi avrebbe aperto una contestazione paypal. Avrei dovuto capirlo quando ho visto che la mail di pagamento non era quella dello sviluppatore dell’applicazione, ma paypal-charges@support.facebook.com. Quindi sì, qualche sistema per veicolare i pagamenti paypal l’hanno messo su, ma se qualcuno fa qualcosa di appena diverso apriti cielo.

La contestazione è stata da me compilata con amore  e dovizia di particolari. Potevano mandarmi una risposta automatica “ti preghiamo di chiudere questa contestazione e aprirla su Facebook dalla pagina Impostazioni di pagamento, che là riusciamo a gestirla”, ma anche “no, col cavolo, non hai modo di dimostrare che non hai ricevuto il bene digitale, ti attacchi”. E invece niente, il silenzio più assoluto. A un certo punto paypal mi chiede “senti, ma il tuo problema l’hai risolto? Se sì, chiudiamo la pratica; se no, convertila in un reclamo”. Be’, io l’ho convertita in un reclamo ovviamente: magari come reclamo mi avrebbero dato retta. E invece no, il silenzio è proseguito. Finché sono scaduti i termini e mi hanno ridato i 78 centesimi.

Da tutto ciò ho tratto degli insegnamenti: è meglio che lasci passare molto tempo (e diversi cicli di rodaggio da parte di ulteriori milioni di persone) prima di riprovare a fare acquisti via Facebook; non devo dare per scontato che chi macina milioni di dollari nel ramo dell’informatica sia necessariamente più furbo di me che vivo un po’ più terra-terra; forse sono finiti i tempi in cui le impostazioni su Facebook erano distribuite con la cura e attenzione di un mitragliatore gatling, giacché adesso sembrano effettivamente posizionate con più raziocinio.

Oracle, deframmentare e ricompattare tabelle, high watermark e initial extent

1.

Vi è mai capitato di svuotare una tabella contenente una mole abnorme di dati e poi scoprire che il tablespace è occupato tale e quale a prima? Le gioie dell’high watermark, cioè il livello più alto che è stato raggiunto dai dati contenuti nella tabella, che Oracle conserva gelosamente come una stima attendibile della dimensione probabile che raggiungeranno (e magari supereranno) detti dati. Di solito Oracle ha ragione, ma può capitare che un errore o un test portino il livello dell’acqua alta su ordini di grandezza che normalmente non sarebbero mai raggiunti.

Altrimenti, avete mai notato un anomalo peggioramento delle operazioni di I/O su una tabella neanche troppo grande, scoprendo poi che è dovuto alla sua frammentazione?

Azzerate l’high watermark e deframmentate la tabella spostandola da un tablespace all’altro (e, se serve, ritorno):

ALTER TABLE &TABLE_NAME MOVE TABLESPACE &TABLESPACE_NAME;

Idee per opzioni alternative si possono trovare ad esempio qui.

2.

Avete mai provato a importare il dump di una tabella vuota, ma che aveva una dimensione iniziale più grande di quanto disponibile nel tablespace in cui veniva importata (e perciò dava errore di importazione)? Oracle alloca per una tabella solo lo spazio che serve, ma se la tabella è stata creata con la clausola STORAGE (INITIAL […]) verrà allocata al minimo la dimensione indicata. Se cercate in giro, scoprite che modificare la dimensione iniziale della tabella non sembra tanto banale, e la (semplice) soluzione qui proposta viene proposta quasi con sufficienza, “ah, sì, be’, si può fare così”.

L’unica soluzione se ormai avete il dump e non potete rifarlo è dimensionare correttamente i tablespace di destinazione prima dell’importazione. Ma se avete modo di rifare l’export, e la dimensione specificata per la tabella è effettivamente sovradimensionata rispetto ai dati contenuti, un’opzione è cambiare la clausola STORAGE per la tabella (qui riporto la tabella nel tablespace iniziale, ma potreste non volerlo):

ALTER TABLE TABELLA MOVE TABLESPACE TBLSP_TEMP;

ALTER TABLE TABELLA MOVE TABLESPACE TBLSP_ORIGINALE STORAGE (INITIAL 10M NEXT 1M);

Consigli generali

Bisogna specificare che l’operazione di spostamento di tablespace è abbastanza sicura, ma evitate di eseguirla su tabelle grosse in ambienti di produzione, poiché potrebbe interrompere ogni altra operazione sulla tabella per tempi non trascurabili.

Ovviamente dovrete verificare di avere sul tablespace destinatario abbastanza spazio da contenere la tabella da spostare, non solo per lo spazio effettivamente occupato dai dati (la cui stima è ricavabile da una semplice moltiplicazione, numero di righe*dimensione occupata da una riga) ma anche per l’INITIAL EXTENT impostato nella tabella: potreste avere una tabella vuota, ma se come INITIAL EXTENT ha 100M, allora occuperà 100 MB del vostro tablespace.

Lo spostamento di tablespace così come l’ho presentato non è possibile se nella tabella sono presenti campi LONG.

Va poi detto che lo spostamento di tablespace rende invalidi gli indici, il che potrebbe generare errori durante le query (invece che il loro semplice non utilizzo). Ricostruite tutti gli indici della tabella dopo averla spostata nel tablespace desiderato:
begin
for rst in (select INDEX_NAME, TABLESPACE_NAME from user_indexes where table_name='TABELLA' and index_type like '%NORMAL')
loop
execute immediate 'alter index ' || rst.INDEX_NAME || ' rebuild ' || rst.TABLESPACE_NAME || ' [STORAGE (INITIAL ... NEXT ...)] [SHRINK SPACE COMPACT]';
end loop;
end;
/

I più arditi potranno ovviamente sbatacchiare interi schemi di tabelle da un tablespace all’altro con elaborati blocchi di codice anonimo. Ma non fornirò loro la pistola: Oracle è un DBMS che va temuto e rispettato, ed è sempre meglio capire cosa si sta facendo prima di farlo.

Skydrive sta per passare da 25 a 7 GB di spazio gratuito, ma se agite in fretta potete conservarli

Facendo il login nel vostro spazio Skydrive in questi giorni scoprirete che, se non fate niente, lo spazio gratuito passerà silenziosamente da 25 a 7GB; per chi è già utilizzatore viene però data la possibilità di conservare i 25GB di spazio semplicemente schiacciando un bottone. Farlo non guasta.

I nuovi utenti invece avranno d’ora in poi solo 7GB di spazio (che non si buttano via).

Eclipse and his quite zombie/nazi JavaScript Validator

Since when I’ve begun to code in Java (in 2005) I’ve tried many IDEs, but the best is still probably Eclipse. Sadly enough, it’s the best but not that good in every aspect. Sometimes you spend whole days trying to just make something work: while you’re doing everything right, he’s trolling you not really doing something at some point; so the hard part is finding out what it is and then doing it manually.

The issues and solutions I’m going to list apply to Indigo SR1, but probably to many other versions (from the beginning until the end of times, as we are used to with Eclipse). Solutions are mainly from other people, go see the linked threads and posts for credits. I just wanted to have them all in the same place.

Issues with Eclipse, chapter 1: JavaScript Validator

1) Sometimes a NullPointerException pops up (constantly, at every build) saying “Errors running builder ‘JavaScript Validator’ on project ‘${project}’. java.lang.NullPointerException”.

The solution, as you can read here and in many other places, is to open project properties (this is a project-only option) and disable (or remove altogether if it’s not enough) Builders -> JavaScript Validator.

2) Errors on JavaScript files sometimes are reported (as the usual little red icon) on the project tree, even though you have solved them in the source files and even after a full rebuild or a manual “Validate”; sometimes Eclipse continues to report them at the very same line of the opened file, even though the error is not there anymore.

The causes can be many (one of them is “have you messed with it too much?”), and getting rid of this may be done the taliban or the diplomatic way. The diplomatic way to clear the report of a non-existent JavaScript error is to find it in the “Problems” tab and deleting it. If it works, good for you. The taliban way is to blow up the folder

${workspace}/.metadata/.plugins/org.eclipse.core.resources/.projects/${project}

as suggested here. In this way you’re clearing a cache for project metadata (has it errors? are all changes committed to the repository? and so on), and in order to regenerate it you have to close and reopen the project.

3) Sometimes you just want to ignore JavaScript errors because you don’t care.

You can try to disable them for a single project (but don’t assume it will work): Properties -> Validation, check Enable project specific settings, disable Client-side JavaScript Validator, for Manual (when you right-click on the file and choose “Validate”, should be harmless if you don’t use it) and/or Build (validation on *every* build).

Or you can disable them for the entire workspace: Preferences -> Validation, disable Allow projects to override these preference settings (hope it works), disable Client-side JavaScript Validator in the same way as above.

Be aware that even if you disabled the validator you can still have caching issues as described in 2).

Is the Validator still running? You may have to open your .project file and remove the <buildCommand> XML block containing <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>, and <nature>org.eclipse.wst.jsdt.core.jsNature</nature>, as described here (yes, it’s an old issue). Close and reopen your project.

Still issues? Maybe the solution proposed in this comment (same thread on stackoverflow) will work for you: Preferences -> JavaScript -> Editor, disable “Report problems as you type”.

4) In a Dynamic Web Project with many files (hundreds, both .java and .js), the time required to open for the first time (since Eclipse startup) the project tree is about 1 minute.

Having disabled JavaScript Validation (in some or all of the many horrible ways listed above), it takes about 1 second, so I guess it’s related.