Translate

29 ottobre 2007

Memor aka Soundwave: dalle musicassette del 1984 alle miniSD del 2007


Esco un po' fuori tema, anche se parlare di Transformers porta la mente ad una ventina di anni fa. Si respira aria vintage.

Ecco come si presentava Soundwave (Memor in Italia), il Decepticon più fedele a Megatron. Era un bello stereo per il tempo, con le sue musicassette che diventavano robot animali e spie adatte ad ogni occasione! Era il 1984.

Nel 2007 Soundwave si presenta con la stessa aria cattiva e possente di un tempo, ma di tecnologia rinnovata.

Il mangiacassette ha lasciato il posto ad un lettore di memory card (miniSD, personalmente non ne ho testate di dimensioni maggiori di 1 Giga).
Sì, la domanda è lecita: cosa se ne fa Soundwave di una miniSD nel petto? La usa come memoria per leggere gli mp3 (fino a 128 kb di bitrate: non è un iPod)!

Come miniSD ho scelto una SanDisk, mentre come lettore di memory card ho optato per quello che passa il convento (Carrefour di Portogruaro): SBS Card Reader 29 in 1 USB 2.0 GDR007 http://sbs-power.com/product_detail.asp?pID=312 .
Nonostante quello che riporta il sito, la compatibilità con i sistemi operativi va aggiornata anche a Linux 2.6 e udev/hal/dbus. Una volta collegato il dispositivo alla porta usb (da cui succhia energia per vivere) del pc, questo viene riconosciuto come periferica di archiviazione di massa e Nautilus, o chi per lui, ce lo mostra tra i dispositivi collegati al computer:


Fin troppo facile, una volta c'era più gusto a fare queste cose.
Che altro dire? Soundwave funziona con una batteria ministilo (AAA) e ha un led blu che indica il funzionamento durante l'uso come lettore mp3. I pulsanti presenti sotto il coperchio dove si inserisce la memory card, consentono di saltare tra un brano e l'altro, alzare e abbassare il volume, e naturalmente far partire e fermare la riproduzione. Nella confezione ci sono solo istruzioni in giapponese (giapponese stretto, non provate a decifrare gli ideogrammi!).
Vi lascio con l'immagine della confezione come l'ho vista io appena scartata dall'imballo, con Soundwave Spark Blue in riposo tra cartone e plastica.

Soundwave, sounds good!

16 ottobre 2007

10 ottobre 2007

DHCP on NeXTStep

Seguendo questa guida, che trovate in formato .rtfd nel pacchetto dei binari, sono riuscito a configurare il client DHCP su NeXTStep. Un po' di modernità che non guasta nella mia rete.

Un piccolo hint: per ricavare l'indirizzo hardware della scheda di rete (en_address) non è necessario un boot in single user, ma dalla macchina già avviata, è sufficiente entrare nel NMI Mini-Monitor (nella mia macchina non-ADB, con la combinazione di tasti CmdLeft+CmdRight+~) e visualizzare gli ultimi messaggi del kernel con: msg=9 (se quelle nove linee non bastassero, msg vi propone tutti i messaggi del kernel da sfogliare pagina per pagina).

/n/unix/dhcp-2.0pl1.N.b.tar.gz

09 ottobre 2007

Download repository

Per avere un altro mirror dei file che uso più spesso, per ricordarmi dove ho messo quel documento, per liberare un po' di spazio sulla NeXTstation:

http://download.tuxfamily.org/greedydotfly/

Sì, anche per rendervi la vita più facile.

03 ottobre 2007

The NeXTStep: Developer time! - La compilazione da sorgenti e il package management

Agognato da tempo immemore, sfuggito di poco più e più volte nelle aste online, finalmente recupero un compact disc di NeXTStep Developer 3.3 (from U.S. of America, Ou iea!).
Infilo il CD nel caddy, infilo il caddy nel lettore, Workpace Manager mi mostra l'icona del volume montato. Mi aggiro per le directory del CD alla ricerca dei pacchetti da installare: NextCD/packages. Doppio click sui file e con i privilegi di root parte Installer.app.



Installer.app è l'utility presente in NeXTStep per aiutarci nella gestione del software da installare o da rimuovere: l'utilizzo è immediato: l'installazione dei pacchetti può essere eseguita da qualsiasi directory del sistema. Una volta che il pacchetto è stato installato verrà conservato nel database /NextLibrary/Receipts in forma di informazioni quali ad esempio lo status (installato o meno), i percorsi dei file e così via. Il sistema di gestione dei pacchetti è quello classico di Unix, e di distribuzioni come Slackware.


