AmiWest Computer Show 2012

Le nostre news in homepage

Moderatore: Newser

Re: AmiWest Computer Show 2012

Messaggioda clros » gio ott 25, 2012 2:05 pm

afxgroup ha scritto:Dai smettiamola. State cercando di voler criticare a qualsiasi costo. Mi sono stancato. Continuate a criticare. Io ho di meglio da fare che rispondere a cose inutili. Cià

Ma che critica! Ma sei tu che proprio non hai capito cosa ti si chiede e sei anche abbastanza acido. Saluti e vai a giocare con i floppy!
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: AmiWest Computer Show 2012

Messaggioda cdimauro » gio ott 25, 2012 2:25 pm

Ci può anche stare, se non conosce come funzionava AmigaOS prima della versione 4.

L'importante è che non mi venga a dire come andavano le cose fino alla 3.1, visto che ho vissuto in pieno, e con grandi soddisfazioni, quegli anni. Da utente e da programmatore.
Non sono più su questo forum. Mi trovate su Non Solo Amiga, AROS-Exec o AmigaWorld.
Avatar utente
cdimauro

Eroe
 
Messaggi: 2454
Iscritto il: mer giu 16, 2010 9:00 pm
Località: Germania

Re: AmiWest Computer Show 2012

Messaggioda andres » gio ott 25, 2012 4:48 pm

paolone ha scritto:
cdimauro ha scritto:Insomma, per farla breve, nel preservare la storia di AmigaOS io non ci vedo alcun vantaggio pratico.

Sì, ma alla fine un OS alternativo ha senso se presenta una struttura e un'esperienza d'uso originali (il ché non vuol dire non innovare, cambiare e anche buttare via delle cose vecchie, dipende come lo si fa), diverse da roba mainstream come Windows, Mac OS o Linux. Altrimenti a che pro dedicarsi a un sistema alternativo?
A1200/020+68882 - 6 MB RAM - AmigaOS 3.0
Parliamo di Home Recording e Audio
Avatar utente
andres

Eroe
 
Messaggi: 2097
Iscritto il: mer mar 04, 2009 10:40 pm

Re: AmiWest Computer Show 2012

Messaggioda clros » gio ott 25, 2012 5:06 pm

m3x ha scritto:
Inoltre basta pensare a MUI, tutt'ora ci sono programmi che funzionano con una certa versione di una libreria MUI, mentre altri con la stessa versione non funzionano, e questa è una cosa risaputa da tutti (tanto che alcuni tengono più versioni della stessa classe su HD a seconda del programma che lanciano, previo rimoniare la classe giusta...)


