Newsgroup: it.comp.os.dibattiti
Titolo: Ancora su CLI ad oggetti

 pippo.mp3.play
- il sistema cerca nella directory corrente il file pippo.mp3
(semplicistico: l'ultimo . richiama un metodo o una proprietà. Non tiene
conto di file archivio et similia)
- il sistema tenta di riconoscere il tipo di file (mime, magic number,
estensione...degustibus)
- una volta che ha riconosciuto che si tratta di un file mp3, crea una
istanza della classe fileAudio, specializzandola per la gestione di file
mp3
- una volta creata la classe, carica nella classe i dati principali come
dimensione, durata, frequenza, etc etc
- se nella classe è stato definito un metodo play(), questo viene
richiamato
# il sistema riproduce il file pippo.mp3
E' ovvio che la realizzazione di un sistema simile presenta problemi non
indifferenti, ma una cli di questo tipo sarebbe imho una rivoluzione, in
quanto permetterebbe di nascondere completamente all'utente
l'implementazione dei comandi, persino l'esistenza stessa dei comandi, e
eliminerebbe molte delle differenze tra i file.
Spiego. Usando le classi, si ha a disposizione il sistema del casting. Il
casting consiste nella conversione automatica di un dato in un altro tipo
di dato. In linguaggi come il java, un operazione come:
pippo = "pippo" + 1
è legale in quanto il sistema capisce che il numero 1 deve essere
convertito in una stringa. Non è necessario dirlo al sistema, è una
funzione implicita. 
Era stato sollevato anche il problema dell'aggiornamento del sistema, che
imho non è un problema.
Poniamo per esempio che io voglia installare mplayer, avendo gia
installato xmms.
Ci sono 2 vie:
installazione automatica
installazione manuale
via semplice, installazione automatica.
Scelgo il pacchetto, lo installo, e fino a qui, tutto come al solito.
Dopo aver installato il pacchetto, il sistema aggiorna automaticamente la
classe fileAudio. Questa classe contiene un metodo play() standard, che
utilizza un impostazione di default, e un metodo play(programma) che
consente di scegliere un programma tra quelli configurati. L'installer si
occuperà di aggiornare il metodo play(programma) aggiungendo la
possibilità di usare mplayer, mentre l'impostazione di default sarà xmms.
A questo punto il programma è installato. Quando si vorrà aprire un file
audio, il sistema metterà a disposizione i metodi "compatibili" con il
tipo di file scelto, impostandone uno di default, così l'utente potrà fare:
pippo.play
pippo.play xmms
pippo.play mplayer
I primi due sono equivalenti, in quanto xmms è il player di default.
Ovviamente è possibile cambiare il player di default, o impostare più
player di default a seconda dell'utente, o dalla presenza o meno di un
server grafico.
 
Per quanto riguarda l'intallazione manuale, potrebbero esserci tool in
grado di aggiornare in modo assistito le classi (semplicemente,
indicandogli programma e tipi di file associati, e se deve essere usato
come programma predefinito o meno, esattamente come adesso nelle gui)
oppure a manina nei file di configurazione.
Per concludere, l'argomento mi sembra molto interessante, se trovo tempo e
voglia metto queste idee in modo un pò più ordinato...
Saluti
Raffaele
-- 
Raffaele Castagno
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Perche' non si fa un progetto su sourceforge?

Guru03 ha scritto:



uhm...io da solo faccio poco...posso iniziare a tirare giu un pò di testi
"ispiratori"...


 "ispiratori"...
C'e' gia' qualcosa su osx. Da terminale se scrivo open seguito da un url mi
si apre il browser di default e va a quella url. Stessa cosa con tutti i
file che hanno un'associazione.
Ciao ... Dino

 Ciao ... Dino
Se č per quello esiste anche per linux, ma č un applicazione minima del
concetto. Anche la mia spiegazione č sommaria, copre solo alcuni aspetti
offerti dall'OO.
Vedrň di scrivere qualcosa di piů sull'argomento...


 url mi si apre il browser di default e va a quella url
Pure su winsozz. Se tu fai start xxx parte l'applicazione di quella!

Guru03 ha scritto:

L'avevo detto anche io! Andatevi a vedere il thread "Esistono Shell 
Object Oriented"...
Ok sull'interessante... ma per l'uso quotidiano cosa cambia?
Insomma, se si tratta di fare "open blablabla" oppure "start blablabla", 
  oppure "pippo bleblabla" all'utente che cambia rispetto a "xmms 
blablabla.mp3"? E al programmatore?
E' un punto che, da inesperto, non ho ben chiaro...
Per mia comodità mi ero fatto un piccolo script semplicissimo di bash, 
niente di trascendente, che faceva quasi la stessa cosa che dite voi 
("start nomefile" lancia il mio lettore preferito, "edit nomefile" 
lancia il mio editor preferito per il tipo di file), perciò mi chiedo 
che vantaggi *pratici* ci sarebbero a realizzare qualcosa del genere?
Comunque se realizzate davvero qualcosa del genere (invece di fare solo 
teoria), lo proverei volentieri, sono davvero curioso! (non sto facendo 
ironia, sono _davvero_ curioso!)
Ciao
Gerry

 ironia, sono _davvero_ curioso!)
