Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Il REDMAGIC Astra Gaming Tablet rappresenta una rivoluzione nel gaming portatile, combinando un display OLED da 9,06 pollici a 165Hz con il potente Snapdragon 8 Elite e un innovativo sistema di raffreddamento Liquid Metal 2.0 in un form factor compatto da 370 grammi. Si posiziona come il tablet gaming più completo della categoria, offrendo un'esperienza di gioco senza compromessi in mobilità.
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese di utilizzo intensivo e l'analisi di oltre 50 scatti, l'articolo offre una panoramica approfondita di Nintendo Switch 2. Vengono esaminate le caratteristiche che la definiscono, con un focus sulle nuove funzionalità e un riepilogo dettagliato delle specifiche tecniche che ne determinano le prestazioni
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-07-2008, 17:08   #1
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
[Vari] Contest 4: DNA

Siano date 2 stringhe molto lunghe, di lunghezza diversa, contenenti solo i caratteri CGAT

CGTGTCGCGATACATAGTACaggagtaaagagatGaggaTacgATAGCGATACGATACAGATGTCGGAGAATC
TTCCTACGCAGaggagtaaagagatCaggaCacgGAGCTGATCGGTCGACCATCATTATA

Domanda 1:
Quanto e' lunga la piu' lunga sottosequenza di DNA comune alle 2 stringhe, e l'indice di partenza della sottosequenza in entrambe le stringhe.
Nell'esempio la risposta e' (dovrebbe) 14, con indici 20 e 11, in quanto la sottostringa aggagtaaagagat, nell'esempio riportata per facilita' in minuscolo, dovrebbe essere la piu' lunga comune.

Domanda 2:
Durante una DNA polimerasi possono generarsi errori di trascrizione.
Detto ERR il numero di errori massimi ammessi, trovare la lunghezza della piu' lunga sottosequenza di DNA comune alle 2 stringhe, e l'indice di partenza in ciascuna di esse.

Gli errori NON potranno essere consecutivi. 2 errori consecutivi invalideranno comunque la prosecuzione della sequenza.
Inoltre una sottosequenza non puo' iniziare o finire con un errore.

Nell'esempio precedente, dato ERR=1 la risposta e' (dovrebbe) 19, sempre con indici 20 e 11, in quanto aggagtaaagagatGaggaTacg differisce da aggagtaaagagatCagga per un solo carattere.
Con ERR=2 la riposta e' (dovrebbe) 23 (analogo), sempre con 20 e 11 come indici.

Le 2 stringhe di TEST arriveranno presto, e si suppone che siano molto, molto lunghe.

Ecco le 2 stringhe di TEST
http://www.usaupload.net/d/s4b7z8fpakd
Sono da circa 100.000 nucleotidi la prima e da 80.000 nucleotidi la seconda.
E i 2 test da provare sono quindi:
1) Trovare la piu' lunga sottosequenza identica (prototipo: Funzione (stringa1, stringa2))
2) Trovare la piu' lunga sottosequenza comprendente un massimo di 2 errori (Prototipo: Funzione (stringa1, stringa2, ERR) )

Proviamo cosi', se poi i risultati non ci soddisfano cercheremo 2 nuove sequenze di DNA.
Per il secondo esercizio consideriamo che il numero di errori sara' comunque sempre ragionevolmente basso.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.

Ultima modifica di gugoXX : 29-07-2008 alle 08:35. Motivo: Upload dati
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2008, 17:50   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ci puoi dare un'idea di quanto siano lunghe ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 28-07-2008, 18:25   #3
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
Quote:
Originariamente inviato da cionci Guarda i messaggi
Ci puoi dare un'idea di quanto siano lunghe ?
Devo fare prima una stima sulle tempistiche.
Direi che 200.000 caratteri dovrebbe essere una buona partenza, soprattutto per il secondo algoritmo.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 29-07-2008, 08:35   #4
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Non vorrei rompere le uova nel paniere... ma questo purtroppo è un problema noto e risolto in letteratura.

