Translate

Visualizzazione post con etichetta NeXTStep. Mostra tutti i post
Visualizzazione post con etichetta NeXTStep. Mostra tutti i post

07 novembre 2009

The NeXT thin client - Remote web browsing

Qualche mese fa, la NeXTstation, collegata in rete, era in grado di stampare in remoto sul server Linux, rendendola, perché no, un editor di testi molto affascinante (http://download.tuxfamily.org/greedydotfly/ns/ap/WordPerfect.app.compressed.zip).

Oggi vi propongo un altro utilizzo del Black Hardware collegato alla vostra LAN: la navigazione web.

Le limitazione della NeXTstation Mono.

Gli 8 bit di profondità dell'immagine. L'hardware di quindici anni fa. Il software di dodici anni fa.
La prima limitazione va ad inficiare in primis la scelta dell'applicazione da usare: in particolare le applicazioni Gtk+ che dipendono ormai da Cairo, risentono proprio di un bug di quest'ultimo: http://bugs.freedesktop.org/show_bug.cgi?id=19528.
Le limitazioni hardware derivano dalla bassa velocità del processore,dalla ram e dalla componentistica di rete (limitata a 10 Mbit), mentre quelle software non ci permettono di utilizzare un browser abbastanza moderno per navigare con piacere. Le opzioni sono OmniWeb, ormai vetusto per le pagine html moderne, o browser testuali da usare in terminale...

...O usare la workstation Linux come server remoto.

Per fare ciò dobbiamo ottimizzare al meglio le risorse a disposizione, software in questo caso. La connessione tra NeXTstation e Linux sarà in chiaro, useremo telnet, per evitare al processore tempi di elaborazione troppo lunghi.
Attiviamo telnet: aggiungete a /etc/inetd.conf questa linea: telnet stream tcp nowait root /usr/sbin/in.telnetd -debug e riavviate il superdemone inetd: killall -HUP inetd (naturalmente avete telnet installato nel vostro sistema).
La scelta del browser andrà a ricadere in un'applicazione non Gtk+, e abbastanza snello da permetterci una navigazione più fluida possibile: Arora, in QT, utilizza il motore di rendering WebKit.

La preparazione di NeXTStep.

Per poter utilizzare un'applicazione grafica Linux da remoto, dobbiamo avere a disposizione un server X. Qui trovate la release 5.0 di CubX Window, un server X per NeXTStep. Una volta installato, non ci resta che avviarlo. Configurate CubX per accettare connessioni da tutti gli host, o dalla vostra workstation.
Una volta in esecuzione, si aprirà sul desktop un emulatore di terminale (xterm) dal quale dare i comandi necessari per avviare il browser remoto.

>telnet $ipdelvostroserver
login: $vostroutente
password:

$>export DISPLAY=$ipnextstation:0.0
$>cd /dove/si/trova/il/programma
$>./arora




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

24 agosto 2006

NeXTStep 3.0

Da una VHS del 1991, la presentazione di NeXTStep 3.0 fatta da Steve Jobs.

16 agosto 2006

Configurazione della rete in NeXTStep

NeXTStep 3.3 ci offre un semplice strumento per la configurazione della rete della nostra macchina: SimpleNetworkStarter.app - SNS (nelle versioni precedenti queste impostazioni erano eseguite da Hostconfig.app).

Una volta scelto il nome della nostra macchina (Nome del nodo) e l'indirizzo IP, "clicchiamo" su Opzioni di rete, dove sarà possibile configurare il gateway di default (Router), la netmask, e un nome di dominio NIS, se in uso nella nostra rete LAN.
Fatto ciò, sarà sufficiente "cliccare" su Imposta e quindi Configura: verrà chiesto di attaccare il cavo di rete se non lo si è già fatto, e al prossimo riavvio, la nostra macchina sarà in grando di comunicare con le altre della LAN.

Ora basta creare il file /etc/resolv.conf contenente l'ip del gateway (nella forma nameserver ip) per poter comunicare con Internet.

28 giugno 2006

Samba? IPP dancing!

La scenografia è una LAN. I personaggi si caratterizzano assai bene, qualcuno a pelle può stare anche antipatico. La vicenda porta i nostri protagonisti a stampare: la stampante è collegata via USB al client Linux, che farà da server.

La stampa per Linux non è un problema. Un modulo fatto apposta per le stampanti USB (usblp), una stampante HP (hpjis) e tutto fila liscio con l'interfaccia web di CUPS. Ora, per portare la mia linux-box al rango di print-server occorre modificare il file di configurazione di CUPS per dirgli, semplicemente, di ascoltare in LAN:

< location >
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.1.*
< / location >

Windows si sente un po' retrò in questo periodo e decide di vestirsi come nel '98. Lui per stampare ha due strade: ballare la Samba o mettere un pizzico di modernità tra le pieghe del suo stack (TCP/IP nds.). Scarichiamo quindi l'estensione IPP per Windows 98 da: http://www.microsoft.com/Windows98/downloads/contents/WUPreviews/IPP/, installiamolo, scarichiamo i driver per Win32 relativi alla stampante, e procediamo all'installazione seguendo i cari wizard. Purtroppo i driver HP per Windows, nonostante la stessa HP abbia sviluppato assieme a Microsoft l'estensione IPP per Win32, non funzionano come devono, e stampano... come uno specchio! Corriamo ai ripari con i driver PostScript generici che fornisce l'Adobe stessa:
http://www.adobe.com/support/downloads/product.jsp?product=44&platform=Windows. Modifichiamo quindi il driver della stampante con quello PostScript generico, e tutto va alla perfezione.

Anche NeXTStep si sente retrò, ma al contrario di Windows, vuole mantenere a tutti i costi il suo alone di vintage. Lui vuole addirittura che si simuli un server HP JetDirect. La malleabilità di Linux in questo caso ci è di estremo aiuto: inseriamo in inetd.conf la seguente riga, e poi ricordiamo di avviare il superdemone:

9100 stream tcp nowait lp /usr/bin/lp lp -d < coda di stampa >

e con una modifica ai file mime.convs e mime.types di CUPS, per permettere la stampa in raw, abbiamo una NeXTstation che stampa nella nostra rete locale.

Più facile la vita per Tiger. MacOSX, per la sua natura diabolica (BSD nds.), viene già con CUPS installato. E' sufficiente quindi scaricare i driver ESP Ghostscript e HPJS per MacOSX (http://www.linuxprinting.org/macosx/hpijs/), installarli, e aggiungere una stampante dal wizard che gli esteti del buon Jobs ci propinano per la nostra causa.

Samba?

23 gennaio 2006

NeXT Mp3 Play!

Le note e le melodie di Mother's Little Helper che escono dagli speaker interni del MegaPixel Monitor, creano un'atmosfera surreale.
Tutto grazie ad un programmino, nxmp3play, non più mantenuto, per motivi di royalties.

Con le limitazioni del caso per la NeXTstation (audio in mono e a 22 Khz), anche dal Black Hardware esce buona musica. Ma avevamo dubbi?

Qui un link da cui scaricare il programma.

02 gennaio 2006

Tips&Tricks

Indice:

CSH completion on NeXTStep 3.3
OpenOffice.org 2.0 e temi GTK+
Masterizzatore esterno USB: i moduli necessari
Aggiornamenti in Firefox ed estensioni
Ripristino delle configurazioni di default in NeXTStep
NTP client e fuso orario in NeXTStep
Firefox e Flashplayer Plugin



Da quanto ho visto, sembra che di default questa funzione non sia attiva. Per attivarla digitare:
set filec=1

e per rendere le impostazioni permanenti, modificate i file .cshrc nella home degli utenti. A questo punto premendo Escape o Ctrl+D avremo il completamento e le varie possibilità.

Per far usare i temi GTK+ anche a OpenOffice.org, esportate la seguente variabile nel file ~/.profile come segue:
export OOO_FORCE_DESKTOP="gnome"

quindi rileggete l'environment locale con:
. .profile


Da "lsmod":
[...]


usb_storage 33540 0
scsi_mod 99432 3 sg,sr_mod,usb_storage
usbcore 121084 6 ohci_hcd,ehci_hcd,usb_storage,uhci_hcd


[...]

in un kernel Linux 2.6.

Spesso, aggiornando a nuove minor release di Mozilla Firefox, le vecchie estensioni e temi non funzionano più. Questo è dovuto ad un mancato aggiornamento delle stesse, o se vogliamo, ad un ristretto range di compatibilità con le versioni del browser. Le estensioni non sono altro che archivi compressi con zip, quindi gestibili tranquillamente. Ma vediamo un esempio:

unzip it.xpi
Archive: it.xpi
creating: chrome/
inflating: chrome/chromelist.txt
inflating: chrome/it.jar
inflating: chrome.manifest
inflating: install.rdf

Il file che ci interessa è l'install.rdf, un file xml, facilmente interpretabile e modificabile. Noi dobbiamo mettere mani alla sezione <em:targetapplication> </em:targetapplication>, modificando i valori di:

<em:minVersion> 1.5 </em:minVersion>
<em:maxVersion> 1.5.0.1 </em:maxVersion>


secondo le nostre esigenze. Una volta salvato il file, possiamo ricreare l'archivio col comando zip.


A volte capita di sbagliare qualche configurazione, compromettendo il boot della macchina (in realtà si arriva comunque ad una shell root). Per ripristinare le configurazione di default sicuramente funzionanti è sufficiente eseguire i seguenti comandi: l'interpretazione degli stessi è elementare:

mv /etc/netinfo /etc/netinfo.OLD
mv /etc/hostconfig /etc/hostconfig.old
cp -rp /usr/template/client/etc/netinfo /etc
cp /usr/template/client/etc/hostconfig /etc




Una volta inserita una semplice riga in /etc/rc.local per la sincronizzazione via ntp al boot del sistema (vi rimando al man di ntp per la configurazione dello stesso), si dovrà selezionare nelle Preferenze per la data e l'ora di Preferences.app, il fuso orario CET - Europa Centrale. Al contrario, usando GMT+1 si sarebbe in ritardo di un'ora (http://it.wikipedia.org/wiki/GMT).

Firefox 3.0.3 e Shockwave Flash 10.0 r12 sono una configurazione funzionante. Tuttavia ho notato che dopo alcuni giorni di utilizzo, Firefox ha dei freeze quando si guardano filmati in flash dal browser che richiedono un kill all'applicazione. Se anche voi notate un comportamento del genere, la soluzione è abbastanza semplice: far rigenerare a Firefox i file ~/.mozilla/pluginreg.dat ~/.mozilla/firefox/profilo.default/pluginreg.dat e ~/.mozilla/firefox/profilo.default/xpti.dat. Quindi, una volta chiusa la sessione corrente del browser, rm $file_di_cui_sopra e avviare Firefox.

31 dicembre 2005

NeXTstation online!

Ed ecco come si presenta il desktop alla mia sinistra: "Greedy online" (N.d.r. Bush - The Science of Thing)

RadicalNews 1.1 (Alexandra.app mi dava problemi durante il posting dei messaggi: errore 441), OmniWeb 2.6. Nei prossimi giorni finalmente vi presenterò il resto della mia rete.