Archivio per la categoria 'Tecnologia'

Consultare i Javadoc su Netbeans per Mac OS X

Netbeans per Mac OS X è ben integrato con questo sistema operativo. Menu e look & feel in vero stile Mac sono gli aspetti più immediatamente visibili. Ma vi è anche un’integrazione più profonda, che è l’utilizzo della Java VM di sistema. Uno dei benefici è la disponibilità immediata degli aggiornamenti della JVM che vengono scaricati e installati automaticamente.

Dove l’integrazione fra Netbeans e OS X casca è sull’accesso ai Javadoc delle librerie standard Java. Su OS X sono installati ma Netbeans, di base, non li vede. Se questa feature ci fosse, si potrebbe avere i Javadoc disponibili come pop up automatico mentre si sta digitando il codice.

La soluzione è semplice e la illustro qui per Netbeans 5.5.
Leggi il testo completo »

Prima riunione Java User Group di Genova

Ieri sera ho partecipato ad una riunione del Java User Group (JUG) di Genova. E’ il primo incontro di persona dopo due anni di esistenza come gruppo su Yahoo. E’ stato molto interessate e una buona pizza ha accompagnato la conversazione.
Vi rimando direttamente alla pagina del gruppo (al momento è necessario registrarsi):
http://it.groups.yahoo.com/group/genovajug/

Per chi studia o lavora con Java può essere un’ottima risorsa e una possibilità di comunicare con persone che condividono questo interesse/passione.

Refactoring con Netbeans (parte 2)

Abbiamo già visto le funzioni di refactoring di base. Ora ne vediamo alcune avanzate e legate alla gestione dell’ereditarietà. Il problema che ho in mente è che quando inizio a scrivere una classe Java spesso non so esattamente dove andrò a parare. Magari so che successivamente scriverò qualche sottoclasse e che magari astrarrò un’interfaccia, ma non posso immaginare i dettagli. Per esempio, non so con certezza se un certo metodo x() andrà posizionato a livello dell’interfaccia, della classe o di una delle sottoclassi. E’ qui che il refactoring torna utile permettendo ripensamenti e correzioni.
Leggi il testo completo »

Refactoring con Netbeans (Parte 1)

Uno dei vantaggi di utilizzare un linguaggio object-oriented e fortemente tipato come Java è quello di avere strumenti che “comprendono” in un certo senso il codice e ciò che il programmatore sta cercando di ottenere. Uno di questi strumenti è la funzione di refactoring in Netbeans.
Leggi il testo completo »

Pubblicare siti creati con iWeb utilizzando ftp

In un precedente blog avevo analizzato alcuni problemi con le immagini e i colori quando si pubblicano siti creati con iWeb ma senza utilizzare .Mac.
Eh sì, iWeb è nato per essere utilizzato con .Mac e quando non si utilizza questo servizio della Apple nascono difficoltà. In questo articolo spiegherò la tecnica che uso, che rende la pubblicazione semplice e veloce su qualunque servizio utilizziate per il hosting del vostro sito.
Leggi il testo completo »

Design Patterns con Netbeans

Abbiamo già visto qualche esempio di UML con Netbeans. Finora però abbiamo creato i diagrammi a mano, inserendo le classi, gli attributi e i metodi più adatti alla nostra situazione. Ora vogliamo rilassarci un po’ e lasciare che sia Netbeans a scrivere un po’ di diagrammi per noi. Come è possibile? Netbeans ha una collezione di Design Pattern che si possono utilizzare nei nostri progetti. I Design Pattern sono come schemi o “template” comunemente utilizzati nella progettazioni di applicazioni. Avere questi pattern a disposizione all’interno di Netbeans vuol dire poterli utilizzare e riutilizzare in continuazione, con conseguente risparmio di tempo.
Leggi il testo completo »

Qualche diagramma UML con Netbeans

Viste un po’ di considerazioni generali, veniamo alla pratica. Ho pensato di fare un piccolo esempio utilizzando le tipologie di diagrammi UML più semplici e diffuse.
Leggi il testo completo »

Netbeans con UML plugin

E’ da poco uscito Netbeans 5.5. In un precedente articolo avevo accennato alla disponibilità di un “enterprise pack” contenente un editor UML integrato in Netbeans. Da allora (eravamo a Netbeans 5.0) l’integrazione e la stabilità dei componenti è migliorata. Vediamo le cose un po’ più nel dettaglio.
Leggi il testo completo »

Pubblicare immagini e foto con iWeb e mantenere i colori giusti