A questo punto ci ritroviamo con un ambiente di sviluppo bello e pronto. Prima di procedere verso il laboratorio con una camminata alla Frankenstein, un paio di migliorie al nostro sistema:
1) installazione della patch a NeXTStep Developer: la troviamo sul sito Apple - nostalgico Jobs: http://docs.info.apple.com/article.html?artnum=70124
2) installazione del GNU C Compiler: la versione più recente che sono riuscito a trovare per NeXTStep è la 2.95.3, che mi ha aiutato nella compilazione di grep (con una versione precedente il make non andava a buon fine): http://www.savarese.org/patches/gcc.html

Fa caldo. I vapori dell'acqua calda dentro la vasca creano una nebbia, mi soffoca. Inietto il pacchetto di grep via ftp, quei pochi secondi sembrano un'eternità. Mi asciugo il sudore. Con la sinistra lo tengo fermo, con la destra prendo gunzip e lo decomprimo, poi tar xf, lo scompatto, e mi ritrovo a guardargli dentro il petto: una zaffata di zolfo mi arriva alle narici, gas di putrefazione. Ho un conato. Guardo il Changelog, sono sorgenti del 1996; nessuno ne sentirà la mancanza!
Procedo, è il momento del configure per la mia creatura. Lo costringo ad un --prefix ben preciso, così da aiutarmi nella fase finale dell'opera. Tutto procede secondo i piani... La tempesta è arrivata: una luce rischiara le nuvole di vapore nella stanza, poi un boato al quale le finestre rispondono: non ci resta che aspettare. E finalmente eccolo: la corrente scorre per i circuiti CISC, si immagazzina nelle bobine, devo solo abbassare la leva: make !
La carne brucia, ne sento l'odore. Mi siedo, sono soddisfatto e stanco, posso permettermi qualche minuto di riposo. I succubi approfittano di me.
Apro gli occhi, la tempesta è finita. Nebbia e silenzio creano un'atmosfera surreale. La mia creatura? Mi avvicino, e la guardo...
Sì può fare!

Procediamo quindi alla creazione del pacchetto. Il make install copierà i binari nella directory da me suggerita al configure --prefix= che per questioni stilistiche e pratiche, sarà: /tmp/pkg.
A metà degli anni '90, quando i Makefile non erano creati da tool automagici come Automake, le strade per consigliare un percorso per l'installazione erano due: quella usata qui, quando esiste lo script di configure, oppure andare a modificare a mano il Makefile. Creata la radice del pacchetto, ora concentriamoci sul file .info necessario a Installer.app per la corretta gestione del pacchetto.
Il nome del file in questione dovrà corrispondere al nome del pacchetto, in questo caso, quindi, avremo un grep.info e il successivo e finale grep.pkg.
grep.info che andremo a creare in /tmp/, è suddiviso in otto sezioni:

Title
Il nome del pacchetto. Nella prima immagine è "grep - GNU grep"
Version La versione del software
Description La descrizione del programma
DefaultLocation Il prefisso d'installazione del pacchetto
Diskname Il nome della directory del pacchetto, nel nostro esempio "grep.pkg"
Relocatable Una variabile, i cui valori possono essere YES o NO, che permette all'utente finale di sovrascrivere la DefaultLocation
Application YES o NO, indica se il contenuto del pacchetto è un'applicazione o meno
DeleteWarning seguito dal messaggio di avvertimento, verrà mostrato quando si vorrà cancellare il pacchetto.

E ora viene la parte più facile. Installer.app si porta dietro un'utility scritta appositamente per la creazione di pacchetti: package, la cui sintassi di base si presenta così:
package directoryradicedelpacchetto fileinfo -d directorydovesalvareilpacchetto
che, per il nostro esempio, diventerà:
package /tmp/pkg/ /tmp/grep.info -d /me/

Generating Installer package /me/grep.pkg ...
creating package archive ... done.
copying grep.info ... done.
generating bom file ... done.
generating sizes file ... done.
... finished generating /me/grep.pkg.
Diventiamo root, doppio click sul pacchetto e Installer.app farà il resto.

Fonte: http://www.bangmoney.org/nextstep/packages_1.html

27 marzo 2007

Su Slackware, Gnome, e la pigrizia: la via della sperimentazione

Da pochi giorni, Volkerding ha messo mani al changelog di Slackware -current, e io da bravo bleding edger quale sono ho masturbato la mia vetusta installazione (non ripulivo l'hard disk da Slackware 9.1) aggiornando al solito, vecchio e sensuale modo, come piace alla mia donna preferita: con le mani.
Scarico i pacchetti, è una domenica sera uggiosa, violentata dai pensieri di quell'idiota che è riuscito a farmi incazzare il pomeriggio prima... Intanto guardo la tv, spenta, visto che non trasmettono un emerito cazzo da mesi nell'etere.
Torno dalla scorribanda televisiva, è tardi, il giorno dopo avrò il turno mattutino (bene, tempo per le bisite il pomeriggio!): sono indeciso se dare l'upgradepkg ora o domani, ripetendomi l'UPGRADE.TXT in testa più volte:

repeat
begin

0) init 1 ;
1) upgradepkg glibc-solibs-* ;
2) upgradepkg pkgtools[TAB]
(magie di bash_completion) ;
stachezza:=stanchezza+1;
end;
until stanchezza=11;


