Piero V.

Radeon HD5450

Ho deciso di cambiare scheda grafica del computer vecchio.

Ho sostituito la vecchia Radeon X300 SE con una Radeon HD5450. La vecchia scheda era da 128MB ma non so perché Linux ne leggeva solo 32, ho pensato ad un problema hardware. Comunque 128MB non consentono neanche di avviare gnome shell.

Così ho deciso di cambiarla e al suo posto ho preso una Radeon HD5450. Il mio obbiettivo era spendere poco e avere una scheda buona. All’inizio avevo pensato ad una Nvidia. Ne avevo trovata una su Amazon il cui prezzo era sui 34€ e aveva 512MB di RAM.

Però a 22-23€ c’era una Radeon HD5450 sempre con 512MB di RAM e a 25,64€ una Radeon HD5450 con 1GB di RAM.

Ho scelto quest’ultima perché alla fine è un computer con cui non gioco. Mi serviva solo un po’ di potenza in più e che con la prima applicazione 3D non finisse la ram grafica.

Questa scheda oltre al prezzo aveva anche altri vantaggi, quali il basso consumo energetico (importante visto che lo slot a mia disposizione è un PCI Express x16 1.0) e il dissipatore un po’ più piccolo. Normalmente un dissipatore più grande sarebbe meglio, ma per me non andava bene perché subito sotto della scheda video ho quella di rete wireless e allora non sapevo se lo spazio sarebbe bastato.

Come accennavo prima l’ho presa da Amazon. L’ho presa venerdì mattina, ieri me l’hanno spedita e mi è arrivata questa mattina con la spedizione gratuita. Il montaggio è veramente semplice: basta rimuovere quella vecchia e mettere su quella nuova.

Su Linux non servono neanche i driver, fa tutto da solo.

Prime impressioni: bene, finalmente ho GNOME Shell anche su questo computer, la scheda promette bene. Anche la porta HDMI è una cosa positiva in quanto ho una TV dotata di questa porta.

Poi ho guardato su lspci e ancora sbaglia a contarmi la RAM grafica.

Sicuramente ho fatto bene a comprarla, perché di sicuro i 128MB della scheda vecchia non mi basterebbero neanche se fossero contati bene, però mi dà parecchio fastidio questo problema. Vedrò se riesco a risolverlo.

D-Link DSL-2640R

Visti i ripetuti problemi, oggi ho cambiato router come mi era stato consigliato dal tecnico della Telecom.

Può essere in effetti che dopo tutti questi anni il vecchio DSL-320T si sia rotto, forse anche perché era nato come modem ma aveva un firmware Accorp che lo rendeva router.

Così oggi, visto che la situazione era insopportabile ho preso il router nuovo.

Gli obbiettivi erano non spendere molto e prendere un router che fosse compatibile con OpenWrt.

Alla fine i candidati erano rimasti due: questo che ho preso (nel kit DKT-710, che include anche una chiave USB Wi-Fi G) e il DSL-vattelappesca.

I pro di quello che ho preso erano le 4 porte ethernet, l’antenna uscente e sembrava che si potesse metterci OpenWrt. I pro dell’altro erano la Wireless 150N, mentre i contro erano l’assenza di antenne, le sole due porte ethernet (talvolta me ne servono anche 3) e il fatto che non si può di sicuro mettere OpenWrt.

Se non avessi avuto come router Wireless la Fonera 2100 avrei di sicuro preso un router più costoso, ma date le circostanze ho preso il DSL-2640R.

Ora vedremo se era veramente il router il problema.

Alla fine non ho potuto mettere OpenWRT perché era compatibile solo con i router con lo stesso numero ma chip broadcom: in negozio con il cellulare non sono stato a leggere tutto, così non mi sono accorto che nel 2640R cambia la CPU.

Meno male che almeno le opzioni dell’interfaccia grafica non fanno proprio schifo del tutto. Però rimane anche il fatto che la CLI è limitata: non è una normale Busybox ma è una schifezza della D-Link.

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.