Passa ai contenuti principali

Post

Visualizzazione dei post da 2010

Upload di file su Sharepoint 2010 + IIS 7 + NTLM con Java

immagine sorgente (GPL licensed)
Introduzione
L'articolo di oggi non è sicuramente una guida completa sulle modalità di comunicazione tra un'applicazione java ed un server Sharepoint ma vuole essere la descrizione di un caso d'uso reale che ho affrontato.
Per chi non conoscesse il prodotto di MS Sharepoint l'invito è di fare una veloce ricerca in rete per farsene un'idea. E' per lo più rivolto a soluzioni enterprise e offre una piattaforma di scambio di informazioni e documenti integrato nei sistemi Microsoft. In generale per quel poco che lo conosco è decisamente un prodotto interessante ma come spesso accade per i prodotti di Redmond l'interoperabilità con altre realtà software non è sempre delle più documentate e semplici

Cenni preliminari
Sharepoint ha un modulo web che si poggia sul server IIS di Microsoft. Per la comunicazione con applicativi esterni vengono forniti dei web-services e il supporto a WebDAV (o meglio ad una sua estensione marcata MS). Pe…

Samsung ML-2550 + Debian lenny

A lavoro abbiamo una stampante Samsung ML-2550. Dopo il passaggio da Ubuntu a Debian Lenny non sono più riuscito ad utilizzare la funzionalità di stampa fronte-retro. Per risolvere ho installato e provato con successo i driver SpliX. Da terminale come utente di root basta usare il classico apt-get

# apt-get install splix

SpliX è un pacchetto che aggrega dei driver per il server CUPS specifici per le stampanti SPL (Samsung Printer Language). Microsoft e Samsung hanno sviluppato SPL per convertire le finestre scritte in GDI in immagini Bitmap durante la stampa. E' quindi il processo di stampa che si fa carico di convertire in immagine le pagine da stampare riducendo il calcolo computazionale del PC e portandolo lato stampante.

Rhythmbox 0.11.6 + e l'errore del plugin DLNA/UPnP

Se volete condividere facilmente la vostra libreria multimediale in Rhythmbox sono disponibili due plugin interessanti: il DAAP Music Sharing utile per condivisioni con iTunes e DLNA/UPnP per sistemi Windows e ultimamente anche per televisori. Se all'attivazione del secondo plug-in vi si presenta la finestra di erroe allegata (bug #485838) allora è necessario installare dei pacchetti aggiuntivi che considerando la dimensione non sono di default legati come dipendenza per il pacchetto del player di GNOME.

apt-get install python-coherence
Coherence è un framework scritto in python proprio per interfacciarsi con media center attraverso il protocollo UPnP.

GNU/Linux + Eclipse + JUnit test in debug mode: Cannot connect to VM

Mi stupisco di come ci sia sempre da imparare lavorando con una macchina Linux-based. Rivedendo gli ultimi post si potrebbe iniziare a pensare che non vada molto a genio alla mia Lenny; a me invece, piace pensare che ciò sia dovuto alla mia inesperienza... non smetterò mai di essere un niubbo!
Dopo le vicissitudini con Samba mi sono ritrovato senza possibilità di eseguire dei back up alle JUnit test in Eclipse per il seguente errore

java.net.SocketException: Socket closed
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
at java.net.ServerSocket.implAccept(ServerSocket.java:453)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at org.eclipse.jdi.internal.connect.SocketTransportService
.accept(SocketTransportService.java:95)
at org.eclipse.jdi.internal.connect.SocketTransportImpl
.accept(SocketTransportImpl.java:56)
at org.eclipse.jdi.internal.connect.SocketListeningConnectorImpl
.accept(SocketListeningConnectorImpl.java:135)

Nautilus e Samba 3.4.1 non si piacciono molto

La mia linux box a lavoro è circondata da mac, windows e altri pinguini di diversa origine. Per questioni di convivenza abbiamo scelto di utilizzare un server samba per condividere i file e ogni macchina a sua volta ha un server personale per poter condividere file che non necessitano backup. Da questa settimana però ho incontrato dei problemi a collegarmi alla rete aziendale. Da linea di comando tutto OK ma da Nautilus niente di niente, rimaneva in attesa. La versione installata è la 3.4.1 mentre la precedente era della serie 3.2 con la quale non ho avuto problemi.
La cosa strana è che non avevo cambiato configurazione.

Alla ricerca di informazioni
Per iniziare un'indagine ho provato a guardare il file di log in /var/log/samba. Il messaggio più frequente era

[2009/10/02 10:33:54, 0] smbd/server.c:1065(main)
smbd version 3.4.1-0.41.fc11 started.
Copyright Andrew Tridgell and the Samba Team 1992-2009
[2009/10/02 10:33:54, 0] smbd/server.c:457(smbd_open_one_socket)
smbd_open_once_socket: …

