KStars: un planetario sul computer

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

Questa sera ho letto per caso questa ANSA relativa al passaggio particolarmente ravvicinato di Giove (pare che la prossima volta accadrà soltanto nel 2022), così date le condizioni meteo relativamente decenti (cielo sereno, anche se non terso) ho deciso di provare a cercare Giove in mezzo a quel pugno di stelle che si vedono, causa inquinamento luminoso (e non solo quello).

Ok, ma dove lo trovo???

Così mi sono ricordato di KStars, un programma del gruppo "Education" di KDE che simula un vero e proprio planetario.

Devo dire, dall’alto della mia ignoranza in materia,...

Leggi il seguito »

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 »