Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
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


Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
Il nuovo Snapdragon 8 Elite Gen 6 sar&ag...
Nintendo Switch 2: risultati sotto le at...
Weekend con tante sorprese su Amazon: to...
HONOR non si ferma più: il 2025 &...
Speciale best seller: EUREKA J15 Evo Ult...
Roborock Q10 X5+ da 10.000 Pa a 199€ &eg...
E-mail reset password di Instagram: la c...
La NASA ha discusso le problematiche del...
Il razzo spaziale NASA SLS e la capsula ...
Stazione Spaziale Internazionale: Crew-1...
Samsung Galaxy S26 Ultra: la ricarica de...
Apple ha un nuovo partner per la sua App...
Trenitalia introduce il prezzo dinamico ...
OnePlus non si ferma più: c'&egra...
DAZN sconta il piano Full per 6 mesi, se...
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: 22:28.


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