XpcMessageLoop in soapUI 3.5.1 + GNU/Linux + JRE 1.6.20

Quando si scrivono dei web service è sempre bene avere a disposizione degli strumenti che permettano di testare la bontà del lavoro svolto. Un mio collega, Andrea, mi ha fatto conoscere questo tool grafico scritto in Java e specifico per il protocollo SOAP: SoapUI. E' uno strumento maturo e ampiamente usato. Ne esistono due versioni: una open source ed una commerciale. Sono ancora alle prime armi con questo tool e non è detto che non possa scrivere ancora in futuro una recensione; oggi però mi concentrerò sulla soluzione di un errore all'avvio che mi aveva bloccato:
Exception in thread "XpcMessageLoop" java.lang.NoSuchMethodError: com.jniwrapper.gtk.GTK.initialize([Ljava/lang/String;)V
at com.teamdev.xpcom.impl.awt.linux.AwtLinuxPlatform.a(SourceFile:166)
at com.teamdev.xpcom.impl.E.initialize(SourceFile:69)
at com.teamdev.xpcom.c.run(SourceFile:150)
Ambiente utilizzato
Il problema è tipico dell'accoppiata GNU/Linux + Java 6 + Installazione bin scelta di proposito per …

Installazione plugin Java in Firefox / Iceweasel

Come raccontato negli ultimi post, ho deciso di passare ad una Debian a lavoro per questioni di driver e stabilità del progetto Debian (... e anche per curiosità). Il browser predefinito è Iceweasel, una versione ricompilata per Debian di Firefox con un brand pienamente GPL.
Il passaggio è quindi indolore trattandosi dello stesso codice anche se a differenza della Ubuntu l'installazione del plugin Java necessita di un paio di comandi in più sopratutto se per svariati motivi preferite una installazione cruda in /opt del pacchetto java come ho descritto qui.

Premessa
Programmando in Java, ho la necessità di far convivere più versioni della JDK nel sistema di poter giocare ove necessario con il comando update-alternatives. Per questo preferisco installare a mano nella cartella /opt i vari pacchetti quali apache-tomcat e jdk varie. Il plugin del browser in questo caso non viene installato e dalla barra di navigazione, digitando l'indirizzo:
about:plugins non si trova alcuna tracci…

Evince Unhandled mime-type application/octet-stream

Dopo il passaggio dalla Ubuntu 9.10 Lucid Lynx alla Debian Lenny mantenendo la vecchia /home ho iniziato a notare dei problemi all'apertura di alcuni PDF. Evince all'avvio mostra il messaggio:
An Error appears: Unhandled mime-type application/octet-streamIl problema è tracciato sia per Debian bug#518664 che per Ubuntu bug#163764. Per risolvere il problema ho cancellato il file mime.cache dal terminale con il comando
rm ~/.local/share/mime/mime.cache

Nautilus browser mode (Debian)

L'installazione base della Debian Lenny offre un Nautilus un pò troppo scarno, almeno per chi era abituato con Ubuntu o con le versioni precedenti alla 2.6 di Nautilus.
Per ripristinare la visualizzazione in stile navigazione da un terminale digitare gconf-editor oppure dal menu principale Applications –> System Tools –> Configuration Editor. Si apre il tool di configurazione di GNOME.

Selezionare la checkbox come da immagine
apps –> nautilus –> preferences –> always_use_browser

Eclipse 3.5.0 e la history che non si vede

Non so per quale motivo da ma circa un mese in Eclipse sulla mia Debian non riuscivo più a vedere la History dei file. La connessione al server CVS avviene ma l'interfaccia grafica non risponde. La soluzione per il problema è stata servita solo poco tempo fa e il bug di riferimento è il #313480. Fortunatamente esiste un semplice workaround per risolvere la situazione che è quello di rimuovere il file .metadata/.plugins/org.eclipse.team.cvs.ui/dialog _settings.xml che si trova nella propria directory di workspace.

GNOME + Debian da leccarsi le dita

Ebbene sì, dopo l'ennesimo problema tra i nuovi kernel di Ubuntu Lucid Lynx 10.04 e la mia vecchia scheda grafica ATI Radeon 9600, a lavoro ho deciso di installare Debian Lenny con l'aggiunta dei repository backports e multimedia per gradire l'accelerazione grafica e poter giocare nuovamente a sauerbraten in pausa pranzo.
Devo dire che Debian non è per nulla male e per chi è cresciuto a Slackware e Ubuntu sembra di tornare ai bei tempi di una volta quando l'utente root aveva ancora una password e sudo era solo la prima persona singolare del tempo presente del verbo sudare.
Nell'articolo che segue scrivo alcuni consigli personali per rendere il desktop piacevole e accattivante... da leccarsi le dita e fare invidia ai vostri colleghi winzozziani. Il risultato ottenuto è quello riportato nello screen shot qui sotto, spero possa essere di vostro gradimento.

Equinox gtk 2.0 engine
Per prima cosa installiamo un nuovo engine per il window manager. Equinox è quello che fa a ca…

"In attesa della connessione di rete" come risolverlo in Pidgin

Sono sempre stato fedele al "piccione", sin da quando si chiamava GAIM, e al posto di msn e fratelli si utilizzava AIM e ICQ. Penso sinceramente che Pidgin sia il miglior software di istant messaging multi-protocollo e multi-piattaforma nell'ambito Open Source e non solo. Per avere un'idea delle potenzialità di Pidgin basti vedere questa comparativa con altri programmi di wikipedia.it.

Descrizione del bug
Il contenuto del post è dedicato ad un bug in particolare descritto dai ticket #8545 e #9702: In alcune configurazioni di rete, in ambiente GNU/Linux, può capitare che all'avvio dell'applicazione non si degni di connettersi restando appeso con un laconico "In attesa della connessione di rete".

Soluzione scimmia
Una prima soluzione e probabilmente l'unica per la versione 2.5.8 e precedenti è quella di:
Accedere dal menu principale Account -> Elenco account.Disabilitare gli account attivi e riattivarli, questa operazione forza il tentativo di conne…

PostgreSQL Cheat Post

Mettere in piedi in modo veloce un ambiente di test, richiede spesso di avere un dump del database cliente da poter analizzare o far puntare all'applicazione che stiamo sviluppando. In questo articolo annoto alcuni comandi che possono essere utili per raggiungere lo scopo appena citato.

Backup e restore di un database da un terminale

Salvare un database: struttura dati e dati (DDL e DML)
pg_dump -h [hostname] -U [username] -W -c [database] > database.dmp

Risultato: nel file database.dmp viene salvato un'immagine completa dello schema del database completo dei dati

Salvare solo lo schema:

pg_dump -h [hostname] -U [username] -W -c --schema-only [database] > database-schema.sql

Risultato: nel file database-schema.sql viene salvato uno script per ricreare la struttura delle tabelle e delle eventuali chiavi esterne, indici del database

Ripristino di un dump
Condizione necessaria perchè il comando vada a buon fine è che il database, anche vuoto, usato come parametro in [database] e…

[JAVA] Variabili static final in compilazione

foto di quinnanya

Per fortuna che ogni giorno si imparano cose nuove, anche se non è sempre il massimo impararle a lavoro, quando si consegna ad un cliente... ma tralasciamo i fatti contingenti.
L'argomento dell'articolo è relativo alla compilazione delle variabili dichiarate static final in una classe Java. La parola riservata final assume a seconda del contesto diverse implicazioni, ma in linea generale dichiara "Questa 'cosa' non è modificabile", sia che si tratti di una classe, metodo o variabile.
Nel caso specifico delle variabili il compilatore per ottimizzare il codice generato, va a risolvere e sostituire il valore della variabile, o in questo caso sarebbe meglio parlare di costante in tutte le occorrenze del codice compilato. Per questo argomento un link interessante ed illuminante è http://www.codeguru.com/java/tij/tij0071.shtml al paragrafo "Final Data".

Ora la gioia, nel mio caso, è stata che se la variabile è usata per calcoli interni in di…

Ikea Home Planner 10 + Linux = Sweet Home 3D

foto di Arturo de Albornoz
L'acquisto di una casa porta con sè molti cambiamenti, anche tra i giovani programmatori Padawan ai quali dell'acqua, un tozzo di pane, un fedele portatile e una discreta connesisone ADSL possono bastare per rendere una dimora vivibile.
Vagli tu a spiegare a tua moglie questa necessità di ascetismo binario, vera via che porta alla Forza e ti ritroverai dritto all'IKEA in meno di un secondo!
Così è capitato anche a me, ma non mi sono dato per vinto. A parte la mia innata empatia per le costruzioni come i Lego ho anche constato con piacere che quelle vecchie volpi di svedesi hanno reso disponibile un software per la progettazione da casa del proprio arredamento: IKEA Home Planner. Dalle note si legge che è necessario avere Windows e che MAC non è supportato, poco male vado di WINE.

Installazione con WINE

Bene scarico l'eseguibile e lo installo sulla mia Ubuntu 8.10 con tasto destro Apri con Wine Carica Programmi Windows (...tralasciamo la localizzaz…