Non vorrei sfociasse in "la mia versione in C ha un bug ma è velocissima" vs. "L'ho risolto in 3 righe in Blurp!"...
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 29-07-2008, 08:36   #5
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
Quote:
Originariamente inviato da shinya Guarda i messaggi
Non vorrei rompere le uova nel paniere... ma questo purtroppo è un problema noto e risolto in letteratura.

Non vorrei sfociasse in "la mia versione in C ha un bug ma è velocissima" vs. "L'ho risolto in 3 righe in Blurp!"...
Quello senza errori lo so... ma anche con gli errori?
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 29-07-2008, 09:16   #6
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Quello senza errori lo so... ma anche con gli errori?
Non sono decisamente un esperto nel campo... ma se faccio una ricerca su citeseer vengono fuori mille-mila paper sull'argomento (con e senza errori)...
Esistono ovviamente tantissime varianti, quindi se non ci si concentra su una sola soluzione facendo a gara di velocità/bug potrebbe venir fuori un thread interessante
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 29-07-2008, 12:20   #7
Giullo
Senior Member
 
L'Avatar di Giullo
 
Iscritto dal: Dec 2001
Messaggi: 701
appena rientro a casa gli dò un'occhiata seria.

ah, bella gugo, ormai i tuoi contest sono sono uno dei motivi principali di visita di questo forum (per me chiaramente)
__________________
Le mie app per iphone:
Wow Minis Match Tracker ||| Wow Minis Hit Calculator (in review )
Frieza#916 @ SC2 ||| Giullo @ Steam
Giullo è offline   Rispondi citando il messaggio o parte di esso
Old 29-07-2008, 12:48   #8
rеpne scasb
Senior Member
 
Iscritto dal: May 2008
Messaggi: 533
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Siano date ...[CUT]
Vedo un nuovo contest. Spero che cio' non voglia dire che ti sei ritirato dal contest 3.
rеpne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 30-07-2008, 22:12   #9
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
Dai, inizio a puntare io
Per quanto riguarda il secondo esercizio, punto
una stringa lunga 29 caratteri, con 2 errori
trovata nel vergognoso tempo di 174 secondi = 3 minuti circa
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 13:34   #10
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da shinya Guarda i messaggi
Non vorrei rompere le uova nel paniere... ma questo purtroppo è un problema noto e risolto in letteratura.

Non vorrei sfociasse in "la mia versione in C ha un bug ma è velocissima" vs. "L'ho risolto in 3 righe in Blurp!"...
Hai ragione, ma... perche' "purtroppo"? Una volta tanto che esiste un'ottima soluzione, e possiamo metterla nel nostro cassetto degli attrezzi...

L'algoritmo e' l'LCS, funziona benissimo ed e' adatto a questo tipo di problemi. Fra l'altro, e' facilmente adattabile anche per risolvere il problema successivo, cioe' quello di trovare la sequenza piu' lunga contenente un numero massimo di errori (basta un intero).
L'LCS e' l'algoritmo usato per la diff di Unix, per intenderci, ed e' ampiamente documentato in rete
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 13:51   #11
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Per la domanda 1 sto utilizzando l'algoritmo di Knuth-Morris-Pratt (il quale si basa sul concetto di automi a stati finiti che adoro ).

L'idea è quella di partire da una stringa lunga la metà di quella di lunghezza minore. Se la stringa non viene trovata divido ancora per due e così via fino a quando non la trovo(se, invece, la trovo, non divido ma aumento la lunghezza della stringa di ricerca).
La ricerca prosegue sulle stringhe di lunghezza maggiore(minore) di quest'ultima e minore(maggiore) dell'ultima ricerca infruttuosa.

Per ora l'ho provato sulle stringhe di esempio e funziona:



questo è il codice:

Codice:
#include <stdio.h>
#include <string.h>
#include <malloc.h>