Ricordo solo che la OpenLibrary() richiedeva una versione minima di libreria per funzionare. Questo vuol dire una SOLA libreria, possibilmente una delle ultime versioni disponibili.
Se un programma richiede una versione specifica della lib, significa che è scritto proprio male per ovvi motivi (l'utente potrebbe sostituire la libreria con una nuova versione e il programma non funzionare (mai) più).
Oppure che ad essere scritta male è la libreria.
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: AmiWest Computer Show 2012

Messaggioda cip060 » gio ott 25, 2012 5:41 pm

Bello l'amiwest ? :ride:
scusate l'offtopic :fuck:
Avatar utente
cip060

Leggenda
 
Messaggi: 7934
Iscritto il: lun feb 17, 2003 9:19 pm
Località: Usa

Re: AmiWest Computer Show 2012

Messaggioda NubeCheCorre » gio ott 25, 2012 7:36 pm

se prendo il mio 1200 e lo accendo ti trovo tutte le librerie duplicate che vuoi, ovviamente parlo di versioni differenti. Questo succedeva sia con programmi commerciali che non e non erano i programmi ad essere buggati...
W il Veneto :ride:
Avatar utente
NubeCheCorre

Leggenda
 
Messaggi: 10624
Iscritto il: dom set 21, 2003 9:21 pm
Località: San remo

Re: AmiWest Computer Show 2012

Messaggioda cdimauro » gio ott 25, 2012 7:47 pm

Erano le librerie? Di AmigaOS? In tal caso esiste(va) il ben noto comando SetPatch, da infilare all'inizio della startup-sequence.
Non sono più su questo forum. Mi trovate su Non Solo Amiga, AROS-Exec o AmigaWorld.
Avatar utente
cdimauro

Eroe
 
Messaggi: 2454
Iscritto il: mer giu 16, 2010 9:00 pm
Località: Germania

Re: AmiWest Computer Show 2012

Messaggioda ShInKurO » ven ott 26, 2012 7:48 am

m3x ha scritto:Ti quoto !

Inoltre basta pensare a MUI, tutt'ora ci sono programmi che funzionano con una certa versione di una libreria MUI, mentre altri con la stessa versione non funzionano, e questa è una cosa risaputa da tutti (tanto che alcuni tengono più versioni della stessa classe su HD a seconda del programma che lanciano, previo rimoniare la classe giusta...)

Se in MUI ci fosse stata una implementazione delle interfacce stile AmigaOS 4.0, tutto ciò non accadrebbe.


L'esempio di MUI secondo me è sbagliato, nel senso che non avremmo risolto molto con le interfacce: la gente mantiene più versioni della stessa mcc non perchè una versione precedente contiene api che la successiva non contiene, o magari perchè cambiano le firme delle api da una versione a un'altra. Questo è un caso raro. In realtà i programmatori Amiga (alcuni) sono previdenti e sanno di aver sviluppato un programma con una determinata versione di mcc. Poi viene fuori una nuova versione che è PALESEMENTE bacata rispetto alla precedente (vuoi perchè si doveva fixare un bug che però dopo aver fixato ha introdotto altri bug, vuoi perchè introducendo nuove caratteristiche si introducono nuovi bug, ma questo noi lo sappiamo...), allora lo sviluppatore del programma, invece di aspettare l'uscita del fix, tira fuori una minor release con una limitazione nella versione della mcc da utilizzare con il proprio programma.
SI dà il caso però che la nuova versione della mcc (quella con i nuovi bug) faccia andare un altro programma che con la precedente versione non va, ed ecco che si presenta la situazione da te descritta.

Alla fine a me il concetto delle interfacce nelle librerie di AmigaOS piace, perchè se qualcuno deve estendere una libreria, cambiare firme delle funzioni o robe simili, allora ci sta l'idea di fare una nuova interfaccia. Se invece deve fixare e migliorare le funzioni preesistenti allora non ha senso andare a creare un'interfaccia nuova, in quanto, come giustamente sostenuto da cdimauro, si arriverebbe a una duplicazione del codice non indifferente... e poi vorrei proprio vedere come si farebbe a manutenere tutto quel codice ricopiato più volte...

Ma andiamo all'implementazione specifica su OS4: secondo me si poteva fare in qualche altro modo. Intendo dire che l'introduzione delle interfacce su OS4 ha portato al cambiamento sostanziale della sintassi del codice: bisogna riferirsi in modo esplicito all'interfaccia da cui si deve attingere, e non è bello leggere certe cose nel codice... Certo esiste __USE_INLINE__ però si dà per scontato che in questo modo io debba usare le funzioni di una sola interfaccia, se volessi attingere da più interfacce contemporaneamente dovrei utilizzare per forza la sintassi nuova.

In sostanza, a me piace l'idea, ma su OS4 poteva essere implementata senza stravolgere tutta la programmazione delle API di AmigaOS (in passato si parlava spesso di eleganza delle API di AmigaOS e di quanto fosse divertente e piacevole usare certe API, adesso francamente a me fanno male gli occhi al solo leggere IMUI->miafunzione() ), ma a questo punto io non sono un designer di API quindi mi fermo qua. :)
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Re: AmiWest Computer Show 2012

Messaggioda cdimauro » ven ott 26, 2012 8:40 am

Io lo faccio per professione invece (sviluppo backend, con server che espongono delle API), e ti posso dire per esperienza che se c'è da cambiare la firma di troppe funzioni o aggiungere troppe nuove funzionalità, ciò è indice o di bad design delle API oppure che è meglio realizzare una nuova piattaforma.

Realizzare API non è facile: non è che ci si limita a mettere assieme n funzioni e pubblicarle a uso dei client (qui c'è uno dei tanti documenti che si trovano in giro sul design delle API).

Le decisioni su come esporre una piattaforma all'esterno vanno ben ponderate, perché bisogna capire quali esigenze coprire, come coprirle e le dinamiche che possono avvenire a runtime (sviluppare gli use case), con una visione abbastanza ampia da non richiedere stravolgimenti, ma eventuali fix e aggiornamenti.

Perché non si può cambiare server e, peggio ancora, richiedere il cambiamento di tutti i client ogni volta che ci gira per la testa di rimetter mano alle API.

Per il resto concordo: programmare su Amiga era una pacchia. Anche in assembly. :ammicca:
Non sono più su questo forum. Mi trovate su Non Solo Amiga, AROS-Exec o AmigaWorld.
Avatar utente
cdimauro

Eroe
 
Messaggi: 2454
Iscritto il: mer giu 16, 2010 9:00 pm
Località: Germania

Re: AmiWest Computer Show 2012

Messaggioda ShInKurO » sab ott 27, 2012 7:25 am

cdimauro ha scritto:Io lo faccio per professione invece (sviluppo backend, con server che espongono delle API), e ti posso dire per esperienza che se c'è da cambiare la firma di troppe funzioni o aggiungere troppe nuove funzionalità, ciò è indice o di bad design delle API oppure che è meglio realizzare una nuova piattaforma.

Realizzare API non è facile: non è che ci si limita a mettere assieme n funzioni e pubblicarle a uso dei client (qui c'è uno dei tanti documenti che si trovano in giro sul design delle API).

Le decisioni su come esporre una piattaforma all'esterno vanno ben ponderate, perché bisogna capire quali esigenze coprire, come coprirle e le dinamiche che possono avvenire a runtime (sviluppare gli use case), con una visione abbastanza ampia da non richiedere stravolgimenti, ma eventuali fix e aggiornamenti.

Perché non si può cambiare server e, peggio ancora, richiedere il cambiamento di tutti i client ogni volta che ci gira per la testa di rimetter mano alle API.


Vista la tua esperienza mi piacerebbe conoscere altri possibili modi alternativi per implementare il concetto di interfaccia nelle API di AmigaOS, tu cosa avresti proposto nello specifico? :felice:

Problema:

Innanzitutto ciò di cui si sente davvero il bisogno in AmigaOS sarebbe la possibilità di coesistenza di più versioni della stessa libreria in memoria nello stesso tempo, e dunque le interfacce vengono in aiuto in questo caso, come sostenuto da m3x, su MUI ad esempio. L'unico appunto sarebbe quello di avere troppe copie dello stesso codice nei sorgenti, e questa è una situazione difficile da manutenere. Inoltre l'attuale implementazione prevede un cambio drastico del modo di programmare su AmigaOS.

Ciò che abbiamo a disposizione:

Attualmente AmigaOS permette di ricreare una struttura di filesystem in una directory, dunque ad esempio se ho il mio programmino PincoPallo nella sua directory PincoPallo/, al suo interno potrei avere PincoPallo/Libs/ con dentro le sue belle versioni di libreria, senza far uscire pazzo l'utente che può permettersi di ignorare tutto.
Per esempio io ho strutturato proprio in questo modo NoWinED.

In passato, negli anni '90, si schifavano soluzioni del genere (più versioni di libreria in memoria) perchè le esigenze di consumo della memoria erano differenti, ma adesso queste esigenze sono cambiate.


Proposta:

Le librerie condivise di AmigaOS vanno bene, a patto però che il sistema permetta una speciale modalità (tracciabile, così l'utente può conoscere anche quale programma utilizza quale versione di libreria) in grado di mantenere più versioni della stessa libreria in memoria.

Se AmigaOS permettesse la coesistenza di più versioni della stessa libreria in memoria, il programma PincoPallo caricherebbe le proprie (non prima di aver controllato che le versioni richieste siano già in memoria e dunque fornite dal sistema) senza interferire con altri programmi. Dunque in questo esempio l'utilizzo di interfacce lato implementativo dal POV del programmatore diventerebbe superfluo.

In pratica concettualmente si hanno delle interfacce, ma per i programmatori sarebbe una cosa del tutto trasparente: è il sistema che "aggancia" interfacce a una libreria, e queste interfacce sono le diverse versioni di libreria.

Non so se la cosa è o meno fattibile nel mondo reale :felice:
Avatar utente
ShInKurO

Eroe
 
Messaggi: 1428
Iscritto il: dom mar 14, 2004 3:10 pm

Re: AmiWest Computer Show 2012

Messaggioda cdimauro » sab ott 27, 2012 8:22 am

Premetto che a mio avviso AmigaOS dimostra in che modo dovrebbero essere usate le librerie: copia unica, versionata, e retrocompatibile.

Messo un attimo da parte questo, il problema su Windows è stato risolto esattamente come hai descritto in "Ciò che abbiamo a disposizione". Infatti da un po' di anni Microsoft, per risolvere il problema del "DLL Hell", ha suggerito fortemente agli sviluppatori di NON copiare le dll (oppure ocx, o altro) nella cartella System32, e quindi di lasciarle all'interno della cartella del programma, in modo che l'applicazione abbia e si porti dietro esattamente la versione che le serve per funzionare bene.

Con .NET ciò non è sufficiente, perché gli assembly sono in formato IL (Intermediate Language), per cui a runtime devono essere compilati (in maniera del tutto trasparente per l'applicazione) per l'architettura sulla quale si stanno eseguendo il codice, per cui Microsoft ha creato la cartella WinSXS (se ricordo bene il nome) dove mantiene una copia del binario per quella precisa architettura, e il tutto versionato (si usa anche il numero di build allo scopo). Internamente mantiene anche una lista delle dipendenze di ogni applicazione e dei relativi file che per essa ha generato.

Il sistema funziona bene, e in memoria è possibile che ci siano n copie della stessa libreria, a seconda della precisa versione che una particolare applicazione sta usando in quel momento.

Il problema è che così si occupa parecchio spazio su disco (e in memoria, ma soltanto a runtime). Se andate a controllare la cartella WinSXS, sono diversi i GB che si mangia. Mi direte: embé, con hd che si misurano ormai in TB, si sta ancora a elemosinare per lo spazio?
Beh, sì, perché vanno molto di moda gli SSD, che non hanno capienze enormi, e che inoltre è meglio non tartassare con le scritture (hanno un ciclo di vita molto basso, sulle migliaia di scritture, e man mano che il processo produttivo migliora, abbassando i prezzi, peggiora però il ciclo di vita, che si continua ad abbassare).

Questa soluzione, applicata ad AmigaOS, consentirebbe di mantenere le vecchie librerie senza far ricorso alle interfacce, ma c'è una duplicazione di codice sia in memoria che su disco.

Un'altra soluzione sarebbe quella di modificare il concetto di interfaccia introdotto su AmigaOS 4, facendolo rientrare in quello delle vecchie librerie, con qualche piccola modifica interna per gestire questo caso, e un flag nel codice della libreria per indicare che si tratta di una speciale libreria che mantiene al suo interno più versioni, in modo che il loader e Open/CloseLibrary possano gestirle correttamente.
Su filesystem c'è una copia unica, l'ultima, ma internamente il codice è duplicato n volte, una per ogni versione supportata, con relativa tabella delle funzioni esposte.

Ogni volta che un'applicazione apre una libreria, lo fa esattamente come ha fatto sempre con il buon vecchio AmigaOS, quindi senza interfacce. Richiama OpenLibrary, specificando la versione minima della libreria; se ha messo 0, il s.o. usa l'ultima versione, altrimenti recupera la LibraryBase interna (o la crea, se è la prima volta) che ha la più piccola versione maggiore o uguale a quella richiesta dall'applicazione, e gliela restituisce.

In questo modo si ha il vantaggio di mantenere lo stesso, identico, modo di programmare a cui ci ha abituato AmigaOS, con quello di usare le interfacce introdotte da OS4, ma il tutto gestito in maniera trasparente.

C'è soltanto un problema, ed è a carico di chi scrive la libreria. Il codice ovviamente è duplicato, e non ci si può fare niente (in realtà sì, ma lo spiego dopo), ma lo è anche LibraryBase che, come sappiamo, è costituito sia dalla tabella delle funzioni (a offset negativi rispetto a LibraryBase) che dalla struttura (struct) coi campi che vengono esposti pubblicamente o gestiti privatamente. Come sappiamo, normalmente LibraryBase è globale alla libreria e a tutte le applicazioni che ne fanno uso, ma qui ce ne sono n copie in memoria, una per ogni versione/interfaccia aperta.
Questo significa che le applicazioni non possono e non devono accedere ai campi di LibraryBase (che poi è quello che si dovrebbe fare normalmente, perché nel resto del mondo a quei campi normalmente si accede tramite apposite funzioni Get e Set), lasciando che sia il codice interno della libreria a farlo. Questo codice si deve occupare e preoccupare di mantenere tutte queste versioni di LibraryBase in maniera coerente, e ciò può risultare complicato, oltre che essere fonte di possibili errori.

Una soluzione pulita e, a mio avviso, buona per questo problema potrebbe essere l'uso dell'MMU. Si alloca una sola copia di LibraryBase, pari alla massima dimensione di tutte le versioni di LibraryBase supportate. Mentre viene generata una copia per ogni tabella dei vettori alle funzioni. Per ogni versione supportata, con l'MMU si mappa in memoria la relativa vector table a cui si fa seguire l'unica copia di LibraryBase condivisa.

L'unico intoppo di questa soluzione è che se c'è un bug in qualche versione che crea casini all'unica copia di LibraryBase, tutte le versioni supportate potrebbero avere problemi.
Poi c'è il fatto che richieda l'uso dell'MMU, che mi è particolarmente indigesto da amighista, ma come giustamente dice Paolo, bisogna tenere conto delle esigenze degli utenti, e poi alle porte del 2013 l'MMU è presente su praticamente tutti i processori. Purtroppo pensando ad AROS, non si potrebbero supportare le vecchie macchine Amiga non dotate di MMU, ma non ci si può far nulla.

Comunque sono idee che mi sono venute di getto, sul momento. Può essere che ci sia qualche falla nei ragionamenti fatti, e se c'è qualcosa di non chiaro possiamo anche parlarne.

Resta il fatto che soluzioni come questa o quella delle interfacce nascono a causa di una cattiva programmazione da parte di chi scrive le librerie e/o le applicazioni che ne fanno uso.
Con AmigaOS c'è sempre stata una sola copia, l'ultima, delle librerie (di sistema, lo specifico, che è meglio), e questa filosofia l'ho apprezzata e ritenuta corretta, per cui non condivido l'uso di altri meccanismi. E non per questione di modernità o meno: è proprio filosofica.

Dimenticavo il discorso sulla duplicazione del codice. Si potrebbe evitare se internamente la libreria provvedesse a riutilizzarlo il più possibile. Ad esempio se per una versione c'è una funzione più avanzata, con qualche parametro in più, le versioni più vecchie potrebbero richiamare quella nuova per risparmiare codice. Il problema è che se la funzione avanzata è bacata, anche quelle vecchie che la usano lo saranno.
E' una cosa che potrebbe funzionare bene se e solo se il codice delle varie funzioni è esattamente lo stesso, e gli eventuali campi di LibraryBase vengono utilizzati allo stesso modo da tutte le versioni della libreria.
Si tratta, comunque, di approcci che sono soggetti a errori e bug, perché il programmatore che ha scritto la libreria deve avere sempre ben presente il funzionamento per ogni versione della stessa. Il che... è un inferno. Per cui meglio duplicare il codice e amen.

P.S. Se proprio vogliamo parlare di futuro, per me si dovrebbe seriamente prendere in considerazione l'idea di usare un Intermediate Language per il codice di librerie e applicazioni, in modo da renderli multiarchitettura. Il s.o. si occuperà di compilarli al volo quando richiesto, ed eseguirne il caching (in modo da evitare nuovamente la compilazione a ogni esecuzione).
Non sono più su questo forum. Mi trovate su Non Solo Amiga, AROS-Exec o AmigaWorld.
Avatar utente
cdimauro

Eroe
 
Messaggi: 2454
Iscritto il: mer giu 16, 2010 9:00 pm
Località: Germania

Re: AmiWest Computer Show 2012

Messaggioda cip060 » sab ott 27, 2012 9:09 am

Possiamo aprire un topic che riguarda la programazione o tips and tricks del sistema operativo?
Qua'si parla (se ce ancora bisogno di amiwest e di quello che hanno prentato in generale)
Perche'si parla di tutto di programmazione di netbook che non ci sono di x 1000 ma di foto non ne ho viste(su questo topic)e di programmi presentati sulla carta e non anche per morphos ad esempio hanno presentato delle piccole novita' e dei programmi nuovi ma nessuno ha parlato ?
Avatar utente
cip060

Leggenda
 
Messaggi: 7934
Iscritto il: lun feb 17, 2003 9:19 pm
Località: Usa

Re: AmiWest Computer Show 2012

Messaggioda Mabo81 » sab ott 27, 2012 9:32 pm

cip060 ha scritto:Perche'si parla di tutto di programmazione di netbook che non ci sono di x 1000 ma di foto non ne ho viste(su questo topic)e di programmi presentati sulla carta e non anche per morphos ad esempio hanno presentato delle piccole novita' e dei programmi nuovi ma nessuno ha parlato ?


Nessuno ti vieta di aprire un Topic a riguardo, parteciperemo ansiosi lo sai.

Il motivo forse è che a parte che le foto e i video erano già in giro il giorno dopo probabimente nessuno sa che sono stati i crash a fare da padrone ad Amiwest... E non lo dico io ma chi ci ha partecipato (discutendone ieri sera nei canali irc internazionali).
Immagine2x MorphOS 3.18 (Registered) MacMini G4Immagine
// Amiga 500 Rev 6// Amiga 500 Rev 3 // Peg2 G4
Immagine
Immagine
Immagine
Immagine
Avatar utente
Mabo81

Eroe
 
Messaggi: 1872
Iscritto il: mar gen 19, 2010 2:19 pm
Località: SYS:Prefs/

Re: AmiWest Computer Show 2012

Messaggioda cip060 » sab ott 27, 2012 9:43 pm

Io devo aprire un topic sulla programmazione che me ne frega io voglio la pappa pronta io e usare al meglio MOS
Avatar utente
cip060

Leggenda
 
Messaggi: 7934
Iscritto il: lun feb 17, 2003 9:19 pm
Località: Usa

Re: AmiWest Computer Show 2012

Messaggioda Mabo81 » sab ott 27, 2012 10:40 pm

cip060 ha scritto:Io devo aprire un topic sulla programmazione che me ne frega io voglio la pappa pronta io e usare al meglio MOS


Ecco allora se hai qualche porta che sbatte mettigli vicino un macmini con su mos. A me sta facendo letteralemente girare le palle :ultraincaz:
Immagine2x MorphOS 3.18 (Registered) MacMini G4Immagine
// Amiga 500 Rev 6// Amiga 500 Rev 3 // Peg2 G4
Immagine
Immagine
Immagine
Immagine
Avatar utente
Mabo81

Eroe
 
Messaggi: 1872
Iscritto il: mar gen 19, 2010 2:19 pm
Località: SYS:Prefs/

PrecedenteProssimo

Torna a News e rumors

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti