mercoledì 24 novembre 2010

Tiny Core Linux: un sistema operativo in soli 10MB di spazio.

Un sistema operativo in soli 10MB di spazio? Può sembrare una sfida troppo difficile anche per una distribuzione GNU/Linux, ma in realtà non lo è: il chiaro esempio è dato da Tiny Core Linux, una distribuzione minimale che necessita di poco meno di 10MB per essere installata, e che riesce dunque a superare altre celebri distribuzioni minimali come SLAX o Damn Small Linux.

Oltre alle dimensioni ridottissime, Tiny Core Linux si distingue anche per i tempi di avvio decisamente brevi: nei nostri test, il tempo trascorso dal caricamento dell'immagine ISO tramite una macchina virtuale VirtualBox e la comparsa del desktop è stato di soli 4 secondi, e tali prestazioni sono facilmente ripetibili su diverse tipologie di hardware. Una volta avviato il sistema, la distribuzione risulta essere piuttosto rapida e reattiva.

Queste eccellenti prestazioni sono dovute anche ad un'insolita caratteristica: il sistema operativo, infatti, viene copiato nella memoria RAM e da lì gira per tutto il tempo di esecuzione, offrendo tempi di accesso alle risorse notevolmente inferiori rispetto alle classiche distribuzioni Linux.

Se da un lato Tiny Core Linux si presenta come una soluzione ottimale per chiunque necessiti di un sistema rapido e leggero, da utilizzare ad esempio con hardware datato ma ancora funzionante, dall'altro non può certamente rappresentare una distribuzione da utilizzare come sistema operativo principale. Il suo obiettivo, infatti, non è quello di fornire un ambiente operativo completo di tutte le applicazioni necessarie ad un utilizzo quotidiano.

Aggiornamenti (via Distrowatch):


Tiny Core Linux Robert Shingledecker has announced the release of Tiny Core Linux 3.5, a minimalist, but extensible distribution: "Team Tiny Core is pleased to announce the release of Tiny Core Linux 3.5. Change log: updated BusyBox to 1.18.3 plus patches; updated zsync to 0.6.2; updated Fluff file manager to 0.8.9; new autoscan-devices compiled to improve boot speed; updated tc-functions for call to autoscan-devices; new rotdash compiled to improve boot speed; updated tce-audit builddb to not force fetch of all .dep files when no tce.db exists; updated appsaudit to support removing on-demand uninstalled extensions without rebooting; clean up of tce-audit 'delete' spurious messages; new tce-remove support for appsaudit; update wbar_rm_icon to support tce-remove; updated appsaudit, added highlight on failed MD5 checking...."

Here is the complete changelog.

Download: tinycore_3.5.iso (10.5MB, MD5).


Recent releases:

• 2011-02-14: Distribution Release: Tiny Core Linux 3.5
• 2010-12-19: Distribution Release: Tiny Core Linux 3.4
• 2010-11-23: Distribution Release: Tiny Core Linux 3.3
• 2010-10-15: Distribution Release: Tiny Core Linux 3.2
• 2010-09-12: Distribution Release: Tiny Core Linux 3.1
• 2010-08-16: Development Release: Tiny Core Linux 3.1 RC1



I software.

All'interno dei 10MB di cui si compone l'immagine ISO sono inclusi unicamente i moduli necessari all'avvio di un sistema grafico minimale basato su X, con un'eventuale connessione cablata alla rete Internet, ed un browser. Ciò non significa, però, che non è possibile installare ed utilizzare applicazioni aggiuntive, ma esistono diversi metodi per ottenere i software necessari.

Gli sviluppatori hanno infatti realizzato un repository dal quale è possibile reperire diverse applicazioni in quattro maniere diverse, tutte più o meno vincolate alla disponibilità di una connessione ad Internet. Il primo metodo, quello predefinito, permette di navigare all'interno dei repository, di scaricare le applicazioni di cui si ha bisogno e di avviarle quando necessario, utilizzando la memoria RAM come unico supporto per la gestione dei file e dei software.

Il secondo ed il terzo metodo sfruttano l'utilizzo di un Persistent Personal Repository, una sorta di archivio persistente realizzato tramite la selezione di un dispositivo di archiviazione di massa a tempo di avvio del sistema operativo. La differenza principale tra i due metodi sta nel caricameto delle applicazioni dalla RAM (estensione TCE) o direttamente dai file decompressi presenti nel PPR (con l'estensione TCZ). Quest'ultimo metodo permette un migliore utilizzo della memoria, diminuendone i comsumi.

L'ultimo metodo, infine, utilizza l'estensione TCE per l'installazione delle applicazioni all'interno di un dispositivo di archiviazione, che può essere una penna USB, una memoria flash o una partizione del proprio disco fisso.

Il Kernel su cui è basata l'intera distribuzione è il classico Kernel Linux in versione 2.6, e tramite l'utilizzo di BusyBox, un sistema per racchiudere diversi strumenti UNIX in un unico file eseguibile, TinyX, una versione ridotta del server grafico X, JWM, ottimo gestore delle finestre leggero e rapido, e FLTK, una serie di librerie grafiche realizzate in C++, riesce ad offrire ai propri utenti un ambiente di lavoro sufficientemente completo e funzionale, tenendo conto delle dimensioni occupate dalla distribuzione.

Installazione e documentazione.

L'installazione di Tiny Core Linux è un'operazione piuttosto semplice, e ben spiegata da una guida presente sul sito ufficiale, che elenca diversi metodi per l'installazione, alcuni più semplici, altri adatti ad utenti con una buona esperienza dei comandi da terminale. Tale guida fa parte di un Wiki ben realizzato dagli sviluppatori, che permette di ricevere risposte su diverse questioni riguardanti la distribuzione e aiuto nella risoluzione dei principali problemi riscontrati. A tale scopo sono disponibili anche delle FAQ che completano la documentazione ufficiale.

In conclusione, Tiny Core Linux può rappresentare un'ottima scelta, come già detto, nel caso si possegga hardware di vecchia data da voler rimettere a nuovo e da utilizzare non come ambiente di lavoro principale, o per avere sempre con sé una distribuzione GNU/Linux tramite una chiavetta USB dalle dimensioni ridotte, magari utilizzando una delle modalità di installazione persistenti delle applicazioni per avere anche i propri strumenti preferiti a portata di click. Le immagini ISO ufficiali sono disponibili per il download tramite i mirror ufficiali, e l'ultima versione stabile e la 1.2, anche se sono disponibili le Release Candidate del ramo 1.3

Screenshots.

cfdisk

cfdisk new



Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


martedì 16 novembre 2010

Xorg è un'applicazione pubblica e open-source del sistema X-window versione 11.

Xorg è un'applicazione pubblica e open-source del sistema X-window versione 11. Dal momento che Xorg è la scelta più popolare tra gli utenti Linux, la sua ubiquità ha portato a renderlo un requisito sempre presente per le applicazioni GUI, con conseguente adozione massiccia dalla maggior parte delle distribuzioni.

