-
vaffanculoScritto daaltgutente che non utieneil 2013-04-11 15:25:56.0 alle 2013-04-11 15:25:56.0Trollate totali: 11540

Error: OK, success.
Stavo cercando di leggere un file con fs.readSync. Le letture asincrone funzionano, questa si ferma con quell'assurdo messaggio di errore. Vado a cercare (le pochissime) informazioni disponibili e sembra di capire che gli errori siano mappati male nella versione per Windows di nodejs. Mi par di capire che consideri l'apertura del file avvenuta con successo alla stregua di un errore.
Al di la` di quello, nodejs sembra un prodotto del cazzo, molto acerbo e immaturo. La documentazione sul loro sito fa schifo, gli argomenti non si sa mai quali siano nelle chiamate, o di che tipo siano. Cerchi degli esempi e trovi pochissimo.
Ma vaffanculo, ho perso tempo su un infame trabiccolo.
-
Re: vaffanculoScritto daavvelentaniCubicolarioil 2013-04-11 15:51:32.0 alle 2013-04-11 15:51:32.0Trollate totali: 18184Node.js e` molto immaturo ma windows non e` adatto per programmare se non si vogliono usare gli strumenti di sviluppo di microsoft. Installa linux o usa asp.net, una delle due.I think happiness is love
- Vladimir Putin-
Re: vaffanculoScritto daNon Autenticatoil 2013-04-11 16:03:30.0 alle 2013-04-11 16:03:30.0Scritto da: avvelentani
> Node.js e` molto immaturo ma windows non e` adatto per programmare se non si vogliono usare gli strumenti di sviluppo di microsoft. Installa linux o usa asp.net, una delle due.
non dire trojate per piacere
-
Re: vaffanculoScritto daaltgutente che non utieneil 2013-04-11 16:15:20.0 alle 2013-04-11 16:15:20.0Trollate totali: 11540> Node.js e` molto immaturo ma windows non e` adatto per programmare se non si vogliono usare gli strumenti di sviluppo di microsoft. Installa linux o usa asp.net, una delle due.
Eh, come no. In fondo, dopo il vaffanculo dovrei dire anche un grazie a nodejs per avermi ricordato la terza soluzione: finire linoleum.
-
Re: vaffanculoScritto da: avvelentani
> Node.js e` molto immaturo ma windows non e` adatto per programmare se non si vogliono usare gli strumenti di sviluppo di microsoft. Installa linux o usa asp.net, una delle due.
Qvoto in parte, node è abbastanza maturo su unix, è usato in molti sistemi di produzione ormai e siamo prossimi alla versione 1 (che implica, secondo il semver, il congelamento delle api, si stanno riservando ancora qualche piccola cleanup).
Il problema è node per windows, che cerca di emulare cose che non esistono a livello di api su windows; il porting è arrivato a sviluppo molto avanzato, quando è stato fatto lo switch da libev a libuv; una parte delle api è costruita intorno alle classiche api unix.
La documentazione io la trovo buona, nell'esempio di alex,js fs.readSync(fd, buffer, offset, length, position)
rimanda a fs.read(fd, buffer, offset, length, position, callback)
, che spiega il significato di ogni parametro (l'unica cosa implicita è che buffer è di tipo Buffer, ma se parli di node potresti immaginarlo; non dirmi che ti serve sapere il tipo di offset, length e position, vero?), e quali argomenti di callback devi aspettarti quando usi funzioni asincrone.
Io lo valuto molto positivamente, abbinato a tanti piccoli tools per nodejs (il numero di librerie ormai fa quasi concorrenza a cpan) è lo strumento adatto a scrivere e prototipare rapidamente webappe.
I difetti sono: velocità del runtime per task cpu-intensive (nelle webapp si traduce nella velocità di rendering di pagine dinamiche), utilizzo della memoria e la facilità con cui ci si confonde quando si annidano molto le callback (cosa che comunque si può evitare usando gli EventEmitter oppure librerie tipo async).
p.s. @alex Usare le funzioni *Sync è il modo sbagliato di usare node (blocchi l'event loop).
**Modificato dall'autore il 11.04.2013 19:40**Young professional woman and busy mom.-
Re: vaffanculoScritto daaltgutente che non utieneil 2013-04-11 20:34:35.0 alle 2013-04-11 20:34:35.0Trollate totali: 11540> > Node.js e` molto immaturo ma windows non e` adatto per programmare se non si vogliono usare gli strumenti di sviluppo di microsoft. Installa linux o usa asp.net, una delle due.
>
> Qvoto in parte, node è abbastanza maturo su unix, è usato in molti sistemi di produzione ormai e siamo prossimi alla versione 1 (che implica, secondo il semver, il congelamento delle api, si stanno riservando ancora qualche piccola cleanup).
> Il problema è node per windows, che cerca di emulare cose che non esistono a livello di api su windows; il porting è arrivato a sviluppo molto avanzato, quando è stato fatto lo switch da libev a libuv; una parte delle api è costruita intorno alle classiche api unix.
L'abilita` nell'emulazione e` proprio il far credere al buco quadrato di essere in realta` un buco rotondo.
> La documentazione io la trovo buona, nell'esempio di alex,js fs.readSync(fd, buffer, offset, length, position)
rimanda a fs.read(fd, buffer, offset, length, position, callback)
, che spiega il significato di ogni parametro (l'unica cosa implicita è che buffer è di tipo Buffer, ma se parli di node potresti immaginarlo;
Si`, e fs.openSync rimanda a "Synchronous open(2)".
http://nodejs.org/api/fs.html#fs_fs_opensync_path_...
Come anche fs.open, la versione asincrona.
Asynchronous file open. See open(2).
Cos'e` open(2)??
Qual'e` il valore di ritorno di fs.openSync?
Se non ritorna un descrittore di file perche` il file non esiste o per altre cause d'errore, COSA RITORNA? Mystero.
> non dirmi che ti serve sapere il tipo di offset, length e position, vero?), e quali argomenti di callback devi aspettarti quando usi funzioni asincrone.
No, quello non mi serve, ma per esempio poco piu` sotto:fs.readFile(filename, [options], callback)# filename String options Object encoding String | Null default = null flag String default = 'r' callback Function
Options che cos'e`? Un oggetto che racchiude una proprieta` encoding e una proprieta` flag? Nei pochi esempi, alla fine quel che conta e` metterci una stringa per l'encoding, ad esempio 'ascii', al posto di "options". Metterci un oggetto vero e proprio da` un errore, es. { encoding: 'ascii' }.
Quanto meno e` poco chiaro, molto poco chiaro.
> Io lo valuto molto positivamente, abbinato a tanti piccoli tools per nodejs (il numero di librerie ormai fa quasi concorrenza a cpan) è lo strumento adatto a scrivere e prototipare rapidamente webappe.
> I difetti sono: velocità del runtime per task cpu-intensive (nelle webapp si traduce nella velocità di rendering di pagine dinamiche), utilizzo della memoria e la facilità con cui ci si confonde quando si annidano molto le callback (cosa che comunque si può evitare usando gli EventEmitter oppure librerie tipo async).
>
> p.s. @alex Usare le funzioni *Sync è il modo sbagliato di usare node (blocchi l'event loop).
Quella era la prima sincrona che usavo in assoluto. Posso farlo con l'asincrona (che fra l'altro funziona), ma l'errore mi ha disgustato.-
Re: vaffanculoScritto da: altg
> > > Node.js e` molto immaturo ma windows non e` adatto per programmare se non si vogliono usare gli strumenti di sviluppo di microsoft. Installa linux o usa asp.net, una delle due.
> >
> > Qvoto in parte, node è abbastanza maturo su unix, è usato in molti sistemi di produzione ormai e siamo prossimi alla versione 1 (che implica, secondo il semver, il congelamento delle api, si stanno riservando ancora qualche piccola cleanup).
> > Il problema è node per windows, che cerca di emulare cose che non esistono a livello di api su windows; il porting è arrivato a sviluppo molto avanzato, quando è stato fatto lo switch da libev a libuv; una parte delle api è costruita intorno alle classiche api unix.
>
> L'abilita` nell'emulazione e` proprio il far credere al buco quadrato di essere in realta` un buco rotondo.
>
> > La documentazione io la trovo buona, nell'esempio di alex,js fs.readSync(fd, buffer, offset, length, position)
rimanda a fs.read(fd, buffer, offset, length, position, callback)
, che spiega il significato di ogni parametro (l'unica cosa implicita è che buffer è di tipo Buffer, ma se parli di node potresti immaginarlo;
>
> Si`, e fs.openSync rimanda a "Synchronous open(2)".
>
> http://nodejs.org/api/fs.html#fs_fs_opensync_path_...
>
> Come anche fs.open, la versione asincrona.
>
> Asynchronous file open. See open(2).
>
> Cos'e` open(2)??
man 2 open (e qua *nix >>>> win)
> Qual'e` il valore di ritorno di fs.openSync?
fs.open
vuole una callback (err, fd), ergo fs.openSync torna il file descriptor.
Quando la callback prende più parametri (es. vedi sopra readSync) viene specificato cosa ritorna.
> Se non ritorna un descrittore di file perche` il file non esiste o per altre cause d'errore, COSA RITORNA? Mystero.
Lancia una eccezione, try-catcha.
> > non dirmi che ti serve sapere il tipo di offset, length e position, vero?), e quali argomenti di callback devi aspettarti quando usi funzioni asincrone.
>
> No, quello non mi serve, ma per esempio poco piu` sotto:
>
>fs.readFile(filename, [options], callback)# > filename String > options Object > encoding String | Null default = null > flag String default = 'r' > callback Function
>
> Options che cos'e`? Un oggetto che racchiude una proprieta` encoding e una proprieta` flag? Nei pochi esempi, alla fine quel che conta e` metterci una stringa per l'encoding, ad esempio 'ascii', al posto di "options". Metterci un oggetto vero e proprio da` un errore, es. { encoding: 'ascii' }.
Options è un array associativo, facoltativo perché fra parentesi quadre.
A me questo codice funziona:var fs = require('fs'); fs.readFile('/etc/fstab', {encoding:'utf8',flag:'r'}, function(err, data) { if (err) console.log(err); else console.log(data) })
> Quanto meno e` poco chiaro, molto poco chiaro.
>
> > Io lo valuto molto positivamente, abbinato a tanti piccoli tools per nodejs (il numero di librerie ormai fa quasi concorrenza a cpan) è lo strumento adatto a scrivere e prototipare rapidamente webappe.
> > I difetti sono: velocità del runtime per task cpu-intensive (nelle webapp si traduce nella velocità di rendering di pagine dinamiche), utilizzo della memoria e la facilità con cui ci si confonde quando si annidano molto le callback (cosa che comunque si può evitare usando gli EventEmitter oppure librerie tipo async).
> >
> > p.s. @alex Usare le funzioni *Sync è il modo sbagliato di usare node (blocchi l'event loop).
>
> Quella era la prima sincrona che usavo in assoluto. Posso farlo con l'asincrona (che fra l'altro funziona), ma l'errore mi ha disgustato.
Young professional woman and busy mom.-
Re: vaffanculoScritto daaltgutente che non utieneil 2013-04-11 22:18:23.0 alle 2013-04-11 22:18:23.0Trollate totali: 11540> > Cos'e` open(2)??

>
> man 2 open (e qua *nix >>>> win)
Parlare criptico per riferimenti multipli a cose "scontate" aiuta molto a rendere la documentazione accessibile.
> > Qual'e` il valore di ritorno di fs.openSync?
>
> fs.open
vuole una callback (err, fd), ergo fs.openSync torna il file descriptor.
> Quando la callback prende più parametri (es. vedi sopra readSync) viene specificato cosa ritorna.
>
> > Se non ritorna un descrittore di file perche` il file non esiste o per altre cause d'errore, COSA RITORNA? Mystero.
>
> Lancia una eccezione, try-catcha.
Avevo provato: s'era piantato node.exe in un loop che ha consumato tutta la memoria. Vabbe'... comunque passo all'uso della funzione asincrona anche in quel punto.
> > > non dirmi che ti serve sapere il tipo di offset, length e position, vero?), e quali argomenti di callback devi aspettarti quando usi funzioni asincrone.
> >
> > No, quello non mi serve, ma per esempio poco piu` sotto:
> >
> >fs.readFile(filename, [options], callback)# > > filename String > > options Object > > encoding String | Null default = null > > flag String default = 'r' > > callback Function
> >
> > Options che cos'e`? Un oggetto che racchiude una proprieta` encoding e una proprieta` flag? Nei pochi esempi, alla fine quel che conta e` metterci una stringa per l'encoding, ad esempio 'ascii', al posto di "options". Metterci un oggetto vero e proprio da` un errore, es. { encoding: 'ascii' }.
>
> Options è un array associativo, facoltativo perché fra parentesi quadre.
> A me questo codice funziona:
>> var fs = require('fs'); > fs.readFile('/etc/fstab', {encoding:'utf8',flag:'r'}, function(err, data) { > if (err) > console.log(err); > else > console.log(data) > }) >
A me no, dice che vuole una stringa.
Saranno disguidi nel porting.-
Re: vaffanculoScritto da: altg
> > > Cos'e` open(2)??
> >
> > man 2 open (e qua *nix >>>> win)
>
> Parlare criptico per riferimenti multipli a cose "scontate" aiuta molto a rendere la documentazione accessibile.
>
> > > Qual'e` il valore di ritorno di fs.openSync?
> >
> > fs.open
vuole una callback (err, fd), ergo fs.openSync torna il file descriptor.
> > Quando la callback prende più parametri (es. vedi sopra readSync) viene specificato cosa ritorna.
> >
> > > Se non ritorna un descrittore di file perche` il file non esiste o per altre cause d'errore, COSA RITORNA? Mystero.
> >
> > Lancia una eccezione, try-catcha.
>
> Avevo provato: s'era piantato node.exe in un loop che ha consumato tutta la memoria. Vabbe'... comunque passo all'uso della funzione asincrona anche in quel punto.
>
> > > > non dirmi che ti serve sapere il tipo di offset, length e position, vero?), e quali argomenti di callback devi aspettarti quando usi funzioni asincrone.
> > >
> > > No, quello non mi serve, ma per esempio poco piu` sotto:
> > >
> > >fs.readFile(filename, [options], callback)# > > > filename String > > > options Object > > > encoding String | Null default = null > > > flag String default = 'r' > > > callback Function
> > >
> > > Options che cos'e`? Un oggetto che racchiude una proprieta` encoding e una proprieta` flag? Nei pochi esempi, alla fine quel che conta e` metterci una stringa per l'encoding, ad esempio 'ascii', al posto di "options". Metterci un oggetto vero e proprio da` un errore, es. { encoding: 'ascii' }.
> >
> > Options è un array associativo, facoltativo perché fra parentesi quadre.
> > A me questo codice funziona:
> >> > var fs = require('fs'); > > fs.readFile('/etc/fstab', {encoding:'utf8',flag:'r'}, function(err, data) { > > if (err) > > console.log(err); > > else > > console.log(data) > > }) > >
>
> A me no, dice che vuole una stringa.
> Saranno disguidi nel porting.
che versione hai?
La stringa è un retaggio delle prime versioni dell'api, e a me funzionano entrambe.
Sono su node 0.10.3.Young professional woman and busy mom.-
Re: vaffanculoScritto daaltgutente che non utieneil 2013-04-11 23:23:48.0 alle 2013-04-11 23:23:48.0Trollate totali: 11540> > > > Cos'e` open(2)??

> > >
> > > man 2 open (e qua *nix >>>> win)
> >
> > Parlare criptico per riferimenti multipli a cose "scontate" aiuta molto a rendere la documentazione accessibile.
> >
> > > > Qual'e` il valore di ritorno di fs.openSync?
> > >
> > > fs.open
vuole una callback (err, fd), ergo fs.openSync torna il file descriptor.
> > > Quando la callback prende più parametri (es. vedi sopra readSync) viene specificato cosa ritorna.
> > >
> > > > Se non ritorna un descrittore di file perche` il file non esiste o per altre cause d'errore, COSA RITORNA? Mystero.
> > >
> > > Lancia una eccezione, try-catcha.
> >
> > Avevo provato: s'era piantato node.exe in un loop che ha consumato tutta la memoria. Vabbe'... comunque passo all'uso della funzione asincrona anche in quel punto.
> >
> > > > > non dirmi che ti serve sapere il tipo di offset, length e position, vero?), e quali argomenti di callback devi aspettarti quando usi funzioni asincrone.
> > > >
> > > > No, quello non mi serve, ma per esempio poco piu` sotto:
> > > >
> > > >fs.readFile(filename, [options], callback)# > > > > filename String > > > > options Object > > > > encoding String | Null default = null > > > > flag String default = 'r' > > > > callback Function
> > > >
> > > > Options che cos'e`? Un oggetto che racchiude una proprieta` encoding e una proprieta` flag? Nei pochi esempi, alla fine quel che conta e` metterci una stringa per l'encoding, ad esempio 'ascii', al posto di "options". Metterci un oggetto vero e proprio da` un errore, es. { encoding: 'ascii' }.
> > >
> > > Options è un array associativo, facoltativo perché fra parentesi quadre.
> > > A me questo codice funziona:
> > >> > > var fs = require('fs'); > > > fs.readFile('/etc/fstab', {encoding:'utf8',flag:'r'}, function(err, data) { > > > if (err) > > > console.log(err); > > > else > > > console.log(data) > > > }) > > >
> >
> > A me no, dice che vuole una stringa.
> > Saranno disguidi nel porting.
>
> che versione hai?
> La stringa è un retaggio delle prime versioni dell'api, e a me funzionano entrambe.
> Sono su node 0.10.3.
Uguale. 0.10.3.
Ma qui funziona solo la stringa.
Secondo me nel port per windoze c'e` un po' di casino.
Comunque, visto che devono essere problemi della sola versione per windoze, ritiro il vaffanculo e lo downgrado a un vaffannel diversamente fronte.
Mah, comunque ho ripreso a lavorarci. E` anche colpa mia. In questi giorni sono piu` nervoso del solito. Poi mi passa. Sara` la primavera.
-
Re: vaffanculoScritto da: altg
> > > > > Cos'e` open(2)??
> > > >
> > > > man 2 open (e qua *nix >>>> win)
> > >
> > > Parlare criptico per riferimenti multipli a cose "scontate" aiuta molto a rendere la documentazione accessibile.
> > >
> > > > > Qual'e` il valore di ritorno di fs.openSync?
> > > >
> > > > fs.open
vuole una callback (err, fd), ergo fs.openSync torna il file descriptor.
> > > > Quando la callback prende più parametri (es. vedi sopra readSync) viene specificato cosa ritorna.
> > > >
> > > > > Se non ritorna un descrittore di file perche` il file non esiste o per altre cause d'errore, COSA RITORNA? Mystero.
> > > >
> > > > Lancia una eccezione, try-catcha.
> > >
> > > Avevo provato: s'era piantato node.exe in un loop che ha consumato tutta la memoria. Vabbe'... comunque passo all'uso della funzione asincrona anche in quel punto.
> > >
> > > > > > non dirmi che ti serve sapere il tipo di offset, length e position, vero?), e quali argomenti di callback devi aspettarti quando usi funzioni asincrone.
> > > > >
> > > > > No, quello non mi serve, ma per esempio poco piu` sotto:
> > > > >
> > > > >fs.readFile(filename, [options], callback)# > > > > > filename String > > > > > options Object > > > > > encoding String | Null default = null > > > > > flag String default = 'r' > > > > > callback Function
> > > > >
> > > > > Options che cos'e`? Un oggetto che racchiude una proprieta` encoding e una proprieta` flag? Nei pochi esempi, alla fine quel che conta e` metterci una stringa per l'encoding, ad esempio 'ascii', al posto di "options". Metterci un oggetto vero e proprio da` un errore, es. { encoding: 'ascii' }.
> > > >
> > > > Options è un array associativo, facoltativo perché fra parentesi quadre.
> > > > A me questo codice funziona:
> > > >> > > > var fs = require('fs'); > > > > fs.readFile('/etc/fstab', {encoding:'utf8',flag:'r'}, function(err, data) { > > > > if (err) > > > > console.log(err); > > > > else > > > > console.log(data) > > > > }) > > > >
> > >
> > > A me no, dice che vuole una stringa.
> > > Saranno disguidi nel porting.
> >
> > che versione hai?
> > La stringa è un retaggio delle prime versioni dell'api, e a me funzionano entrambe.
> > Sono su node 0.10.3.
>
> Uguale. 0.10.3.
> Ma qui funziona solo la stringa.
> Secondo me nel port per windoze c'e` un po' di casino.
>
> Comunque, visto che devono essere problemi della sola versione per windoze, ritiro il vaffanculo e lo downgrado a un vaffannel diversamente fronte.
>
> Mah, comunque ho ripreso a lavorarci. E` anche colpa mia. In questi giorni sono piu` nervoso del solito. Poi mi passa. Sara` la primavera.
Ma il mac ce l'hai ancora? Molti devel che usano/sviluppano nodejs sono macachi, il supporto è ottimo.Young professional woman and busy mom.-
Re: vaffanculoScritto daaltgutente che non utieneil 2013-04-12 02:15:09.0 alle 2013-04-12 02:15:09.0Trollate totali: 11540> > > > > > Cos'e` open(2)??

> > > > >
> > > > > man 2 open (e qua *nix >>>> win)
> > > >
> > > > Parlare criptico per riferimenti multipli a cose "scontate" aiuta molto a rendere la documentazione accessibile.
> > > >
> > > > > > Qual'e` il valore di ritorno di fs.openSync?
> > > > >
> > > > > fs.open
vuole una callback (err, fd), ergo fs.openSync torna il file descriptor.
> > > > > Quando la callback prende più parametri (es. vedi sopra readSync) viene specificato cosa ritorna.
> > > > >
> > > > > > Se non ritorna un descrittore di file perche` il file non esiste o per altre cause d'errore, COSA RITORNA? Mystero.
> > > > >
> > > > > Lancia una eccezione, try-catcha.
> > > >
> > > > Avevo provato: s'era piantato node.exe in un loop che ha consumato tutta la memoria. Vabbe'... comunque passo all'uso della funzione asincrona anche in quel punto.
> > > >
> > > > > > > non dirmi che ti serve sapere il tipo di offset, length e position, vero?), e quali argomenti di callback devi aspettarti quando usi funzioni asincrone.
> > > > > >
> > > > > > No, quello non mi serve, ma per esempio poco piu` sotto:
> > > > > >
> > > > > >fs.readFile(filename, [options], callback)# > > > > > > filename String > > > > > > options Object > > > > > > encoding String | Null default = null > > > > > > flag String default = 'r' > > > > > > callback Function
> > > > > >
> > > > > > Options che cos'e`? Un oggetto che racchiude una proprieta` encoding e una proprieta` flag? Nei pochi esempi, alla fine quel che conta e` metterci una stringa per l'encoding, ad esempio 'ascii', al posto di "options". Metterci un oggetto vero e proprio da` un errore, es. { encoding: 'ascii' }.
> > > > >
> > > > > Options è un array associativo, facoltativo perché fra parentesi quadre.
> > > > > A me questo codice funziona:
> > > > >> > > > > var fs = require('fs'); > > > > > fs.readFile('/etc/fstab', {encoding:'utf8',flag:'r'}, function(err, data) { > > > > > if (err) > > > > > console.log(err); > > > > > else > > > > > console.log(data) > > > > > }) > > > > >
> > > >
> > > > A me no, dice che vuole una stringa.
> > > > Saranno disguidi nel porting.
> > >
> > > che versione hai?
> > > La stringa è un retaggio delle prime versioni dell'api, e a me funzionano entrambe.
> > > Sono su node 0.10.3.
> >
> > Uguale. 0.10.3.
> > Ma qui funziona solo la stringa.
> > Secondo me nel port per windoze c'e` un po' di casino.
> >
> > Comunque, visto che devono essere problemi della sola versione per windoze, ritiro il vaffanculo e lo downgrado a un vaffannel diversamente fronte.
> >
> > Mah, comunque ho ripreso a lavorarci. E` anche colpa mia. In questi giorni sono piu` nervoso del solito. Poi mi passa. Sara` la primavera.
>
> Ma il mac ce l'hai ancora? Molti devel che usano/sviluppano nodejs sono macachi, il supporto è ottimo.
In teoria ce l'ho, ma e` rotto. Ha lo schermo mezzo fulminato, e comunque per me passare a OSX o a Linux e` la stessa cosa: nessuno dei due mi entusiasma particolarmente. Non mi entusiasma neanche Windows, beninteso, pero` un po' ho la versione windows del modulo di run-time di linoleum ancora in sospeso, un po' windows e` ancora quel che la maggior parte dei miei ormai occasionali clienti usano, un po' continui a trovarlo sui computer che compri, un po' photoshop a cui sono affezionato, un po' di qui e un po' di la`, mi servirebbe un incentivo piuttosto forte per buttarmi su Linux e derivati.-
Re: vaffanculoScritto da: altg
> mi servirebbe un incentivo piuttosto forte per buttarmi su Linux e derivati.
Non so te, ma a me questo argomento
è stato quello che mi ha convinto.
Young professional woman and busy mom.
-
-
-
-
-
-
-
-
-
-