Tarature tecnico: A9
--------------- sottomenù impostazioni varie: 55
Translate
09 febbraio 2015
21 gennaio 2014
Windows 98, 3DFX, Glide... Windows 7, OpenGL, nGlide!
Come far girare i vecchi giochi scritti per Glide su sistemi moderni? Facile: nGlide - http://www.zeus-software.com/downloads/nglide
Testati con successo: Need For Speed 2 Special Edition; Turok: Dinosaur Hunter; Star Trke: The Next Generation: Klingon Honor Guard.
Testati con successo: Need For Speed 2 Special Edition; Turok: Dinosaur Hunter; Star Trke: The Next Generation: Klingon Honor Guard.
26 novembre 2013
Play Store su I-INN Kirk 3
Scrivo questo post solo per promemoria, per me e per altri.
Di serie, il tablet in oggetto, viene senza Play Store attivo e nella mia versione, Kirk 3 M, con uno store alternativo.
Lo si può attivare in poche mosse, ed avere tutti i vantaggi di Android Google-centrico:
1) https://www.google.it/#q=play+store+apk scaricarlo e installarlo.
2) Dal vostro Market preferito installare LINK2SD e impostare come applicazione di sistema Play Store appena installato
3) Reboot!
1) https://www.google.it/#q=play+store+apk scaricarlo e installarlo.
2) Dal vostro Market preferito installare LINK2SD e impostare come applicazione di sistema Play Store appena installato
3) Reboot!
21 giugno 2012
International Watch Co. - Sciaffusa
Non mi dilungherò sulla storia della prestigiosa casa svizzera, e non descriverò i modelli della collezione attuale. Darò invece indicazioni pratiche e utili per la gestione amorosa del vostro orologio.
Due cose particolari da ricordare: IWC è stata fondata nel 1868 da un americano chiamato Florentine Ariosto Jones (che darà il nome al primo calibro della casa) nella zona nord-est della Svizzera, dove tutt'ora, è l'unica fabbrica di orologi nella zona di Sciaffusa (Schaffhausen). Qui potete approfondire la storia del marchio: http://www.it.iwc.com/manufactor/story.asp
Cominciamo con le FAQ: http://www.it.iwc.com/faq/109.asp dove troverete indicazioni sull'uso e abuso del vostro orologio.
Rivenditori autorizzati, boutique e centri assistenza in Friuli Venezia Giulia, a Udine:
Bortolin Gioielli - Via Rialto 6 - Telefono: 0432 - 295650 - E-mail: rialto@bortolingioielli.it - Web: http://bortolingioielli.it/
Gioielleria Montalbano - Via Cavour 26 / B - Telefono: 0432 - 25031 - Fax: 0432 - 229551 - E-mail: giovannamontalbano1@virgilio.it
Per contattare direttamente IWC Italia, scrivete a: iwc.italia@iwc.com
Qui un estratto dall'archivio IWC per determinare l'epoca del vostro orologio in base al numero di cassa:
Due cose particolari da ricordare: IWC è stata fondata nel 1868 da un americano chiamato Florentine Ariosto Jones (che darà il nome al primo calibro della casa) nella zona nord-est della Svizzera, dove tutt'ora, è l'unica fabbrica di orologi nella zona di Sciaffusa (Schaffhausen). Qui potete approfondire la storia del marchio: http://www.it.iwc.com/manufactor/story.asp
Cominciamo con le FAQ: http://www.it.iwc.com/faq/109.asp dove troverete indicazioni sull'uso e abuso del vostro orologio.
Rivenditori autorizzati, boutique e centri assistenza in Friuli Venezia Giulia, a Udine:
Bortolin Gioielli - Via Rialto 6 - Telefono: 0432 - 295650 - E-mail: rialto@bortolingioielli.it - Web: http://bortolingioielli.it/
Gioielleria Montalbano - Via Cavour 26 / B - Telefono: 0432 - 25031 - Fax: 0432 - 229551 - E-mail: giovannamontalbano1@virgilio.it
Per contattare direttamente IWC Italia, scrivete a: iwc.italia@iwc.com
Qui un estratto dall'archivio IWC per determinare l'epoca del vostro orologio in base al numero di cassa:
| ~ | 1885 - 1890 | ~ 0 - 50 000 | ||||
| 1890 - 1900 | 50 000 - 218 000 | |||||
| 1900 - 1910 | 218 000 - 466 000 | |||||
| 1910 - 1920 | 466 000 - 758 000 | |||||
| 1920 - 1930 | 758 000 - 917 000 | |||||
| 1930 - 1940 | 917 000 - 1 020 000 | |||||
| 1940 - 1950 | 1 020 000 - 1 176 000 | |||||
| 1950 - 1960 | 1 176 000 - 1 495 000 | |||||
| 1960 - 1970 | 1 495 000 - 1 826 000 | |||||
| 1970 - 1980 | 1 826 000 - 2 250 000 | |||||
PulseAudio e le bugie moderne...
Ma prima mentivano anche ESD e compagnia bella...
Da Wikipedia Italia: "PulseAudio (precedentemente noto come Polypaudio) è un sound server multipiattaforma comunemente usato sulle distribuzioni GNU/Linux in alternativa ad ALSA (su cui si appoggia) per ovviare all'inconveniente di quest'ultima di non poter riprodurre il suono da più fonti audio contemporaneamente."
Non so a casa vostra, ma da me non è vero: Soundgarden - Black Hole Sun con MPlayer, Chris Cornell - Ground Zero con Amarok, Audioslave - Like a Stone su Youtube , contemporaneamente e senza usare PulseAudio o qualsiasi altro soundserver.
Appena uscito Linux 2.6 era ALSA quello che dovevi usare, e online c'era un bellissima guida del wiki di Gentoo, talmente vintage che l'hanno rimossa, intitolata "HOWTO ALSA sound mixer aka dmix". Cosa diavolo sarà mai questo dmix!? E' un plugin di ALSA che fa esattamente quello che farebbe un soundserver, solamente è già disponibile senza installare nulla. Ma credo che per la massa non sia un problema, Fedora, Mandriva e Ubuntu usano già PulseAudio.
Slackware no, non lo usa. Audio multiplo via HDMI e controllo del volume dell'uscita digitale (invero è un bypass dei limiti dell'hardware, così come il software mixing) usando solo ALSA.
asoundrc liberamente tratto dalla Rete e modificato dal sottoscritto per venire incontro alle mie esigenze e vezzi.
Funziona su EeeBox 1501, NVIDIA ION, driver video proprietari per necessità (Nouveau non supporta ancora l'audio HDMI).
Da Wikipedia Italia: "PulseAudio (precedentemente noto come Polypaudio) è un sound server multipiattaforma comunemente usato sulle distribuzioni GNU/Linux in alternativa ad ALSA (su cui si appoggia) per ovviare all'inconveniente di quest'ultima di non poter riprodurre il suono da più fonti audio contemporaneamente."
Non so a casa vostra, ma da me non è vero: Soundgarden - Black Hole Sun con MPlayer, Chris Cornell - Ground Zero con Amarok, Audioslave - Like a Stone su Youtube , contemporaneamente e senza usare PulseAudio o qualsiasi altro soundserver.
Appena uscito Linux 2.6 era ALSA quello che dovevi usare, e online c'era un bellissima guida del wiki di Gentoo, talmente vintage che l'hanno rimossa, intitolata "HOWTO ALSA sound mixer aka dmix". Cosa diavolo sarà mai questo dmix!? E' un plugin di ALSA che fa esattamente quello che farebbe un soundserver, solamente è già disponibile senza installare nulla. Ma credo che per la massa non sia un problema, Fedora, Mandriva e Ubuntu usano già PulseAudio.
Slackware no, non lo usa. Audio multiplo via HDMI e controllo del volume dell'uscita digitale (invero è un bypass dei limiti dell'hardware, così come il software mixing) usando solo ALSA.
asoundrc liberamente tratto dalla Rete e modificato dal sottoscritto per venire incontro alle mie esigenze e vezzi.
#----
# .asoundrc file designed to expand 2 channels through device 'clone_output'
# to output 2 channels to multiple devices
#
# caveats : no mixed output (no crossfading, no multiple applications) also
# sync will drift between the devices (rarely do i see mine drift though)
#
# designed around a nvidia ION1 zotac board. You may need to change
# device names.
# Use aplay -l to find device numbers
#
# questions contact Loto_Bak on forums.xbmc.org
#----
#-----
# Single channel dmixed. Crossfade works
#-----
pcm.hdmiout {
type plug
slave.pcm "dmixed_hdmi"
}
pcm.dmixed_hdmi {
type dmix
ipc_key 2024
slave {
pcm "hw:0,3" # Il mio device HDMI
}
}
#-----
# multiple output portion begin (3 devices) dmix not supported.
#-----
pcm.clone_output {
type plug
slave.pcm "6channel_expander"
}
pcm.multi_pcm_device {
type multi;
slaves.a.pcm "hw:0,3"; # hdmi
slaves.a.channels 2;
slaves.b.pcm "hw:0,0"; # analog
slaves.b.channels 2;
slaves.c.pcm "hw:0,1"; # spdif
slaves.c.channels 2;
bindings.0.slave a;
bindings.0.channel 0;
bindings.1.slave a;
bindings.1.channel 1;
bindings.2.slave b;
bindings.2.channel 0;
bindings.3.slave b;
bindings.3.channel 1;
bindings.4.slave c;
bindings.4.channel 0;
bindings.5.slave c;
bindings.5.channel 1;
}
ctl.multi_pcm_device {
type hw;
card 0;
}
pcm.6channel_expander {
type route;
slave.pcm "multi_pcm_device";
slave.channels 6;
ttable.0.0 1;
ttable.1.1 1;
ttable.0.2 1;
ttable.1.3 1;
ttable.0.4 1;
ttable.1.5 1;
}
ctl.6channel_expander {
type hw;
card 0;
}
# Softvolume Control (qui viene creato un finto dispositivo da poter # gestire via KMix, AlsaMixer, etc..)
pcm.FilterSoftwareVolume {
type softvol
slave.pcm "dmixed_hdmi"
control {
name "Software Volume Mixer"
}
}
# Qui diciamo al sistema di usare il dispositivo configurato e creato # in precedenza
pcm.!default {
type plug
slave.pcm "FilterSoftwareVolume"
}
Funziona su EeeBox 1501, NVIDIA ION, driver video proprietari per necessità (Nouveau non supporta ancora l'audio HDMI).
09 dicembre 2011
Alcatel One Touch 890D Root Success
Dispositivo: Alcatel One Touch 890D
Versione Android: 2.2.2
Kernel: 2.6.32.9
Ho utilizzato GingerBreak 1.2: http://forum.xda-developers.com/showthread.php?t=1044765
Versione Android: 2.2.2
Kernel: 2.6.32.9
Ho utilizzato GingerBreak 1.2: http://forum.xda-developers.com/showthread.php?t=1044765
16 gennaio 2010
Network printing and scanning (NeXT/Win32/Linux)
In questo post riassumerò in breve i passi principali per poter condividere in rete una stampante e uno scanner USB collegati ad un server Linux.
Configurazione del server.
Le modifiche ai file di configurazione che vado a descrivere dovrebbero applicarsi alla maggior parte dei sistemi Unix in uso, se non è così: man man .
Scanner - configurazione di saned.
Modificate il file /etc/sane.d/saned.conf in modo tale che il demone ascolti in LAN, aggiungendo l'ip, o la classe di ip, della vostra rete:
## Access list
# A list of host names, IP addresses or IP subnets (CIDR notation)
# are permitted to use local SANE devices. IPv6 addresses must be
# in brackets, and should always be specified in their compressed.
#
# The hostname matching is not case-sensitive.
#scan-client.somedomain.firm
#192.168.0.1
192.168.1.0/24
#[2001:7a8:185e::42:12]
#[2001:7a8:185e::42:12]/64
privo di commento (#), come da esempio.
Scanner - Configurazione di inetd.
Inetd si occupa di gestire le richieste di rete, smistandole ai demoni corretti in base alla porta di connessione. Per saned, aggiungerete una linea simile a questa:
6566 stream tcp nowait root /usr/sbin/saned saned
6566 è il numero della porta utilizzata da sane per le comunicazioni di rete.
Stampante - Configurazione di CUPS
In questo caso il file da modificare è /etc/cups/cupsd.conf, anche lui deve ascoltare in rete, quindi modifichiamo la sezione Location come segue:
# Allow shared printing...
Order Deny,Allow
Deny From all
Allow From 127.0.0.1
Allow From 192.168.1.*
Fatto ciò dobbiamo abilitare la stampa raw in CUPS modificando /etc/cups/mime.types e /etc/cups/mime.conf eliminando il commento (#) dalla stringa seguente:
application/octet-stream
Stampante - Configurazione di inetd (NeXT)
La povera NeXTstation, a causa della sua età, ha bisogno di un piccolo trucco per stampare sul server Linux. Facciamo credere a NeXTStep che il server CUPS in Linux sia un server JetDirect, modificando /etc/inetd.conf come segue:
9100 stream tcp nowait lp /usr/bin/lp-cups lp-cups -d nomedellavostrastampate
Riavviamo quindi i demoni inetd e cupsd (con un killall -HUP oppure usando gli script di sistema).
Configurazione dei client.
NeXT.
Aggiungiamo una stampante JetDirect usando il wizard di configurazione che trovate in /NextApps (vedi screenshot).
Windows.
Anche in Windows le cose non sono complicate, se non per un fastidioso bug che ci costringe ad usare driver generici PostScript (li trovate qui: http://www.adobe.com/support/downloads/product.jsp?platform=win&product=pdrv) se usate una stampante HP (in due parole, usando i driver HP, le immagini e il testo viene stampato ruotato di 180°, come riflesso). Per aggiungere la stampante usate il wizard che da versioni ci accompagna (vedi screenshot).
Per usare lo scanner in rete con SANE, andate qui: http://www.xsane.org/xsane-win32.html


Configurazione del server.
Le modifiche ai file di configurazione che vado a descrivere dovrebbero applicarsi alla maggior parte dei sistemi Unix in uso, se non è così: man man .
Scanner - configurazione di saned.
Modificate il file /etc/sane.d/saned.conf in modo tale che il demone ascolti in LAN, aggiungendo l'ip, o la classe di ip, della vostra rete:
## Access list
# A list of host names, IP addresses or IP subnets (CIDR notation)
# are permitted to use local SANE devices. IPv6 addresses must be
# in brackets, and should always be specified in their compressed.
#
# The hostname matching is not case-sensitive.
#scan-client.somedomain.firm
#192.168.0.1
192.168.1.0/24
#[2001:7a8:185e::42:12]
#[2001:7a8:185e::42:12]/64
privo di commento (#), come da esempio.
Scanner - Configurazione di inetd.
Inetd si occupa di gestire le richieste di rete, smistandole ai demoni corretti in base alla porta di connessione. Per saned, aggiungerete una linea simile a questa:
6566 stream tcp nowait root /usr/sbin/saned saned
6566 è il numero della porta utilizzata da sane per le comunicazioni di rete.
Stampante - Configurazione di CUPS
In questo caso il file da modificare è /etc/cups/cupsd.conf, anche lui deve ascoltare in rete, quindi modifichiamo la sezione Location come segue:
# Allow shared printing...
Order Deny,Allow
Deny From all
Allow From 127.0.0.1
Allow From 192.168.1.*
Fatto ciò dobbiamo abilitare la stampa raw in CUPS modificando /etc/cups/mime.types e /etc/cups/mime.conf eliminando il commento (#) dalla stringa seguente:
application/octet-stream
Stampante - Configurazione di inetd (NeXT)
La povera NeXTstation, a causa della sua età, ha bisogno di un piccolo trucco per stampare sul server Linux. Facciamo credere a NeXTStep che il server CUPS in Linux sia un server JetDirect, modificando /etc/inetd.conf come segue:
9100 stream tcp nowait lp /usr/bin/lp-cups lp-cups -d nomedellavostrastampate
Riavviamo quindi i demoni inetd e cupsd (con un killall -HUP oppure usando gli script di sistema).
Configurazione dei client.
NeXT.
Aggiungiamo una stampante JetDirect usando il wizard di configurazione che trovate in /NextApps (vedi screenshot).
Windows.
Anche in Windows le cose non sono complicate, se non per un fastidioso bug che ci costringe ad usare driver generici PostScript (li trovate qui: http://www.adobe.com/support/downloads/product.jsp?platform=win&product=pdrv) se usate una stampante HP (in due parole, usando i driver HP, le immagini e il testo viene stampato ruotato di 180°, come riflesso). Per aggiungere la stampante usate il wizard che da versioni ci accompagna (vedi screenshot).
Per usare lo scanner in rete con SANE, andate qui: http://www.xsane.org/xsane-win32.html


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
18 aprile 2009
Logitech Quickcam E2500 e Linux
Questa per capirci. Qui tratterò i kernel >= al 2.6.27.x.
Caricamento dei moduli.
Senza riavviare, è sufficiente dare un: modprobe gspca_zc3xx e in /var/log/messages vedremo qualcosa del tipo:
Controllate che il device venga creato correttamente con ls /dev/video*.
Usare la webcam.
I kernel recenti sono da poche release passati alla versione 2 dei driver Video for Linux (v4l2), ma non tutte le applicazioni hanno seguito la stessa roadmap di rilasci. Quindi, prima di provare il vostro programma preferito di videoconferenza, siate sicuri di aver installato nel vostro sistema le libv4l nella versione >= a 0.5.2. Questo installerà nel vostro sistema dei wrapper in userspace per poter usare programmi non ancora pronti a v4l2.
I software.
aMsn: funziona out of the box.
Skype: è sufficiente caricare un wrapper di cui sopra prima dell'avvio: LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so skype
MPlayer: come sopra, solo che il wrapper ora è: LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so mplayer tv:// -tv driver=v4l:device=/dev/video0:width=640:height=480
VLC: LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so vlc
Da notare che ancora non funzionano il led di attività e il bottone nel retro della webcam.
Caricamento dei moduli.
Senza riavviare, è sufficiente dare un: modprobe gspca_zc3xx e in /var/log/messages vedremo qualcosa del tipo:
gspca: main v2.4.0 registered
gspca: probing 046d:089d
gspca: probe ok
zc3xx: Sensor MC501CB
usbcore: registered new interface driver zc3xx
zc3xx: registered
Controllate che il device venga creato correttamente con ls /dev/video*.
Usare la webcam.
I kernel recenti sono da poche release passati alla versione 2 dei driver Video for Linux (v4l2), ma non tutte le applicazioni hanno seguito la stessa roadmap di rilasci. Quindi, prima di provare il vostro programma preferito di videoconferenza, siate sicuri di aver installato nel vostro sistema le libv4l nella versione >= a 0.5.2. Questo installerà nel vostro sistema dei wrapper in userspace per poter usare programmi non ancora pronti a v4l2.
I software.
aMsn: funziona out of the box.
Skype: è sufficiente caricare un wrapper di cui sopra prima dell'avvio: LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so skype
MPlayer: come sopra, solo che il wrapper ora è: LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so mplayer tv:// -tv driver=v4l:device=/dev/video0:width=640:height=480
VLC: LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so vlc
Da notare che ancora non funzionano il led di attività e il bottone nel retro della webcam.
19 gennaio 2009
Atari Portfolio as a Linux Terminal
Erano queste le parole da digitare sul motore di ricerca - un paio d'anni fa... - per trovare un interessante programma in Assembler, pensato appositamente per essere trasferito nell'Atari Portfolio via porta seriale ed essere usato come terminale seriale, appunto. Qui, mi limito a fare la copia della copia (le trovate su http://web.archive.org) delle pagine necessarie per trasferire il programma in binario nel Portfolio, e per compilare il sorgente in Assembler; il tutto rigorosamente da Linux.
http://download.tuxfamily.org/greedydotfly/atari/portfolio/n/apt_main.htm
http://download.tuxfamily.org/greedydotfly/atari/portfolio/n/apterm_l.htm
http://download.tuxfamily.org/greedydotfly/atari/portfolio/n/apterm.com (il binario di cui sopra)
Come potrete immaginare, sono anch'io un felice possessore di un Atari Portfolio del 1989 (HPC-006, numero seriale illeggibile) dotato di interfaccia seriale HPC-102, numero di serie: X22241007565, con tastiera QUERTZ (ebbene sì, un po' tedesco).
Da bambino avevo anche un Atari 2600 jr, ormai perso nella soffitta del nonno materno... Ma questa è un'altra storia!
http://download.tuxfamily.org/greedydotfly/atari/portfolio/n/apt_main.htm
http://download.tuxfamily.org/greedydotfly/atari/portfolio/n/apterm_l.htm
http://download.tuxfamily.org/greedydotfly/atari/portfolio/n/apterm.com (il binario di cui sopra)
Come potrete immaginare, sono anch'io un felice possessore di un Atari Portfolio del 1989 (HPC-006, numero seriale illeggibile) dotato di interfaccia seriale HPC-102, numero di serie: X22241007565, con tastiera QUERTZ (ebbene sì, un po' tedesco).
Da bambino avevo anche un Atari 2600 jr, ormai perso nella soffitta del nonno materno... Ma questa è un'altra storia!
WindowMaker corner
Website: www.windowmaker.info
Mailing list: Up
Dev: https://hg.windowmaker.info/wmaker/
IRC: irc://irc.freenode.net/windowmaker
Version: 0.92.1 -pre1
Sources at: ftp://windowmaker.info/pub/source/snapshots/
Patches: N/A
Update #1
http://nextmaker.blogspot.com/
Update #2
http://repo.or.cz/w/wmaker-crm.git
Update #3
Lo sviluppo del tree ufficiale è stato ripreso, a giorni attendiamo una release stabile 0.92.1. Il team non è più lo stesso di un tempo, anche se Dan Pascu partecipa attivamente alle discussioni in mailing-list.
Mailing list: Up
Dev: https://hg.windowmaker.info/wmaker/
IRC: irc://irc.freenode.net/windowmaker
Version: 0.92.1 -pre1
Sources at: ftp://windowmaker.info/pub/source/snapshots/
Patches: N/A
Update #1
http://nextmaker.blogspot.com/
Update #2
http://repo.or.cz/w/wmaker-crm.git
Update #3
Lo sviluppo del tree ufficiale è stato ripreso, a giorni attendiamo una release stabile 0.92.1. Il team non è più lo stesso di un tempo, anche se Dan Pascu partecipa attivamente alle discussioni in mailing-list.
07 luglio 2008
WindowMaker: True Transparency
Anche WindowMaker può essere agghindato come i suoi cugini. Trasparenze e fade effects fanno buona mostra assieme alla Dock, e con un può di buon senso, ne guadagna anche l'usabilità.
Di cosa abbiamo bisogno?
Estensione Composite di X.Org attiva:
Composite manager:
Transd - transparency daemon:
Do it for real!
Per prima cosa attiviamo il composite manager all'avvio di WMaker, e per fare ciò aggiungiamo una linea in ~/GNUstep/Library/WindowMaker/autostart, come questa:
Transd si compone di due elementi, un pseudo-demone (che non crea file .pid e muore spesso, ma ne parliamo poi) e di un file di configurazione: /etc/transd/transd.conf. In quest'ultimo possiamo modificare le proprietà di trasparenza delle finestre in focus e out focus. Una volta installato date un'occhiata al file di configurazione d'esempio.
Transd non è più mantenuto da qualche anno, e si porta ancora dietro problemi di giovinezza quali crash ad ogni chiusura di finestra su cui agisce, senza possibilità di riprendersi se non per via manuale. Non programmo in C, e di guardare il codice non ne ho voglia (se volete farlo voi accomodatevi pure e fatemelo sapere :) quindi ho creato uno script bash che fa da workaround ai continui crash. Eccovelo di seguito:
Lo screenshot è d'obbligo e lo corredo delle impostazioni che uso io per i programmi in immagine:
# Xterm rules
ON Enter ( WM_CLASS == XTerm ) SET TO 0.8
ON Leave ( WM_CLASS == XTerm ) SET TO 0.3
# Audacious rules
ON Enter ( WM_CLASS == Audacious ) SET TO 0.8
ON Leave ( WM_CLASS == Audacious ) SET TO 0.3
(Per recuperare il valore di WM_CLASS usate il programma xprop)
Di cosa abbiamo bisogno?
Estensione Composite di X.Org attiva:
michele@lounge:~$ cat /etc/X11/xorg.conf | grep -i composite
Option "Composite" "Enable"
Composite manager:
michele@lounge:~$ whereis xcompmgr
xcompmgr: /usr/bin/xcompmgr /usr/X11R6/bin/xcompmgr /usr/bin/X11/xcompmgr /usr/X11/bin/xcompmgr /usr/man/man1/xcompmgr.1.gz /usr/man/man1/xcompmgr.1 /usr/share/man/man1/xcompmgr.1.gz /usr/share/man/man1/xcompmgr.1 /usr/X11/man/man1/xcompmgr.1.gz /usr/X11/man/man1/xcompmgr.1
Transd - transparency daemon:
http://transd.berlios.de/
Do it for real!
Per prima cosa attiviamo il composite manager all'avvio di WMaker, e per fare ciò aggiungiamo una linea in ~/GNUstep/Library/WindowMaker/autostart, come questa:
xcompmgr -f & # Attiva il composite manager con effetti fade di base
Transd si compone di due elementi, un pseudo-demone (che non crea file .pid e muore spesso, ma ne parliamo poi) e di un file di configurazione: /etc/transd/transd.conf. In quest'ultimo possiamo modificare le proprietà di trasparenza delle finestre in focus e out focus. Una volta installato date un'occhiata al file di configurazione d'esempio.
Transd non è più mantenuto da qualche anno, e si porta ancora dietro problemi di giovinezza quali crash ad ogni chiusura di finestra su cui agisce, senza possibilità di riprendersi se non per via manuale. Non programmo in C, e di guardare il codice non ne ho voglia (se volete farlo voi accomodatevi pure e fatemelo sapere :) quindi ho creato uno script bash che fa da workaround ai continui crash. Eccovelo di seguito:
Script che non fa altro che richiamare se stesso eliminando il precedente processo per non ingolfare l'output di ps. Le migliorie sono sempre ben accette.
#!/bin/sh
PID=`pgrep -o transd-nocrash` # The old process
PID1=`pgrep -n transd-nocrash` # The new one
if [ "$PID" = "$PID1" ]; then echo "Ok"; # Check if it's the same process
else kill $PID; # else kill the old one
fi
transd # Run transd daemon
wait $transd # Wait for its crash
/usr/bin/transd-nocrash # Loop
Lo screenshot è d'obbligo e lo corredo delle impostazioni che uso io per i programmi in immagine:
# Xterm rules
ON Enter ( WM_CLASS == XTerm ) SET TO 0.8
ON Leave ( WM_CLASS == XTerm ) SET TO 0.3
# Audacious rules
ON Enter ( WM_CLASS == Audacious ) SET TO 0.8
ON Leave ( WM_CLASS == Audacious ) SET TO 0.3
(Per recuperare il valore di WM_CLASS usate il programma xprop)
12 aprile 2008
Un cestino per WindowMaker
Voglio un desktop moderno e semplice. Bello e intuitivo. Voglio che assomigli a NeXTStep!
Il window manager che farà da struttura portante è senza ombra di dubbio WindowMaker: siamo alla versione 0.92.0 da tre anni, ma le feature che abbiamo a disposizione sono più che sufficienti.
Adesso dobbiamo scegliere cosa usare come gambe della scrivania: un ambiente GNUStep (che ci offre applicazioni dal look e dal comportamento molto simile a NeXT/OPENStep) o utilizzare gli ambienti prediletti dell'utenza GNU/Linux, KDE e Gnome. Ho scelto la seconda via.
Perché assomigli a NeXTStep ci devono essere essenzialmente due elementi: la Dock e un Workspace Manager (il papà del moderno Finder). La scelta, per motivi di tempo e praticità, è ricaduta su Konqueror.
Avviato la prima volta, ho aggiunto l'appicon alla Dock e impostato per farlo partire ad ogni avvio di WMaker, come da figura.

L'aggiunta di altre dockapp e appicon è a vostra discrezione. Ve ne suggerisco giusto un paio che trovo molto utili e ben fatte: la prima, Docker, una system tray, e wmpinboard, il post-it per WM.
Manca ancora qualcosa: il cestino!
L'idea.
L'idea di un'implementazione del genere mi è venuta guardando l'immagine qui a fianco. Se notate il penultimo campo, leggete la dicitura: Command for files dropped with DND (Drag 'n Drop).
Quindi, se sopra un'appicon trascino un file da un file manager, posso far eseguire uno script che ha come argomento il nome del file in questione (tipo: mv nomefile ~.Trash).
La pratica.
Cosa ci serve? In primis, WindowMaker compilato col supporto (ancora sperimentale, ndS.) al DND.
Per fare ciò, dopo il configure dei sorgenti, bisogna modificare il file ../src/wconfig.h, in questo modo:
e il file ../src/misc.c, pena la mancata compilazione di WM, come segue:
Ora non ci serve altro che uno script adatto allo scopo.
E siamo fortunati: trash! Una serie di script in python che si integrano con le specifiche FreeDesktop, e quindi anche con il cestino di KDE e degli altri desktop manager (leggi Gnome, XFCE, eccetera).
Cosa manca? Un appicon che faccia quello che vogliamo. Createne una, magari prendendola in prestito da altre applicazioni e modificatela a vostro piacimento. Questa la mia, presa in prestito da Gimp:
L'icona la scegliete voi, ricordando che rimarrà statica e non cambierà se svuotate il cestino. I comandi impostati sono abbastanza intuitivi: doppio click sinistro e apre Konqueror nella directory del cestino; click col tasto centrale e svuota il cestino utilizzando uno degli script in python di cui sopra; trascinamento di un file sull'icona e relativa cestinazione dello stesso, tramite script di cui sopra.
Bugs.
Ci sono. Personalmente ho verificato riavvii improvvisi di WindowMaker passando da console a X, e comportamenti strani del supporto DND: in particolare, prima devo avviare un file manager in GTK (Thunar), e usare il Drag 'n Drop prima che un'applicazione QT (Konqueror) sia in grado di utilizzarlo con successo. Qualche vostro feedback sarebbe utile.
[Update - 13/04/2008]
C'è anche un bug negli script in python: in particolare, il restore dei file dal cestino funziona solo da linea di comando con lo script restore-trash mentre da Konqueror non funziona.
[/Update]
[Update - 05/05/2008]
Dolphin è il file manager d'obbligo da usare con l'opzione columns, che lo rende molto simile all'originale Workspace Manager di NeXTStep. Aspettiamo il rilascio di KDE 4.1 per qualcosa di davvero stabile.
[/Update]
[Update - 11/11/2008]
I bug degli script in python sono stati corretti. Ora funzionano alla perfezione, grazie agli sviluppatori. Rimangono da risolvere due questioni: l'uso del Drag 'N Drop con le applicazioni QT (vedi sopra) e il comportamento di Dolphin che non aggiorna il contenuto della directory Trash in automatico.
[/Update]
Vi lascio con due screenshot :)

Il window manager che farà da struttura portante è senza ombra di dubbio WindowMaker: siamo alla versione 0.92.0 da tre anni, ma le feature che abbiamo a disposizione sono più che sufficienti.
Adesso dobbiamo scegliere cosa usare come gambe della scrivania: un ambiente GNUStep (che ci offre applicazioni dal look e dal comportamento molto simile a NeXT/OPENStep) o utilizzare gli ambienti prediletti dell'utenza GNU/Linux, KDE e Gnome. Ho scelto la seconda via.
Perché assomigli a NeXTStep ci devono essere essenzialmente due elementi: la Dock e un Workspace Manager (il papà del moderno Finder). La scelta, per motivi di tempo e praticità, è ricaduta su Konqueror.
Avviato la prima volta, ho aggiunto l'appicon alla Dock e impostato per farlo partire ad ogni avvio di WMaker, come da figura.

L'aggiunta di altre dockapp e appicon è a vostra discrezione. Ve ne suggerisco giusto un paio che trovo molto utili e ben fatte: la prima, Docker, una system tray, e wmpinboard, il post-it per WM.
Manca ancora qualcosa: il cestino!
L'idea.
L'idea di un'implementazione del genere mi è venuta guardando l'immagine qui a fianco. Se notate il penultimo campo, leggete la dicitura: Command for files dropped with DND (Drag 'n Drop).
Quindi, se sopra un'appicon trascino un file da un file manager, posso far eseguire uno script che ha come argomento il nome del file in questione (tipo: mv nomefile ~.Trash).
La pratica.
Cosa ci serve? In primis, WindowMaker compilato col supporto (ancora sperimentale, ndS.) al DND.
Per fare ciò, dopo il configure dei sorgenti, bisogna modificare il file ../src/wconfig.h, in questo modo:
/*
* support for XDND drop in the Dock. Experimental
*/
#define XDND
e il file ../src/misc.c, pena la mancata compilazione di WM, come segue:
/* if (!dropped_thing) {
* dropped_thing = get_dnd_selection(scr);
* }
*/
make && make install (o vi create il pacchetto di binari con i tool della vostra distribuzione). Avviate WindowMaker, ora col supporto per il Drag 'n Drop attivo.Ora non ci serve altro che uno script adatto allo scopo.
E siamo fortunati: trash! Una serie di script in python che si integrano con le specifiche FreeDesktop, e quindi anche con il cestino di KDE e degli altri desktop manager (leggi Gnome, XFCE, eccetera).
Cosa manca? Un appicon che faccia quello che vogliamo. Createne una, magari prendendola in prestito da altre applicazioni e modificatela a vostro piacimento. Questa la mia, presa in prestito da Gimp:
L'icona la scegliete voi, ricordando che rimarrà statica e non cambierà se svuotate il cestino. I comandi impostati sono abbastanza intuitivi: doppio click sinistro e apre Konqueror nella directory del cestino; click col tasto centrale e svuota il cestino utilizzando uno degli script in python di cui sopra; trascinamento di un file sull'icona e relativa cestinazione dello stesso, tramite script di cui sopra.Bugs.
Ci sono. Personalmente ho verificato riavvii improvvisi di WindowMaker passando da console a X, e comportamenti strani del supporto DND: in particolare, prima devo avviare un file manager in GTK (Thunar), e usare il Drag 'n Drop prima che un'applicazione QT (Konqueror) sia in grado di utilizzarlo con successo. Qualche vostro feedback sarebbe utile.
[Update - 13/04/2008]
C'è anche un bug negli script in python: in particolare, il restore dei file dal cestino funziona solo da linea di comando con lo script restore-trash mentre da Konqueror non funziona.
[/Update]
[Update - 05/05/2008]
Dolphin è il file manager d'obbligo da usare con l'opzione columns, che lo rende molto simile all'originale Workspace Manager di NeXTStep. Aspettiamo il rilascio di KDE 4.1 per qualcosa di davvero stabile.
[/Update]
[Update - 11/11/2008]
I bug degli script in python sono stati corretti. Ora funzionano alla perfezione, grazie agli sviluppatori. Rimangono da risolvere due questioni: l'uso del Drag 'N Drop con le applicazioni QT (vedi sopra) e il comportamento di Dolphin che non aggiorna il contenuto della directory Trash in automatico.
[/Update]
Vi lascio con due screenshot :)

03 aprile 2008
Linux e la gestione della RAM difettosa
Avete crash improvvisi dei vostri programmi preferiti? Non riuscite a riprodurli per mandare un bug-report agli sviluppatori? Il make vi da sempre errori diversi ad ogni tentativo di compilazione?
Se avete risposto "sì" ad almeno una di queste domande, prendete in seria considerazione il fatto che la vostra RAM sia andata a donna di facili costumi.
Che fare?
Dalla man page di LILO:
mem=###[,K,M,G]
Specifies the maximum memory in the system in bytes, kilobytes,
megabytes, or gigabytes. This option is not removed from the
command line, and is always passed to the kernel.
Prendiamo come esempio pratico quello del mio sistema. Avendo notato che i problemi nascevano quando l'utilizzo della memoria raggiungeva livelli elevati (grazie WMMemLoad!) ho prima escluso l'ultimo banco di memoria (la mia configurazione è 4*256, quindi 1024-256), e successivamente il secondo. Ora mi trovo con un giga di RAM dei quali ne posso utilizzare la metà.
L'altro metodo, stilisticamente più corretto ma un poco più macchinoso, è quello di usare la patch BadRAM per il kernel Linux: in questo caso non viene limitato l'uso a un certo numero di MegaByte di memoria, ma si suggerisce al kernel quali sono i blocchi danneggiati da evitare.
Make your choice!
Se avete risposto "sì" ad almeno una di queste domande, prendete in seria considerazione il fatto che la vostra RAM sia andata a donna di facili costumi.
Che fare?
- Comprare altra RAM.
- "badram" @ google.it
Dalla man page di LILO:
mem=###[,K,M,G]
Specifies the maximum memory in the system in bytes, kilobytes,
megabytes, or gigabytes. This option is not removed from the
command line, and is always passed to the kernel.
Prendiamo come esempio pratico quello del mio sistema. Avendo notato che i problemi nascevano quando l'utilizzo della memoria raggiungeva livelli elevati (grazie WMMemLoad!) ho prima escluso l'ultimo banco di memoria (la mia configurazione è 4*256, quindi 1024-256), e successivamente il secondo. Ora mi trovo con un giga di RAM dei quali ne posso utilizzare la metà.
L'altro metodo, stilisticamente più corretto ma un poco più macchinoso, è quello di usare la patch BadRAM per il kernel Linux: in questo caso non viene limitato l'uso a un certo numero di MegaByte di memoria, ma si suggerisce al kernel quali sono i blocchi danneggiati da evitare.
Make your choice!
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
Twelve years ago...

/ap/OmniWeb-2.7b3-N.tar.gz
Per il supporto al protocollo HTTPS, installare questi pacchetti:
/n/OpenSSL.0.9.2b.1.m.NIS.b.tar.gz
/n/HTTPSExtension.1.05.NIHS.bs.tar.gz
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
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.
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/
Fonte: http://www.bangmoney.org/nextstep/packages_1.html
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:
[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.
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:
root@lounge# upgradepkg *.tgzUpgrade your glibc shared libraries. This is important, or things
might go haywire during the first part of the upgrade.
[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.
Iscriviti a:
Post (Atom)