Viene fornito con la maggior parte delle distribuzioni Linux e con BSD.

La fondazione.

La fondazione "X.Org Foundation L.L.C." è una giovane azienda scientifica istituita per sviluppare strategie che forniscono gli standard mondiali per la tecnologia X Window System. Il gruppo è attualmente gestito da un consiglio di amministrazione che comprende: Stuart Anderson (Free Standards Group), Egbert Eich (SUSE), Jim Gettys (HP), Georg Greve (Free Software Foundation Europe), Stuart Kreitman (SUN Microsystems), Kevin Martin (Red Hat), Jim McQuillan (Progetto Linux Terminal Server), Leon Shiman (Shiman Associates) e Jeremy White (Code Weavers).

XOrg, si può dire, è la prosecuzione di ciò che è stato XFree86: quest'ultimo, cambiando licenza e rendendosi incompatibile con la GPL, non poteva più essere incluso nelle distribuzioni Linux ed è stato necessario avviare un nuovo progetto, nel quale sono confluiti la maggior parte dei programmatori di XFree86.

Nel dicembre del 2005 venne rilasciato Xorg X11R7.0, il primo grande rilascio del sistema X Window dopo dieci anni di sviluppo discontinuo. Parallelamente è stato rilasciato X11R6.9, contenente lo stesso codice della 7.0, ma in un unico blocco di circa 16 milioni di righe di codice.

Proprio questa è una delle maggiori innovazioni rispetto al passato: Xorg 7.0 ha portato la modularizzazione del codice del server grafico, ponendo le basi per una maggior rapidità di sviluppo, ovvero permettendo un rilascio stabile ogni sei mesi. Fra le numerose note innovative, oltre ad aggiornati driver per hardware video, troviamo EXA, la nuova architettura di accelerazione.

Ultime versioni pubblicate:

  1. Rilascio di Xorg X11R7.2
  2. Rilascio di Xorg X11R7.3
  3. Rilascio di Xorg X11R7.4
  4. Rilascio di Xorg X11R7.5
  5. Prossima versione: X11 T7.6

Installazione.

Prima di iniziare, assicurati di fare tutto questo:
Assicurati che pacman sia configurato e aggiornato.


pacman -Syu

Per prima cosa dobbiamo installare l'intero gruppo "xorg":


# pacman -S xorg<br />

Nella nuova modalità Xorg 1.8, non è necessario installare Hal. Udev
rileva l'hardware in maniera autonoma. Ma non dimenticare di installare evdev.


# pacman -S xf86-input-evdev<br />

Dalla versione 1.8, Xorg non ha bisogno di Hal per rilevare
l'hardware e i plugin, quindi si può rimuovere il demone hal dal file /etc/rc.conf senza nessun problema.
Inoltre, /etc/X11/xorg.conf diventa /etc/X11/xorg.conf.d/*.

Usare X -configure, creando un file xorg.conf, è sconsigliato per due motivi:

- Xorg 1.8 propone una configurazione più specifica in file
separati, quindi generare un unico file va in contrapposizione alle
modalità operative del 1.8.

- xorg.conf è parzialmente ignorato quando viene avviato Xorg.

Quindi, si cerchi di non usare xorg.conf.

Grazie a Udev e /etc/X11/xorg.conf.d/10-evdev.conf, la tastiera, il mouse, il touchpad e il touchscreen dovrebbero funzionare bene. Provare:


$ startx<br /><br /><span style="border-width: 0.25em; border-style: solid; border-color: rgb(221, 221, 221) rgb(187, 187, 187) rgb(187, 187, 187) rgb(221, 221, 221); background: none repeat scroll 0% 0% rgb(238, 238, 238); padding: 0.1em 0.4em; margin: 0.1em; white-space: nowrap; min-width: 1em; display: inline-block; text-align: center;">Ctrl</span>+<span style="border-width: 0.25em; border-style: solid; border-color: rgb(221, 221, 221) rgb(187, 187, 187) rgb(187, 187, 187) rgb(221, 221, 221); background: none repeat scroll 0% 0% rgb(238, 238, 238); padding: 0.1em 0.4em; margin: 0.1em; white-space: nowrap; min-width: 1em; display: inline-block; text-align: center;">Alt</span>+<span style="border-width: 0.25em; border-style: solid; border-color: rgb(221, 221, 221) rgb(187, 187, 187) rgb(187, 187, 187) rgb(221, 221, 221); background: none repeat scroll 0% 0% rgb(238, 238, 238); padding: 0.1em 0.4em; margin: 0.1em; white-space: nowrap; min-width: 1em; display: inline-block; text-align: center;">←</span> è stato rimosso da (default) Xorg. Per uscire, usare <span style="border-width: 0.25em; border-style: solid; border-color: rgb(221, 221, 221) rgb(187, 187, 187) rgb(187, 187, 187) rgb(221, 221, 221); background: none repeat scroll 0% 0% rgb(238, 238, 238); padding: 0.1em 0.4em; margin: 0.1em; white-space: nowrap; min-width: 1em; display: inline-block; text-align: center;">Ctrl</span>+<span style="border-width: 0.25em; border-style: solid; border-color: rgb(221, 221, 221) rgb(187, 187, 187) rgb(187, 187, 187) rgb(221, 221, 221); background: none repeat scroll 0% 0% rgb(238, 238, 238); padding: 0.1em 0.4em; margin: 0.1em; white-space: nowrap; min-width: 1em; display: inline-block; text-align: center;">Alt</span>+<span style="border-width: 0.25em; border-style: solid; border-color: rgb(221, 221, 221) rgb(187, 187, 187) rgb(187, 187, 187) rgb(221, 221, 221); background: none repeat scroll 0% 0% rgb(238, 238, 238); padding: 0.1em 0.4em; margin: 0.1em; white-space: nowrap; min-width: 1em; display: inline-block; text-align: center;">F1</span> e terminare Xorg.<br />

Screenshots.















Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:



sabato 13 novembre 2010

Pinguy OS: Ubuntu ancora più semplice, un aspetto grafico più ricercato e una maggiore usabilità.

Se avete installato il sistema operativo Ubuntu e venite da Windows, vi sarete senz’altro accorti di come manchino diverse funzionalità che nel sistema proprietario Microsoft sono incluse nell’installazione di base.


Infatti, nel SO di Ubuntu, l’utente deve provvedere manualmente ad installare tutti i plugin di cui non si può fare assolutamente a meno, come ad esempio il codec di lettura per file mp3 e il plug-in di compressione/decompressione di archivi compressi RAR.


Il che è molto semplice per chi ha una certa esperienza riguardo il sistema Debian, ma i nuovi utenti linuxiani potrebbero trovare non poche difficoltà a svolgere tali operazioni.


A questa categoria di utenti viene in aiuto Pinguy OS, un sistema operativo basato su Ubuntu in cui nell’installazione di base troviamo integrati tutti i software di cui si ha normalmente bisogno.


Anche se chiamarla distribuzione è un po' eccessivo, visto che si tratta di una Ubuntu riveduta e corretta. I suoi creatori riconoscono il merito di quella che sta diventando la distribuzione Linux per antonomasia, ma chi l'ha provata sa che subito dopo l'installazione bisogna fare delle aggiunte necessarie per quasi tutti gli utenti: codec MP3, plugin Flash, Java e chi più ne ha più ne metta.


Il sito è molto curato anche se è caratterizzato dai soliti pattern del web 2.0 con l'aggiunta di un'eredità della lotta fra IE e Netscape, il bollino "Best viewed with".


Questo a causa di problematiche di licenze e brevetti. Ad ogni rilascio di Ubuntu, in aprile e in ottobre, gli articoli che suggeriscono tali aggiunte rispuntano come i funghi. Ecco allora che alcuni utenti si sono fatti più furbi e scelgono Linux Mint, una versione derivata capace già al primo avvio di usufruire di formati e siti multimediali.


Nello specifico, le modifiche che Pinguy OS apporta sono le seguenti:


- Ora le immagini ISO non vengono aperte più con il file manager ma direttamente con Brasero;
- Java e flash sono integrati di default;
- Integrato il codec di lettura per file audio .mp3;
- Aggiunto software per la gestione dell’iPod;
- È stato migliorato Autilus, per la ricerca e il download di musica e video dal Web;
- Tema grafico migliorato;
- Samba installato e configurato;
- Aggiunto un server UPnP per condividere musica, video e altro ancora con la Xbox e la PS3.


Aggiornamenti (via Distrowatch):



Antoni Norman has announced the release of Pinguy OS 10.04.2, a minor update of the Ubuntu-based distribution for the desktop with long-term support: "Released Pinguy OS 10.04.2 'Revisted'. As 10.04 is long-team support I didn't want it to fall behind. This is an updated version, it's a bit bigger then what it was before (by 300 MB) because I didn't build this from scratch, I just updated the existing 10.04.1.2 image. As of Thursday, 10th February, this was fully updated. I have added TeamViewer 6 to the install. After talking to a few people it seems many people that use Pinguy OS have installed it on a friend's or family's PC. Having TeamViewer 6 pre-installed will help them to give support and maintain their installs."

The new release has many more new features, so see the release announcement if you wish to learn more.

Download (MD5): Pinguy_OS_10.04.2-Revisted_i686.iso (1,624MB, torrent), Pinguy_OS_10.04.2-Revisted_x86-64.iso (1,712MB, torrent).


Ultime versioni rilasciate:


• 2011-02-12: Distribution Release: Pinguy OS 10.04.2
• 2010-11-13: Distribution Release: Pinguy OS 10.10



Screenshots.





Ricerca personalizzata


Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

domenica 7 novembre 2010

Digital Audio Processor, software open source di alta qualità.

Ultimamente vedo passare sempre più frequentemente annunci di software per Linux che promettono grandi cose su comp.os.linux.announce, così ho cominciato a salvare questi articoli in un file con il proposito di dare un'occhiata al programma recensito non appena ne abbia il tempo.

Uno dei programmi che mi ha incuriosito di più è stato il DAP un Elaboratore Audio Digitale di Richard Kemp.


Dopo anni di passione per la grafica e dopo la scoperta di tanti programmi veramente eccezionali come The GIMP o Persistence Of Vision (alias POV), sentivo la mancanza di qualcosa di altrettanto potente nel campo della produzione audio.


Ho scaricato quindi il DAP, l'ho scompattato e ho cominciato a giocarci.

Due note: il DAP ha bisogno delle XForms 0.86 e di permessi di lettura e scrittura sui devices audio: se sembra che il programma non funzioni, controllate i permessi dei devices. Rendeteli leggibili e scrivibili al gruppo audio e aggiungete il vostro login name ai membri di questo gruppo nel file /etc/group.
Se la distribuzione che usate non prevede un gruppo audio, probabilmente conviene che lo creiate voi e che imponiate ai vari /dev/dsp* e /dev/audio* di appartenere al gruppo audio: probabilmente è la soluzione più pulita.


Il primo impatto con il programma è quello di un prodotto molto curato, sia dal punto di vista grafico che da quello delle funzioni: ci sono controlli separati per la riproduzione e la registrazione del suono, c'è un mixer, ci sono controlli per posizionarsi all'interno del campione con la precisione del millesimo di secondo, per creare un range, un loop, per zoomare il campione nella finestra, tutti disponibili come finestre separate la cui apertura e chiusura avviene con un unico click nella finestra principale.


Ovviamente le funzioni di posizionamento e di creazione di un range sono accessibili anche cliccando all'interno della finestra in cui il campione è rappresentato graficamente come forma d'onda.


Una volta registrata, la forma d'onda può essere editata a mano (globalmente o separatamente nei vari canali) o tramite dei sofisticati algoritmi di manipolazione dell'intero campione.


Premendo sul pulsante DSP si apre una finestra in cui è possibile scegliere il tipo di elaborazione da eseguire sul campione. Sono listati quattordici possibili algoritmi, ma di questi solo dodici sono attivi.


Oltre alla scelta dell'algoritmo è possibile variare un numero (abbastanza spaventoso) di parametri. Il sustain e il release sono disponibili in tutti i casi, poi, a seconda dell'algoritmo ci sono una serie di parametri, tutti modificabili tramite dei comodi cursori tridimensionali, la cui quantità varia dai quattro dell'effetto Distortion ai trentuno del Multi Tap Delay.

Ma non finisce qui, anzi siamo solo all'inizio!


Nel menu Edit oltre alle normali funzioni di cut&paste è prevista la possibilità di copiare la clipboard mixandola al campione attuale o al range selezionato.


Sono disponibili funzioni per la manipolazione di un range, o di particolari caratteristiche del campione, come l'ampiezza dell'onda, con funzioni di fade-in, fade-out e bounce (tra le altre, ma molte altre!).


Particolare è la possibilità del resampling del campione e della conversione da mono a stereo e quadro!


Purtroppo non ho due schede audio nella stessa macchina in modo da poter ascoltare in quadrifonia, quindi non posso descrivervi l'effetto (qualcuno può farmi una recensione?).


Chiude l'elenco delle caratteristiche di questo programma la possibilità di usare un linguaggio di macro per automatizzare le operazioni di editing.


Il DAP gestisce solo files AIFF (di origine Apple ][, ma usati anche dalle Silicon), che vengono convertiti egregiamente da e verso qualsiasi altro formato dal sox, presente in tutte le distribuzioni (o almeno nella Debian, Red Hat e Slackware).


Altra particolarità è che prima di poter registrare qualcosa si debba creare un buffer, usando l'opzione New del menu File.


Una nota negativa è la mancanza della documentazione, resa meno grave sia dall'estrema facilità di uso del programma, sia dalla possibilità di leggersi i sorgenti.


Come giudizio globale posso dire che questo programma, sviluppato nell'ambito della tesi di laurea dell'autore, è quanto di meglio abbia visto nel campo dell'audio digitale.



Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:


lunedì 1 novembre 2010

Software Libero e scacchi; una panoramica dei diversi tipi di software libero a disposizione per gli appassionati degli scacchi.

I programmi per giocare a scacchi hanno fatto progressi incredibili nell'ultimo decennio, e questo è dovuto solo in parte all'aumento delle prestazioni fornite dall'hardware. Sono state sviluppate anche nuove euristiche e raffinati algoritmi vecchi, grazie alla collaborazione stretta tra programmatori e Maestri.

Il fatto è che i più forti giocatori al mondo oggigiorno sono macchine, e questo vale non solo per l'hardware specializzato (si ricordi la sfida Kasparov-Deep Blue che segnò la prima sconfitta di un campione mondiale da parte di un computer, New York, 1997, http://scacchi.qnet.it/manuale/comp02.htm, http://www.research.ibm.com/deepblue/home/html/b.html); attualmente i programmi per PC raggiungono il livello di un Maestro Internazionale (2400 Elo), forza che si eleva notevolmente se viene usato hardware dedicato o macchine a 64 bit.

Una conseguenza dell'aumento di forza dei programmi è stato un cambiamento necessario nelle condizioni di torneo. Una volta le partite venivano sospese e il giocatore che effettuata l'ultima mossa prima della sospensione metteva in busta la "mossa segreta", mentre l'altro passava tutta la notte ad analizzare la posizione, a cercare di scoprire la mossa segreta dell'avversario e la migliore continuazione. Oggigiorno, invece, le partite di torneo devono finire obbligatoriamente in giornata per evitare l'ausilio del computer.


Questo articolo propone una panoramica dei diversi tipi di software libero a disposizione in ambito scacchistico, di cui i motori di scacchi sono solo una parte (la più nota per il gran pubblico). Cominceremo con il formato libero usato per scambiare partite, per passare successivamente in rassegna le più importanti funzionalità di Crafty, forse il più forte programma libero in circolazione. Faremo anche una revisione di Scid (un database) e di Xboard, una sofisticata interfaccia grafica, per finire con gli scacchi giocati via Internet e con le possibilità documentative che il software libero consente.


Formato PGN (Portable Game Notation).

I programmi vengono realizzati per lavorare con dati: nel nostro caso con partite di scacchi. Software libero senza una versione libera del formato con il quale vengono immagazzinate e trasmesse le partite impedirebbe un effettivo uso dei programmi. La definizione del formato PGN obbedisce a questo scopo. I criteri utilizzati nella specificazione del formato sono i seguenti (http://www.tim-mann.org/Standard):

  • dettagli pubblicamente disponibili e liberi da qualsiasi complessità innecessaria;
  • formato non proprietario;
  • possibilità di lavorare sulla più ampia gamma di piattaforme;
  • facilità di espansione futura;
  • internazionale;
  • capacità di poter accogliere le informazioni normalmente usate nei software scacchistici e nelle riviste specializzate.

Un file PGN è un file ASCII che contiene una o più partite con la seguente struttura:

[Event "F/S Return Match"]
[Site "Belgrade, Serbia JUG"]
[Date "1992.11.04"]
[Round "29"]
[White "Fischer, Robert J."]
[Black "Spassky, Boris V."]
[Result "1/2-1/2"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3
O-O 9. h3 Nb8 10. d4 Nbd7 11. c4 c6 12. cxb5 axb5 13. Nc3 Bb7 14. Bg5 b4 15.
Nb1 h6 16. Bh4 c5 17. dxe5 Nxe4 18. Bxe7 Qxe7 19. exd6 Qf6 20. Nbd2 Nxd6 21.
Nc4 Nxc4 22. Bxc4 Nb6 23. Ne5 Rae8 24. Bxf7+ Rxf7 25. Nxf7 Rxe1+ 26. Qxe1 Kxf7
27. Qe3 Qg5 28. Qxg5 hxg5 29. b3 Ke6 30. a3 Kd6 31. axb4 cxb4 32. Ra5 Nd5 33.
f3 Bc8 34. Kf2 Bf5 35. Ra7 g6 36. Ra6+ Kc5 37. Ke1 Nf4 38. g3 Nxh3 39. Kd2 Kb5
40. Rd6 Kc5 41. Ra6 Nf2 42. g4 Bd3 43. Re6 1/2-1/2

Si deve pensare al formato PGN come a un sistema per scambiare dati e per far si che questi possano essere letti facilmente da un umano (una partita in formato PGN ha per le mosse una struttura quasi identica alla normale notazione algebrica usata per trascrivere le partite, per cui è possibile facilmente riprodurre e studiare una partita sulla scacchiera a partire da essa), e non per trattare i dati. Essendo un formato ASCII, non è pensabile poter immagazzinare e fare ricerche su file che contengono centinaia di migliaia di partite; per fare questo ci serve un database. Lo scopo di quest'ultimo è poter esportare/importare grandi quantità di partite tra le basi di dati appositamente progettate per questo scopo. Possiamo dire che il formato PGN è l'equivalente per gli scacchi di quello che il DXF è per i programmi CAD o la notazione SMILES in ambito chemioinformatico/bioinformatico.


La partita Fischer-Spassky usata come esempio contiene la struttura tipica di una partita in formato PGN. Essa è composta da una serie di tag racchiusi tra parentesi quadre seguita da una linea vuota e dalla sezione delle mosse; ogni linea di tale sezione deve contenere al massimo 80 colonne. Ci sono sette tag obbligatori (noti come i Seven Tag Roster):

  • Event: il nome del torneo o del match.
  • Site: in genere la città dove si è giocata la partita.
  • Date: la data di inizio della partita.
  • Round: il numero del turno della partita nel torneo.
  • White: il giocatore che conduce il Bianco.
  • Black: il giocatore che conduce il Nero.
  • Result: il risultato della partita.


Il risultato viene ripetuto alla fine della sezione delle mosse. Ci sono altri tag aggiuntivi per specificare informazioni come Elo dei giocatori, controllo di tempo, variazioni, ecc., ma sono opzionali. Tra questi forse un tag importante è ECO, che specifica il codice ECO (Encyclopaedia of Chess Openings) dell'apertura, e FEN, che specifica la notazione Forsyth-Edwards (Forsyth-Edwards Notation) se la posizione di partenza è diversa dalla posizione iniziale (usato per studi o problemi).


Un problema del formato PGN, derivato dalla sua natura ASCII è il fatto che in seguito a errori di battitura o abbreviazioni ci possono essere partite con diciture diverse per giocatori, città, date, ecc. Le basi di dati moderne hanno la possibilità, una volta importata la raccolta PGN, di correggere questi difetti in diversi modi.


Crafty.

Crafty è un motore di scacchi, cioè un programma per giocare partite, scritto da Robert Hyatt. È un discendente di Cray Blitz, sempre opera di Hyatt, un programma molto famoso che ha segnato un'epoca e nel quale sono state introdotte alcune importanti novità teoriche, come ad esempio le bitboard. È possibile trovare diverse versioni di Crafty, insieme ad alcune partite, informazioni e basi di finali (endgame tablebases) all'indirizzo ftp://ftp.cis.uab.edu/pub/hyatt.


Crafty è probabilmente il più forte programma libero disponibile attualmente. All'undicesima edizione del torneo tra computer organizzato da Leo Dijksman (http://wbec-ridderkerk.nl), Crafty 19.20 su processore Opteron a 64 bit si è classificato in ventiquattresima posizione (l'ultima tra i programmi della "Prima Divisione", quelli più forti), totalizzando 9 punti su 28, raggiungendo l'Elo (incredibile!) di 2663 (tredicesimo programma in graduatoria per Elo), cioè il livello di un Gran Maestro tra i più forti. Per avere un'idea della forza relativa del programma, si tenga conto che la FIDE (la Federazione Scacchistica Internazionale), nel luglio di 2003, dava la seguente statistica (http://it.wikipedia.org/wiki/ELO):


  • un giocatore ha Elo superiore a 2800 (Gary Kasparov);
  • 16 giocatori hanno Elo superiore a 2700;
  • 113 giocatori hanno Elo superiore a 2600.


Crafty non possiede interfaccia grafica ma è compatibile con Xboard, di cui parleremo più avanti. Le caratteristiche più importanti del programma sono:


  • Ovviamente codice sorgente libero. L'obiettivo dell'autore è fornire un codice che rappresenti lo stato dell'arte per quanto riguarda la programmazione di motori scacchistici. Hyatt non fa esplicitamente riferimento a una licenza, ma si limita a vietare l'utilizzo di Crafty in ogni tipo di torneo per programmi e il suo utilizzo commerciale. Questo ha obbligato alcune distribuzioni che includono il programma a chiedere chiarimenti all'autore (ad esempio, se la vendita dei CD contenenti la distribuzione potesse determinare una violazione di questi vincoli). Nella mia distribuzione Debian, nel file /usr/share/doc/crafty/copyright si può trovare parte della corrispondenza che chiarisce questi punti in modo positivo, per fortuna, per quanto riguarda l'inclusione di Crafty nella distribuzione ufficiale.
  • Riga di comando flessibile, la quale fornisce molte informazioni riguardanti il processo di "riflessione" del programma. La riga di comando è attiva anche durante il tempo di analisi del programma. Un esempio:

    White(6): display
    +---+---+---+---+---+---+---+---+
    8 | R | . | | Q | K | B | | R |
    +---+---+---+---+---+---+---+---+
    7 | P | P | P | B | N | P | P | P |
    +---+---+---+---+---+---+---+---+
    6 | | . | N | P | | . | | . |
    +---+---+---+---+---+---+---+---+
    5 | . |-B-| . | | P | | . | |
    +---+---+---+---+---+---+---+---+
    4 | | . | | . |-P-| . | | . |
    +---+---+---+---+---+---+---+---+
    3 | . | |-N-| | . |-N-| . | |
    +---+---+---+---+---+---+---+---+
    2 |-P-|-P-|-P-|-P-| |-P-|-P-|-P-|
    +---+---+---+---+---+---+---+---+
    1 |-R-| |-B-|-Q-| . |-R-|-K-| |
    +---+---+---+---+---+---+---+---+
    a b c d e f g h

    White(6): d3
    time used: 13.85
    time surplus 2:29 time limit 32.72 (3:49)
    depth time score variation (1)
    8 0.27 0.37 6. ... a6 7. Bxc6 Nxc6 8. Nd5 Ne7 9.
    Qe2 c6 10. Nxe7 Bxe7 11. Be3
    8-> 0.33 0.37 6. ... a6 7. Bxc6 Nxc6 8. Nd5 Ne7 9.
    Qe2 c6 10. Nxe7 Bxe7 11. Be3
    9 0.99 0.41 6. ... a6 7. Bc4 b5 8. Bb3 Na5 9. Bg5
    Nxb3 10. axb3 f6 11. Be3
    9-> 1.07 0.41 6. ... a6 7. Bc4 b5 8. Bb3 Na5 9. Bg5
    Nxb3 10. axb3 f6 11. Be3
    10 1.65 0.28 6. ... a6 7. Bc4 b5 8. Bb3 Na5 9. Be3
    Nxb3 10. axb3 b4 11. Ne2 c5
    10-> 2.39 0.28 6. ... a6 7. Bc4 b5 8. Bb3 Na5 9. Be3
    Nxb3 10. axb3 b4 11. Ne2 c5
    11 3.61 0.34 6. ... a6 7. Bc4 b5 8. Bb3 Na5 9. Be3
    Nxb3 10. axb3 c5 11. Qe2 Be6 12. Bg5
                  11->  11.27   0.34   6. ... a6 7. Bc4 b5 8. Bb3 Na5 9. Be3
    Nxb3 10. axb3 c5 11. Qe2 Be6 12. Bg5
    12 11.27 1/29* 6. ... a6

  • Utilizza il tempo di riflessione dell'opponente.
  • Interfaccia grafica compatibile con Xboard.
  • File di log che registrano le mosse effettuate in formato PGN e il processo di riflessione del programma (varianti analizzate, score, ecc.).
  • Manuale in linea dei comandi abbastanza esauriente.
  • Vasta libreria di aperture. È possibile, a partire da una collezione di partite in formato PGN, costruire un libro di aperture. Questo consente, ad esempio, di variare a piacere il repertorio di aperture che il programma gioca normalmente. Le spiegazioni su come costruire il proprio libro di aperture si ottengono digitando help book al prompt del programma.
  • Utilizzo di basi di finali (endgame tablebases). Le basi di finali sono tabelle precompilate in formato adeguato che contengono le informazioni su come giocare un finale con un certo numero di pezzi (ad esempio R + T + P contro R + T) a partire da qualsiasi configurazione iniziale dei pezzi. Le basi di finali includono ovviamente tutte le posizioni di "matto semplice", cioè quelle posizioni nelle quali è possibile dare scacco matto (ad esempio R + A + A contro R oppure R + T contro R). Tabelle di finali già compilate si possono scaricare da ftp://ftp.cis.uab.edu/pub/hyatt/TB/.
  • Facilitazioni per le annotazioni, cioè per inserire commenti, variazioni o simboli (indicanti concetti come buona mossa, cattiva mossa, ecc.), con la possibilità di essere esportati in formato PGN, HTML, LaTeX.


Gnuchess è un altro valido programma, ma la sua potenza di gioco è lontana da quella di Crafty.


I motori di scacchi, anche su normali PC, sono troppo forti per confronti diretti, soprattutto con giocatori amatoriali, ma sono utili per l'analisi delle partite.


Scid.

Le basi di dati sono, a mio avviso, il software più importante per un giocatore di scacchi, sia esso amatore o professionista. Io le uso per preparare linee di apertura su grandi database, cercando partite in base a determinate posizioni: negli anni ho raccolto circa 5 milioni di partite che ho distribuito in 4 database e che mi consentono di preparare linee di apertura molto specializzate per i pochi tornei che ormai gioco, visto che non ho il tempo di studiare tutto il materiale a disposizione. Può sembrare esagerata una raccolta di partite di queste dimensioni per un giocatore amatoriale come me, ma si tenga conto che cercando una qualche posizione, dopo 8-10 mosse si può arrivare a tirar fuori non più di una ventina di partite, anche su un database di un milione. Il professionista usa il database per preparare incontri con altri giocatori di livello internazionale, vedendo le linee di apertura che i suoi avversari hanno giocato più recentemente, con quale esito, ecc.


Scid (Shane's Chess Information Database, http://scid.sourceforge.net) è un'applicazione di database per Windows e Linux scritta in C++ che consente di cercare partite in base a diversi criteri, di visualizzarne l'andamento graficamente e di produrre report di aperture e giocatori. Dispone di un motore di scacchi, Scidlet, che consente l'analisi delle posizioni, ma la funzionalità di analisi è compatibile con qualsiasi programma compatibile con Winboard/Xboard.


Il programma è altamente configurabile tramite interfaccia grafica. Le opzioni di funzionamento sono salvate, nella mia distribuzione Debian, all'interno della cartella ~/.scid/. L'applicazione principale viene lanciata con il comando Scid, ed è un frontend grafico scritto in Tcl/Tk che usa Tkscid, un interprete Tcl/Tk esteso per supportare le funzionalità di database di Scid.


Oltre a Scid, Tkscid e Scidlet, Scid contiene le seguenti utilità:


  • pgnscid, un programma a riga di comando per trasformare un file di partite in formato PGN nel formato di Scid;
  • scmerge, unisce più database di Scid in uno unico maggiore;
  • scidpgn, stampa sullo standard output in formato PGN tutte le partite contenute in un database Scid;
  • sc_import, importa partite in formato PGN all'interno di un database di Scid esistente;
  • sc_spell, applica correzioni sui nomi in un database Scid (usato per avere uniformità sui nomi dei giocatori, luoghi e tornei, ad esempio).

Alcune funzionalità:

  • finestra principale



  • finestra di analisi, usando Crafty come motore



  • crosstable, tabella finale di risultati per un torneo, contenenti tutti i giocatori e la variazione finale dell'Elo di ciascuno



  • navigatore di aperture ECO (Encyclopaedia of Chess Openings)



  • elenco di partite nel database



  • finestra PGN della partita corrente



  • informazione sul giocatore, contenente le statistiche per tutte le partite di quel giocatore nel database



  • grafico dell'Elo di un giocatore, contenente l'andamento cronologico dell'Elo in base a tutte le partite contenute nel database

Inoltre, Scid consente di inviare e gestire direttamente le partite giocate per corrispondenza.

Il formato di database di Scid consente la ricerca e il trattamento di grandi quantità di partite. Ad esempio, il mio computer di casa, con processore AMD Sempron a 1672 MHz, ha impiegato 5 secondi per aprire un file con oltre 1.420.000 partite e circa 7 secondi per trovare nel database tutte le partite che raggiungono la posizione della Difesa Siciliana dopo 1.e4 c5 2.Cf3 e6 3.d4 cxd4 4.Cxd4 a6 5.c4.


Xboard.


Standard per interfacce grafiche,


Molti programmi, sia liberi che commerciali, dispongono della propria interfaccia grafica. Tuttavia nel tempo sono stati standardizzati alcuni protocolli di comunicazione tra i motori di scacchi e i software utilizzati per visualizzare e gestire le partite. Questo permette a un programmatore che, ad esempio, non sia interessato allo sviluppo dell'interfaccia grafica e che voglia concentrarsi sugli algoritmi di calcolo di utilizzare programmi già disponibili per consentire non solo di visualizzare, ma anche di comunicare con altri motori di scacchi, a patto che includa nel proprio programma il protocollo di comunicazione con l'interfaccia grafica. Questo si sposa perfettamente con lo spirito di Unix e del software libero, dove è sempre possibile, appoggiandosi al lavoro di chi ci ha preceduto, dare qualcosa di nuovo rispetto a quello che è stato già fatto, senza dover ripetere il lavoro portato avanti da altri.


Ci sono due standard principali di interfacce per i programmi che giocano a scacchi: UCI e Winboard/Xboard. Il primo è usato soprattutto dai programmi commerciali, mentre il secondo da quelli liberi. Noi ci concentreremo su Xboard, un'interfaccia sviluppata da diverse persone (inclusa la FSF, che l'ha potenziata notevolmente), tra le quali Tim Mann (il programmatore originale) è la più importante (ulteriori informazioni si possono trovare all'URL http://www.tim-mann.org/xboard.html). Winboard è un porting di Xboard su piattaforme Win32 curato dallo stesso Mann.


Un elenco di programmi compatibili con Xboard si può trovare, oltre che nel succitato sito di Tim Mann, all'indirizzo http://wbec-ridderkerk.nl, dove si può vedere l'ottimo sito curato da Leo Dijksman il quale organizza competizioni tra programmi con relativo calcolo di Elo e graduatoria in base ai risultati. Chiunque può iscrivere il proprio programma e farlo giocare contro i più forti software del mondo. Attualmente si è conclusa l'undicesima edizione ed è aperta l'iscrizione per la dodicesima.


Caratteristiche di Xboard.

Xboard è una scacchiera grafica che fa da interfaccia ai motori Gnuchess o Crafty (principalmente, ma anche a qualunque programma compatibile con lo standard Xboard/Winboard), a Internet Chess Server (ICS), a partite giocate per corrispondenza o a una qualunque raccolta personale di partite. Come interfaccia di Gnuchess e Crafty, consente di analizzare partite o posizioni arbitrarie, guardare partite giocate tra i due programmi, ecc. Come interfaccia di un server ICS (xboard -ics), è possibile giocare contro altri utenti ICS, osservare partite in corso o visualizzare partite appena finite, come vedremo nella sezione dedicata a Internet. Per ultimo, Xboard è un client di scacchi per corrispondenza, utilizzando il programma cmail.


Personalmente utilizzo Xboard per fare giocare tra loro programmi diversi. Se non viene specificato alcun argomento, Xboard si inizializza nella modalità MachineBlack, nel quale l'opponente, con il Nero, è il programma Gnuchess. Per utilizzarlo invece in modalità standalone, per riprodurre una qualche partita salvata in precedenza, si può lanciare con l'opzione -ncp/-noChessProgram, anche se per questi compiti io preferisco utilizzare una base di dati come Scid, che offre funzionalità più avanzate di editing e di gestione delle partite/annotazioni/export. Nella modalità TwoMachines è possibile specificare due programmi che giocano tra loro riproducendo la partite attraverso Xboard. Inoltre, è possibile usare Xboard nella modalità standalone su una collezione di partite (salvate per esempio in formato PGN) con l'utilità pxboard, ad esempio digitando dalla riga di comando:


cat games.pgn | pxboard


Xboard ci apre una finestra che ci consente di selezionare e riprodurre sulla scacchiera una qualunque partita contenuta nel file.


Xboard dispone di una miriade di opzioni che possono essere specificate dalla riga di comando. Il seguente script permette di fare giocare un match di 10 partite tra Gnuchess e Crafty, e lo utilizzo per modificare in maniera agevole tempo di riflessione e opponenti su una configurazione di base che mi è comoda:


#!/usr/bin/perl

# xboard.pl
# Copyright (C) 2005 Francisco Yepes Barrera
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.

# Configurazione globale
$timeControl = "-timeControl 10:00";
$movesPerSession = "-movesPerSession 40";
$movesPerSession .= "-timeIncrement 0";
$clockMode = "-clockMode True";
$showThinking = "-showThinking True";
$ponderNextMove = "-ponderNextMove True";
$matchGames = "-matchGames 10";
$firstChessProgram = "";
$firstDirectory = "";
$secondChessProgram = "-secondChessProgram 'crafty xboard logpath=/tmp'";
$secondDirectory = "";

$size = "-size Large";
$showCoords = "-showCoords True";
$highlightLastMove = "-highlightLastMove True";
$darkSquareColor = "-darkSquareColor brown";
$saveGameFile = "-saveGameFile /tmp/xboard.pgn";
$initialmode = "-initialMode TwoMachines";

# Esecuzione
system("xboard $initialmode $timeControl $movesPerSession
   $clockMode $showThinking $ponderNextMove $matchGames $firstChessProgram
$firstDirectory $secondChessProgram $secondDirectory $size $highlightLastMove
$darkSquareColor $saveGameFile");

Lo script realizza un match tra Gnuchess (che comincia la prima partita giocando con il Bianco) e Crafty sulla base di 40 mosse in 10 minuti (nella modalità non incrementale, cioè non vengono aggiunti bonus di tempo per mossa effettuata). Ogni programma giocherà 5 partite con il Bianco e 5 con il Nero. Il risultato finale viene salvato in formato PGN nel file /tmp/xboard.pgn per essere poi analizzato o importato in una base di dati.


Internet.

Come abbiamo detto, la forza dei programmi attuali non consente a un giocatore di club di giocare alla pari con il computer. È importante, per poter realizzare progressi, giocare con giocatori di livello simile al nostro, ma è parimenti essenziale poter diversificare i nostri opponenti, in modo da poter confrontarsi con stili diversi, forze di gioco relative differenti, ecc. Internet ci apre una finestra immensa dalla quale possiamo scegliere, in qualsiasi momento, un opponente adeguato alla nostra abilità oppure visualizzare partite tra maestri che stanno avendo luogo in questo momento, siano esse partite di allenamento o di un qualche torneo.


Queste funzionalità sono disponibili tramite un Internet Chess Server (ICS). Non abbiamo spazio per entrare nei dettagli della tecnologia alla base degli ICS, ma possiamo dire che si tratta di una tecnologia client/server basata inizialmente su una variante di telnet. I server tengono traccia dei giocatori e di alcune loro caratteristiche e accettano comandi che ci consentono di osservare partite già iniziate, ad esempio, oppure di richiedere un opponente tra quelli che in quel momento sono collegati al server. Il protocollo ICS è poco documentato e non è standardizzato, ma è possibile trovare alcune riferimenti, ad esempio, alla pagina che Tim Mann dedica all'interfaccia grafica Xboard (http://www.tim-mann.org/xboard/engine-intf.html).


La data ufficiale di inizio di ICS è il 15 gennaio 1992, ad opera di Michael Moore dell'Università dello Utah e Richard Nash (http://en.wikipedia.org/wiki/Internet_Chess_Server). Nel luglio del 1992, il server fu spostato su una macchina all' Università di Carnegie Mellon da John Chanak, William Kish e Aaron Putnam. Ulteriormente, alla fine dello stesso anno, il servizio fu rilevato da Daniel Sleator, professore all'Università di Carnegie Mellon, che aggiunse molti miglioramenti alla versione iniziale. Nel 1994 Sleator mise il copyright sul codice e dal 1995 cominciò a commercializzarlo, cambiandone il nome con quello di Internet Chess Club (ICC). Questo fatto provocò una polemica all'interno della comunità ICS, finché un gruppo di programmatori creò il Free Internet Chess Server (FICS), una versione libera di ICC (il loro moto dice "We do it for the game, not the money") che ancora oggi è attiva all'URL http://www.freechess.org. ICC e FICS possono essere considerarti i due ICS più importanti attivi attualmente.


Facciamo ora un esempio di una sessione ICS a FICS con Xboard come client. Il collegamento viene effettuato tramite il seguente comando:


xboard -ics -icshost freechess.org

Il server freechess.org ci chiederà un nome utente e una password. Naturalmente, prima di iniziare dovremo aver provveduto a creare un account su http://www.freechess.org. Dopo il login, possiamo cominciare a inserire i comandi per ricevere informazioni sui giocatori correntemente attivi, le partite in corso, ecc.


Va detto innanzitutto che possiamo chiedere informazione sui comandi impartibili attraverso il comando help:


fics% help match

match

Usage: match user [rated|unrated] [Time] [Inc] [Black_Start Black_Inc]
[White|Black] [{board_category board}|w#|bughouse|crazyhouse|wild fr|sui]

SUMMARY
-------
This command allows you to challenge a given user to a game of chess.
To challenge player USER to a match, type "match USER". The type of match
being offered depends on:
(1) your variable settings (preferences).
(2) information you give in the match request.

The player USER will need to accept or decline the challenge. You can
cancel a challenge you have made using the "withdraw" command.

MATCH VARIABLES
---------------
You can specify the parameters for the match. If no parameters are
Type [next] to see next page.

Al login, il server FICS ci propone un elenco di news che possiamo visualizzare in qualsiasi momento con il comando news:

fics% news
Index of the last few news items:
1127 (Sat, Dec 10) TM Positions Available
1128 (Sun, Dec 11) Sandbagging is NOT Allowed - Reminder
1130 (Mon, Dec 19) BabasChess v3.6
1132 (Sat, Dec 31) NYE Marathon Winner
1134 (Wed, Jan 4) Babaschess minor bug update
1135 (Fri, Jan 20) New admin
1137 (Sat, Feb 11) ChessLecture.com prize tourney going monthly
1138 (Tue, Feb 21) FICS needs relayers!
1139 (Fri, Mar 3) FICS 11th Anniversary Celebration
1140 (Fri, Mar 3) March ChessLecture.com tourney

fics% news 1132
1132 (Sat, Dec 31) NYE Marathon Winner

Winner of the marathon is AntyDisch with 15 points.
\ http://www.freechess.org/Events/2006/NYEMarathon/index.html for the full
\ standings/results.

Posted by SuperIntellect.

Per vedere l'elenco dei giocatori attivi al momento, si usa il comando who:

fics% who

2737^GMIvanchuk(D)(GM)
2713.TaoGizmo(C)
2712^GMBacrot(D)(GM)
2700 EJD(C)
2663^GMVallejoPons(D)(GM)
2624^GMRadjabov(D)(GM)
2542^GMMacieja(D)(GM)
2518^GMAronian(D)(GM)
...

Al momento in cui mi sono collegato io c'erano parecchi giocatori interessanti, inclusi, come potete vedere, alcuni Grandi Maestri con Elo superiore a 2700 e due programmi (contraddistinti dalla (C)).Vediamo le partite in corso:

fics% games

...
1 2491 IMDziuba 2497 IMCzarnota [ su120 0] 1:03:00 - 52:37 (35-35) B: 19
100 2531 GMBobras 2486 IMGajewski [ su120 0] 52:00 - 59:36 (35-35) B: 14
229 2585 GMMacieja 2479 GMGrabarcz [ su120 0] 1:07:00 - 44:37 (32-32) B: 15
185 2700 EJD 2368 Mainflame [ br 5 5] 5:02 - 3:30 (34-34) B: 19
167 2524 GMBartel 2619 GMKempinsk [ su120 0] 56:00 - 56:46 (38-38) B: 16
43 2605 GMWojtaszek 2610 GMSocko [ su120 0] 1:00:37 - 58:00 (35-35) W: 21
187 2765 GMSvidler 2650 GMVallejoP [ su120 0] 1:38:57 -1:58:50 (38-38) W: 10
74 2700 GMRadjabov 2740 GMLeko [ su120 0] 1:56:32 -1:41:15 (34-33) B: 16
81 2752 GMAronian 2729 GMIvanchuk [ su120 0] 1:41:42 -1:56:05 (38-38) W: 12
190 2717 GMBacrot 2801 GMTopalov [ su120 0] 1:46:07 -1:52:09 (39-39) W: 9

230 games displayed.

Come vedete c'è una riga per partita dove sono indicati, oltre ai giocatori e ai relativi Elo, le condizioni di tempo accordate per la partita (tra parentesi quadre), il tempo ancora a disposizione per i due giocatori e il numero di mosse effettuate, con indicazione del colore che muove (Bianco, W, o Nero, B). In questa occasione ho deciso di vedere con Xboard la partita che stava giocando Bacrot contro il Campione del Mondo Topalov; quindi, ho inserito:

fics% observe 190
Movelist for game 190:

GMBacrot (2717) vs. GMTopalov (2801) --- Sat Mar 4, 06:28 PST 2006
Unrated standard match, initial time: 120 minutes, increment: 0 seconds.

Finalmente, il comando seek ci consente di cercare un avversario per una partita impostando le condizioni che desideriamo (tempo, colore, ecc.), inviando una richiesta a tutti i giocatori collegati, mentre il comando match consente di sfidare un dato utente a una partita e il comando play permette di rispondere a un utente che ha fatto una richiesta in precedenza (in questo caso il sistema verifica se il punteggio Elo o la categoria è nel range richiesto dal nostro opponente). Tutte le partite giocate e/o visualizzate sono salvabili in formato PGN passando a Xboard anche l'argomento -saveGameFile [nomefile].


Secondo me il software libero, sia per quanto riguarda i motori di scacchi che i database, ha un livello tecnico paragonabile ai programmi proprietari. C'è però un ambito in cui non ha rivali, ed è nella capacità di documentazione, avendo la possibilità di generare documenti di qualità e di esportare partite in formati come HTML, Postscript, DVI in notazione FAN (Figurine Algebraic Notation). La notazione FAN è una variante della notazione SAN (Standard Algebraic Notation) che utilizza icone dei pezzi in miniatura invece dell'abbreviazione ASCII del pezzo.


Prendiamo come esempio la partita Kasparov-Kramnik, che abbiamo già usato nella sezione dedicata a Scid, con lo scopo di ottenere un documento in notazione FAN. Esportiamo questa partita con Scid in formato LaTeX con il nome game.tex (Scid consente anche di esportare in formato HTML, ma genera una pagina che contiene la partita in notazione SAN), dopodiché lanciamo i seguenti comandi dalla linea di comando:

$ latex game.tex
$ xdvi game.dvi
$ dvips game.dvi

Il primo comando ci consente di generare un documento DVI che contiene la partita in notazione FAN. È necessario che sia installato il pacchetto tex-chess, che contiene i font per il supporto della notazione scacchistica da parte di TeX/LaTeX. Il secondo comando consente la visualizzazione del file DVI appena creato, mentre il terzo crea il file Postscript a partire dal file DVI. Lo stesso risultato si può ottenere attraverso LyX, importando il file TeX contente la partita e generando direttamente il PS, ma su file con grandi quantità di partite, contenenti annotazioni e varianti, a volte questa procedura fallisce. L'utilizzo della riga di comando è più robusto.

Se vogliamo mettere sul nostro sito le partite in notazione FAN, possiamo usare latex2html:

$ latex2html game.tex

che da questo risultato:

Kasparov, Gary (2838)
Kramnik, Vladimir (2809)
Botvinnik Memorial m (2)
Moscow RUS
2001.12.02 1/2-1/2 B41l



Conclusione.

Nel mondo degli scacchi le novità sono all'ordine del giorno. Nuovi software e nuovi approcci vengono realizzati e provati in continuazione. La possibilità di poter giocare con persone che vivono all'altro capo del mondo o di collaborare con esse per costruire un programma che un giorno "sfiderà il campione mondiale" sono sufficientemente attraenti da coinvolgere un enorme numero di individui, appassionati e programmatori. Altri si limitano a provare i software creati da terzi per il semplice piacere di capire quale approccio è il più forte: scegliere cosa fare in base alle proprie attuali conoscenze e ai propri desideri diventa una scelta personale, soggettiva. Spero che il lettore sia invogliato ad approfondire alcuni degli argomenti trattati per conto proprio.


Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog: