Dropbox & Dolphin

18 settembre 2010 - Fonte: http://doppiavu.wordpress.com

Oggi ho deciso di testare un po’ Dropbox. Per chi non lo sapesse Dropbox è un servizio di storage online, che mette a disposizione gratuitamente (previa registrazione) 2 Gb di spazio in cui è possibile memorizzare i nostri file, per averli sempre con noi anche quando non ci troviamo sul nostro computer, oppure per condividerli con altre persone via web.

Dropbox mette a disposizione un client per le tre principali piattaforme (Linux, Windows e Mac), attraverso cui è possibile gestire i nostri file.

Tuttavia la versione per Linux è composta da un plugin per nautilus (il file manager di Gnome), mentre non è prevista una integrazione per KDE (e Dolphin).

Provando a scaricare i sorgenti (sono disponibili anche pacchetti preconfezionati...

Leggi il seguito »

Piccolo Cheat Sheet per il C++ parte 7

9 maggio 2010 - Fonte: http://doppiavu.wordpress.com
  • I/O su file

void ifstream::open(NOME_FILE, modalità) // modalità default = ios::in

void ofstream::open(NOME_FILE, modalità) // modalità default = ios:out

void fstream::open(NOME_FILE, modalità) // modalità default = ios::in|ios::out

es:

ofstream out;

out.open("pippo");

// la stessa cosa si può fare banalmente con:

ofstream out("pippo");

out.close();

  • file binari

istream &read(char *buf, streamsize num);

ostream &write(const char *buf, streamsize num);

buf deve essere definito come array di caratteri, oppure (ad esempio se buf è una struttura, deve essere castato esplicitamente ad array di caratteri (unsigned...

Leggi il seguito »

Piccolo Cheat Sheet per il C++ parte 6

9 maggio 2010 - Fonte: http://doppiavu.wordpress.com

Sesta parte del Cheat Sheet per C++

  • stream predefiniti

cin, cout, cerr e clog (versione bufferizzata di cerr)

  • manipolatori per formattazione I/O

cout << manipolatore << valore;

boolalpha, noboolalpha // è possibile utilizzare "true" e "false" come valori booleani (sia in input che in output)

dec // base decimale

endl // fine riga e svuotamento stream

ends // fine stringa ''

fixed // notazione normale per numeri in virgola mobile

flush // svuotamento stream

hex // base 16

internal // spazi riempitivi inseriti fra il segno o il carattere di base

left // allineamento a sinistra

showpoint, noshowpoint //...

Leggi il seguito »

Piccolo Cheat Sheet per il C++ parte 5

9 maggio 2010 - Fonte: http://doppiavu.wordpress.com

Quinta parte del Cheat Sheet per C++

  • funzioni template

template <class tipo1, class tipo2,...>

tipo_restituito func(parametri)

{

... // posso usare "tipo1,2" quando devo dichiarare una variabile di tipo parametrico (anche nella lista dei parametri o nel tipo restituito)

}

se ho una funzione template ed una con overloading espicito, quest’ultima ha la precedenza nel caso di invocazione con i tipi per i quali c’è l’overloading.

  • classi template

template <class tipo1, class tipo2,...>

class nomeClasse {

...

}

// per dichiarare un oggetto

nomeClasse<tipo1, tipo2,...> oggetto;

è possibile...

Leggi il seguito »

Piccolo Cheat Sheet per il C++ parte 4

9 maggio 2010 - Fonte: http://doppiavu.wordpress.com

Quarta parte del Cheat Sheet per il C++

  • Ereditarietà

class classe-derivata: accesso classe-base {

...

}

se non metto il tipo di accesso:

  • se derivata è una class -> private
  • se derivata è una struct -> public

se public -> tutti i membri public della base sono public anche nella derivata (idem per i membri protected, restano protected), i membri private restano private e quindi non sono accessibili alla classe derivata

se private -> tutti i membri public e protected della base diventano private della derivata

se protected -> (accessibili solo a classe base e sue derivate) tutti i membri public e protected di base diventano protected in derivata

Piccolo Cheat Sheet per il C++ parte 3

9 maggio 2010 - Fonte: http://doppiavu.wordpress.com

Terza parte del Cheat Sheet per il C++

  • Costruttori di copie

classname(const classname &ob) {

...

}

viene invocato solamente nelle inizializzazioni:

myclass x = y; // inizializzazione esplicita

func(y); // crea un oggetto temporaneo inizializzandolo a y

y = func(); // crea un oggetto temporaneo utilizzato per inizializzare y

x = y; // non è un'inizializzazione, quindi non richiama il costruttore di copie

  • Puntatori a funzioni con overloading

se non c’è overloading si può fare:

p = func;

con overloading è necessario esplicitare i parametri:

int func(int a);

int func(int a, int b);

int main()

{

...

Leggi il seguito »

Piccolo Cheat Sheet per il C++ parte 2

9 maggio 2010 - Fonte: http://doppiavu.wordpress.com

Seconda parte del Cheat Sheet per il C++

  • Array di oggetti

myclass a[3]; //possibile solo se myclass dichiara un costruttore vuoto

myclass a[] = {1,3,5}; // possibile solo se il costruttore riceve un solo parametro, in questo caso un int, non è necessario specificare la dimensione

myclass a[] = { myclass(1, 2), myclass(2,4), myclass(4,8)}; // se il costruttore ha più di un parametro, in questo caso 2, non è necessario specificare la dimensione

  • Puntatori a oggetti

myclass *p, ob;

p = &ob;

p->funzione(par); // equivale a ob.funzione(par);

this // è un puntatore, quindi si usa ->

i puntatori a classi base non possono richiamare elementi delle classi...

Leggi il seguito »

Piccolo Cheat Sheet per il C – parte 3

18 aprile 2010 - Fonte: http://doppiavu.wordpress.com

Terza parte del Cheat Sheet per il C

  • Operazioni su File

file di testo possono effettuano trasformazioni dei caratteri (es ‘\n’), file binari non effettuano nessuna trasformazione.

di defautlt i file sono aperti come file di testo.

Puntatore a file: FILE *f

apertura file f = fopen("nome", "modalità") modalità = r, w, a, rb, wb, ab, r+, w+, a+, r+b, w+b, a+b

chiusura file: fclose(f)

feof(f) (0 = no fine, !=0 = fine)

fputs("stringa",f), fgets(char *s, length + 1, f) (legge fino a \n incluso, o fino a length)

rewind() = riavvolge il file

ferror(f) (0 = no errori, != 0 = errore) [reset ad ogni operazione]

remove("nome file")

fflush(f)

fread(void...

Leggi il seguito »

Piccolo Cheat Sheet per il C++ parte 1

18 aprile 2010 - Fonte: http://doppiavu.wordpress.com

Questo post segue il precedente “Piccolo Cheat Sheet per il C” (diviso in più parti) e tratta delle caratteristiche principali del C++

  • Tipi di dati

wchar (caratteri a 16 bit, i letterali si indicano con L’char’)

  • Classi

class nomeClasse {

dati e funzioni privati // private è opzionale

specificatori di accesso: //private, public, protected

dati e funzioni // normalmente si mette solo il prototipo delle funzioni

specificatori di accesso:

dati e funzioni

} elenco oggetti; // dichiarazione contemporanea alla definizione

tipo myclass::funzione(parametri) //implementazione

{

...

}

si può usare anche struct...

Leggi il seguito »

Piccolo Cheat Sheet per il C – parte 2

11 aprile 2010 - Fonte: http://doppiavu.wordpress.com

Seconda parte del Cheat Sheet per il C (prima parte qui).

  • Puntatori

printf("%p", ptr); doppi puntatori int **p; i puntatori locali contengono un valore random se non inizializzati, quelli globali sono messi a NULL.

  • Puntatori a funzioni

int f(int x, char c) {

...

}

...

int (*f_ptr)(int x, char c)

f_ptr = f;

f2(2.3, f_ptr); // == f2(2.3, f);

...

int f2(double d, int (*f_ptr_X)(int x, char c))

{

...

}

  • Allocazione dinamica

void *malloc(size_t byte) (restituisce un puntatore a void, ovvero...

Leggi il seguito »