Mantengo su questo sito una collezione di gallerie fotografiche create con iWeb, un software della suite iLife di Apple. Non è male, si integra bene con iPhoto e ha una serie di template belli che mi evitano i mal di testa dell’html.

iWeb si integra anche con .Mac, is servizio di hosting della Apple, ma io non lo uso. Quello che invece faccio è pubblicare le pagine create don iWeb su una directory locale e poi caricare questa directory sul mio sito web tramite ftp.

Il problema è che fotografie pubblicate con questo metodo appaiono scure quando sono visitate con Firefox o con Internet Explorer. Con Safari invece non ci sono problemi.

La causa del problema è che iWeb salva le immagini utilizzando un profilo colore che Firefox e IE non sanno riconoscere. Da qui la visualizzazione di immagini troppo scure. Senza addentrarmi in discussioni tecniche su cos’è un profilo colore, la soluzione è seguire i seguenti passi:

  • Assicurarsi che iPhoto e iWeb siano chiusi. Questo passo è fondamentale.
  • Aprire le preferenze di sistema e selezionare ‘Monitor’
  • Selezionare il tab ‘Colore’. L’impostazione corrente dovremme essere ‘iMac’
  • Cambiare la selezione a sRGB IEC61966-2.1. Questa azione renderà immediatamente tutti i colori dello schermo più scuri.
  • Aprire iPhoto ed esportare le immagini verso iWeb
  • In iWeb selezionare dai menu ‘Pubblica su cartella’
  • Caricare la cartella sul sito web tramite ftp o altri strumenti

A questo punto le pagine pubblicate utilizzeranno un profilo colore che anche Firefox e IE possono visualizzare correttamente.

Una volta che avete finito conviene reimpostare il profilo colore ad ‘iMac’.

Installare ed eseguire Postgresql su Mac OS

Installare questo ottimo database relazionale non è un problema utilizzando fink. E’ sufficiente verificare quale versione di postgres sia disponibile con:

fink list |grep postgres

Mentre sto scrivendo risulta disponibilie una versione chiamata postgresql80 (cioè Postgresql 8.0). Per installarla:

fink install postgresql80

A questo punto dovrebbe essere sufficiente eseguire il seguente comando per avviare il database:

sudo /sw/bin/pgsql.sh-8.0 start

Il comando funziona ma viene dato un warning

WARNING: You probably need to set your shared
memory resources higher for PostgreSQL to function.

e nei log compare un messaggio ancora più esplicito:

FATAL:  could not create shared memory
segment: Cannot allocate memory
DETAIL:  Failed system call was shmget
(key=5432001, size=3768320, 03600).

Ho avuto problemi simili in passato su OpenBSD, che è configurato con limiti molto bassi sulla massima quantità di memoria condivisa che un processo può allocare. Mac OS X, che è della famiglia BSD, ha lo stesso problema.
Il messaggio di errore dice che il database sta cercando di allocare 3768320 byte di memoria condivisa ma non ci riesce. Il comando per verificare i limiti del sistema è il seguente:

sysctl -a |grep shm
kern.sysv.shmmax: 4194304
kern.sysv.shmmin: 1
kern.sysv.shmmni: 32
kern.sysv.shmseg: 8
kern.sysv.shmall: 1024 

Una pagina della documentazione di Postgres spiega a cosa servono tutti questi valori.
I valori che possono causare problemi sono kern.sysv.shmmax (la dimensione massima di un blocco di memoria condivisa) kern.sysv.shmmni (il numero massimo di blocchi di memoria condivisa che il sistema può concedere) e in kern.sysv.shmall (la dimensione, in pagine da 4096 byte, massima totale della memoria condivisa fra tutti i blocchi concessi).

Dopo un po’ di sperimentazione scopro che il primo dei tre valori non è un problema al momento (4194304 byte di dimensione massima è maggiore dei 3768320 byte richiesti) ma può diventare un problema in futuro: meglio aumentarlo. Gli altri due valori sono invece troppo bassi e vanno assolutamente aumentati.

La soluzione è creare o modificare il file /etc/sysctl.conf in modo che contenga le seguenti righe:

kern.sysv.shmmax=16777216
kern.sysv.shmmin=1
kern.sysv.shmmni=64
kern.sysv.shmseg=8
kern.sysv.shmall=65536

Questi valori dovrebbero andare bene per qualunque sistema, purché la memoria fisica sia superiore a 256MB.

Una volta salvato il file con le configurazioni è necessario riavviare la macchina. A questo punto postgres dovrebbe partire senza problemi.