5 ottimi strumenti per sviluppatori su Linux

Questo articolo è rivolto agli sviluppatori in ambiente GNU/Linux (ma anche in POSIX in generale) che cercano degli strumenti per semplificare lo sviluppo di applicazioni su questa piattaforma. I programmi che andremo ad analizzare saranno relatitivi a: documentazione, GTK+, D-Bus, UPnP e HAL.

Devhelp - Documentazione

Devhelp è un semplice visualizzatore della documentazione delle varie API del sistema relative a GNOME (quindi a Glib e GTK+). Generalmente basta scaricare i pacchetti "-doc" della libreria desiderata per avere subito disponibili le spiegazioni del funzionamento della varie funzioni e strutture dati usate.

Post image

D-Feet - D-Bus debugger

D-Feet è un ottimo strumento per lavorare con il protocollo D-Bus che permette alle applicazioni di scambiarsi messaggi. Ad esempio è tramite D-Bus che è possibile rilevare le periferiche Bluetooth grazie ad un server (in gergo demone) che rende disponibili alcuni metodi e segnali.

Post image

Continua a leggere »

Cosa c'è da migliorare nel mondo GNU/Linux

MI sono fatto una idea di alcuni aspetti da migliorare nelle distribuzioni GNU/Linux per avere un sistema pronto out-of-the-box e usabile in ambienti lavorativi.

  • Gestione SmartCard. Nelle pubbliche amministrazioni si sta diffondendo la firma eletronica per mezzo di SmartCard e mentre su Windows XP basta collegare il lettore e basta, su Linux esistono più di un programma per la gestione del lettore e per la gestione delle varie codifiche delle SmartCard, insomma, un macello! Quello che serve è un unico sistema che gestisca il lettore e dia una interfaccia unica per la gestione delle varie codifiche di schede, il tutto interfacciato con HAL (o il futuro DeviceKit) così da essere usato con semplicità da qualunque programma.
  • Periferiche di gioco. Non si capisce più a chi fare riferimento per gestire i vari controller HID individuati come joystick. Il nuovo driver evdev pare segna tutto come mouse, infatti su HAL abbiamo che un joystick ha come capability input.mouse. Ora se io faccio un gioco come faccio a rilevare se un joystick è stato inserito mentre il gioco è già in esecuzione? Inoltre i device indicato da HAL non è accessibile con i normali diritti di utente ma richiede l'utente root, ed è giusto altrimenti potremmo fare keylogger a randa! Poi vengono create le interfacce /dev/input/js0-9, ma che mi avverte di ciò? Nessuno. Devo andare io manualmente a scansionare la cartella ogni poco e caricare il tutto. In definitiva per accedere ai joystick esiste, evdev, il driver joystick e libjsw (libreria orfana che comunque usa il driver joystick ma almeno non si deve usare le ioctl.
  • D-Bus. Rendere la creazione di un server D-Bus in C più semplice, sarò duro ma non ho ancora capito come esporre dei metodi e segnali sul bus. Non si poteva fare qualcosa di semplice come la connessione dei segnali in GTK+?
  • Gestione dei livelli audio. Adesso abbiamo 3 o 4 livelli di volume per una sorgente, volume interno dell'applicazione, volume di PulseAudio per lo stream dell'applicazione, volume PCM e volume generale. Un po' troppi mi pare. Intanto un volume potrebbe essere tolto quando l'applicazione si connette a Pulse Audio regolando direttamente il volume di PulseAudio, in questo modo rimangono sempre due slider ma almeno regolano lo stesso stream. Anche il volume PCM andrebbe tolto, facendo gestire tutti gli ingressi da PulseAudio. Peccato che tutto quanto probabilmente sarà accente da Ubuntu Jaunty e, secondo me, creerà panico tra gli utenti che non capiranno una mazza dove regolare l'audio.
  • Supporto ai dispositivi WiFI 802.11n. Non ci siamo proprio, al momento dei lavori non esiste una scheda PCI o USB che collegata a Linux funzioni subito. Quando va bene occorre scaricare dei driver, compilarli e installarli, così da avere il modulo giusto. Quando va male occorre andare nel sorgente per modificare il driver, e magari una volta creato il modulo non supporta manco alcune feature del protocollo. E la situazione rischia di essere identica con Jaunty. Il problema è stata la rapida diffusione sugli scaffali dei negozi di apparecchi compatibili con la seconda bozza del protocollo 802.11n che dovrebbe garantire fino a 300Mb/s quando va bene. Alcune volte i driver open ci sono, vanno solo inclusi nel kernel...
  • X.org. Al momento il server grafico predefinito di ogni distribuzione GNU/Linux è la più grande limitazione per la reattività del sistema, i metodi che i vari toolkit grafici usano per velocizzare alcune funzioni di disegno sono quelli di scavalcare il server grafico per usare direttamente la scheda grafica, quindi o qualcuno riscrive X.org oppure occorre un nuovo server grafico più performante.
  • Meno divisioni e meno seghe mentali. Il concetto è semplice, evitare di reinventare la ruota e non crogiolarsi troppo su questioni etiche. Vedi come la nuove licenza GPLv3 limita in modo considerevole lo sfruttamento commerciale del software libero.

