Due parole e un’app sugli strani redirect sdc.tre.it sdcf.tre.it di Tre Italia

In questi giorni mi sono ritrovato a discutere con i centralinisti del servizio clienti di Tre Italia a proposito di strani redirect che mi succedevano navigando su rete 3 con il mio cellulare. In particolare, succedeva che il mio browser veniva a tutti gli effetti intercettato e rediretto ad un servizio che appartiene al dominio tre.it, el mio caso sdcf.tre.it, che redirigeva a siti pubblicitari.

Ricercando in rete l’indirizzo, ho trovato diverse persone che condividevano il mio stesso problema, così ho deciso di telefonare al servizio clienti per far chiarezza.

La prima telefonata è stata a dir poco futile, nella quale il (non troppo preparato) centralinista mi assicurava che l’indirizzo non aveva assolutamente a che fare con alcun servizio della Tre. La cosa è ovviamente e palesemente falsa, dal momento che è un indirizzo che appartiene al dominio tre.it, registrato dalla società in questione.

A questo punto ho deciso di scrivere sulla pagina facebook di assistenza clienti 3, ottenendo le prime informazioni:

screen_assistenza_tre_sdcf

 

Insistendo col servizio clienti, un’altra operatrice mi cerca di dare maggiori informazioni, ma nemmeno lei sa spiegare qualcosa a proposito di questi strani redirect. L’unica cosa che scopro è che sul mio conto sono stati addebitati 14 centesimi per visualizzazione di contenuti di “editoria mobile”, che sono riconducibili a testate giornalistiche che hanno stretto contratti con Tre Italia per addebitare automaticamente sul conto dei visitatori che accettassero di visualizzare le pagine con i loro articoli. L’operatrice mi assicura che quando queste pagine si presentano, da qualche parte deve essere specificato che il contenuto è a pagamento, e io di questo sono sicuro. Ma sono anche relativamente certo che non avrei mai accettato di pagare 7 o 9 centesimi per visualizzazione se ne fossi stato cosciente. Sento puzza di soldi facili per le testate giornalistiche e Tre.

Detto questo, chiedo che Tre non accetti mai in futuro addebiti sul mio conto che non siano relativi all’utenza telefonica, come ad esempio questi addebiti da siti quali corriere.it o repubblica.it. L’operatrice insiste che questo non è possibile, farfugliando qualcosa a proposito del fatto che Internet è libera. Devo dire che se anche Internet fosse libera, cosa di cui dubito sempre di più, Tre si sta impegnando in tutti i modi per evitare che sia così.

Finito questo piccolo sfogo, che racconta la mia esperienza con gli addebiti Tre, veniamo alla parte tecnica, che più si addice a questo blog. Ho provato a realizzare un’applicazione Android che, senza necessità dei permessi di root sul telefono, sia in grado di intercettare le chiamate ai servizi di tre.it riconducibili a pubblicità o addebiti indesiderati. Cercando in rete ho scoperto degli indirizzi sono usati da Tre per “servizi” che hanno (a mio avviso) come scopo principale quello di addebitare costi a utenti inconsci, e che si possono trovare preinseriti addirittura nei browser predefiniti dei telefoni brandizzati Tre. Tutto questo è un insulto alla clientela, se non si può già paralare di truffa.

L’applicazione che ho sviluppato serve ad intercettare eventuali redirect indesiderati del browser verso questi indirizzi:

sdc.tre.it

sdcf.tre.it

mobile.tre.it

portal.tre.it

L’applicazione è per ora in fase di test, potrebbe non funzionare bene e non in tutti gli scenari, ma è già qualcosa. L’ho già rilasciata sperando che possa funzionare almeno in parte per chi condivide questi problemi, soprattutto perchè anche cercando in rete, o chiamando il servizio clienti sembra che questi problemi non si possano risolvere altrimenti.

Ecco il link all’applicazione nel Google Play Store:

https://play.google.com/store/apps/details?id=it.nicassio.addebititreblocker

Update:

Aggiungo un link ad un relativo articolo di bastabollette.it che suggerisce anche un approccio legale al problema: https://bastabollette.it/telefonia/h3g/sdcf-tre-come-difendersi/

JSGenetic Curriculum

This is my last experiment: text which creates itself with a genetic algorithm, implemented in JS by my library JSGenetic, which I wrote some time ago and described in a previous post.

I used this kind of self-generating text to implement a timeline based curriculum vitae, of which I’ll have to review the content, but i’m quite happy with the structure.

As you can see when it computes the icons, this doesn’t work only for text, but with with generic pixel templates too.

Here’s the link.

MicroAccounting Web App

This semester at the university I attended a course of web programming, and as part of the final exam I was asked to develop a web application. It would use a Java servlet hosted by the Google App Engine, and would store data to the Google’s Datastore.

I thought that it would be much more useful to make a mobile web app, which is something slightly more challenging which I didn’t practice a lot in the past.

The app goal is to track daily expenses, by providing a way to insert, edit and delete transactions.

Of course the whole project was basically boring (which is different than easy), so I decided to add a funny functionality: I included a QR code scanner to add transactions by automatically, simply scanning the related QR code.

In the end, it has been fun, and as usual I’m writing this blog post to keep track of my works.

A live version of the app is hosted by Google here.

A simple test Microaccounting Store which provides QR codes to test the app is here.

Facebook: searching people by phone number

Looking in the privacy settings of my Facebook profile, I discovered the option which indicates who can search you by the phone number you provided. The default setting is everyone.

Probably this option is intended for allowing users to match friends from the phonebook of their phones, but works in the desktop site too, by simply inserting the phone number in the searchbox. It works even if you have set your phone number to be private, it’s a different kind of option.

This is pretty similar to the kind of matching is made in WhatsApp or similar apps to find friends, but is completely different if you think that in those other services you cannot discover additional information like first and last name by providing the phone number, you just use the name you’re providing in your phonebook.

Using this Facebook feature lets you get a lot of information (Facebook’s public profile infos) by only providing the number of the person you’re interested in. That’s interesting.

Of course, to be searched this way, you need to have provided your number in some way to facebook. But this is more and more common, Facebook asks for it in various occasions, such as for the two step verification, and likely by using the mobile messenger app.

With that said, this service can be used to match unknown numbers, which is pretty useful [and a little creepy, if you think you can finally find out whose person number is being written in the toilette].

Interested by this possibility, I tried to brute-force the function to create an phonebook of random people from Facebook. I made a program which randomly tries a lot of numbers waiting for matches in the searchbox.

Actually, it worked pretty good, and I was able to retrieve like ~50 phone numbers and relative facebook profile by searching phone numbers similar to my own.

The program was set to run forever, but after a while Facebook noticed me that I was misusing their services, and asked me to enter a captcha to verify my humanity. 🙂

This method is probably not suitable for retrieving the phone numbers of every facebook user (actually I still think there’s a chance if you have a large number of fake Facebook accounts working simultaneously), but could be used by some spammers to find few random numbers and relative public information (likes, hometown, ecc) to perform some targeted advertising.

My very simple python script is bound to the italian version of Facebook, but is essentially very easy, uses Selenium webdrivers to login in Facebook and then search for numbers in the serachbox, looking for changes in the search suggestions to identify a match.

Since I don’t need people to get my Facebook friendship only because I’m in their phonebook, I changed the option value from everyone to friends.

JSGenetic library and new Genetic Environment implementation

I’ve created a little Genetic Algorithm library called JSGenetic, which takes care of the population management of a genetic algorithm.

As a test for this library, I’ve re-implemented an old project, the Genetic Environment, which is basically a simulation of an environment made by resources (water and food) which spontaneously grows or rains on the field, and by “animals”, which have a genetic code that specifies their behavior given what they see of the environment: they can actually “see” only north, south, east and west. The animals also have a little memory of 4 bits, and can understand if they are running out of water or food.

The genetic code of the animals is initially set to random, and is progressively processed by the genetic library which selects the individuals which survive more time.

After some generations, it’s clear that the individuals live longer because of the selection made on their genetic code, which defines how they behave.

The code of the JSGenetic library is on GitHub, and the live example of the code is on my github page at this address.

Hierarchical clustering of blog posts fetched through RSS Feed

Today I tried to implement a simple webapp which retrieves some RSS feeds from a given URL and then looks for the content and uses a hierarchial clustering classifier to cluster them in some kind of categories by content similarity.

Actually the implementation is really poor, and I’m not even sure it works. Anyway, it’s been long since I wanted try some kind of text classifier, and here we are. It extracts the text from the RSS feed, then indexes the words inside it and tries to use them as features for the algorithm. Short posts generally means bad results, especially without any kind of generalization (tokenization should be the word in this case) of the features. In fact, results are hardly understandable and I guess they’re random.

Anyway, here’s a list of what I (sort of) learned along the way:

  • what is hierarchical clustering (not how it works, though)
  • d3.js graph library basics (very basic basics)
  • how to use NetBeans to develop webapps

That’s not so bad for a spare afternoon&evening.

As I said, I didn’t implement the algorithm myself, but I used a library from github, clusterfck.
Oh and I also used the jFeed jQuery plugin for parsing the RSS, but I slightly modified it to fetch the content of the entries and not to crash trying to detect IE.

Here‘s the link.