Piero V.

The Tube Sound has come

Cari vicini di casa, attenzione: the Tube Sound has come.

Finalmente sono riuscito a mettere a posto il DeVille che avevo preso qualche mese fa.

Oltre alle resistenze R60 e R62, purtroppo era rotto il trasformatore d’uscita.

Ho seguito i “Simple Tests” indicati su questa pagina e il mio trasformatore vecchio aveva un corto tra secondario e il suo involucro.

Così ne ho dovuto prendere uno nuovo. L’ho preso al negozio di strumenti musicali perché avevo chiamato per sapere se loro potevano fare arrivare pezzi di ricambio senza mandare il prodotto in assistenza ma loro hanno capito che il pezzo me lo dovevano prendere, così ho dovuto prenderlo lì spendendo 115€. Meno che nei siti europei ma più che in siti americani, dai quali però costa tanto la spedizione, perciò alla fine non è stato neanche un prezzo tanto male.

L’operazione di cambio di per sé è abbastanza semplice da compiere: bisogna staccare 3 fili che hanno il supporto direttamente per attaccarli/staccarli e poi dissaldarne 3 dal jack dello speaker, quindi bisogna svitare 4 viti dotate di bullone. Per mettere su quello nuovo il procedimento è analogo, solo che ovviamente va eseguito al contrario 😉 . Inoltre il mio trasformatore sostitutivo aveva 2 fili da saldare e 4 con la specie di spina. Bisogna inoltre ricordarsi di isolare il filo che sul proprio amplificatore non si usa, nel mio caso quello verde perché ho la versione 212. … [Leggi il resto]

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à.

Singleton in PHP + annesso bug

È da un po’ di tempo che sto programmando in C++ ma oggi sono tornato a programmare un po’ in PHP.

Devo dire che ormai mi sembra strano non dover dichiarare più variabili, non aver più gli header e poter implementare i metodi fuori dalla classe stessa.

Però mi ha fatto bene questa pausa di PHP perché ho imparato una tecnica molto interessante, quella delle “singleton”.

In pratica le singleton sono classi che possono avere una sola istanza.

Il loro metodo si riduce praticamente ai metodi statici, però sono più eleganti, secondo me.

Ci sono due principali metodi in C++ per fare i singleton: impostare il costruttore private, in modo da impedire la chiamata al di fuori della classe e dopo chiamarlo o da un metodo statico oppure tramite l’overriding dell’operatore new.

Implementare il primo metodo in PHP è facilissimo, mentre implementare il secondo dovrebbe essere fattibile tramite il metodo magico __call. Però non funziona, ma per farvi vedere come sarebbe lo metto lo stesso nel codice, che è il seguente:

<?php

class MiaClasse {

	/**
	 * L'istanza del singleton.
	 *
	 * @var MiaClasse object
	 * @access private
	 */
	private static $msSingleton = null;

	/**
	 * Un numero per fare una prova.
	 *
	 * @var integer
	 * @access public
	 */
	public $prova = 0;

	/**
	 * Il costruttore.
	 *
	 * È privato perché così si può creare una nuova istanza
	 * solamente da altri metodi di questa classe.
	 */
	private function __construct()
	{
		echo "Costruisco la classe\n";
	}

	/**
	 * Ritorno (o creo, se non esiste) il singleton.
	 */
	public static function getSingleton()
	{
		if(is_null(self::$msSingleton)) {
			self::$msSingleton = new MiaClasse();
		}

		return self::$msSingleton;
	}

	/**
	 * Fallback per le chiamate ai metodi privati.
	 *
	 * Se per caso si prova a creare una nuova istanza, tramite
	 * questa funzione chiamo sempre getSingleton.
	 * È un po' come l'overriding dell'operatore new in C++.
	 */
	public function __call($name, $arguments)
	{
		echo '__call called. $name = ' . $name;
		if($name == '__construct') {
			return self::getSingleton();
		}
	}

}

$a = MiaClasse::getSingleton();
$a->prova = 20;

$b = MiaClasse::getSingleton();
echo $b->prova . "\n";
$b->prova = 27;
echo $a->prova . "\n";

$c = $a->__construct();
$c->foo = 32;
echo $a->foo . "\n";

/*$d = new MyClass();
echo $d->foo . "\n";
$d->foo = 29;
echo $a->foo . "\n";*/

Come vedete se modifico $b modifico anche $a. … [Leggi il resto]

MacBook Pro con display Retina

Il nuovo MacBook Pro non poteva riprendere la keyword “Retina display” del nuovo iPad.

Ok, è bello, sottile (solo 18mm), potente (i7 di terza generazione), ma guardiamo le connessioni.

Ci sono la porta HDMI, due Thunderbolt, due USB 3.0, FireWire 800 più 802.11n e Bluetooth 4.0.

Bene, Apple con Thunderbolt e USB 3.0 pensa al futuro, però attualmente i dispositivi in grado di usare queste interfacce al massimo della loro potenza sono pochi. Perciò questa caratteristica al momento è poco utile.

Di sicuro sarebbe stata utile una porta assente, la RJ45 per la rete. Invece se vuoi usare una classica LAN con il nuovo MacBook Pro devi prenderti un adattatore aggiuntivo, quindi spendendo ancora più soldi oltre i 2299€ del modello base e questa soluzione è di sicuro meno elegante nonché più scomoda della scheda di rete onboard.

Inoltre manca anche il drive ottico, ma questa mancanza in confronto alla rete secondo me è minore, seppure importante.

Come ciliegina sulla torta devo dire che nello store americano il prezzo è di 2199$, corrispondenti a ~1738,20€, ma come già detto sopra nello store italiano il prezzo è di 561€ superiore. Tanto per curiosità in certi store europei come Francia e Germania il prezzo è di 2279€.