Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 16-09-2005, 17:12   #1
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
[CICLO 1] Storie e divisione in task

Nel Ciclo 1 implementeremo due storie.

Storia 1: Il gioco deve disegnare un diamante su uno sfondo nero in finestra o a pieno schermo e riprodurre un suono.

Storia 2: Un sistema di build automatico che gira sul server, scarica l'ultima versione del codice disponibile dal repository e riporta via mail in caso di errori di compilazione o testing.

La Storia 1 e' il vero inizio del progetto. La Storia 2 e' una storia cosiddetta "tecnica", di servizio, che ci servira' per supportare il resto del progetto.

Storia 1. Suddisivisione in task.

T1_1. Aprire una finestra di dimensione fissa (800x600 pixel di client area) [cidimauro 1 giorno COMPLETATO] (-2) +4
T1_2. Inizializzare OpenGL per il disegno 2D e colorare la finestra di nero via OpenGL [TigerShark 2 giorni COMPLETATO] +4
T1_3. Inizializare OpenAL [cisc 1 giorno] COMPLETATO +2
T1_4. Caricare l'immagine del diamante in una texture [Vifani 1 giorno] COMPLETATO +2
T1_5. Disegnare la texture del diamante applicata a due poligoni che formano un quadrato in coordinate schermo nel centro della finestra [Vifani 2 giorni] COMPLETATO +2
T1_6. Caricare un suono e riprodurlo [cisc 1 giorno] COMPLETATO (-2 + 3)

T1_7. Disegnare una texture 64x64 con un diamante [Antares 1 giorno] COMPLETATO

Storia 2. Suddivisione in task a seguire.

Il Ciclo 1 inizia Lunedi' 19 Settembre e si conclude Venerdi' 30 Settembre.

Sta a voi dichiarare su quali task volete lavorare. Quando avete scelto, date anche una stima in giorni da sostituire alla mia.

