Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei
HUAWEI WiFi Mesh X3 Pro Suite è probabilmente il router mesh più fotogenico che si possa acquistare oggi in Italia, ma dietro il guscio in acrilico trasparente e le luci LED dinamiche c'è una macchina tecnica costruita attorno allo standard Wi-Fi 7, con velocità teoriche Dual-Band fino a 3,6 Gbps e una copertura fino a 120 m² una volta abbinato il router principale all'extender incluso nel kit
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte
Abbiamo provato le nuove CPU Intel Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: più core e ottimizzazioni al funzionamento interno migliorano le prestazioni, anche in virtù di prezzi annunciati interessanti. A questo si aggiungono nuove ottimizzazioni software. Purtroppo, a fronte di prestazioni di calcolo elevate, il quadro rimane incerto nel gaming, dove l'andamento rimane altalenante. Infine, rimane il problema della piattaforma a fine vita.
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu
Il modello "build to order" di PCSpecialist permette di selezionare una struttura base per un sistema, personalizzandolo in base alle specifiche esigenze con una notevole flessibilità di scelta tra i componenti. Il modello Lafité 14 AI AMD è un classico notebook clamshell compatto e potente, capace di assicurare una elevata autonomia di funzionamento anche lontano dalla presa di corrente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-02-2008, 13:55   #1
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Refactoring di Actions

http://fcarucci.homeip.net:8080/crui...id.action.html

Abbiamo due problemi:

- CrushByFlashAction ha una complessita' di 3.2 contro una complessita' media di 1.5. Tutto cio' che sta sopra 2.0 merita la nostra attenzione. Mi serve un volontario che si occupi di semplificare questa action per poi eliminarla.

- RemoveDroppableAction: c'e' un metodo non testato. Se quel metodo non e' testato ed e' vuoto, perche' sta li'? Va eliminato o portato in una classe base.

Lo scopo ultimo sara' la rimozione delle Action, perche' hanno un'interazione davvero oscura col resto del codice. Ma prima di tutto vanno semplificate, per facilitarne la rimozione.

In futuro faremo la stessa cosa con un bel Command Pattern, magari semplificato.

Mi servono due volontari.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 20:31   #2
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Col command dopo ci viene il log gratis.
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 00:37   #3
Baol
Member
 
L'Avatar di Baol
 
Iscritto dal: Apr 2006
Città: Gazzaniga (BG)
Messaggi: 67
Volontario per la CrushByFlashAction presente.

O almeno, provo a lavorarci su e vi dico

EDIT: ma sbaglio o questa classe non è per nulla testata? E se è così, perchè il Coverage Report indica una copertura del 95%? Che devo fare? I test ci sono ma da un'altra parte? Li scrivo? Lascio perdere tanto poi verrà eliminata? Ditemi un po' voi
__________________
"Non esiste l'impossibile. L'impossibile non esiste." Baolian, Libro V



Ultima modifica di Baol : 05-02-2008 alle 01:05.
Baol è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 12:08   #4
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da Bonfo Guarda i messaggi
Col command dopo ci viene il log gratis.
dejavu

ma le action non erano state fatte proprio in ottica di implementare un command pattern?

cos'hanno attualmente di diverso?(apparte il fatto che non sono gli unici modi in cui la griglia viene modificata..)
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 12:29   #5
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da thebol Guarda i messaggi
dejavu

ma le action non erano state fatte proprio in ottica di implementare un command pattern?

cos'hanno attualmente di diverso?(apparte il fatto che non sono gli unici modi in cui la griglia viene modificata..)

Si', quella era l'idea, ma l'esecuzione non fu delle piu' felici

Baol, applica l'antica tecnica di refactoring delle sette stelle di hokuto dell'assimilazione anale. Eliminala quell'action.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 13:32   #6
Baol
Member
 
L'Avatar di Baol
 
Iscritto dal: Apr 2006
Città: Gazzaniga (BG)
Messaggi: 67
Porto tutto in Grid? Non dovrebbe essere complicato
EDIT: ma se ci sta lavorando già 71104 a sto punto io mi fermo...
__________________
"Non esiste l'impossibile. L'impossibile non esiste." Baolian, Libro V