E voi cosa ne pensate? Siete d'accordo con i punti elencati o ne aggiungereste altri?

Usare l'adattatore USB 802.11n WN111v2 con Ubuntu

Ormai ogni negozio di informatica sta commercializzando i nuovi prodotti WiFi compatibili con il nuovo standard 802.11n che dovrebbe garantire una velocità massima di trasferimento di 300Mbps oltre ad una maggiore copertura, il tutto grazie all'uso di 2 canali radio anziché uno. Ma torniamo a noi, ho acquistato un nuovo router NetGear con incluso un adattatore WiFi USB siglato WN111v2. Se avete già l'adattatore WPN111 sappiate che cambia profondamente dal WN111v2. Purtroppo Linux non supporta nativamente il chipset impiegato il quale sembra essere un Atheros. La soluzione c'è, è un po' macchinosa ma è possibile far funzionare la WN111v2 su Linux grazie ai driver otus, ancora piuttosto instabili.
Post image

Con Ubuntu 9.10 ed in generale col kernel 2.6.31 la scheda viene rilevata correttamente grazie ai driver ar9170usb ma solo con lo standard 802.11g.

Iniziamo col verificare di avere il giusto adattatore USB:

$ lsusb | grep 0846:9001
Bus 004 Device 009: ID 0846:9001 NetGear, Inc.

Se restituisce una linea con la scritta NetGear, Inc. e i numeri 0846:9001 possiamo continuare.

Continua a leggere »

Mixxx, fare il DJ con GNU/Linux

Se come me amate Linux e il software libero ma avete anche la passione per la musica da discoteca e vi dilettate a mettere un po' di musica col pc quando al diciottesimo dell'amico, quando alla vicina discoteca, avrete notato la mancanza di software professionali adatti allo scopo. Infatti quello che mi tiene legato a Windows sul portatile è semplicemente VirtualDJ e Van Basco's Karaoke Player. Ma adesso, dal momento che Mixxx è finalmente abbastanza stabile e funzionale, la situazione sembra più rosea.

Mixxx è un programma che permette di effettuare il mix tra 2 tracce, variarne la velocità, applicare alcuni effetti e sincronizzare (parziale) le due traccie audio. Inoltre supporta alcuni controller MIDI esterni come le console della Hercules e il collegamento con un Vinyl Timecode.

Post image

Analizziamo queste caratteristiche insieme...

Continua a leggere »

Adobe Flash Player 10 a 64bit per Linux!

Post imageFinalmente! E' proprio il caso di dirlo. Uno dei problemi principali delle distribuzioni Linux a 64bit era proprio Flash completamente instabile ed anche l'implementazione libera (Gnash) non supportava i video. Fortunatamente recentemente è stata rilasciata la pre-release di Flash Player 10 per Linux a 64bit.

Il download è disponibile nella sezione Flash Player 10 del sito Adobe Labs dove sono presenti anche le pre-release di Flash per Solaris su architettura x86 e SPARC.

L'archivio scaricabile contiene direttamente la libreria da mettere correttamente nella directory dei plugin del browser. Ad esempio con Firefox dovrete posizionarvi col terminale nella cartella dove avrete scompattato il file e digitare questo domando:

mv libflashplayer.so ~/.mozilla/plugins


Certo bisogna dire che dall'acquisizione di Macromedia da parte di Adobe ha portato molti miglioramenti nel supporto per GNU/Linux... A quando la Creative Suite per GNU/Linux?

Disk Manager, interfaccia grafica a fstab

Quella che vi presento oggi è un'ottima interfaccia grafica (in gergo GUI) al file /etc/fstab, colui che regola quali partizioni sono montate all'avvio. Disk Manager permette di gestire facilmente ogni partizione presente nel proprio sistema, scegliendo le varie opzioni di montaggio e facilitando l'abilitazione del driver ntfs-3g per tutte le partizioni formattate in NTFS. Consente inoltre di rilevare eventuali nuove partizioni o dischi all'avvio del sistema per configurarli in maniera ottimale.

Post image

Disk Manager sarà incluso in Ubuntu 8.10 Intrepid, mentre per Hardy basterà installare senza problemi il pacchetto per Intrepid.

N.B. Questo programma si rivolge principalmente agli smanettoni, Ubuntu come molte distribuzioni moderne grazie a tutti gli schiavi come udev e hal gestiscono molto bene i dispositivi senza dover mettere mani a fstab.

CC BY-NC-SA 3.0 2004-2020 Daniele Napolitano — Per informazioni sulla licenza leggere le Note legali