Ultima modifica di fek : 23-09-2005 alle 11:20.
fek è offline  
Old 16-09-2005, 19:39   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
ma ci possiamo prenota re da ora?
no perchè io farei T1_3
(ke tra l'altro mi sfugge perkè è messa prima di T1_2 )
__________________
^TiGeRShArK^ è offline  
Old 16-09-2005, 20:15   #3
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da ^TiGeRShArK^
ma ci possiamo prenota re da ora?
no perchè io farei T1_3
(ke tra l'altro mi sfugge perkè è messa prima di T1_2 )
Per un errore che ho appena corretto

Si', ci si puo' prenotare fin da ora. Dimmi il task che vuoi fare e la tua stima di tempo.
fek è offline  
Old 16-09-2005, 21:56   #4
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112

l'ho detto prima quale volevo fare...
Inizializzare OpenGL per il disegno 2D e colorare la finestra di nero via OpenGL
perchè mi interessa e SOPRATTUTTO non penso sia difficilissimo....visto che non ho tanto tempo e devo farmi pure lo spike di jogl sotto win.....
come stima...boh...
penso che vada bene due giorni dato che il primo giorno cmq è in sovrapposizione con lo spike e al lavoro sono messo maluccio in quei giorni.....
spero di farcela!















Altrimenti mi aspetta la fustigazione e il pubblico ludibrio mi sa!
__________________
^TiGeRShArK^ è offline  
Old 17-09-2005, 11:33   #5
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Aggiornato.
Vi faccio una piccola richiesta per alleggerire le discussioni
Abbiamo tutti altri impegni e soprattutto questo non e' il nostro impegno principale. Quindi diamo per sottointeso e non scriviamo neanche che abbiamo altri impegni e siamo incasinati con altro.

Ma teniamone conto quando diamo le stime: "In questo periodo ho molto da fare, normalmente impiegherei un giorno, ma visto gli impegni posso finirlo in 3 giorni".

L'importante e' che le stime siano accurate e possibilmente sempre in eccesso. In altre parole, se mi dite che fate un task in 3 giorni, fate il commit (PULITO) in 3 giorni, perche' passato il tempo, e' facile che venga riassegnato.
Questo per prevenire stalli nel lavoro attendendo che qualcuno magari troppo impegnato non riesca a concludere il suo task.

Ultima cosa: tengo traccia in un mio db delle vostre previsioni e del tempo che impiegate, per avere dati su cui calcolare la nostra "Velocita'". Non mi interessa che la velocita' sia alta, mi interessa che sia costante e sostenibile.

Vi teniamo d'occhio

Ultima modifica di fek : 17-09-2005 alle 11:36.
fek è offline  
Old 17-09-2005, 15:04   #6
cisc
Senior Member
 
L'Avatar di cisc
 
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
vorrei prenotarmi per il T1_3, stima 1 giorno
__________________
GNU MyServer Wants YOU!!
We live thinking we will never die. We die thinking we had never lived. Jason Becker
cisc è offline  
Old 18-09-2005, 00:22   #7
Vifani
Senior Member
 
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
Io vorrei prenotarmi per T1_4 e T1_5. Tempo stimato 2 giorni per la consegna di entrambi a partire da quando sarà definito il binding.
__________________
Raffaele Fanizzi
My Personal Web Site
Membro Jedi del HWU Star Wars Clan
Vifani è offline  
Old 18-09-2005, 15:32   #8
Antares88
Senior Member
 
L'Avatar di Antares88
 
Iscritto dal: Jan 2003
Città: Roma
Messaggi: 832
Fek, ho fatto una prova per la texture del diamante come mi hai chiesto su msn. Eccola con sfondo trasparente:



Ed eccola con sfondo nero:





Può andare ?
__________________
Trattative concluse su mercatino: The_Saint, ewandeep, Wiltord, maurizioi, Compulsion, mauryxxx76
Antares88 è offline  
Old 18-09-2005, 15:47   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
difficile, quell'immagine ha anche un canale alpha... suppongo che sia PNG (che altro potrei aspettarmi da te anta, che ti conosco bene )
come faremo a caricarla nel gioco? dobbiamo interpretare il formato PNG oppure esistono le libpng anche per Java? :|

edit: e invece no, era jpeg!!
71104 è offline  
Old 18-09-2005, 16:02   #10
Antares88
Senior Member
 
L'Avatar di Antares88
 
Iscritto dal: Jan 2003
Città: Roma
Messaggi: 832
quella con sfondo trasparente è png (ma dovrebbe venire bene anche in gif con trasparenza attiva), mentre quella su sfondo nero è in jpg.
__________________
Trattative concluse su mercatino: The_Saint, ewandeep, Wiltord, maurizioi, Compulsion, mauryxxx76
Antares88 è offline  
Old 18-09-2005, 16:15   #11
Vifani
Senior Member
 
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
La definizione delle API da utilizzare è ancora un punto interrogativo. Sto aspettando di trovare fek online per discuterne.
__________________
Raffaele Fanizzi
My Personal Web Site
Membro Jedi del HWU Star Wars Clan
Vifani è offline  
Old 18-09-2005, 18:36   #12
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Ragazzi, usiamo questo thread solo per prenotarsi per i task per cortesia.
fek è offline  
Old 19-09-2005, 02:10   #13
Vifani
Senior Member
 
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
Task 1.4 e 1.5 completati. Attendo i test da eseguire
__________________
Raffaele Fanizzi
My Personal Web Site
Membro Jedi del HWU Star Wars Clan
Vifani è offline  
Old 19-09-2005, 09:49   #14
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112

ma alla fine cosa dobbiamo usare?
JOGL o LWGJL?
mi sa che me lo sono perso....
__________________
^TiGeRShArK^ è offline  
Old 19-09-2005, 09:53   #15
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da ^TiGeRShArK^

ma alla fine cosa dobbiamo usare?
JOGL o LWGJL?
mi sa che me lo sono perso....
LWGJL.

SU forza ragasuoli che il povero Vifani ha fatto 3/4 del lavoro. A guardare il codice ha fatto ben oltre i soli 1.4 e 1.5

ciao
VICIUS è offline  
Old 19-09-2005, 10:08   #16
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Abbiamo scelto LWGL e le librerie sono nel repository. Partite pure con i vostri task.

Ricordate che il codice e' responsabilita' di tutti. Significa che non dovete chiedere il permesso di scrivere nel codice degl'altri, che se qualcun altro ha gia' scritto il vostro task, potete guardare il codice che ha scritto e cercare di semplificarlo. Siete incoraggiati a scorrere il codice degl'altri e farne refactoring, semplificandolo ed eliminando le duplicazioni.

Ultima cosa:
Un task non e' completato fino a che i test relativi non passano.

E se non ho scritto neppure un test per un task? Allora non e' completato e non ne faccio il sign off.

Per i primi cicli vi scrivo io qualche test obbligatorio per i vari task (fra stamattina e oggi pomeriggio). I test che scrivo non sono i soli che dovete far passare, siete altamente incoraggiati a scriverne altri. Siete molto incoraggiati a scriverli ancora prima di scrivere il codice e farvi una test list, che magari potete postare per i primi tempi, cosi' da scambiarci consigli.
fek è offline  
Old 19-09-2005, 12:45   #17
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Vi scrivo qui itest da implementare e far passare obbligatoriamente per ogni task.

Task 1

Codice:
void testEngineCreation()
{
  Engine engine = new Engine(800, 600);
  
  assertTrue(engine.IsCreated(), "Engine has not been created correctly");
}

void testDisplaySize()
{
  Engine engine = new Engine(800, 600);

  assertAreEqual(800, engine.getDisplayWidth(), "Display width must be 800");
  assertAreEqual(600, engine.getDisplayHeight(), "Display height must be 600");
}

void testEngineShutdown()
{
  Engine engine = new Engine(800, 600);

  engine.shutDown();
  assertTrue(engine.IsCreated(), "Engine has not shut down correctly");
}
Task 2

Da definire.

Task 3

Codice:
void testAudioCreation()
{
  Audio audio = new Audio();
  
  assertTrue(audio.IsInitialised(), "Audio has not been initialised correctly");
}

void testAudioShutdown()
{
  Audio audio = new Audio();

  engine.shutDown();
  assertTrue(audio.IsCreated(), "Audio has not shut down correctly");
}
Task 4

Codice:
void testLoadDiamondTexture()
{
  Texture texture = new Texture("diamond");

  assertTrue(texture.isLoaded(), "texture has not been loaded");
}

void testSize()
{
  Texture texture = new Texture("diamond");

  assertEqual(64, texture.getWidth(), "texture width is wrong");
  assertEqual(64, texture.getHeight(), "texture width is wrong");
}

void testLoadFailed()
{
  try
  {
     Texture texture = new Texture("this_texture_doesnt_exist");
  }
  catch (TextureNotFoundException)
  {
     return;
  }

  assertFail();
}
Task 5

Qui serve un mock, ma primo devo dirvi che cos'e' un mock. Scrivo i test in seguito.

Task 6

Codice:
void testSound()
{
  Sound sound = new Sound("diamond");

  assertTrue(sound.isLoaded(), "sound has not been loaded");
}

void testLoadSoundFailed()
{
  try
  {
     Sound sound = new sound("this_sound_doesnt_exist");
  }
  catch (TextureNotFoundException)
  {
     return;
  }

  assertFail();
}

void testPlaySound()
{
  Sound sound = new Sound("diamond");

  sound.play();

  assertTrue(sound.isPlayed(), "sound has not been played");
}
Anche testPlaySound() andrebbe implementato con un mock object. Cosi' non e' molto utile e non vogliamo che i test riproducano effettivamente il suono ogni volta che sono eseguiti. Vedremo in seguito come risolvere il problema.

Non ho compilato i test, ci saranno sicuramente errori di sintassi e magari non sara' proprio Java, ma servono per darvi l'idea dei test che ho bisogno che implementiate.

Ricordate:
Il task non e' completo se questi test non passano.

Implementate solo il codice che serve per far passare questi test. Siete caldamente invitati a scrivere altri test che servano per testare il codice che state scrivendo per far passare questi test.
I nomi delle classi che uso nei test e' "abbastanza" obbligatorio. E' un esempio di come vi dettero' l'architettura del gioco attraverso i test e non attraverso un documento.
Se vedete duplicazioni nei test (e ci sono), siete invitati ad eliminarle usando le feature di JUnit.

Infine, questi test lasciano dei buchi, come il clear dello schermo. Alcune cose non sono facili da testare automaticamente, soprattutto quando c'e' di mezzo la presentazione a video. Vedremo in seguito come possiamo risolvere anche questo problema. Per ora abbiamo qualche test e qualche test e' sempre meglio di nessun test.

Ultima modifica di fek : 19-09-2005 alle 13:17.
fek è offline  
Old 19-09-2005, 14:30   #18
Vifani
Senior Member
 
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
Quote:
Originariamente inviato da fek
Vi scrivo qui itest da implementare e far passare obbligatoriamente per ogni task.
Task 4

Codice:
void testLoadDiamondTexture()
{
  Texture texture = new Texture("diamond");

  assertTrue(texture.isLoaded(), "texture has not been loaded");
}

void testSize()
{
  Texture texture = new Texture("diamond");

  assertEqual(64, texture.getWidth(), "texture width is wrong");
  assertEqual(64, texture.getHeight(), "texture width is wrong");
}

void testLoadFailed()
{
  try
  {
     Texture texture = new Texture("this_texture_doesnt_exist");
  }
  catch (TextureNotFoundException)
  {
     return;
  }

  assertFail();
}
fek non mi è chiara una cosa. La stringa che passi al costruttore, dovrebbe essere il nome del file? No perché in tal caso bisogna specificare l'estensione e se così non fosse, cosa rappresenta quella stringa?
__________________
Raffaele Fanizzi
My Personal Web Site
Membro Jedi del HWU Star Wars Clan
Vifani è offline  
Old 19-09-2005, 16:00   #19
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Vifani
fek non mi è chiara una cosa. La stringa che passi al costruttore, dovrebbe essere il nome del file? No perché in tal caso bisogna specificare l'estensione e se così non fosse, cosa rappresenta quella stringa?
Bella domanda.
E' il nome della texture. Queste sono una parte delle specifiche. L'altra specifica e' sottintesa nel fatto che c'e' un file di nome diamonds.png (mi sembra png) nel folder bin/data.
Il resto del test ti dice che quando io chiedo diamonds devi dire che l'hai trovato, quando ti chiedo una texture che nel folder sottointeso non c'e', tu devi darmi l'eccezione.
Sei libero di aggiungere altri testi per chiarire meglio le mie specifiche e renderle piu' coerenti, magari aggiungendo un test che affermi che il folder in cui devi guardare sia bin/data.
In sintesi, prova a scrivere il codice piu' semplice che ti viene in mente, date le specifiche, che fa passare quel test esattamente come e' scritto.
cionci, puoi splittare il mio post e quello di Raffaele in un topic "Chiarimenti sul Task 4 Ciclo 1" per cortesia?

Ultima modifica di fek : 19-09-2005 alle 16:03.
fek è offline  
Old 19-09-2005, 19:01   #20
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Ho aggiunto i test di questo ciclo alla cartella src/it/diamonds/tests/ignore.
Spostateli nella cartella src/it/diamonds/tests e poi implementate il codice per farli passare.

Ricordate di spostare i test altrimenti verranno ignorati dalla build automatica.
fek è offline  
 Discussione Chiusa


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Il seguito di Cyberpunk 2077 si farà att...
Dov'è finita la parola "sost...
Gli agenti IA saranno il fulcro delle az...
Data center: un mercato da 30 miliardi d...
Licenziato e sostituito dall'AI? In Cina...
HONOR Magic 8 Pro: abbiamo tra le mani i...
OPPO ha appena svelato un tablet di fas...
Peaky Blinders: The Immortal Man, Netfli...
iPhone Air: la nuova generazione potrebb...
Il Galaxy S26 Ultra avrà una batteria da...
EV Clinic cambia un settore: ora produce...
OnePlus ha anticipato l'arrivo della ver...
Amazon ha sospeso la sperimentazione del...
Mark Hamill sarà per sempre Luke ...
Amazon rilancia i bestseller fra cui un ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 05:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v