int next[1000];

void InitNext(char *p)
{
	int i, j;
	int M = strlen(p);

	next[0] = -1;

	for ( i = 0, j = -1; i < M; i++, j++, next[i] = j )
	{
		while ( (j >= 0) && (p[i] != p[j]) )
			j = next[j];
	}
}

int KnuthMorrisPratt_search(char *p, char *a)
{
	int i, j;
	int M = strlen(p);
	int N = strlen(a);

	InitNext(p);

	for ( i = 0, j = 0; j < M && i < N; i++, j++ )
	{
		while ( (j >= 0) && (a[i] != p[j]) )
		{
			j = next[j];
		}
	}

	if ( j == M )
		return i - M;
	else
		return i;
}

int main()
{
	int p1_len, p2_len;
	char * strSearch;
	size_t len;

	int pos1, pos2;

	int bTrovato = 0;

	char * p1 = "CGTGTCGCGATACATAGTACaggagtaaagagatGaggaTacgATAGCGATACGATACAGATGTCGGAGAATC";
	char * p2 = "TTCCTACGCAGaggagtaaagagatCaggaCacgGAGCTGATCGGTCGACCATCATTATA";

	p1_len = strlen(p1);
	p2_len = strlen(p2);

	//len = p2_len/2;
	len = p2_len;

	strSearch = (char*)malloc(sizeof(char)*len);
	if ( !strSearch )
	{
		printf("Memoria insufficiente.\n");
		return -1;
	}
	strSearch[0] = '\0';

	memcpy(strSearch, p2, len);
	*(strSearch + len) = '\0';

	bTrovato = 0;
	pos1 = 0;
	pos2 = 0;
	while ( len > 0 )
	{
		while ( p2_len - (pos2 + len) > 0 )
		{
			pos1 = KnuthMorrisPratt_search(strSearch, p1);
			if ( pos1 < p1_len )
			{
				bTrovato = 1;
				printf("\nStringa '%s' di lunghezza %d trovata nelle posizioni %d e %d\n", strSearch, len, pos1, pos2);
				break;
			}
			else
			{
				pos2++;
				memcpy(strSearch, p2 + pos2, len);
				*(strSearch + len) = '\0';
			}
		}
		if ( bTrovato )
			break;
		len--;
		pos1 = 0;
		pos2 = 0;
	}

	free(strSearch);

	return 0;
}

Ultima modifica di Vincenzo1968 : 31-07-2008 alle 13:54.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 13:58   #12
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Carino questo problema sul dna
Per ora sto cercando di implementare l'algoritmo che si trova su wikipedia che purtroppo non è il massimo della velocità. Ho provato con stringhe di 1000 caratteri è piuttosto lentino e occupa una vagonata di ram. Con i file originali non ci ho neanche provato perché verrebbe fuori una array di 8 miliardi di elementi.
Codice:
def initialize_lcs_matrix(s, t)
  l = Array.new(s.size + 1) { Array.new(t.size + 1, 0)}
  z = 0
  for i in 1..s.size
    for j in 1..t.size
      if s[i-1] == t[j-1]
        l[i][j] = l[i-1][j-1] + 1
        if l[i][j] > z
          z = l[i][j]
        end
      end
    end
  end
  return l
end

def get_index_from_matrix(m)
  x = y = z = 0
  for i in 0..m.size-1
    for j in 0..m[i].size-1
      if m[i][j] > z
        z = m[i][j]
        x = i
        y = j
      end
    end
  end
  return [z, x, y]
end

def get_string(a, s, e)
  string = ""
  for i in s..(s+e)
    string += a[i]
  end
  return string
end

def read_dna(file_name)
  dna = Array.new
  File.open(file_name, 'r') do |f|
    f.each do |s|
      s.scan(/./).each do |c|
        dna.push c
      end
    end
  end
  return dna
end

ary_a = read_dna('DNA1.txt')
ary_b = read_dna('DNA2.txt')

lcsm = initialize_lcs_matrix(ary_a, ary_b)
z, x, y = get_index_from_matrix(lcsm)
seq = get_string(ary_a, x, z)

puts "Trovata la sequenza #{seq}"
puts "Che è lunga #{z} caratteri"
puts "Indice nella stringa a #{x}"
puts "Indice nella stringa b #{y}"

E questo è l'output:
Codice:
Trovata la sequenza ATAGCTAACACGC
Che è lunga 12 caratteri
Indice nella stringa a 832
Indice nella stringa b 767
Tempo di esecuzione circa 6 secondi.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 14:50   #13
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Quote:
Originariamente inviato da VICIUS Guarda i messaggi
Carino questo problema sul dna
Per ora sto cercando di implementare l'algoritmo che si trova su wikipedia che purtroppo non è il massimo della velocità. Ho provato con stringhe di 1000 caratteri è piuttosto lentino e occupa una vagonata di ram.
Stai usando l'algoritmo O(N1 * N2). Per andare forte bisogna usare i suffix tree.
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 15:20   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Mi ero fatto un algoritmo carino, però appena si sale sopra 8000 elementi esaurisce la memoria. Il modo per terminare la ricerca lo so già, suddividendo il problema, ma credo che mi ci voglia un bel po' a mettere su tutto.
Per 8000 elementi:

time ./Contest4
8000 8000
First string position: 7782 Matched string: ttaggtggtggtaaag
Second string position: 6381 Matched string: ttaggtggtggtaaag

real 0m4.230s
user 0m1.828s
sys 0m1.072s
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 16:14   #15
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Ho provato a risolvere il primo pezzo del problema: su questo arcaico computer ci mette la bellezza di 13 minuti...

Ecco il codice del programma:
Codice:
from time import clock

def leggiFile(percorso):
	f = open(percorso)
	
	stringa = ""
	for linea in f:
		stringa += linea
	f.close()
	return stringa.capitalize()

def trovaSequenza(stringa1, stringa2):
	x = 0
	coordinate = ()
	lunghezza = 0
	sequenza = ""
	while x + lunghezza < len(stringa1):
		sequenza += stringa1[x + lunghezza]
		try:
			y = stringa2.index(sequenza)
			coordinate = (x, y)
			lunghezza += 1
		except ValueError:
			x += 1
			sequenza = sequenza[1:]
	return lunghezza, coordinate

def msec(t1, t2):
	return (t2-t1)*1000.0

origine = "DNA"
print "Lettura in corso...",
t1 = clock()
stringa1 = leggiFile(origine + "1.txt")
stringa2 = leggiFile(origine + "2.txt")
t2 = clock()
print "completata in", msec(t1, t2), "millisecondi."
print

print "Cerco la stringa di lunghezza massima..."
t1 = clock()
lunghezza, coordinate = trovaSequenza(stringa1, stringa2)
t2 = clock()

x, y = coordinate
print " ->", lunghezza, "caratteri alla posizione", coordinate
print " -> sottosequenza della stringa 1:", stringa1[x:(x+lunghezza)]
print " -> sottosequenza della stringa 2:", stringa2[y:(y+lunghezza)]
print "completato in", msec(t1, t2), "millisecondi."
Ed ecco l'output che ottengo (senza la stampa delle due sottosequenze perché l'ho aggiunta solo ora, di aspettare altri 13 minuti non mi va ):
Codice:
Lettura in corso... completata in 252.805109036 millisecondi.

Cerco la stringa di lunghezza massima...
 -> 21 caratteri alla posizione (10002, 40002)
completato in 777964.344022 millisecondi.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 16:42   #16
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Provato anch'io, limitando le stringhe ad 8000 caratteri.

Usato l'algoritmo LCS sotto Java, sul mio laptop DELL Latitude D830. Risultato: 800 millisecondi

Non mi aspetto grosse variazioni di tempo per quanto riguarda la seconda parte del contest
__________________
In God we trust; all others bring data

Ultima modifica di sottovento : 31-07-2008 alle 16:50.
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 16:46   #17
grigor91
Senior Member
 
L'Avatar di grigor91
 
Iscritto dal: Dec 2007
Città: brianza
Messaggi: 717
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Ho provato a risolvere il primo pezzo del problema: su questo arcaico computer ci mette la bellezza di 13 minuti...

Ecco il codice del programma:
Codice:
code ...
ho provato a eseguirlo sul mio pc e i tempi sono questi:
Codice:
Lettura in corso... completata in 10.0537917529 millisecondi.

Cerco la stringa di lunghezza massima...
 -> 21 caratteri alla posizione (10002, 40002)
 -> sottosequenza della stringa 1: actgtcctgtcaacaaggagt
 -> sottosequenza della stringa 2: actgtcctgtcaacaaggagt
completato in 38560.2209219 millisecondi.
__________________
AMD Ryzen 9700X MSI RX 480 Gaming X 8G ASRock B850 Pro-A Windows 11 Pro RAM DDR5 16GBx2 TEAMGROUP T-Create Expert 6000 MHz CL30 SSD Crucial T500 4TB case Corsair Carbide 200R
grigor91 è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 17:03   #18
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Provato anch'io, limitando le stringhe ad 8000 caratteri.

Usato l'algoritmo LCS sotto Java, sul mio laptop DELL Latitude D830. Risultato: 800 millisecondi

Non mi aspetto grosse variazioni di tempo per quanto riguarda la seconda parte del contest
Il problema dell'LCS e' che richeide una matrice rettangolare MxN, e M e N per le sequenze di DMA sono taaaaaanto lunghe
Scherzi a parte, come pensi di conciliare LCS con la trattazione degli errori ammessi nelle stringhe?
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 17:04   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Solo per la prima parte con 200000 caratteri nella stringa uno e 200000 nella stringa due:

~$ time Contest4
200000 200000
First string position: 96827 Matched string: aaaaggtagtttggtagtggatt
Second string position: 134120 Matched string: aaaaggtagtttggtagtggatt

real 0m21.040s
user 0m21.001s
sys 0m0.016s

Algoritmo fatto in casa basato su un albero che enumera totalmente tutte le possibili stringhe.
Metto un po' in ordine il codice e lo posto.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2008, 17:05   #20
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3691
Quote:
Originariamente inviato da Vincenzo1968 Guarda i messaggi
Per la domanda 1 sto utilizzando l'algoritmo di Knuth-Morris-Pratt (il quale si basa sul concetto di automi a stati finiti che adoro ).
Secondo me e' una strada molto promettente.
Non la sto percorrendo (e infatti pago), ma ritengo che sia una delle migliori. Facci sapere...
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Gigabyte Aero X16 Copilot+ PC: tanta potenza non solo per l'IA Gigabyte Aero X16 Copilot+ PC: tanta potenza non...
vivo X200 FE: il top di gamma si è fatto tascabile? vivo X200 FE: il top di gamma si è fatto ...
Il decimo lancio del razzo spaziale Spac...
Nuova immagine per la cometa interstella...
Usi la 'melanzana' su Tinder? Ecco perch...
AWS annuncia molte novità legate ...
Il lato oscuro della speculazione immobi...
Glyph Matrix e design asimmetrico: ...
Il sasso più costoso di sempre: p...
Ericsson punta sull'IA: arrivano nuove s...
Iliad: GIGA 200 e GIGA 150 tra le offert...
Questo power bank wireless ricarica alla...
iPhone 17 Pro e Pro Max: il nu...
Riunioni su Teams direttamente dall'auto...
È record: il nuovo orologio atomi...
Giochi per adulti cancellati da Steam: i...
Lefant M330Pro crolla a 127,49€, offerta...
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: 21:42.


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