Penso che la sua idea sia di impartire comandi direttamente ai file senza
preoccuparsi del programma che effettua l'operazione. Per esempio:
play pippo.mp3 volume 2
con una sintassi che non cambia se il player e' xmms o altro.
Ciao ... Dino

 Object Oriented"...
E poi esiste gia' il DDE...

 con una sintassi che non cambia se il player e' xmms o altro.
Ci vogliono dei standard, non pensi?

Guru03 wrote:

no, non dovrebbe essere l'applicazione a gestire l'input, ma la shell ad
occuparsi di passargli i dati nella forma che richiede.
Ciao ... Dino

 voglia metto queste idee in modo un pò più ordinato...
Dai un'occhiata a questo:
http://tfl09.blogspot.com/2003_11_01_tfl09_archive.html#106769921834716276
http://tfl09.blogspot.com/2003_11_01_tfl09_archive.html#106910385561793388
e` una delle cose di Longhorn che meno sono state
pubblicizzate ma a mio avviso piu` interessanti,
si tratta di una shell "avanzata" accoppiata al dotNET Framework
-- 
Lawrence "Rhymes" Oluyede
http://loluyede.blogspot.com

 
Sarebbe una bella idea io era già un pò di tempo che ci pensavo ad una shell
OO ma ho sempre avuto risposte molto negative ed allora ho lasciato
perdere.... ma ad aprirlo non ci vuole nulla... come la vedi come nome oosh
Object Oriented Shell.... io sono già registrato ad aprire un altro prog ci
si mette 30 secondi
-- 
E-Mail: 
risi...@libero.it
Sito Web: 
risitano.altervista.org
Gruppo: 
it.groups.yahoo.com/group/decomunistizziamo-internet/
"Noi vogliamo glorificare la guerra - sola igiene del mondo
il militarismo, il patriottismo, il gesto distruttore del liberatori, 
le belle idee per cui si muore."   F.T. Marinetti

 si mette 30 secondi
Mai fatto un progetto come analista... Per ora cerco di mettere "in prosa"
un pò di materiale... poi si vedrà se è fattibile o meno!
Ciao!
Raffaele

 388 
Rotfl... PERL..

 Rotfl... PERL..
Guarda che non è mica in perl la cli...


Nicolò Risitano scrive :

OK... hai ragione... comunque quando hai capito se fattibile, fammi sapere
sono interessato a partecipare a un possibile sviluppo....


 eliminerebbe molte delle differenze tra i file.
Tra mercoledě e giovedě ho installato Linux (Suse 9, a parte una serie di
problemi che mi fanno continuare a sostenere che Linux per il Desktop č
veramente lontano dall'essere anche solo lontanamente usabile) e
nell'usarlo mi č sovvenuto un esempio calzante.
Bene, decido di farmi un CD audio di mp3, faccio partire K3b, audio Cd, ci
trascino sopra una serie di Mp3... ed ovviamente mi sputa in faccia. Ora
uno dice "bella forza, devi prima convertirli in Wav". Bene, nel nostro
ipotetico SO ad oggetti dentro il nostro ipotetico programma di
masterizzazione che si appoggia al nostro SO basterebbe una roba del tipo
if(file is mp3)
{
	stream wav = new stream;
	wav.read((wave) file)
}
e sarebbe il SO che si occupa di castare il file Mp3 in un wav mentre
viene letto sullo stream. Fa schifo? Mica tanto!
Saluti
Massimo

 Massimo
Solo per la cronaca... K3B li converte già da solo in wav... tu basta che
gli passi in progetto audio cd gli mp3....
Comunque a parte la sintassi.. si farebbe questo.... sempre usando appositi
programmi preistallati, ma l'utente non lo sa... è il sistema che sceglie e
fa l'operazione...
Ciao


 viene letto sullo stream. Fa schifo? Mica tanto!
Ecco, tra le altre cose anche questo.
Sarebbe anche possibile, a questo punto, concatenare file audio di formati
diversi. Il sistema sceglierebbe, se non specificato, il formato più
adatto per salvare il file prodotto. Potrei unire mp3, wav e midi in modo
trasparente. Ovviamente il sistema sceglierà automaticamente quale formato
usare, in questo caso mp3. E ovviamente l'utente potrà specificare il
formato, per esempio
(wav)pippo.wav = pippo.mp3 + pippo.mid
ovviamente nel caso cerchi di fare:
(mid)pippo.mid = pippo.mp3 + pippo.wav
il sistema gli risponderà picche:
Cannot convert mp3 to mid
Cannot convert wav to mid
ovviamente stesso discorso per i file di testo, in qualche modo per le
immagini, etc etc


 installazione manuale
basta farsi una lista dei vari player e metterli inordine di priorità.
Con una lista sufficientemente lunga si sistemano quasi tutti i pc, e
nessuno vieta di chiamare qualcosa come shell.addNewProgram ().

 vuoi fare così:
La parte più complessa è integrare, a livello del File-System, un
File-Type-System che definisca l'interfaccia di ogni tipo di file.
L'altro problema è fare in modo che questo File-Type-System sia
sufficientemente simile su tutti i sistemi, per permettere una certa 
portabilità degli script.
-- 
\/               
wirix...@libero.it
          ICQ UIN: 3233084
/\ e l l o s s   (per rispondermi in privato, elimina il DEMONE)