Piero V.

Invertire chiavi e valori nelle map (C++)

Mi è capitato di dover invertire le chiavi con i valori delle mappe, così ho creato questo template:

#include <map>
#include <vector>

template <class oldkey, class oldvalue>
typename std::map< oldvalue, std::vector<oldkey> > reverse_map(typename std::map<oldkey, oldvalue> the_map)
{
	std::map< oldvalue, std::vector<oldkey> > ret;

	typename std::map<oldkey, oldvalue>::iterator it;
	for(it = the_map.begin(); it != the_map.end(); it++) {
		ret[it->second].push_back(it->first);
	}

	return ret;
}

Era il primo template che scrivevo. Comunque sembra che funzioni, ma se c’è qualcosa che non va scrivete nei commenti (però per favore non mangiatemi 😊 ).

Come al solito per queste cose, rilascio questo codice nel pubblico dominio.

Risoluzione: da stringa a interi e viceversa in C++

Ho fatto due funzioni utili in C++. Servono per trasformare la stringa della risoluzione in numeri e viceversa.

Da numberi a stringa è stato molto facile, ho usato uno stringstream. In questo caso era la modalità più semplice, veloce ed elegante.

Il contrario era un po’ più difficile.

Ho usato sempre uno stringstream. Per la larghezza è bastato fare il contrario di quello che avevo fatto prima, però dovevo trovare il separatore prima di trovare l’altezza. Perciò ho fatto un while che fino a quando lo stream era buono continuava a prendere i char e se trovava x o * si fermava. Dopodiché trovare l’altezza era semplicissimo.

Avrei voluto aggiungere anche × ai separatori, però non era possibile perché non stava in un char.

Se volete vedere il codice che parla da solo eccolo qui: risoluzione.cpp.

Ovviamente potete farne quello che volete. Non è richiesto alcun tipo di credito per righe che tutti potrebbero fare.

Skype 4.0 per Linux

Finalmente hanno rilasciato un aggiornamento di Skype per Linux che sembra mostrare che agli sviluppatori del programma importi ancora qualcosa di questa piattaforma.

Non so quando l’hanno rilasciato, un po’ di tempo fa di sicuro, ma non è presente nei repository di Debian, perciò me ne sono accorto per puro caso ieri.

Hanno avvicinato molto la grafica a quella di windows, soprattutto la schermata delle chiamate e sembra crashare meno.

La schermata principale è uguale a quella di prima ma il resto è cambiato tutto e devo dire meno male. Non sarà ancora fatto al livello degli altri sistemi operativi, ma comunque è un buon progresso.

Sul sito di Skype trovate già dei pacchetti per aggiornare o installare il programma nella vostra distribuzione.

Facebook API: sto impazzendo

Non so se vi è mai capitato di dover fare un lavoro per essere usato in privato con gente che conoscete.

A me sì, e tempo dopo è caduto in disuso, però recentemente mi è stato chiesto ancora di fare un lavoro simile.

Una delle cose fondamentali è l’autenticazione.

La scorsa volta uno dei problemi maggiori era stato questo: perdita della password, dello username etc, così questa volta ho pensato di integralo con Facebook: praticamente tutti quelli che lo devono usare hanno Facebook e per quelli che non ce l’hanno userò il Google Account.

Comunque sono partito con l’integrazione con Facebook.

Mamma mia, sto impazzendo per farla.

Uno dei più grossi problemi che ho è che quando si fa il logout da Facebook l’utente rimane collegato all’applicazione, cosa che ovviamente non va bene, né per gli utenti dell’applicazione, né per l’utente stesso.

Un altro problema è che ho messo le condizioni sulla privacy ma quando l’utente cerca di leggerle Facebook gli dice che è un contenuto ritenuto inadatto dalla community di Facebook. Il bello è che quest’applicazione è ancora privata, perciò nessuno può ancora aver visto quel link!

Non ho parole per esprimermi al riguardo…

A volte ritornano...

L’altro giorno è successa una cosa che “che nel pensier rinova la paura”.

Dopo che Telecom per anni mi ha proposto un disservizio che pensavo di aver superato, ora sono tornati i problemi.

Dopo aver toccato anche picchi di 7 megabit, la connessione l’altro giorno si è connessa a 600kbit/s.

Ricordo che la banda minima garantita è di 2,1megabit.

Il fatto più sconcertante è che tu non puoi neanche chiamare per segnalare il guasto perché “stranamente” mentre chiami la telecom questo si sistema da solo.

E oggi è successo di nuovo.

Non so come mai succeda ma vedo troppo spesso tecnici del telefono lavorare sul palo in comune a me e al mio vicino.

Comunque la prossima volta che mi succede non so cosa farò. Magari proverò prima a vedere se chiamando anche un altro numero si sistema e casomai la volta dopo chiamerò col cellulare.

Quello che è sicuro e che non è possibile che vengano sempre offerti servizi che funzionano a metà.