Ultima modifica di Baol : 05-02-2008 alle 13:39.
Baol è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 13:47   #7
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
No, per favore, il codice deve essere portato VIA da Grid allo stato attuale delle cose.
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 13:59   #8
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Baol Guarda i messaggi
Porto tutto in Grid? Non dovrebbe essere complicato
EDIT: ma se ci sta lavorando già 71104 a sto punto io mi fermo...
Continua da dove ha lasciato 71104 oggi e porta via il codice da Grid.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 14:07   #9
Baol
Member
 
L'Avatar di Baol
 
Iscritto dal: Apr 2006
Città: Gazzaniga (BG)
Messaggi: 67
Quote:
Originariamente inviato da fek Guarda i messaggi
Continua da dove ha lasciato 71104 oggi e porta via il codice da Grid.
E' che stavo facendo esattamente quello che ha fatto 71104, comunque ok, reverto tutto e vedo quello che posso fare (non sono così veloce come altri, purtroppo ).
__________________
"Non esiste l'impossibile. L'impossibile non esiste." Baolian, Libro V


Baol è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 14:10   #10
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4747
Quote:
Originariamente inviato da fek Guarda i messaggi
<..> l'antica tecnica di refactoring delle sette stelle di hokuto dell' assimilazione anale.
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 14:42   #11
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Io e Fede ci stiamo facendo prendere la mano da Ken Shiro
fek è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 14:44   #12
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Baol Guarda i messaggi
E' che stavo facendo esattamente quello che ha fatto 71104, comunque ok, reverto tutto e vedo quello che posso fare (non sono così veloce come altri, purtroppo ).
Va benissimo cosi', non devi essere veloce, devi fare le cose bene
Cosi' tutti sono piu' veloci.
Inoltre il codice e' di tutti, come avrai notato non c'e' qualcuno che ha la responsabilita' di un qualche pezzo di codice o sistema, ma tutti interveniamo ovunque. Quindi e' ottimo per te ripartire dal lavoro fatto da Alberto e proseguire in quella direzione.

Mi raccomando: fai le cose semplici. Non devi fare il commit per forza. Se quello che hai scritto non e' semplice, chiedi consigli qui su come semplificarlo, oppure fai il revert e ricomincia. La seconda volta di solito funziona tutto meglio e si fa molto piu' in fretta.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 15:36   #13
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Comunque penso che Ken Shiro abbia segnato profondamente la mia esistenza :|

Ho pure la OST originale
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 15:45   #14
Baol
Member
 
L'Avatar di Baol
 
Iscritto dal: Apr 2006
Città: Gazzaniga (BG)
Messaggi: 67
Stanno per suonare le campane per la CrushByFlashAction.
E' tutto a posto, ho solo una domanda: possono esserci più FlashingGem contemporaneamente? E quindi la crush deve tenere conto che possano crushare più d'una? Perchè modificando il codice l'ho involontariamente portato a considerare una sola flashing (modifico in un attimo nel caso, basta aggiungere un ciclo) ma nessun test è fallito per questo...
Questo vuol dire che devo aggiungerlo vero?
__________________
"Non esiste l'impossibile. L'impossibile non esiste." Baolian, Libro V


Baol è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 16:08   #15
Baol
Member
 
L'Avatar di Baol
 
Iscritto dal: Apr 2006
Città: Gazzaniga (BG)
Messaggi: 67
Ho modificato per permettere più flashingGems, i test che coprono ci sono già.
Al momento ho lasciato in Grid, semplicemente perchè l'unica cosa che ho aggiunto è un'iterazione sulla griglia, e per portarla fuori ci serve l'Iterator no?
(avevo anche pensato a un'eventuale classe accessoria "GridGemFinder" in cui spostare tutti i metodi che cerchino delle gemme nella lista, però non mi convinceva).
Ora committo, qui di seguito il codice:
Codice:
public void updateCrushes()
    {
        crushByFlash();

        crushByChestAction.reset();
        doIteration(crushByChestAction);

        crushedGemsCounter += crushByChestAction.getCrushedGemsCounter();
        if(crushByChestAction.isCrushed())
        {
            chainCounter++;
        }
    }


    private void crushByFlash()
    {
        DroppableList flashingGems = findFlashingGems();
        for(Droppable flashingGem : flashingGems)
        {
            flashingGem.getCrusherObject().makeCrush(this);
        }
    }


    private DroppableList findFlashingGems()
    {
        DroppableList listOfFlashingGems = new DroppableList();

        for(Droppable droppable : droppableList)
        {
            if(droppable.getGridObject().getType().isFlashingGem()
                && !droppable.getFallingObject().isFalling())
            {
                listOfFlashingGems.add(droppable);
            }
        }

        return listOfFlashingGems;
    }
e CrushByFlashAction è eliminata
__________________
"Non esiste l'impossibile. L'impossibile non esiste." Baolian, Libro V


Baol è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 16:17   #16
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Baol Guarda i messaggi
Stanno per suonare le campane per la CrushByFlashAction.
E' tutto a posto, ho solo una domanda: possono esserci più FlashingGem contemporaneamente? E quindi la crush deve tenere conto che possano crushare più d'una? Perchè modificando il codice l'ho involontariamente portato a considerare una sola flashing (modifico in un attimo nel caso, basta aggiungere un ciclo) ma nessun test è fallito per questo...
Questo vuol dire che devo aggiungerlo vero?

Si', devi aggiungerlo tu. Domanda a Jocchan se devi considerare o no questo caso prima.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 16:18   #17
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Codice:
            flashingGem.getCrusherObject().makeCrush(this);
Mi togli quel getCrusherObject() per favore?

Codice:
if(droppable.getGridObject().getType().isFlashingGem()
                && !droppable.getFallingObject().isFalling())
            {
                listOfFlashingGems.add(droppable);
            }
E poi cerca di eliminare la dipendenza da isFlashingGem() e, possibilmente, anche getFallingObject().

Ottimo lavoro fino ad ora
fek è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 16:41   #18
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
E' molto difficile che ci sia più di una flashing gem, ma non è impossibile. Questo perchè, pur avendo la limitazione (voluta) di non avere mai due flashing nella stessa coppia, è possibile che si verifichi questa situazione nella griglia:

Codice:
R - gemma rossa
B - gemma blu
F - flashing

|          |
|          |
|          |
|RRRR   RRR|
|RRRR   RRR|
|BB      BB|
|BB  F   BB|
------------
...ovvero si lascia cadere una flashing in un punto in cui non è a contatto con nulla (per comodità nell'esempio ho usato solo big gem).

Con il codice attuale cosa succederebbe in questa situazione? E se un'altra flashing venisse poggiata su quella già presente?

Quello che deve succedere è che la flashing rimanga lì, sola soletta in fondo alla griglia, fino a quando non verrà in contatto con qualcosa. A quel punto, sempre seguendo l'ordine di priorità che ha adesso, dovrà azionarsi.
Non ricordo però se era stato previsto il caso di due flashing a contatto tra loro.
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.

Ultima modifica di Jocchan : 05-02-2008 alle 16:50.
Jocchan è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 17:08   #19
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Per logica direi che se due flashing vengono a contatto allora tutte le flashing devono essere eliminate... Dopotutto e` un colore NO_COLOR no?
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 17:13   #20
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Jocchan Guarda i messaggi
Quello che deve succedere è che la flashing rimanga lì, sola soletta in fondo alla griglia, fino a quando non verrà in contatto con qualcosa. A quel punto, sempre seguendo l'ordine di priorità che ha adesso, dovrà azionarsi.
Non ricordo però se era stato previsto il caso di due flashing a contatto tra loro.
In SPF2T la flashing gem che tocca il fondo esplode.
fek è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Core Ultra 7 270K Plus e Core Ultra 7 250K Plus: Intel cerca il riscatto ma ci riesce in parte Core Ultra 7 270K Plus e Core Ultra 7 250K Plus:...
PC Specialist Lafité 14 AI AMD: assemblato come vuoi tu PC Specialist Lafité 14 AI AMD: assemblat...
Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto Recensione Nothing Phone 4(a): sempre iconico ma...
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Implementazione NVMe nativa disattivata ...
Polestar 2 e 3: le batterie integrano or...
Crisi delle memorie: ecco le soluzioni p...
Il satellite ESA Proba-3 è tornat...
'Chiudete (quasi) tutto', il risultato d...
Tesla, maggiore autonomia grazie a una r...
Nasce TrendAI, la divisione di Trend Mic...
Recensione Motorola Signature: il primo ...
TeraFab, Elon Musk parte all'assalto di ...
L'ambiziosa base lunare permanente sulla...
Litografia BEUV (Beyond-EUV): la startup...
SAP e l'IA agentica: dall'hype alla matu...
'Abbiamo raggiunto l'AGI': Jensen Huang ...
Claude ora usa il mouse e la tastiera al...
Analisi Opensignal 2026: TIM si prende l...
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: 19:20.


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