Me, disgraziato:
Upgrade your glibc shared libraries. This is important, or things
might go haywire during the first part of the upgrade.

root@lounge# upgradepkg *.tgz
[CTRL+C] [CTRL+C] [CTRL+C]

root@lounge# ls
Segmentation fault
root@lounge#


A nulla sono serviti i miei tentativi di "bootare" da cd, usare chroot: le cose non si fanno a caso, la teoria non basta.

"It's time to back-up!"
Gigabytes di perversioni salvate. E con loro tutta la mia vecchia /home/michele.
La fedeltà alla mia regina, mi ha portato all'acquisto del cofanetto di sei cd di Slackware Linux 11.0: li ho usati.
La fedeltà di cui sopra mi aveva anche costretto, non senza sommo piacere, a tenere alla larga dal mio sistema tool automagici che tanto ricordavano quelli propagandati dal lato oscuro della forza(Debian, NdS.). Tuttavia, questioni di tempo, e soprattutto di merging nel tree ufficiale della distribuzione, mi hanno spinto a provarli.

Slackpkg, funziona. Confronta il changelog di Slackware -current (o delle altre versioni, previa configurazione, a mano) con i pacchetti installati, e propone aggiornamenti, e installazione di nuovo software. Dall'interfaccia in ncurses, è possibile selezionare pacchetto per pacchetto in base alle proprie esigenze di aggiornamento. Quello che trovo di estremo interesse in questa dis-utility è il comando: slackpkg clean-system, che elimina dal sistema i pacchetti non più presenti in Slackware. Penso non ne farò a meno.

Portpkg, funziona anche lui. Non è altro che un sistema di ports per Slackware. La cosa interessante (un po' come per i ports di diabolica memoria (BSD, NdS.) o il portage di Gentoo (ma guarda un po')) è che l'amministratore di sistema può mettere mano a tutti gli Slackbuild a disposizione, e crearsene di nuovi. Un buon metodo se volete usare sempre l'ultima versione dei vostri programmi preferiti, senza dare ad ogni release gli stessi comandi per la compilazione. Con lui ho ridotti i tempi di una compilazione manuale di Gnome, utile.

Con il sistema installato e pronto all'uso, mi preparo a rimettere in piedi una brutta copia del sistema che ero riuscito a costruire in tre anni di isolazionismo dalle tentazioni di un desktop environment: il mio WindowMaker riusciva a conciliare orpelli moderni con il suo dannato fascino vintage. Per fare ciò, mi appoggiavo alle librerie di Gnome, tra le innocue Gtk+ e le decine di viziose dipendenze che ogni programma con la "G" davanti, si portava dietro. All'inizio usando ancora l'installazione di Gnome 2.6 di un'imprecisata versione di Slackware, poi aggiornando a mano (portpkg invero mi ha aiutato con qualche automatismo) pacchetto per pacchetto a Gnome 2.16.
La via scelta in questi giorni è stata diversa: automatismi o binari. Fallita la prima strada (http://www.mkanet.de/data/faq/faq.html), troppo tedesca, al via la prova delle distribuzioni Gnome per Slackware:
- Freerock Gnome (GSB - Gnome SlackBuilds): ricordo di aver prelevato da loro pacchetti binari di pregevole fattura, purtroppo però la versione attuale stabile è la 2.14.3;
- Dropline Gnome: manie di protagonismo che vanno ad intaccare troppe cose della mia donna: è più sexy quando è pulita piuttosto che truccata;
- GWare: la scelta che ho fatto: gli unici pacchetti che ha sovrascritto sono stati le GTK+ (con atk, pango, glib2, eccetera) e DBus. Stop.
Nonostante l'ottimo prodotto, ritrovare un sistema totalmente usabile con sottofondo Gnome, non è affatto immediato. Manca di linee guida basilari per la creazioni di applicazioni: chiunque può scegliere un linguaggio, scriverci dei bindings alle GTK+ e crearsi le proprie applicazioni: così, oltre a combattere con le dipendenze gnomiche, avrai anche quelle per Python, Perl, con i fastidi di un linguaggio interpretato. Senza contare la necessità di vivere in Slackware -current.

Ora basta, vado a prepararmi. Esco a cena con Qt. Probabilmente sarà solo una serata in compagnia di una bella donna, ma tanto basterà per farmi capire se tornare a casa per restare o per preparare le valigie.